第6章-多项式运算和数据插值

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

6.1多项式运算多项式的幂级数形式为6.1.1符号多项式的生成使用函数生成符号多项式的格式是:poly2sym(P,’x’)其中,多项式系数向量;x是自变量,可以省略。6.1.2求多项式的值和根1、求多项式值的函数调用格式是:polyval(P,b)其中,P是多项式系数向量;b是多项式变量x的值nnnnnaxaxaxaxay122110012nPaaaa,,,,例6-1计算多项式的值。在MATLAB中多项式是以向量的形式存储的,因此直接输入多项式的系数向量,系统会按照降幂自动将向量元素分配给多项式的各项系数,从而创建多项式。%计算多项式的值P=[302107];%多项式的系数向量y=poly2sym(P)%符号工具箱转换函数x=2.5;%自变量x取值yx=polyval(P,x)%多项式的值程序运行结果:y=3*x^5+2*x^3+x^2+7yx=337.46882、求多项式值根的函数调用格式是:roots(P)其中,多项式系数向量例6-2计算多项式的根。P=[302107];%多项式的系数向量X0=roots(P)%多项式的根M文件运行结果:x0=-1.1254-0.2821+1.2085i-0.2821-1.2085i0.8448+0.7954i0.8448-0.7954i012nPaaaa,,,,6.1.3多项式的乘法和除法运算1、多项式的乘法运算多项式乘法运算的函数调用格式是:conv(P1,P2)其中,输入参数(P1,P2)分别是参与运算的两个多项式系数向量。该函数运行后返回多项式积的系数向量。2、多项式的除法运算多项式除法运算的函数调用格式是:deconv(P1,P2)其中,输入参数(P1,P2)分别是参与运算的两个多项式的系数向量。该函数运行后返回多项式商的系数向量。例6-3计算以下两个多项式的积和商:%计算多项式的乘法和除法运算P1=[1-3212];%多项式1的系数向量y1=poly2sym(P1)P2=[302107];%多项式2的系数向量y2=poly2sym(P2)J=conv(P1,P2)%多项式的乘法运算yJ=poly2sym(J)S=deconv(J,P1)%多项式的除法运算43215322322327yxxxxyxxx运算结果:y1=x^4-3*x^3+2*x^2+x+2y2=3*x^5+2*x^3+x^2+7J=3-98-2711-1616714yJ=3*x^9-9*x^8+8*x^7-2*x^6+7*x^5+11*x^4-16*x^3+16*x^2+7*x+14S=302107可见,两个多项式的乘法运算后得到多项式J,再除以多项式P1后得到的多项式S,与多项式P2相同。6.1.4多项式的导数和积分1、多项式的导数计算多项式导数的函数调用格式是:ployder(P)其中,输入参数P是多项式的系数向量。该函数运行后返回多项式导数的系数向量。2、多项式的积分计算多项式积分的函数调用格式是:ployint(P)其中,输入参数P是多项式的系数向量。该函数运行后返回多项式积分的系数向量。例6-4计算如下多项式的导数和积分%计算多项式的导数和积分P=[1-3212];%多项式的系数向量y=poly2sym(P)DS=polyder(P)%多项式的导数JF=polyint(P)%多项式的积分运算结果:y=x^4-3*x^3+2*x^2+x+2DS=4-941JF=0.2000-0.75000.66670.50002.000006.2数据插值多项式插值是最常见的一种函数插值。在一般插值问题中,若选取函数Φ为n次多项式,由插值条件可以唯一确定一个n次插值多项式满足上述条件。从几何上看可以理解为:已知平面上n+1个不同点,要寻找一条n次多项式曲线通过这些点。插值多项式一般有两种常见的表达形式,一是拉格朗日插值多项式,另一是牛顿插值多项式。为了避免多项式高次插值可能出现的大幅度波动现象,在实际应用中通常采用分段低次插值来提高近似程度,三次样条插值作为一种全局化的分段插值方法,成为比较理想的工具。6.2.1一维数据插值1、一维数据插值函数对于给定的个插值节点及对应的函数值,一维数据插值函数调用格式是:y0=interp1(x,y,x0,’k’)它可以对插值区间内的任意插值点的函数值进行计算。其中,k是插值方法:⑴’linear’(默选值)是线性插值;⑵’nearest’是最近点等值插值;⑶’cubic’是3次多项式插值,它根据插已知数据点构造一个3次多项式,然后计算插值点函数值;⑷’spline’是3次样条插值,它在每个分段内构造一个3次多项式,使其插值函数除了满足插值条件外,还要求在各个节点处满足光滑连接条件。例6-5已知实验数据一维函数在区间[0,4]内间距为0.2的离散值。试根据生成的数据进行插值处理,比较它们的插值结果。%一维数据离散插值x=0:0.2:4;y=x.^5.*exp(-4*x).*cos(x);figure(1)plot(x,y,'k',x,y,'ro');xlabel('\bf\itx');ylabel('\bf\ity');title('\bfx^5e^{-4*x}cosx');x1=0:0.1:4;y1=interp1(x,y,x1,'linear');%线性插值y2=interp1(x,y,x1,'nearest');%最近点等值插值54cosxyxexy3=interp1(x,y,x1,'cubic');%3次多项式插值y4=interp1(x,y,x1,'spline');%3次样条插值figure(2)subplot(2,2,1);plot(x,y,'ro',x1,y1,'--')xlabel('\bf\itx');ylabel('\bf\ity');title('\bf线性插值');subplot(2,2,2);plot(x,y,'ro',x1,y2,'--')xlabel('\bf\itx');ylabel('\bf\ity');title('\bf最近点等值插值');subplot(2,2,3);plot(x,y,'ro',x1,y3,'--')xlabel('\bf\itx');ylabel('\bf\ity');title('\bf3次多项式插值');subplot(2,2,4);plot(x,y,'ro',x1,y4,'--')xlabel('\bf\itx');ylabel('\bf\ity');title('\bf3次样条插值');2、lagrange插值对于给定的个插值节点及对应的函数值,利用n次lagrange插值多项式为例6-6已知自然对数函数数表如表6-1所示,用lagrange插值计算的值,并且检验计算精度。表6-1自然对数函数数表xyx0.40000.50000.60000.70000.8000y-0.9163-0.6931-0.5108-0.3567-0.2231nkjkjnkjjkxxxxyxy11%Lagrange插值函数文件(Lagrange.m)functionyi=lagrange(x,y,xi)yi=zeros(size(xi));np=length(y);fori=1:npz=ones(size(xi));forj=1:npifi~=jz=z.*(xi-x(j))/(x(i)-x(j));endendyi=yi+z*y(i);end%调用Lagrange.m的M文件x=[0.4:0.1:0.8];y=log(x);x0=0.54;yi=lagrange(x,y,x0)%调用Lagrange插值计算ys=log(x0)%使用自然对数公式计算M文件运行结果:yi=-0.6161ys=-0.6161可见,采用lagrange插值可以获得足够的精度。6.2.2二维数据插值1、二维网格数据插值对于二维离散数据点所在的平面矩形区域内,离散数据点可以使用函数meshgid生成网格矩阵。进行二维网格数据插值的函数调用格式为:y0=interp2(x,y,z,x0,y0,’k’)其中,x和y是两个向量,分别描述两个参数的网格数据点;z是与网格数据点对应的函数值;x0和y0是需要插值的数据点;k是插值算法,与一维数据插值函数interp1的规定相同。例6-7给定二维函数离散得到的一些网格点。试使用3次样条插值,并且绘制网格点的三维图和插值拟合曲面图。2222xyxyzxxe%二维网格数据插值[x,y]=meshgrid(-3:0.6:3,-2:0.4:2);z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);subplot(1,2,1);surf(x,y,z);axis([-33-22-0.71.5]);xlabel('\bf\itx');ylabel('\bf\ity');zlabel('\bf\itx');title('\bf二维网格数据的三维图');[x0,y0]=meshgrid(-3:0.2:3,-2:0.2:2);z0=interp2(x,y,z,x0,y0,'spline');subplot(1,2,2);surf(x0,y0,z0);axis([-33-22-0.71.5]);xlabel('\bf\itx');ylabel('\bf\ity');zlabel('\bf\itx');title('\bf3次样条插值曲面图');2、二维分布数据插值二维分布的离散数据插值的函数调用格式为:y0=griddata(x,y,x0,y0,’v4’)其中,x0和y0是需要插值的数据点,可以使用函数meshgid生成;v4是很圆滑的插值算法。例6-8已知14个节点的二维离散数据点及其函数值。试在和的区域内,按照间距为3生成的插值点网格矩阵,使用3次多项式插值,并且绘制插值拟合曲面图。表6-2二维分布数据点及其函数值(具体数据见M文件所列)70~200x0~150yx=[129.0140.0103.588.0185.5195.0105.5157.5107.577.081.0162.0162.0117.5];y=[7.5141.523.0147.022.5137.585.560.5121.03.056.5116.584.043.5];subplot(1,2,1);plot(x,y,'o')xlabel('\bf\itx');ylabel('\bf\ity');title('\bf平面区域的分布数据');z=-[48686889988949];xi=70:3:200;yi=0:3:150;[X,Y]=meshgrid(xi,yi);H=griddata(x,y,z,X,Y,'cubic');subplot(1,2,2);mesh(X,Y,H);view(-60,30);xlabel('\bf\itx');ylabel('\bf\ity');zlabel('\bf\itx');

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功