数据拟合
>> x0=0:0.1:1;
>> y0=[-0.447 1.978 3.11 5.25 5.02 4.66 4.01 4.58 3.45 5.35 9.22];
>> p=polyfit(x0,y0,3) %数据拟合为3次函数型
p =
56.6915 -87.1174 40.0070 -0.9043
>> xx=0:0.01:1;yy=polyval(p,xx); %计算函数的预计值
>> plot(xx,yy,'-b',x0,y0,'or') %绘制拟合曲线和离散数据点
多项式运算
多项式创建
>> p=[1 -5 -4 3 -2 1];
>> y=poly2sym(p)
y =x^5 - 5*x^4 - 4*x^3 + 3*x^2 - 2*x + 1
>> y=poly2str(p,'x')
y = x^5 - 5 x^4 - 4 x^3 + 3 x^2 - 2 x + 1
多项式求值
>> p1=polyval(p,6)
p1 =529
多项式求根
roots用于根据多项式系数的行向量求解多项式的根。
poly用于根据根矢量返回多项式系数的形式。
roots与poly互为逆操作
>> p=[1 2 3 4];%
>> y=poly2sym(p)
y =x^3 + 2*x^2 + 3*x + 4 %得到多项式
>> r=roots(p) %求多项式的根
r =
-1.6506 + 0.0000i
-0.1747 + 1.5469i
-0.1747 - 1.5469i
>> p2=poly(r)
p2 = 1.0000 2.0000 3.0000 4.0000 %由多项式的根得到原多项式
%-------------------------------------------------------------------
>> p=[1 2 1];
>> y=poly2sym(p)
y =x^2 + 2*x + 1
>> r=roots(p)
r =
-1
-1
>> r=[0 2];
>> p2=poly(r)
p2 = 1 -2 0
tips:知道多项式的根 x1,x2,x3⋅⋅⋅⋅⋅⋅xn .那么多项式就是 y=(x−x1)∗(x−x2)∗(x−x3)⋅⋅⋅⋅⋅⋅(x−xn) 展开即可
多项式乘法运算
conv(a,b) a,b为两个多项式的系数向量
c(x)=a(x)∗b(x)=(x2+2x+3)∗(4x2+5x+6)
>> a=[1 2 3];b=[4 5 6];
>> c=conv(a,b)
c = 4 13 28 27 18
>> poly2str(c,'x')
ans = 4 x^4 + 13 x^3 + 28 x^2 + 27 x + 18
多项式除法运算
deconv(a,b) 参数a,b表示为两个多项式系数的行向量,表示多项式a除以多项式b
>> a=[1 2 3];c=[4 13 28 27 18];
>> [d,r]=deconv(c,a)
d = 4 5 6 %返回商多项式
r = 0 0 0 0 0 %返回余多项式
多项式的微积分
polyder(p):求p的微分
polyint(p):求p的不定积分,常数项为0
>> a=[1 2 3 4 5];poly2str(a,'x')
ans = x^4 + 2 x^3 + 3 x^2 + 4 x + 5
>> b=polyder(a) %微分
b = 4 6 6 4
>> poly2str(b,'x')
ans = 4 x^3 + 6 x^2 + 6 x + 4
>> c=polyint(a) %不