当前位置:文档之家› 用MATLAB计算矩阵与行列式

用MATLAB计算矩阵与行列式


>>b=[1 1 –1]’;
>>C=[rank(A) rank([A b])]
C= 22
表示秩(a)=2,秩([a b])=2 小于未知数的个数4
再输入
>> rref([A b]) ans=
1 1 0
001
000
00 1 1
00
x1 x2 0 x3 x4 1
由表示行最简形矩阵,得通解
A=[1,0,2,1;-1,2,2,3;2,3,3,1;0,1,2,1]
a 1 00
练习5.15 计算行列式 1 b 1 0
0 1 c 1
程序设计:
0 0 1 d
>> clear
声明变量
>> syms a b c d
>> A=[a 1 0 0;-1 b 1 0;0 –1 c 1;0 0 –1 d];
>> A=[-1 1 -6;2 -1 2;1 3 -2];
>> b=[3 7 5]';
>> C=rank(A)
>> rref([A b])
>> X=A\b
运行结果:
C= 3
ans = 1.0000 0 0
0 1.0000
0
0 0 1.0000
X= 4.5000 -0.7500 -1.3750
4.5000 -0.7500 -1.3750
(3) 如果系数矩阵的秩小于增广矩阵的秩,则方程组 无解.
x1 2x2 4x3 0
练习5.20
求解方程组

2 x1
x2
x3 0
解: >>clear

x1 x2 x3 0
>>A=[-1 –2 4;2 1 1;1 1 –1];
>>rank(A)
ans=
第五章 矩阵与行列式
§5.6 用MATLAB计算 矩阵与行列式
用MATLAB计算矩阵与行列式
行列式的求值 在MATLAB中我们只需借助函数det就可 以求出行列式的值,其格式为
det (A)
其中A为n阶方阵.
1 0 2 1
练习5.14 求矩阵 A 1 2 2 3 的行列式的值.
-1 -2 1 2 4 -1 2 3 -1
取矩阵C的4到6列, D即为矩阵A的逆矩阵
例题说明: 由线性代数的知识可知,矩阵A和其同型的单 位矩阵E组成增广矩阵B,对B进行初等行变换, 当矩阵A变为单位阵时,单位矩阵E变为矩阵A的 逆.
矩阵相除
在MATLAB中,矩阵相除可以利用运算符“\”(左除) 和“/”(右除),而在线性代数中并没有定义矩阵 的除法.
1 2 3
3 2 4
练习5.18

A


2
1
2 与 B 2
5
3 的乘积.
3 3 1
2 3 1
程序设计:
>> 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=
>> b=[3 1 7]’;
>> X=A\b
X= 2 1 -1
x1 x2 x3 x4 1
练习5.22 求解方程组 x1 x2 x3 x4 1
解 >>clear
2x1 2x2 x3 x4 1
>>A=[1 –1 1 –1;-1 1 1 –1;2 –2 –1 1];
BA
(4) A I B 2I
x1 x2 6 x3 3
习题2 求解方程组 2 x1 x2 2 x3 7

x1

3 x2

2 x3

5
2 1 2
解:AX b
A


2
1
4
3 2 1
Matlab编程:
3 b 1
7
(2) 如果系数矩阵的秩小于n,则方程组有无穷多解.
2.非齐次线性方程组AX=b
根据系数矩阵A的秩和增广矩阵B=[A b]的秩和未知数 个数n的关系,判断方程组AX=b的解的情况:
(1) 如果系数矩阵的秩等于增广矩阵的秩等于n,则 方程组有唯一解.
(2) 如果系数矩阵的秩等于增广矩阵的秩小于n,则 方程组有无穷多解.
说明:
1.矩阵的左除和右除概念完全不同,要注意区分. 2.可以利用矩阵的左除求解线性方程组AX=b,其
中 3.X=可A以\b利.用矩阵的右除求解线性方程组XA=b,其

矩阵的秩
2 1 1 2
练习5.19 求矩阵 A 1 2 2 1 的秩.
1 2 1 2 2 2 1 1
C=
0.3333 0.6000 -0.2000
-0.6667 -0.4000 0.8000
1.0000 0.40000 0.2000
>> D=A/B
矩阵右除,相当于A*inv (B)
D=
1.3333 1.3333 -1.0000
0 -0.5000 1.5000
1.6667 0.1667 -0.50000
解: >>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的行向量 或列向量线性无关.
求解线性方程组
1.齐次线性方程组 AX 0
通过求系数矩阵 A 的秩来判断解的情况: (1) 如果系数矩阵的秩为n(方程组中未知数的个数), 则方程组只有零解.
程序设计:
1 2 1
>> clear
>> A=[1 0 1;2 1 1;1 2 1];
>> B=5*A
>> C=A*5
运行结果: B=
505 10 5 5 5 10 5
C= 505 10 5 5 5 10 5
程序说明:5*A与A*5的值相同.
矩阵与矩阵相乘
两矩阵相乘时,第一个矩阵(左矩阵)的列数必须 等于第二个矩阵(右矩阵)的行数.
>> DA=det (A) 运行结果:
生成符号矩阵
DA= a *b *c *d a *b a *d c *d 1
程序说明:函数det也可以用于计算含有变量的行列 式.
矩阵的基本运算
矩阵的加、减
(1) 维数相同,即行数和列数都分别相等. (2) 矩阵相应位置的元素相加、减.
1 2 3
1 2 3
2 1 2
练习5.19 求矩阵 A 4 2 1 和 B 1 2 1 相除.
程序设计:
2 1 3
3 2 1
>> 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的逆
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的结果完全不同.
求矩阵的逆
如果矩阵A是方阵且是非奇异的(可逆),可以用 函数inv (A)求得A的逆矩阵.
1 1 2
练习5.19 求矩阵 A 0 1 1 的逆矩阵.
>> C,D
运行结果: C=
4 47 4 65 5 62
D= -2 0 -1 0 -4 -1 100
例题分析:
1.进行加、减运算的矩阵必须是同型的. 2.在进行矩阵相加的运算时,A+B和B+A的值相 同,满足加法交换律.
数与矩阵相乘
数与矩阵相乘,是数与矩阵中的每个元素相乘.
1 0 1
练习5.17 求矩阵 A 2 1 1 与5的乘积
x1 x2, x3 x4 1 ( x2 , x4 为自由未知数)
习题
2 1 3
3 0 1
习题1 已知 A 2 0 1 B 4 2
1

求:
3 1 2
1 2 0
(1) A, B 的秩
(2) 2A B A 2B
(3) AB
2
>>rref(A)
ans =
10 2
0 1 –3
00 0
说明方程有无穷多解,并且解为 [2k 3k k]T
2 1 2
3
练习5.21 求解方程组 AX b , A 2 1 4 b 1
解 >> clear
3 2 1
7
>> A=[2 1 2;2 1 4;3 2 1];
程序设计:
2 1 0
>> 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
3 2 4
练习5.14 求矩阵 A 2
1
2
相关主题