第五章 矩阵与行列式
DESCRIPTION
第五章 矩阵与行列式. §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. - PowerPoint PPT PresentationTRANSCRIPT
第五章 矩阵与行列式
§5.6 用 MATLAB 计算 矩阵与行列式
用 MATLAB 计算矩阵与行列式行列式的求值
在 MATLAB 中我们只需借助函数 det 就可以求出行列式的值,其格式为
det (A)
其中 A 为 n 阶方阵.
练习 5.14 求矩阵 的行列式的值.
1 0 2 1
1 2 2 3
2 3 3 1
0 1 2 1
A
程序设计: >> clear >> A=[1 0 2 1;-1 2 2 3; 2 3 3 1;0 1 2 1]; >> det (A)
程序说明:1 . Clear 的作用是清除内存中的变量.2 .矩阵的输入可以有两种格式,除程序中的输入方
式外,还可以如下输入: A=[1,0,2,1;-1,2,2,3;2,3,3,1;0,1,2,1]
运行结果: ans= 14
练习 5.15 计算行列式
1 0 0
1 1 0
0 1 1
0 0 1
a
b
c
d
程序设计:>> 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= * * * * * * 1a b c d a b a d c d
程序说明:函数 det 也可以用于计算含有变量的行列式.
生成符号矩阵
声明变量
矩阵的基本运算 矩阵的加、减
(1) 维数相同,即行数和列数都分别相等.
练习 5.14 求矩阵 与矩阵 的和与差.
1 2 3
2 1 2
3 3 1
A
3 2 4
2 5 3
2 3 1
B
程序设计:>> clear
>> A=[1 2 3;2 1 2;3 3 1];
>> B=[3 2 4;2 5 3;2 3 1];
解
(2) 矩阵相应位置的元素相加、减.
>> C=A+B;
>> D=A-B;
>> C,D
运行结果:C=
4 4 7
4 6 5
5 6 2例题分析:
2 .在进行矩阵相加的运算时, A+B 和 B+A 的值相同,满足加法交换律.
1 .进行加、减运算的矩阵必须是同型的.
D=
-2 0 -1
0 -4 -1
1 0 0
数与矩阵相乘
数与矩阵相乘,是数与矩阵中的每个元素相乘.
练习 5.17 求矩阵 与 5的乘积 1 0 1
2 1 1
1 2 1
A
程序设计:
>> clear
>> A=[1 0 1;2 1 1;1 2 1];
>> B=5*A
>> C=A*5
程序说明: 5*A 与 A*5 的值相同.
运行结果:B=
5 0 5
10 5 5
5 10 5
C=
5 0 5
10 5 5
5 10 5
矩阵与矩阵相乘
两矩阵相乘时,第一个矩阵(左矩阵)的列数必须等于第二个矩阵(右矩阵)的行数.
练习 5.18 求 与 的乘积. 1 2 3
2 1 2
3 3 1
A
3 2 4
2 5 3
2 3 1
B
程序设计:>> 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
运行结果:C= 13 21 13 12 15 13 17 24 22D= 19 20 17 21 18 19 11 10 13
例题分析:比较 C 和 D ,可以看出 A*B 和 B*A 的结果完全不同.
求矩阵的逆
如果矩阵 A 是方阵且是非奇异的(可逆),可以用函数 inv (A) 求得 A 的逆矩阵.
练习 5.19 求矩阵 的逆矩阵. 1 1 2
0 1 1
2 1 0
A
程序设计:>> clear
>> A=[1 –1 2;0 1 –1;2 1 0];
>> C= inv (A)
运行结果: C= -1 -2 1 2 4 -1 2 3 -1
程序说明:如果矩阵不可逆,则运行结果会给出警告信息.
练习 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
例题说明:由线性代数的知识可知,矩阵 A 和其同型的单
位矩阵 E 组成增广矩阵 B ,对 B 进行初等行变换,当矩阵 A 变为单位阵时,单位矩阵 E 变为矩阵 A 的逆.
>> D=C(:,4:6)
D= -1 -2 1 2 4 -1 2 3 -1
取矩阵 C的 4到 6列,D即为矩阵 A的逆矩阵
矩阵相除
在 MATLAB 中,矩阵相除可以利用运算符“ \”(左除)和“ /” (右除),而在线性代数中并没有定义矩阵的除法 .
练习 5.19 求矩阵 和 相除. 1 2 3
4 2 1
2 1 3
A
2 1 2
1 2 1
3 2 1
B
程序设计:
>> 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的逆
>> D=A/B D= 1.3333 1.3333 -1.0000 0 -0.5000 1.5000 1.6667 0.1667 -0.50000
说明:1 .矩阵的左除和右除概念完全不同,要注意区分.
C= 0.3333 0.6000 -0.2000 -0.6667 -0.4000 0.8000 1.0000 0.40000 0.2000
3 .可以利用矩阵的右除求解线性方程组 XA=b ,其中 X=b/A .
2.可以利用矩阵的左除求解线性方程组 AX=b ,其中 X=A\b .
矩阵右除,相当于 A*inv (B)
矩阵的秩
练习 5.19 求矩阵 的秩.
2 1 1 2
1 2 2 1
1 2 1 2
2 2 1 1
A
解: >>clear; >>A=[2 1 1 2;1 2 2 1;1 2 1 2;2 2 1 1]; >>rank(A) ans= 4
rank(A)=4矩阵 A的行向量或列向量线性无关.
求解线性方程组
0AX
A
1.齐次线性方程组
(1) 如果系数矩阵的秩为 n (方程组中未知数的个数 ) ,则方程组只有零解.
(2) 如果系数矩阵的秩小于 n ,则方程组有无穷多解.
通过求系数矩阵 的秩来判断解的情况:
2. 非齐次线性方程组 AX=b
(3) 如果系数矩阵的秩小于增广矩阵的秩,则方程组无解.
(2) 如果系数矩阵的秩等于增广矩阵的秩小于 n ,则方程组有无穷多解.
(1) 如果系数矩阵的秩等于增广矩阵的秩等于 n ,则方程组有唯一解.
根据系数矩阵 A 的秩和增广矩阵 B=[A b] 的秩和未知数个数 n 的关系,判断方程组 AX=b 的解的情况:
练习 5.20 求解方程组
1 2 3
1 2 3
1 2 3
2 4 0
2 0
0
x x x
x x x
x x x
>>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
说明方程有无穷多解,并且解为 [ 2 3 ]Tk k k
解:
练习 5.21 求解方程组 ,AX b2 1 2
2 1 4
3 2 1
A
3
1
7
b
>> clear
>> A=[2 1 2 ; 2 1 4 ; 3 2 1] ;>> b=[3 1 7]’ ;>> X=A\b
解
X=
2
1
-1
练习 5.22 求解方程组1 2 3 4
1 2 3 4
1 2 3 4
1
1
2 2 1
x x x x
x x x x
x x x x
>>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
>> rref([A b])ans=
1 1 0 0 0
0 0 1 1 1
0 0 0 0 0
1 2 3 4, 1x x x x 2 4,x x( 为自由未知数 ) 由表示行最简形矩阵,得通解
再输入
1 2 0x x
3 4 1x x
习 题
习题 1 已知 求:2 1 3
2 0 1
3 1 2
A
3 0 1
4 2 1
1 2 0
B
2A B 2A B(1)
AB BA
(2)
(3)A I(4)
,A B的秩
2B I
1 2 3
1 2 3
1 2 3
6 3
2 2 7
3 2 5
x x x
x x x
x x x
解:
习题 2 求解方程组
AX b2 1 2
2 1 4
3 2 1
A
3
1
7
b
>> A=[-1 1 -6;2 -1 2;1 3 -2];
>> b=[3 7 5]';
>> C=rank(A)
>> rref([A b])
>> X=A\b
Matlab 编程:
X = 4.5000 -0.7500 -1.3750
运行结果:C = 3
ans = 1.0000 0 0 4.5000
0 1.0000 0 -0.7500 0 0 1.0000 -1.3750