第四章多项式与插值课件.ppt
《第四章多项式与插值课件.ppt》由会员分享,可在线阅读,更多相关《第四章多项式与插值课件.ppt(66页珍藏版)》请在三一办公上搜索。
1、,第四章 多项式与插值,4.1 MATLAB多项式,一、 多项式的建立1. MATLAB中多项式用行向量表示,其元素为 多项式的系数,且从左至右按降幂排列;2. 已知一个多项式的全部根 X求多项式系数的函 数是poly(X),该函数返回以 X为全部根的一个 多项式 P(首项系数为1),当 X是一个长度为 m的向量时,P是一个长度为 m+1的向量。,3. 给定 n+1个点可以唯一确定一个 n 阶多项式,利 用polyfit可以确定多项式的系数。 调用格式为: p=polyfit(x, y, n) 其中 x, y是同维向量,代表数据点的横、纵坐标, n 是多项式的阶数。,二、 多项式计算1. 多项
2、式求根 求多项式 p(x)的根的函数是roots(P),这里,P是 p(x)的系数向量,该函数返回方程 p(x)=0 的全部根 (含重根,复根)。2. 多项式求值 求多项式 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=
3、roots(P) %求方程f(x)=0的根 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 + p2; endif n1n2, p3 = p1 + ze
4、ros(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的余式。这里,Q和r仍是多项式系数向量。deconv是conv的逆函数,即有P1=conv(P2,Q)+r。,例2 设有两个多项式,计算:(1)求f(x)+g(x)、f(x
5、)-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)对多项式求导数的函数是: p=polyder(P) 求多项式P的导函数 p=polyder(P,Q) 求P*Q的导函数 p,q=polyder(P,Q) 求P/Q的导函数,导函数的 分子存入p,分母存入q。(2)对多项式的积分函数
6、: 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,5,0,0,6,0,0,7,-1,0,-100;p,q=polyder(P,Q),若求多项式P的积分:,c=poly_itg(P),4.2 MATLAB插值,通常取 为多项式函数代数插值(多项式插值),注:一次多项式插值 - 过两点直线; 二次多项式插值 - 过三点抛物线; 不用待定系数法 - (1)计算量大; (2)不易讨论误差
7、;,几何意义:两条曲线有交点(公共点),一、线性插值,线性插值是两个数据点的直线拟合,或,误差估计:,在MATLAB中,命令 interp1可做线性插值,调用格式为: 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
8、.5 处 x 的值。,x = 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 , xi,ans 0.9000 0.0385 0.7000 0.4854 0.6000 0.6743 0.5000 0.8467,二、用幂级数做多项式插值,给定 n+1 个数据点:,过 n+1个点的 n 阶多项式可写为幂级数形式:,注:过 n1个数据点的 n 阶插值多项式是惟一的。,对 n1个数据点,设 ,则得到 n+1个线性方程,可以表示为
9、矩阵形式,求解该方程组可确定系数(或用 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)=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
10、.(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.插值基函数,形状函数的图形如下(n8),2.Lagrange插值多项式,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
11、(j); end end fi=fi+z*f(i);endreturn,3. MATLAB程序实现:,调用格式: 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 = Lagran_(x, y, xi);,例4:写出拟合下面三个数据点的Lagrange插值公式,并计算 x2.101、4.234时 y 的值。,4. 截断误差:,例5 用 的5个等距点对函数进行插值估计。,插值结果及误差分布如图,可见,误差峰值出现在端点附近的区间里,这是由于 的
12、局部峰值在端点附近。,减小误差的方案:(1)减小插值区域,即 ba;(2)增加数据点个数;(3)使用可变间距的数据点(Chebyshev点)。,总结:(1)尽可能在小区间上使用多项式插值;(2)只能在一定范围内依靠增加插值点个数提高插值精度,如果插值点个数过多往往会适得其反。,5. Lagrange 插值公式的微分与积分,插值公式,微分,实际上, 是一个拟合如下数据点的 n 阶多项式,一般地, 是拟合数据点的多项式,所以,多项式 可通过拟合待定数据点的 n 阶多项式表示为幂级数形式。,对所有 i, 的幂级数形式可用函数 shape_pw 计算,function p = shape_pw(x)n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 多项式 课件

链接地址:https://www.31ppt.com/p-1833170.html