工程线性代数与matlab

感谢西电的课程强力推荐

matlab 实数 精度64位二进制 、8个字节
变量的检查,who; whos(详细)

ex21p.m

format, echo on               % 显示函数,不只是显示结果
pause,x1=sqrt(5),x2=1.37      % pause 执行前等待用户确认
pause,y=3/x2
pause,disp(' 矩阵的赋值')
pause,a=[1,2,3;4,5,6;7,8,9]
pause,disp(' 赋值元素可以是表达式')
pause,x=[-1.3 sqrt(3) (1+2+3)/5*4]
pause,disp(' 可以超越矩阵已有范围赋值')
pause,disp(' 其中未赋值元素自动取零')
pause,x(5)=abs(x(1))          % 生成 或者 添加 第五行 !!
pause,a(4,3)=6.5
pause,a(5,:)=[5,4,3]          % 此处5 后面逗号 不可省
pause,disp('提取4个位置')
pause,b=a([2,4],[1,3])
pause,disp(' 用空矩阵[]在矩阵中删除行或列')
pause,a([2,4,5],:)=[]
pause,disp(' 赋值语句可以无左端变量')
pause,a/7
pause,disp(' 矩阵的转置')
pause,a'
pause,disp(' 矩阵元素可以是复数')
pause,c=3+5.2i
pause,z=[1+2i,3+4i;5+6i,7+8i]
pause,z=[1,3;5,7]+[2,4;6,8]*i
pause,disp(' 运算对复数有效')
pause,f=sqrt(1+2i)
pause,g=sin(3+5i)
pause,f*f

Matlab特殊矩阵赋值函数

c = eye(2)

c =

     1     0
     0     1

>> d = eye(3)

d =

     1     0     0
     0     1     0
     0     0     1

>> e =eye(4)

e =

     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1

magic 模仿矩阵

>> a = magic(2)

a =

     1     3
     4     2

>> b = magic(3)

b =

     8     1     6
     3     5     7
     4     9     2

>> c = magic(4)

c =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1
>> d = linspace(0,1,3)

d =

         0    0.5000    1.0000

>> e = linspace(0,1,5)

e =

         0    0.2500    0.5000    0.7500    1.0000
% 矩阵拼接
>> a = zeros(3,2)

a =

     0     0
     0     0
     0     0

>> b = ones(3,4)

b =

     1     1     1     1
     1     1     1     1
     1     1     1     1

>> c = [a,b]

c =

     0     0     1     1     1     1
     0     0     1     1     1     1
     0     0     1     1     1     1

>> d = linspace(0,1,6)

d =

  1 至 5 列

         0    0.2000    0.4000    0.6000    0.8000

  6 列

    1.0000

>> e =[c , d]
错误使用 horzcat
串联的矩阵的维度不一致。

>> e =[c ; d]

e =

         0         0    1.0000    1.0000    1.0000    1.0000
         0         0    1.0000    1.0000    1.0000    1.0000
         0         0    1.0000    1.0000    1.0000    1.0000
         0    0.2000    0.4000    0.6000    0.8000    1.0000

matlab 解线性方程组
rref (Reduced Row Echelon Form) 行最简行(针对增广矩阵)
行阶梯矩阵——阶梯高度只能是一行;阶梯下方全为0
行最简形矩阵——首先是行阶梯矩阵,然后每行系数为1;对于行中系数为1的列,该列仅有1 这一个元素

作用,具体功能:
解线性方程组
求矩阵的秩(行最简形,有几行为非0;约束条件有几个(即几行非0);系数矩阵 和 增广矩阵 的秩 一样 有唯一解;)
求矩阵行最简形 首元 所在的列数

示例——求解线性方程组
求解线性方程组

>> a =[2 -2 2 6 ;2 -1 2 4 ;3 -1 4 4 ; 1 1 -1 3 ];
>> b = [-16;-10;-11;-12];
>> ab = rref([a,b])

ab =

     1     0     0     0    11
     0     1     0     0    -8
     0     0     1     0    -6
     0     0     0     1    -7

>> [ab1,b1]= rref([a,b])

ab1 =

     1     0     0     0    11
     0     1     0     0    -8
     0     0     1     0    -6
     0     0     0     1    -7


b1 =

     1     2     3     4
% b1  计算的是 化简的行最简形的首元 所在列的位置;当有无数解时,可能b1 就是1235 (欠定方程组)

求解也可以直接用左除ax = b ;   x = a' b  ;   x = a\b

矩阵计算 —— 多个线性系统 相互关联;构成更大的复杂的系统,是线性代数要完成的重要任务;要用矩阵的理论和算法来实现。
矩阵加法 —— 一一对应元素 相加
矩阵数乘 —— 用系数 分别 乘 每个元素(左乘 == 右乘)
矩阵乘法三要点 —— AB可乘,A列数 == B 行数; AB乘积C的形状 A行B列; AB乘积C元素构成: A的行和B的列內积;
矩阵乘法规律 ———— 不符合交换律AB != BA;
线性代数(矩阵加法;矩阵数乘;)定义:
这里写图片描述
从变量x -> 变量Y的线性变换 x
多次连续线性变换,可以变换为矩阵的连乘,在现有基础上进行线性变换,即左乘变换系数;
(AB)C = A(BC)空间次序不可变, 时间次序可以变
A(B+C) = AB+ AC
λ(AB)= (λA)B = A(λB)
如果AB都是上下对角矩阵,则AB也是上下对角矩阵;

