文档介绍:第二章多项式与插值
来源于实际、又广泛用于实际。
多项式插值的主要目的是用一个多项式拟合离散点上的函数值,使得可以用该多项式估计数据点之间的函数值。
可导出数值积分方法,有限差分近似
关注插值多项式的表达式、精度、选点效果。
关于多项式MATLAB命令
一个多项式的幂级数形式可表示为:
也可表为嵌套形式
或因子形式
N阶多项式n个根,其中包含重根和复根。若多项式所有系数均为实数,则全部复根都将以共轭对的形式出现
幂系数:在MATLAB里,多项式用行向量表示,其元素为多项式的系数,并从左至右按降幂排列。
例:
被表示为>> p=[2 1 4 5]
>> poly2sym(p)
ans =
2*x^3+x^2+4*x+5
Roots: 多项式的零点可用命令roots求的。
例: >> r=roots(p) 得到
r =
+
-
-
所有零点由一个列向量给出。
Poly: 由零点可得原始多项式的各系数,但可能相差一个常数倍。
例: >> poly(r)
ans =
注意:若存在重根,这种转换可能会降低精度。
例:
>> r=roots([1 -6 15 -20 15 -6 1])
r =
+
-
+
-
+
-
舍入误差的影响,与计算精度有关。
polyval: 可用命令polyval计算多项式的值。
例: 计算y()
>> c=[3,-7,2,1,1]; xi=; yi=polyval(c,xi)
yi =
如果xi是含有多个横坐标值的数组,则yi也为与xi长度相同的向量。
>> c=[3,-7,2,1,1]; xi=[,3];
>> yi=polyval(c,xi)
yi =
polyfit:给定n+1个点将可以唯一确定一个n阶多项式。利用命令polyfit可容易确定多项式的系数。
例:
>> x=[,,,];
>> y=[,,,];
>> a=polyfit(x,y,length(x)-1)
a =
- -
>> poly2sym(a)
ans =
-403/2000*x^3+2877/2000*x^2-27477/10000*x+5437/1000
多项式为
Polyfit的第三个参数是多项式的阶数。
多项式积分:
功能:求多项式积分
调用格式:py=poly_itg(p)
p:被积多项式的系数
py:求积后多项式的系数
function py=poly_itg(p)
n=length(p);
py=[p.*[n:-1:1].^(-1),0]
不包括最后一项积分常数
多项式微分:
Polyder: 求多项式一阶导数的系数。
调用格式为: b=polyder(c )
c为多项式y的系数,b是微分后的系数,
其值为:
两个多项式的和与差:
命令poly_add:求两个多项式的和,其调用格式为:
c= poly_add(a,b)
多项式a减去b,可表示为:
c= poly_add(a,-b)
功能:两个多项式相加
调用格式:b=poly_add(p1,p2)
b:求和后的系数数组
function p3=poly_add(p1,p2)
n1=length(p1);
n2=length(p2);
if n1==n2 p3=p1+p2;end
if n1>n2 p3=p1+[zeros(1,n1-n2),p2];end
if n1<n2 p3=[zeros(1,n2-n1),p1]+p2;end