1 / 26

第五章 矩阵与行列式

第五章 矩阵与行列式. §5.6 用 MATLAB 计算 矩阵与行列式. 用 MATLAB 计算矩阵与行列式. 行列式的求值. 在 MATLAB 中我们只需借助函数 det 就可以求出行列式的值,其格式为. det (A). 其中 A 为 n 阶方阵.. 练习 5.14 求矩阵 的行列式的值.. 程序设计: >> clear >> A=[1 0 2 1;-1 2 2 3; 2 3 3 1;0 1 2 1]; >> det (A). 运行结果: ans= 14.

fisseha
Télécharger la présentation

第五章 矩阵与行列式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 矩阵与行列式 §5.6用MATLAB计算 矩阵与行列式

  2. 用MATLAB计算矩阵与行列式 • 行列式的求值 在MATLAB中我们只需借助函数det就可以求出行列式的值,其格式为 det (A) 其中A为n阶方阵.

  3. 练习5.14求矩阵 的行列式的值. 程序设计: >> clear >> A=[1 0 2 1;-1 2 2 3; 2 3 3 1;0 1 2 1]; >> det (A) 运行结果: ans= 14 程序说明: 1.Clear的作用是清除内存中的变量. 2.矩阵的输入可以有两种格式,除程序中的输入方式外,还可以如下输入: A=[1,0,2,1;-1,2,2,3;2,3,3,1;0,1,2,1]

  4. 练习5.15计算行列式 程序设计: >> clear >> syms a b c d >> A=[a 1 0 0;-1 b 1 0;0 –1 c 1;0 0 –1 d]; >> DA=det (A) 声明变量 生成符号矩阵 运行结果: DA= 程序说明:函数det也可以用于计算含有变量的行列式.

  5. 矩阵的基本运算 • 矩阵的加、减 (1) 维数相同,即行数和列数都分别相等. (2) 矩阵相应位置的元素相加、减. • 练习5.14求矩阵 与矩阵 的和与差. 解 程序设计: >> clear >> A=[1 2 3;2 1 2;3 3 1]; >> B=[3 2 4;2 5 3;2 3 1]; >> C=A+B; >> D=A-B; >> C,D

  6. 运行结果: C= 4 4 7 4 6 5 5 6 2 D= -2 0 -1 0 -4 -1 1 0 0 例题分析: 1.进行加、减运算的矩阵必须是同型的. 2.在进行矩阵相加的运算时,A+B和B+A的值相同,满足加法交换律.

  7. 数与矩阵相乘,是数与矩阵中的每个元素相乘.数与矩阵相乘,是数与矩阵中的每个元素相乘. • 数与矩阵相乘 练习5.17求矩阵 与5的乘积 程序设计: >> clear >> A=[1 0 1;2 1 1;1 2 1]; >> B=5*A >> C=A*5

  8. 运行结果: B= 5 0 5 10 5 5 5 10 5 C= 5 0 5 10 5 5 5 10 5 程序说明:5*A与A*5的值相同.

  9. 两矩阵相乘时,第一个矩阵(左矩阵)的列数必须等于第二个矩阵(右矩阵)的行数.两矩阵相乘时,第一个矩阵(左矩阵)的列数必须等于第二个矩阵(右矩阵)的行数. • 矩阵与矩阵相乘 练习5.18 求 与 的乘积. 程序设计: >> clear >> A=[1 2 3;2 1 2;3 3 1]; >> B=[3 2 4;2 5 3;2 3 1]; >> C=A*B , D=B*A

  10. 运行结果: C= 13 21 13 12 15 13 17 24 22 D= 19 20 17 21 18 19 11 10 13 例题分析: 比较C和D,可以看出A*B和B*A的结果完全不同.

  11. 如果矩阵A是方阵且是非奇异的(可逆),可以用函数inv (A)求得A的逆矩阵. • 求矩阵的逆 练习5.19求矩阵 的逆矩阵. 程序设计: >> clear >> A=[1 –1 2;0 1 –1;2 1 0]; >> C= inv (A)

  12. 运行结果: C= -1 -2 1 2 4 -1 2 3 -1 程序说明: 如果矩阵不可逆,则运行结果会给出警告信息.

  13. 练习5.20利用矩阵的初等行变换求上例矩阵的逆.练习5.20利用矩阵的初等行变换求上例矩阵的逆. 程序设计: >> clear >> B=[1 –1 2 1 0 0;0 1 –1 0 1 0;2 1 0 0 0 1]; >> format rat >> C=rref (B) 矩阵A的增广矩阵 以有理格式输出 给出矩阵B的行最简形 C= 1 0 0 -1 -2 1 0 1 0 2 4 -1 0 0 1 2 3 -1

  14. >> D=C(:,4:6) D= -1 -2 1 2 4 -1 2 3 -1 取矩阵C的4到6列, D即为矩阵A的逆矩阵 例题说明: 由线性代数的知识可知,矩阵A和其同型的单位矩阵E组成增广矩阵B,对B进行初等行变换,当矩阵A变为单位阵时,单位矩阵E变为矩阵A的逆.

  15. 在MATLAB中,矩阵相除可以利用运算符“\”(左除)和“/”(右除),而在线性代数中并没有定义矩阵的除法.在MATLAB中,矩阵相除可以利用运算符“\”(左除)和“/”(右除),而在线性代数中并没有定义矩阵的除法. • 矩阵相除 练习5.19 求矩阵 和 相除. 程序设计: >> clear >> A=[1 2 3;4 2 1;2 1 3]; >> B=[2 1 2;1 2 1;3 2 1]; >> C=A\B 矩阵左除,相当于inv(A)*B,inv(A)为矩阵A的逆

  16. C= 0.3333 0.6000 -0.2000 -0.6667 -0.4000 0.8000 1.0000 0.40000 0.2000 >> D=A/B D= 1.3333 1.3333 -1.0000 0 -0.5000 1.5000 1.6667 0.1667 -0.50000 矩阵右除,相当于A*inv (B) 说明: 1.矩阵的左除和右除概念完全不同,要注意区分. 2.可以利用矩阵的左除求解线性方程组AX=b,其中 X=A\b. 3.可以利用矩阵的右除求解线性方程组XA=b,其中 X=b/A.

  17. 矩阵的秩 练习5.19求矩阵 的秩. 解:>>clear; >>A=[2 1 1 2;1 2 2 1;1 2 1 2;2 2 1 1]; >>rank(A) ans= 4 矩阵A的行向量 或列向量线性无关. rank(A)=4

  18. 求解线性方程组 • 齐次线性方程组 通过求系数矩阵 的秩来判断解的情况: (1) 如果系数矩阵的秩为n(方程组中未知数的个数),则方程组只有零解. (2) 如果系数矩阵的秩小于n,则方程组有无穷多解.

  19. 2.非齐次线性方程组AX=b 根据系数矩阵A的秩和增广矩阵B=[A b]的秩和未知数个数n的关系,判断方程组AX=b的解的情况: (1) 如果系数矩阵的秩等于增广矩阵的秩等于n,则方程组有唯一解. (2) 如果系数矩阵的秩等于增广矩阵的秩小于n,则方程组有无穷多解. (3) 如果系数矩阵的秩小于增广矩阵的秩,则方程组无解.

  20. 练习5.20求解方程组 解: >>clear >>A=[-1 –2 4;2 1 1;1 1 –1]; >>rank(A) ans= 2 >>rref(A) ans = 1 0 2 0 1 –3 0 0 0 说明方程有无穷多解,并且解为

  21. 练习5.21求解方程组 , 解 >> clear >> A=[2 1 2;2 1 4;3 2 1]; >> b=[3 1 7]’; >> X=A\b X= 2 1 -1

  22. 练习5.22求解方程组 >>clear >>A=[1 –1 1 –1;-1 1 1 –1;2 –2 –1 1]; >>b=[1 1 –1]’; >>C=[rank(A) rank([A b])] 解 C= 2 2 表示秩(a)=2,秩([a b])=2 小于未知数的个数4

  23. 再输入 >> rref([A b]) ans= 由表示行最简形矩阵,得通解 ( 为自由未知数)

  24. 习 题 • 习题1已知 求: (1) 的秩 (2) (3) (4)

  25. 习题2求解方程组 解: Matlab编程: >>A=[-1 1 -6;2 -1 2;1 3 -2]; >> b=[3 7 5]'; >> C=rank(A) >> rref([A b]) >> X=A\b

  26. 运行结果: C = 3 ans = 1.0000 0 0 4.5000 0 1.0000 0 -0.7500 0 0 1.0000 -1.3750 X = 4.5000 -0.7500 -1.3750

More Related