矩阵的逆(就是除法):

可逆条件:矩阵A的行列式的值 不为0;
唯一性: 如果矩阵A 可逆 是唯一的;
A B可逆: AB = BA = I
逆的逆:A可逆,A^-1也可逆,(A^-1)^-1 =A
(AB)^-1 = B^-1A^-1;
推广:
(ABCDE)^-1= E^-1D^-1C^-1B^-1A^-1

逆矩阵的求法(计算量最少的方法——高斯消元法):
https://jingyan.baidu.com/article/1709ad8095e1924634c4f03a.html
方法1:参数法(就是高斯消元法)
方法2: 伴随矩阵
方法3:(A,E)–》(E,A^-1)初等行变换;

matlab 两种方法:(必须是方阵)
你函数 V= inv(A)
负指数 V= A^-1

A = [ 1 2
        -1 -3];
>> B = inv(A)

B =

     3     2
    -1    -1

>> A^-1

ans =

     3     2
    -1    -1
>> rref([A,eye(2)])

ans =

     1     0     3     2
     0     1    -1    -1

矩阵转置 符号’ T
(AB)’ = B’A’
A = A’ 对阵矩阵

矩阵分块
典型用法:化学方程式 配平

初等矩阵:将单位矩阵经过一次航初等变换得到的矩阵
这里写图片描述

数组赋值 【】
x = [起点,增量,终点]
y = linspace(起点,终点,点数)
z = logspace(起点,终点,点数)

元素群的四则运算:
+ - * / 前加一点符号“。” ,两个矩阵按逐个元素进行运算

rref 和 ref 的功能: ref 即转化为行阶梯 形;不是最简形;

行列式的意义:主要用来判断Ax = b 是否有解的情况;
用两个竖线 圈起来,| A | = det(A) (determinant 行列式,决定值)

二阶行列式的几何意义;
这里写图片描述

A B 两点代表的两个向量,该两个向量之间的面积 即为 二阶行列式;
即为 向量內积: A * B = | A | | B | sint(θ)

三阶行列式的几何意义:
三个向量 为三条边 组成的平行六面体 的体积。
matlab 求解行列式的值det():

特征值的另一个用法,求特征方程的特征值。

>> AA  = [1 3 4 ;]

AA =

     1     3     4

>> AA  = [1 3 4 ;2 3 6; 0 9 1];
>> D =det(AA)

D =

    15

>> AA(2,:) = [1 3 4]

AA =

     1     3     4
     1     3     4
     0     9     1

>> det(AA)

ans =

     0

这里写图片描述

plot 画图

format compact, clear ,          % clear删除变量; clc 数字 清屏
close all,echo on
pause,% Y=5*(rand(1,10)-0.5));   % rand()随机生成一个数组,元素群
pause,Y=[-1.4,-2.2,0.9,0.9,2,-0.6,0.1,1.7,-2.3,-2.2],disp(' ')         % Y 就是个数组,plot(Y)   以下标为横坐标
pause,plot(Y,'b','linewidth',2)  % b blue  线宽 mm
pause, title('我的第一张图'), xlabel('n'), ylabel('Y'),grid
pause,disp('用hold on命令在一张图上画两根曲线的方法'),disp(' ')
pause, t=0:0.5:4*pi; y=exp(-0.1*t).*sin(t); plot(t,y,'g'),hold on       %图片保持,后续作图在改图基础上
pause, t=0:0.5:4*pi; y1=exp(-0.1*t).*sin(t+1); plot(t,y1,'r','linewidth',2)
hold off
pause,disp('将平面上若干点(1,2),(3,4),(4,1),(1,2)连接的方法'),
pause,plot([1,3,4,1],[2,4,1,2])                   % 多个点之间画直线,  分别将3个点的 x 和 y 分开 取成了一个集合;
pause,plot([1,3,4,1],[2,4,1,2],'s')               % 只画出点,s 代表 square
pause,disp('分割成子图的方法'),disp(' ')
pause,subplot(2,2,1),stem(t,y), title('stem(t,y)')                      %画子图(221)代表22列,第一个图
pause,subplot(2,2,2),stairs(t,y),title('stairs(t,y)')                   %
pause,subplot(2,2,3),bar(t,y),title('bar(t,y)'),axis([0,20,-1,1]) 
pause,subplot(2,2,4),fill(t,y,'r'),title('fill(t,y,''r'')'),
pause,subplot(1,1,1)

这里写图片描述
符号变量

>> clear
>> syms  a b c d;
>> 
>> A =[a b ; c d]

A =

[ a, b]
[ c, d]

>> det(A)

ans =

a*d - b*c

>> inv(A)

ans =

[  d/(a*d - b*c), -b/(a*d - b*c)]
[ -c/(a*d - b*c),  a/(a*d - b*c)]

向量

向量的几何长度 || V || = sqrt() , 也叫范数 ,norm
matlab 命令 length()

单位向量 : 该向量 / 范数

单位向量 和 方向余弦:单位向量 三个(2个)分量在x - y -z 轴的投影,也就是该向量与 x - y - z 夹角的余弦
这里写图片描述

数量积 (点积)—— 一个向量在另一个向量上投影

这里写图片描述

两个向量正交额条件是 两个单位向量的 数量积 为 0;

向量积 —— 叉积 (生成一个新的向量,右手定则)
这里写图片描述

三阶向量积
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_35508344/article/details/79978562