资源描述:
《matlab在数值分析中的应用2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二章多项式与插值来源于实际、又广泛用于实际。多项式插值的主要目的是用一个多项式拟合离散点上的函数值,使得可以用该多项式估计数据点之间的函数值。可导出数值积分方法,有限差分近似关注插值多项式的表达式、精度、选点效果。2.1关于多项式MATLAB命令一个多项式的幂级数形式可表示为:也可表为嵌套形式或因子形式N阶多项式n个根,其中包含重根和复根。若多项式所有系数均为实数,则全部复根都将以共轭对的形式出现幂系数:在MATLAB里,多项式用行向量表示,其元素为多项式的系数,并从左至右按降幂排列。例:被表示为>>
2、p=[2145]>>poly2sym(p)ans=2*x^3+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.0
3、042+0.0025i1.0042-0.0025i1.0000+0.0049i1.0000-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=poly
4、val(c,xi)yi=23.812576.0000polyfit:给定n+1个点将可以唯一确定一个n阶多项式。利用命令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/1
5、000多项式为Polyfit的第三个参数是多项式的阶数。多项式积分:功能:求多项式积分调用格式:py=poly_itg(p)p:被积多项式的系数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:求两个
6、多项式的和,其调用格式为:c=poly_add(a,b)多项式a减去b,可表示为:c=poly_add(a,-b)功能:两个多项式相加调用格式:b=poly_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、dm阶多项式与n阶多项式的乘积是d=m+n阶的多项式:计算系数的MATLAB命令是:c=conv(a,b)多项式除多项式的除法满足:其中是商,是除法的余数。多项式和可由命令deconv算出。例:[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
8、*x^4-453*x^3+9*x^2-792*x-1622.2Lagrange插值方法介绍对给定的n个插值点及对应的函数值,利用n次Lagrange插值多项式,则对插值区间内任意x的函数值y可通过下式求的: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.