《第6章 多项式运算和数据插值精选PPT.ppt》由会员分享,可在线阅读,更多相关《第6章 多项式运算和数据插值精选PPT.ppt(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第6章 多项式运算和数据插值第1页,本讲稿共24页6.1 6.1 多项式运算多项式运算n多项式的幂级数形式为n6.1.1 6.1.1 符号多项式的生成符号多项式的生成n使用函数生成符号多项式的格式是:n poly2sym(P,x)n其中,多项式系数向量 ;n x是自变量,可以省略。n6.1.2 6.1.2 求多项式的值和根求多项式的值和根n1、求多项式值的函数调用格式是:n polyval(P,b)n其中,P是多项式系数向量;b是多项式变量x的值第2页,本讲稿共24页n例例6-1 6-1 计算多项式的值。n在MATLAB中多项式是以向量的形式存储的,因此直接输入多项式的系数向量,系统会按照降幂
2、自动将向量元素分配给多项式的各项系数,从而创建多项式。n%计算多项式的值nP=3 0 2 1 0 7;%多项式的系数向量ny=poly2sym(P)%符号工具箱转换函数nx=2.5;%自变量x取值nyx=polyval(P,x)%多项式的值n程序运行结果:ny=3*x5+2*x3+x2+7nyx=337.4688第3页,本讲稿共24页n2、求多项式值根的函数调用格式是:n roots(P)n其中,多项式系数向量 n例例6-2 6-2 计算多项式的根。nP=3 0 2 1 0 7;%多项式的系数向量nX0=roots(P)%多项式的根nM文件运行结果:nx0=-1.1254 n -0.2821+
3、1.2085in -0.2821-1.2085in 0.8448+0.7954in 0.8448-0.7954i第4页,本讲稿共24页n6.1.3 6.1.3 多项式的乘法和除法运算多项式的乘法和除法运算n1、多项式的乘法运算n多项式乘法运算的函数调用格式是:n conv(P1,P2)n其中,输入参数(P1,P2)分别是参与运算的两个多项式系数向量。n该函数运行后返回多项式积的系数向量。n2、多项式的除法运算n多项式除法运算的函数调用格式是:ndeconv(P1,P2)n其中,输入参数(P1,P2)分别是参与运算的两个多项式的系数向量。n该函数运行后返回多项式商的系数向量。第5页,本讲稿共24
4、页n例例6-3 6-3 计算以下两个多项式的积和商:n%计算多项式的乘法和除法运算nP1=1-3 2 1 2;%多项式1的系数向量ny1=poly2sym(P1)nP2=3 0 2 1 0 7;%多项式2的系数向量ny2=poly2sym(P2)nJ=conv(P1,P2)%多项式的乘法运算nyJ=poly2sym(J)nS=deconv(J,P1)%多项式的除法运算第6页,本讲稿共24页n运算结果:ny1=x4-3*x3+2*x2+x+2ny2=3*x5+2*x3+x2+7nJ=3 -9 8 -2 7 11 -16 16 7 14nyJ=3*x9-9*x8+8*x7-2*x6+7*x5 +1
5、1*x4-16*x3+16*x2+7*x+14nS=3 0 2 1 0 7n可见,两个多项式的乘法运算后得到多项式J,再除以多项式P1后得到的多项式S,与多项式P2相同。第7页,本讲稿共24页n6.1.4 6.1.4 多项式的导数和积分多项式的导数和积分n1、多项式的导数n计算多项式导数的函数调用格式是:n ployder(P)n其中,输入参数P是多项式的系数向量。n该函数运行后返回多项式导数的系数向量。n2、多项式的积分n计算多项式积分的函数调用格式是:n ployint(P)n其中,输入参数P是多项式的系数向量。n该函数运行后返回多项式积分的系数向量。第8页,本讲稿共24页n例例6-4 6
6、-4 计算如下多项式的导数和积分n%计算多项式的导数和积分nP=1-3 2 1 2;%多项式的系数向量ny=poly2sym(P)nDS=polyder(P)%多项式的导数nJF=polyint(P)%多项式的积分n运算结果:ny=nx4-3*x3+2*x2+x+2nDS=n 4 -9 4 1nJF=n 0.2000 -0.7500 0.6667 0.5000 2.0000 0第9页,本讲稿共24页6.2 6.2 数据插值数据插值n多项式插值是最常见的一种函数插值。在一般插值问题中,若选取函数为n次多项式,由插值条件可以唯一确定一个n次插值多项式满足上述条件。从几何上看可以理解为:已知平面上n
7、1个不同点,要寻找一条n次多项式曲线通过这些点。插值多项式一般有两种常见的表达形式,一是拉格朗日插值多项式,另一是牛顿插值多项式。n为了避免多项式高次插值可能出现的大幅度波动现象,在实际应用中通常采用分段低次插值来提高近似程度,三次样条插值作为一种全局化的分段插值方法,成为比较理想的工具。第10页,本讲稿共24页n6.2.1 6.2.1 一维数据插值一维数据插值n1、一维数据插值函数n对于给定的个插值节点及对应的函数值,一维数据插值函数调用格式是:n y0=interp1(x,y,x0,k)n它可以对插值区间内的任意插值点的函数值进行计算。其中,k是插值方法:nlinear(默选值)是线性插值
8、;nnearest是最近点等值插值;ncubic是3次多项式插值,它根据插已知数据点构造一个3次多项式,然后计算插值点函数值;nspline是3次样条插值,它在每个分段内构造一个3次多项式,使其插值函数除了满足插值条件外,还要求在各个节点处满足光滑连接条件。第11页,本讲稿共24页n例例6-5 6-5 已知实验数据一维函数 在区间0,4内间距为0.2的离散值。试根据生成的数据进行插值处理,比较它们的插值结果。n%一维数据离散插值nx=0:0.2:4;ny=x.5.*exp(-4*x).*cos(x);nfigure(1)nplot(x,y,k,x,y,ro);nxlabel(bfit x);y
9、label(bfit y);ntitle(bf x5e-4*xcosx);nx1=0:0.1:4;ny1=interp1(x,y,x1,linear);%线性插值ny2=interp1(x,y,x1,nearest);%最近点等值插值第12页,本讲稿共24页ny3=interp1(x,y,x1,cubic);%3次多项式插值ny4=interp1(x,y,x1,spline);%3次样条插值nfigure(2)nsubplot(2,2,1);plot(x,y,ro,x1,y1,-)nxlabel(bfit x);ylabel(bfit y);title(bf 线性插值);nsubplot(2,
10、2,2);plot(x,y,ro,x1,y2,-)nxlabel(bfit x);ylabel(bfit y);title(bf 最近点等值插值);nsubplot(2,2,3);plot(x,y,ro,x1,y3,-)nxlabel(bfit x);ylabel(bfit y);title(bf 3次多项式插值);nsubplot(2,2,4);plot(x,y,ro,x1,y4,-)nxlabel(bfit x);ylabel(bfit y);title(bf 3次样条插值);第13页,本讲稿共24页第14页,本讲稿共24页第15页,本讲稿共24页n2、lagrange插值n对于给定的个插
11、值节点及对应的函数值,利用n次lagrange插值多项式为n例例6-66-6 已知自然对数函数数表如表6-1所示,用lagrange插值计算的值,并且检验计算精度。表表6-1 6-1 自然对数函数数表自然对数函数数表x0.40000.50000.60000.70000.8000y-0.9163-0.6931-0.5108-0.3567-0.2231第16页,本讲稿共24页n%Lagrange插值函数文件(Lagrange.m)nfunction yi=lagrange(x,y,xi)nyi=zeros(size(xi);nnp=length(y);nfor i=1:npn z=ones(siz
12、e(xi);n for j=1:npn if i=jn z=z.*(xi-x(j)/(x(i)-x(j);n endn endn yi=yi+z*y(i);nend第17页,本讲稿共24页n%调用Lagrange.m的M文件nx=0.4:0.1:0.8;y=log(x);nx0=0.54;nyi=lagrange(x,y,x0)%调用Lagrange插值计算nys=log(x0)%使用自然对数公式计算nM文件运行结果:nyi=n -0.6161nys=n -0.6161n可见,采用lagrange插值可以获得足够的精度。第18页,本讲稿共24页n6.2.2 6.2.2 二维数据插值二维数据插值
13、n1 1、二维网格数据插值、二维网格数据插值n对于二维离散数据点所在的平面矩形区域内,离散数据点可以使用函数meshgid生成网格矩阵。进行二维网格数据插值的函数调用格式为:n y0=interp2(x,y,z,x0,y0,k)n其中,x和y是两个向量,分别描述两个参数的网格数据点;z是与网格数据点对应的函数值;x0和y0是需要插值的数据点;k是插值算法,与一维数据插值函数interp1的规定相同。n例例6-7 6-7 给定二维函数 离散得到的一些网格点。试使用3次样条插值,并且绘制网格点的三维图和插值拟合曲面图。第19页,本讲稿共24页n%二维网格数据插值nx,y=meshgrid(-3:0
14、.6:3,-2:0.4:2);nz=(x.2-2*x).*exp(-x.2-y.2-x.*y);nsubplot(1,2,1);surf(x,y,z);naxis(-3 3-2 2-0.7 1.5);nxlabel(bfit x);ylabel(bfit y);zlabel(bfit x);ntitle(bf 二维网格数据的三维图);nx0,y0=meshgrid(-3:0.2:3,-2:0.2:2);nz0=interp2(x,y,z,x0,y0,spline);nsubplot(1,2,2);surf(x0,y0,z0);naxis(-3 3-2 2-0.7 1.5);nxlabel(bf
15、it x);ylabel(bfit y);zlabel(bfit x);ntitle(bf 3次样条插值曲面图);第20页,本讲稿共24页第21页,本讲稿共24页n2 2、二维分布数据插值、二维分布数据插值n二维分布的离散数据插值的函数调用格式为:n y0=griddata(x,y,x0,y0,v4)n其中,x0和y0是需要插值的数据点,可以使用函数meshgid生成;v4是很圆滑的插值算法。n例例6-86-8 已知14个节点的二维离散数据点及其函数值。试在 和 的区域内,按照间距为3生成的插值点网格矩阵,使用3次多项式插值,并且绘制插值拟合曲面图。表6-2 二维分布数据点及其函数值(具体数据
16、见M文件所列)第22页,本讲稿共24页nx=129.0 140.0 103.5 88.0 185.5 195.0 105.5 157.5 107.5 77.0 81.0 162.0 162.0 117.5;ny=7.5 141.5 23.0 147.0 22.5 137.5 85.5 60.5 121.0 3.0 56.5 116.5 84.0 43.5;nsubplot(1,2,1);plot(x,y,o)nxlabel(bfit x);ylabel(bfit y);title(bf 平面区域的分布数据);nz=-4 8 6 8 6 8 8 9 9 8 8 9 4 9;nxi=70:3:200;yi=0:3:150;X,Y=meshgrid(xi,yi);nH=griddata(x,y,z,X,Y,cubic);nsubplot(1,2,2);mesh(X,Y,H);view(-60,30);nxlabel(bfit x);ylabel(bfit y);zlabel(bfit x);第23页,本讲稿共24页第24页,本讲稿共24页