书籍:Matlab实用教程
工具:Matlab2021a
电脑信息:Intel® Xeon® CPU E5-2603 v3 @ 1.60GHz
系统类型:64位操作系统,基于X64的处理器 windows10 专业版
第2章 MATLAB数值计算
2.4 多项式
2.4.1 多项式的求值、求根和部分分式展开
1、多项式求值
p1=[1 21 20 0]
polyval(p1,2)
x=0:0.5:3
polyval(p1,x)
p1 =
1 21 20 0
ans = 132
x =
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
ans =
0 15.3750 42.0000 80.6250 132.0000 196.8750 276.0000
2、多项式求根
p1 =
1 21 20 0
ans = 132
x =
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
ans =
0 15.3750 42.0000 80.6250 132.0000 196.8750 276.0000
p1 =
1 21 20 0
ans = 132
r =
-20
-1
0
p =
1 21 20 0
p =
1 19 -20 0
3、特征多项式
s=[1 2;3 4]
p2=poly(s)
roots(p2)
eig(s)
s =
1 2
3 4
p2 =
1.0000 -5.0000 -2.0000
ans =
5.3723
-0.3723
ans =
-0.3723
5.3723
4、部分分式展开
p1=[1 21 20 0]
p3=[100 200]
[r,p,k]=residue(p3,p1)
p1 =
1 21 20 0
p3 =
100 200
r =
-4.7368
-5.2632
10.0000
p =
-20
-1
0
k = [](0x0)
2.4.2 多项式的乘除和微积分运算
1、多项式的乘法和除法
a1=[1 0]
a2=[1 1]
a3=[1 20]
p1=conv(a1,a2)
p2=conv(p1,a3)
[p3,r]=deconv(p2,a3)
conv(p3,a3)+r
a1 =
1 0
a2 =
1 1
a3 =
1 20
p1 =
1 1 0
p2 =
1 21 20 0
p3 =
1 1 0
r =
0 0 0 0
ans =
1 21 20 0
2、多项式的微分和积分
a1=[1 0]
a2=[1 1]
a3=[1 20]
p1=conv(a1,a2)
p4=polyder(p1)
s=length(p4):-1:1
p1=[p4./s,0]
a1 =
1 0
a2 =
1 1
a3 =
1 20
p1 =
1 1 0
p4 =
2 1
s =
2 1
p1 =
1 1 0
2.4.3 多项式拟合和插值
1、多项式拟合
x1=1:10
p=[2 -1 5 10]
y0=polyval(p,x1)
p1=polyfit(x1,y0,1)
p2=polyfit(x1,y0,2)
p3=polyfit(x1,y0,3)
x1 =
1 2 3 4 5 6 7 8 9 10
p =
2 -1 5 10
y0 =
16 32 70 142 260 436 682 1010 1432 1960
p1 =
204.80 -522.40
p2 =
32.000 -147.200 181.600
p3 =
2.0000 -1.0000 5.0000 10.0000
2、插值运算
3、一维插值
x1=1:10
p=[2 -1 5 10]
y0=polyval(p,x1)
y01=interp1(x1,y0,9.5)
y02=interp1(x1,y0,9.5,'spline')
y03=interp1(x1,y0,9.5,'cubic')
y04=interp1(x1,y0,9.5,'nearest')
x1 =
1 2 3 4 5 6 7 8 9 10
p =
2 -1 5 10
y0 =
16 32 70 142 260 436 682 1010 1432 1960
y01 = 1696
y02 = 1682
y03 = 1682.0
y04 = 1960
4、二维插值
zi=interp2(x,y,z,xi,yi,'method')