资源描述:
《MATLAB应用(多项式插值)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、二多项式与插值多项式插值的主要目的是用一个多项式拟合离散点上的函数值,使得可以用该多项式估计数据点之间的函数值。可导出数值积分方法,有限差分近似关注插值多项式的表达式、精度、选点效果。2.1多项式MATLAB命令一个多项式的幂级数形式可表示为:也可表为嵌套形式或因子形式N阶多项式n个根,其中包含重根和复根。若多项式所有系数均为实数,则全部复根都将以共轭对的形式出现幂系数:在MATLAB里,多项式用行向量表示,其元素为多项式的系数,并从左至右按降幂排列。例:被表示为>>p=[2145]>>poly2sym(p)ans=2*x^3
2、+x^2+4*x+5Roots:多项式的零点可用命令roots求的。例:>>r=roots(p)得到r=0.2500+1.5612i0.2500-1.5612i-1.0000所有零点由一个列向量给出。Poly:由零点可得原始多项式的各系数,但可能相差一个常数倍。例:>>poly(r)ans=1.00000.50002.00002.5000注意:若存在重根,这种转换可能会降低精度。例:>>r=roots([1-615-2015-61])r=1.0042+0.0025i1.0042-0.0025i1.0000+0.0049i1.0
3、000-0.0049i0.9958+0.0024i0.9958-0.0024i舍入误差的影响,与计算精度有关。polyval:可用命令polyval计算多项式的值。例:计算y(2.5)>>c=[3,-7,2,1,1];xi=2.5;yi=polyval(c,xi)yi=23.8125如果xi是含有多个横坐标值的数组,则yi也为与xi长度相同的向量。>>c=[3,-7,2,1,1];xi=[2.5,3];>>yi=polyval(c,xi)yi=23.812576.0000polyfit:给定n+1个点将可以唯一确定一个n阶多项
4、式。利用命令polyfit可容易确定多项式的系数。例:>>x=[1.1,2.3,3.9,5.1];>>y=[3.887,4.276,4.651,2.117];>>a=polyfit(x,y,length(x)-1)a=-0.20151.4385-2.74775.4370>>poly2sym(a)ans=-403/2000*x^3+2877/2000*x^2-27477/10000*x+5437/1000多项式为Polyfit的第三个参数是多项式的阶数。多项式积分:功能:求多项式积分调用格式:py=poly_itg(p)p:被积
5、多项式的系数py:求积后多项式的系数poly_itg.mfunctionpy=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
6、_add(p1,p2)b:求和后的系数数组poly_add.mfunctionp3=poly_add(p1,p2)n1=length(p1);n2=length(p2);ifn1==n2p3=p1+p2;endifn1>n2p3=p1+[zeros(1,n1-n2),p2];endifn17、nv算出。例:[q,r]=deconv(a,b)例>>a=[2,-5,6,-1,9];b=[3,-90,-18];>>c=conv(a,b)c=6-195432-4539-792-162>>[q,r]=deconv(c,b)q=2-56-19r=0000000>>poly2sym(c)ans=6*x^6-195*x^5+432*x^4-453*x^3+9*x^2-792*x-1622.2Lagrange插值方法介绍对给定的n个插值点及对应的函数值,利用n次Lagrange插值多项式,则对插值区间内任意x的函数值y可通过下式求的
8、:MATLAB实现functiony=lagrange(x0,y0,x)ii=1:length(x0);y=zeros(size(x));fori=iiij=find(ii~=i);y1=1;forj=1:length(ij),y1=y1.*(x-x0(ij(j)));end