第2章MATLAB的数值运算

Download Report

Transcript 第2章MATLAB的数值运算

精讲多练MATLAB
(第二版)
罗建军
杨琦
西安交通大学出版社
1
第二章
MATLAB的数值运算
教学目标

介绍MATLAB的两种基本的数值运算:矩阵和
多项式。
3
授课内容
 2.1
矩阵
 2.2
多项式
4
2.1 矩阵
MATLAB = matrix(矩阵)+ laboratory(实验室)
5
2.1.1矩阵的构造

输入矩阵最简方式是直接输入矩阵的元素:
1)用中括号[ ]把所有矩阵元素括起来;
2)同一行的不同数据元素之间用空格或逗号间隔;
3)用分号(;)指定一行结束;
4)也可以分成几行进行输入,用回车符代替分号;
5)数据元素可以是表达式,系统将自动计算结果。
6
2.1.2 矩阵元素

可采用下标来表示矩阵元素,也可以用下标对矩阵元素进行修改。
>>A(1,1)
ans =
1
>>A(2,3)
ans =
7
>>A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0);
则矩阵变为:
A=
0 2 3 4
5 7 7 8
9 10 11 12
13 14 15 1
7
2.1.3 矩阵运算

1. 矩阵的加减运算:+(加)、-(减)

2. 矩阵乘法:*(乘)

3. 矩阵除法:/ (右除)、\ (左除)

4. 矩阵的乘方:^(乘方)

5. 矩阵转置: ' (转置运算符)

6. 求逆矩阵

7. 求特征值

8. 求特征多项式

9. 求方阵的行列式

10. 求解线形方程组
8
1. 矩阵的加减运算
>> C=A+B
C=
2 7 12 17
7 12 17 22
12 17 22 27
17 22 27 32
>> D=A-B
D=
0 -3 -6 -9
3 0 -3 -6
6 3 0 -3
9 6 3 0
>> E=A+3
E=
4 5 6 7
8 9 10 11
12 13 14 15
16 17 18 19
9
2. 矩阵乘法
>> C=A*B
C=
30 70 110 150
70 174 278 382
110 278 446 614
150 382 614 846
>> D=A*3
D=
3 6 9 12
15 18 21 24
27 30 33 36
39 42 45 48
10
3. 矩阵除法
>>A\B
ans =
0 -1.1250 -6.7500 -3.5000
0 -0.5000 4.2500 -1.2500
0 0.3750 3.7500 1.0000
0.2500 1.5000 -1.0000 4.0000
>>A/B
ans =
0
0
0 0.2500
-1.1250 -0.5000 0.3750 1.5000
-6.7500 4.2500 3.7500 -1.0000
-3.5000 -1.2500 1.0000 4.0000
11
4. 矩阵的乘方
>> A=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16];
>> A^1
ans =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
>> A^2
ans =
90 100 110 120
202 228 254 280
314 356 398 440
426 484 542 600
>> A^3
ans =
3140
3560
3980
4400
7268
8232
9196
10160
11396
12904
14412
15920
15524
17576
19628
21680
12
5. 矩阵转置
>>A'
ans =
1
2
3
4
5
6
7
8
9 13
10 14
11 15
12 16
13
6.求逆矩阵
>>G=[1 2 0;2 5 -1; 4 10 -1];
>>X=inv(G)
X=
5 2 -2
-2 -1 1
0 -2 1
>>I=inv(G)*G
I=
1 0 0
0 1 0
0 0 1
14
7. 求特征值
>>eig(G)
ans =
3.7321
0.2679
1.0000
15
8. 求特征多项式
>>poly(G)
ans =
1.0000 -5.0000 5.0000 -1.0000
>>round(poly(G))
ans =
1 -5 5 -1
16
9. 求方阵的行列式
>>det(G)
ans =
1
17
10.求解线形方程组
18
2.1.4 向量
利用 “:”生成向量
>>x=1:5
%初值=1,终值=5,默认步长=1
x=
1 2 3 4 5
>>y=1:2:9
%初值=1,终值=9,步长=2
y=
1 3 5 7 9
>>z=9:-2:1
%初值=9,终值=1,步长=-2
z=
9 7 5 3 1

19
2.2 多项式
多项式是形如
P(x) = a0xn+a1xn-1+…+an-1x+an的式子。
在MATLAB中,多项式用行向量表示:
P=[ a0 a1 … an-1 an]
20
2.2.1多项式行向量的构造

例:已知向量A=[1 –34 –80 0 0],用此向量构造一多项
式并显示结果。
(x-1)(x+34)(x+80)(x-0)(x-0)
>>PA=poly(A)
>>PAX=poly2str(PA,'X')
X^5 + 113 X^4 + 2606 X^3 - 2720 X^2
21
2.2.2 多项式的运算
函 数
功能
roots
求多项式的根
poly
用根构造多项式
polyval
计算多项式的值
polyvalm
计算参数为矩阵的多项式的值
residue
部分分式展开
polyfit
多项式数据拟合
polyder
微分
conv
乘法
deconv
除法
22
自学内容
函 数




2.3 其他构造矩阵的方法
2.4 矩阵函数
2.5 稀疏矩阵
2.6 数组
功 能
Det
计算矩阵所对应的行列式的值
Inv
求矩阵的逆阵
Rank
求矩阵的秩
Eig
求特征值和特征向量
Orth
正交化
Poly
求特征多项式
Lu
由高斯消元法所得的系数矩阵
Qr
正交三角矩阵分解
函 数
功 能
eye
产生单位矩阵
zeros
产生全部元素为0的矩阵
ones
产生全部元素为1的矩阵
[]
产生空矩阵
rand
产生随机元素的矩阵
linspace
产生线性等分的矩阵
compan
产生伴随矩阵
hadamarb
产生Hadamarb矩阵
23
调试技术

2.7 MATLAB的工作空间

2.8 数据的读写
24
应用举例
25
应用举例
26
应用举例
例2-21 将表达式(x-4)(x+5)(x2-6x+9)展开为多项式形式,并求其对应的
一元n次方程的根。
>>p=conv([1 -4],conv([1 5],[1 -6 9]))
p=
1 -5 -17 129 -180
>>px=poly2str(p,’x’)
px =
x^4 - 5 x^3 - 17 x^2 + 129 x - 180
>>x=roots(p)
x=
-5.0000
4.0000
3.0000
3.0000
27
应用举例
例2-22 已知一元四次方程所对应四个的根为
-5.0000
4.0000
3.0000
3.0000
求这个方程所对应的表达式原型。
>>x=[-5, 4, 3, 3];
>>p=poly(x);
>>px=poly2str(p,’x’)
px =
x^4 - 5 x^3 - 17 x^2 + 129 x - 180
28
再见
谢谢使用,敬请批评指正!
29