第五章 矩阵与行列式

26
第第第 第第第第第第 §5.6 第 MATLAB 第第 第第第第第第

Upload: fisseha

Post on 05-Jan-2016

116 views

Category:

Documents


7 download

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 Presentation

TRANSCRIPT

Page 1: 第五章  矩阵与行列式

第五章 矩阵与行列式

§5.6 用 MATLAB 计算 矩阵与行列式

Page 2: 第五章  矩阵与行列式

用 MATLAB 计算矩阵与行列式行列式的求值

在 MATLAB 中我们只需借助函数 det 就可以求出行列式的值,其格式为

det (A)

其中 A 为 n 阶方阵.

Page 3: 第五章  矩阵与行列式

练习 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

Page 4: 第五章  矩阵与行列式

练习 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 也可以用于计算含有变量的行列式.

生成符号矩阵

声明变量

Page 5: 第五章  矩阵与行列式

矩阵的基本运算 矩阵的加、减

(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

Page 6: 第五章  矩阵与行列式

运行结果: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

Page 7: 第五章  矩阵与行列式

数与矩阵相乘

数与矩阵相乘,是数与矩阵中的每个元素相乘.

练习 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

Page 8: 第五章  矩阵与行列式

程序说明: 5*A 与 A*5 的值相同.

运行结果:B=

5 0 5

10 5 5

5 10 5

C=

5 0 5

10 5 5

5 10 5

Page 9: 第五章  矩阵与行列式

矩阵与矩阵相乘

两矩阵相乘时,第一个矩阵(左矩阵)的列数必须等于第二个矩阵(右矩阵)的行数.

练习 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

Page 10: 第五章  矩阵与行列式

运行结果: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 的结果完全不同.

Page 11: 第五章  矩阵与行列式

求矩阵的逆

如果矩阵 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)

Page 12: 第五章  矩阵与行列式

运行结果: C= -1 -2 1 2 4 -1 2 3 -1

程序说明:如果矩阵不可逆,则运行结果会给出警告信息.

Page 13: 第五章  矩阵与行列式

练习 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

Page 14: 第五章  矩阵与行列式

例题说明:由线性代数的知识可知,矩阵 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的逆矩阵

Page 15: 第五章  矩阵与行列式

矩阵相除

在 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的逆

Page 16: 第五章  矩阵与行列式

>> 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)

Page 17: 第五章  矩阵与行列式

矩阵的秩

练习 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的行向量或列向量线性无关.

Page 18: 第五章  矩阵与行列式

求解线性方程组

0AX

A

1.齐次线性方程组

(1) 如果系数矩阵的秩为 n (方程组中未知数的个数 ) ,则方程组只有零解.

(2) 如果系数矩阵的秩小于 n ,则方程组有无穷多解.

通过求系数矩阵 的秩来判断解的情况:

Page 19: 第五章  矩阵与行列式

2. 非齐次线性方程组 AX=b

(3) 如果系数矩阵的秩小于增广矩阵的秩,则方程组无解.

(2) 如果系数矩阵的秩等于增广矩阵的秩小于 n ,则方程组有无穷多解.

(1) 如果系数矩阵的秩等于增广矩阵的秩等于 n ,则方程组有唯一解.

根据系数矩阵 A 的秩和增广矩阵 B=[A b] 的秩和未知数个数 n 的关系,判断方程组 AX=b 的解的情况:

Page 20: 第五章  矩阵与行列式

练习 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

解:

Page 21: 第五章  矩阵与行列式

练习 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

Page 22: 第五章  矩阵与行列式

练习 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

Page 23: 第五章  矩阵与行列式

>> 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

Page 24: 第五章  矩阵与行列式

习 题

习题 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

Page 25: 第五章  矩阵与行列式

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 编程:

Page 26: 第五章  矩阵与行列式

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