第四章多项式与插值课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第四章多项式与插值课件.ppt》由会员分享,可在线阅读,更多相关《第四章多项式与插值课件.ppt(66页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 第四章第四章 多项式与插值多项式与插值4.1 4.1 MATLABMATLAB多项式多项式一、一、多项式的建立多项式的建立1.MATLAB中多项式用行向量表示,其元素为中多项式用行向量表示,其元素为 多项式的系数,且从左至右按降幂排列;多项式的系数,且从左至右按降幂排列;2.已知一个多项式的全部根已知一个多项式的全部根 X求多项式系数的函求多项式系数的函 数是数是poly(X),该函数返回以该函数返回以 X为全部根的一个为全部根的一个 多项式多项式 P(首项系数为首项系数为1),当),当 X是一个长度为是一个长度为 m的向量时,的向量时,P是一个长度为是一个长度为 m+1的向量。的向量。3.
2、给定给定 n+1个点可以唯一确定一个个点可以唯一确定一个 n 阶多项式,利阶多项式,利 用用polyfit可以确定多项式的系数。可以确定多项式的系数。调用格式为:调用格式为:p=polyfit(x,y,n)其中其中 x,y是同维向量,代表数据点的横、纵坐标,是同维向量,代表数据点的横、纵坐标,n 是多项式的阶数。是多项式的阶数。二、二、多项式计算多项式计算1.多项式求根多项式求根 求多项式求多项式 p(x)的根的函数是的根的函数是roots(P),这里,这里,P是是 p(x)的系数向量,该函数返回方程的系数向量,该函数返回方程 p(x)=0 的全部根的全部根(含重根,复根含重根,复根)。2.多
3、项式求值多项式求值 求多项式求多项式 p(x)在某点或某些点的函数值的函数是在某点或某些点的函数值的函数是polyval(P,x)。若若x为一数值,则求多项式在该点的为一数值,则求多项式在该点的值;若值;若x为向量或矩阵,则对向量或矩阵中的每个元为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。素求其多项式的值。例1 已知一个多项式 (1)计算f(x)=0 的全部根。(2)由方程f(x)=0的根构造一个多项式 g(x),并与 f(x)进行对比。(3)计算f(5)、f(7.8)、f(9.6)、f(12.3)的值。P=3,0,4,-5,-7.2,5;X=roots(P)%求方程f(x)=0的
4、根 G=poly(X)%求多项式g(x)X0=5,7.8,9.6,12.3;f=polyval(P,X0)%求多项式f(x)在给定点的值3.多项式的四则运算多项式的四则运算(1)多项式的加减法多项式的加减法注注:多项式求值还有一个函数是:多项式求值还有一个函数是polyvalm,其调用其调用格式与格式与polyval相同,但含义不同。相同,但含义不同。polyvalm函数要函数要求求x为方阵,它以方阵为自变量求多项式的值为方阵,它以方阵为自变量求多项式的值。function p3=poly_add(p1,p2)n1=length(p1);n2=length(p2);if n1=n2 p3=p1
5、+p2;endif n1n2,p3=p1+zeros(1,n1-n2),p2;endif n1n2,p3=zeros(1,n2-n1),p1+p2;end加法:加法:c=poly_add(a,b)减法减法:c=poly_add(a,-b)(2)多项式的乘法多项式的乘法 函数函数conv(P1,P2)用于求多项式用于求多项式P1和和P2的乘积。的乘积。(3)多项式的除法多项式的除法 函数函数Q,r=deconv(P1,P2)用于对多项式用于对多项式P1和和P2作除法运算。其中作除法运算。其中Q返回多项式返回多项式P1除以除以P2的商式,的商式,r返回返回P1除以除以P2的余式。这里,的余式。这里
6、,Q和和r仍是多项式系仍是多项式系数向量。数向量。deconv是是conv的逆函数,即有的逆函数,即有P1=conv(P2,Q)+r。例2 设有两个多项式,计算:(1)求f(x)+g(x)、f(x)-g(x)。(2)求f(x)g(x)、f(x)/g(x)。f=3,-5,2,-7,5,6;g=3,5,-3;poly_add(f,g)%求f(x)+g(x)poly_add(f,-g)%求f(x)-g(x)conv(f,g)%求f(x)*g(x)Q,r=deconv(f,g)%求f(x)/g(x),商式送Q,余式送r。4.多项式的微分与积分多项式的微分与积分(1)对多项式求导数的函数是:)对多项式求
7、导数的函数是:p=polyder(P)求多项式求多项式P的导函数的导函数 p=polyder(P,Q)求求P*Q的导函数的导函数 p,q=polyder(P,Q)求求P/Q的导函数,导函数的的导函数,导函数的 分子存入分子存入p,分母存入分母存入q。(2)对多项式的积分函数:对多项式的积分函数:d=poly_itg(c)d是多项式是多项式c积分后的系数,但积分后的系数,但 不包括积分常数不包括积分常数function py=poly_itg(p)n=length(p);py=p.*n:-1:1.(-1),0;例例3 求有理分式的导数。求有理分式的导数。P=3,5,0,-8,1,-5;Q=10,
8、5,0,0,6,0,0,7,-1,0,-100;p,q=polyder(P,Q)若求若求多项式多项式P的积分:的积分:c=poly_itg(P)4.2 4.2 MATLABMATLAB插值插值通常取 为多项式函数代数插值(多项式插值)注:一次多项式插值-过两点直线;二次多项式插值-过三点抛物线;不用待定系数法-(1)计算量大;(2)不易讨论误差;几何意义几何意义:两条曲线有交点(公共点):两条曲线有交点(公共点)一、线性插值一、线性插值线性插值是两个数据点的直线拟合线性插值是两个数据点的直线拟合或或误差估计:误差估计:在在MATLAB中,命令中,命令 interp1可做线性插值,可做线性插值,
9、调用格式为:调用格式为:yiinterp1(x,y,xi)其中其中 x 表示数据点横坐标的列数组,表示数据点横坐标的列数组,y 表示数据表示数据纵坐标的列数组(可以有多列)。纵坐标的列数组(可以有多列)。另外,另外,interp1命令有三种可选参数命令有三种可选参数yi=interp1(x,y,xi,linear)线性插值(缺省)线性插值(缺省)yi=interp1(x,y,xi,spline)三次样条三次样条yi=interp1(x,y,xi,cubic)三次插值三次插值例例3 已知数据表如下,分别求已知数据表如下,分别求 y0.9,0.7,0.6,0.5 处处 x 的值。的值。xy00.9
10、1260.250.81090.500.69310.750.55961.000.4055x=0.0,0.25,0.5,0.75,1.0;y=0.9126,0.8109,0.6931,0.5596,0.4055;yi=0.9,0.7,0.6,0.5xi=interp1(y,x,yi,linear);yi,xians 0.9000 0.0385 0.7000 0.4854 0.6000 0.6743 0.5000 0.8467二、用幂级数做多项式插值二、用幂级数做多项式插值给定给定 n+1 个数据点:个数据点:过过 n+1个点的个点的 n 阶多项式可写为幂级数形式:阶多项式可写为幂级数形式:注:过注
11、:过 n1 1个数据点的个数据点的 n 阶插值多项式是惟一的。阶插值多项式是惟一的。对对 n1个数据点,设个数据点,设 ,则得到,则得到 n+1个线性方程,可以表示为矩阵形式个线性方程,可以表示为矩阵形式求解该方程组可确定系数(或用求解该方程组可确定系数(或用 polyfit(x,y,n)确定确定)例例3 求下列数据点拟合多项式的系数,并求当求下列数据点拟合多项式的系数,并求当x2.101和和4.234处处 y 的值,并画出数据点和曲线。的值,并画出数据点和曲线。x=1.1,2.3,3.9,5.1;y=3.887,4.276,4.651,2.117;n=length(x)-1;a(:,n+1)
12、=ones(size(x);a(:,n)=x;for j=n-1:-1:1 a(:,j)=a(:,j+1).*x;endcoeff=ay;xi=2.101,4.234;yi=zeros(size(xi);for k=1:n+1 yi=yi+coeff(k)*xi.(n+1-k);endxp=1.1:0.05:5.1;yp=zeros(size(xp);for k=1:n+1 yp=yp+coeff(k)*xp.(n+1-k);endplot(xp,yp,x,y,ro)三、三、Lagrange插值多项式插值多项式1.1.插值基函数插值基函数形状函数的图形如下(n8)2.2.LagrangeLag
13、range插值多项式插值多项式function fi=Lagran_(x,f,xi)fi=zeros(size(xi);np1=length(f);for i=1:np1 z=ones(size(xi);for j=1:np1 if i=j z=z.*(xi-x(j)/(x(i)-x(j);end end fi=fi+z*f(i);endreturn3.3.MATLABMATLAB程序实现程序实现:调用格式:调用格式:yi=Lagran_(x,y,xi)clearx=1.1,2.3,3.9,5.1;y=3.887,4.276,4.651,2.117;xi=2.101,4.234;yi=Lagr
14、an_(x,y,xi);例例4:写出拟合下面三个数据点的:写出拟合下面三个数据点的Lagrange插值公式,插值公式,并计算并计算 x2.101、4.234时时 y 的值。的值。xy1.13.8872.34.2763.94.6515.12.1174.4.截断误差:截断误差:例例5 用用 的的5个等距点对函数进行插值估计。个等距点对函数进行插值估计。插值结果及误插值结果及误差分布如图差分布如图 可见,误差峰值出现在端点附近的区间里,这是可见,误差峰值出现在端点附近的区间里,这是由于由于 的局部峰值在端点附近。的局部峰值在端点附近。减小误差的方案:减小误差的方案:(1)减小插值区域,即)减小插值区
15、域,即 ba;(2)增加数据点个数;增加数据点个数;(3)使用可变间距的数据点()使用可变间距的数据点(Chebyshev点)。点)。总结:总结:(1)尽可能在小区间上使用多项式插值;)尽可能在小区间上使用多项式插值;(2)只能在一定范围内依靠增加插值点个数提高插)只能在一定范围内依靠增加插值点个数提高插值精度,如果插值点个数过多往往会适得其反。值精度,如果插值点个数过多往往会适得其反。5.Lagrange 插值公式的微分与积分插值公式的微分与积分插值公式插值公式微分微分实际上,实际上,是一个拟合如下数据点的是一个拟合如下数据点的 n 阶多项式阶多项式一般地,一般地,是拟合数据点的多项式是拟合
16、数据点的多项式所以,多项式所以,多项式 可通过拟合待定数据点的可通过拟合待定数据点的 n 阶多项阶多项式表示为幂级数形式。式表示为幂级数形式。对对所有所有 i,的幂级数形式可用函数的幂级数形式可用函数 shape_pw 计算计算function p=shape_pw(x)np=length(x);for j=1:np y=zeros(1,np);y(j)=1;p(j,:)=polyfit(x,y,np-1);end其调用格式为:其调用格式为:p=shape_pw(x)其中其中 x 是数据点的横坐标是数据点的横坐标数组,数组,p 是一个矩阵,它是一个矩阵,它的第的第 i 行即为行即为 的幂系的幂
17、系数。数。如例如例4也可求解如下也可求解如下:x=1.1,2.3,3.9,5.1;y=3.887,4.276,4.651,2.117;xi=2.101,4.234;np=length(x);p=shape_pw(x);s=0;for i=1:np s=s+p(i,:).*y(i);endsyi=polyval(s,xi)结果为:结果为:yi 4.1457 4.3007为计算为计算Lagrange插值多项式的一阶导数,可用插值多项式的一阶导数,可用polyder函数将函数将 p 的每一行转换为一阶导数的系数数组。的每一行转换为一阶导数的系数数组。x=1.1,2.3,3.9,5.1;y=3.887
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 多项式 课件
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内