《数值分析》第二讲插值法PPT课件
- 格式:ppt
- 大小:2.62 MB
- 文档页数:88
Ch2. 插值法§1. 插值问题引例 矿井中某处的瓦斯浓度y 与该处距地面的距离x 有关,现用仪器测得从地面到井下500米每隔50米的瓦斯浓度数据(,)(0,1,2,,10)= i i x y i ,根据这些数据完成下列工作:(1)寻找一个函数,要求从此函数中可近似求得从地面到井下500米之间任意一点处的瓦斯浓度;(2)估计井下600米处的瓦斯浓度。
第一个问题可归结为“已知函数在n x x x ,,,10⋅⋅⋅处的值,求函数在区间[]n x x ,0内其它点处的值”,这种问题适宜用插值方法解决。
但对第二个问题不宜用插值方法,因为600米已超出所给数据范围,用插值函数外推插值区间外的数据会产生较大的误差。
解决第二个问题的常用方法是,根据地面到井下500处的数据求出瓦斯浓度与地面到井下距离之间的函数关系)(x f ,由)(x f 求井下600米处的瓦斯浓度。
定义 设)(x f y =在[]b a ,中1+n 个点n x x x <⋅⋅⋅<<10处的值)(i i x f y =为已知,现根据上述数据构造一个简单函数)(x p ,使i i y x p =)(,这种问题称为插值问题。
i x x p x f ),(),(,i i y x p =)(分别称为被插值函数、插值函数、插值节点和插值条件。
若)(x p 为多项式,则此问题称为多项式插值或代数插值。
定理1 在插值节点n x x x ,,,10⋅⋅⋅处,取给定值n y y y ,,,10⋅⋅⋅,且次数不高于n 的插值多项式是存在且唯一的。
证 令n n x a x a a x p +⋅⋅⋅++=10)(,则根据插值条件i i y x p =)(有下列等式:⎪⎪⎩⎪⎪⎨⎧=+⋅⋅⋅++=⋅⋅⋅⋅⋅⋅=+⋅⋅⋅++==+⋅⋅⋅++=n n n n n n nn nn yx a x a a x p y x a x a a x p y x a x a a x p 10111101000100)()()( (关于i a 的1+n 阶线性方程组), 其系数行列式是范德蒙(V andermonde )行列式()011111100≠-=⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅=∏≥>≥j i n j innnnn x xx x x x x x D 。
第二章插值法2.在区间[-1,1]上分别取n=10,20用两组等距节点对龙哥函数f(x)=1/(1+25*x^2)做多项式插值及三次样条插值,对每个n值,分别画出插值函数及f(x)的图形。
(1)多项式插值①先建立一个多项式插值的M-file;输入如下的命令(如牛顿插值公式):function [C,D]=newpoly(X,Y)n=length(X);D=zeros(n,n)D(:,1)=Y'for j=2:nfor k=j:nD(k,j)=(D(k,j-1)- D(k-1,j-1))/(X(k)-X(k-j+1));endendC=D(n,n);for k=(n-1):-1:1C=conv(C,poly(X(k)))m=length(C);C(m)= C(m)+D(k,k);end②当n=10时,我们在命令窗口中输入以下的命令:clear,clf,hold on;X=-1:0.2:1;Y=1./(1+25*X.^2);[C,D]=newpoly(X,Y);x=-1:0.01:1;y=polyval(C,x);plot(x,y,X,Y,'.');grid on;xp=-1:0.2:1;z=1./(1+25*xp.^2);plot(xp,z,'r')得到插值函数和f(x)图形:③当n=20时,我们在命令窗口中输入以下的命令:clear,clf,hold on;X=-1:0.1:1;Y=1./(1+25*X.^2);[C,D]=newpoly(X,Y);x=-1:0.01:1;y=polyval(C,x);plot(x,y,X,Y,'.');grid on;xp=-1:0.1:1;z=1./(1+25*xp.^2);plot(xp,z,'r')得到插值函数和f(x)图形:(2)三次样条插值①先建立一个多项式插值的M-file;输入如下的命令:function S=csfit(X,Y,dx0,dxn)N=length(X)-1;H=diff(X);D=diff(Y)./H;A=H(2:N-1);B=2*(H(1:N-1)+H(2:N));C=H(2:N);U=6*diff(D);B(1)=B(1)-H(1)/2;U(1)=U(1)-3*(D(1));B(N-1)=B(N-1)-H(N)/2;U(N-1)=U(N-1)-3*(-D(N));for k=2:N-1temp=A(k-1)/B(k-1);B(k)=B(k)-temp*C(k-1);U(k)=U(k)-temp*U(k-1);endM(N)=U(N-1)/B(N-1);for k=N-2:-1:1M(k+1)=(U(k)-C(k)*M(k+2))/B(k);endM(1)=3*(D(1)-dx0)/H(1)-M(2)/2;M(N+1)=3*(dxn-D(N))/H(N)-M(N)/2;for k=0:N-1S(k+1,1)=(M(k+2)-M(k+1))/(6*H(k+1));S(k+1,2)=M(k+1)/2;S(k+1,3)=D(k+1)-H(k+1)*(2*M(k+1)+M(k+2))/6;S(k+1,4)=Y(k+1);end②当n=10时,我们在命令窗口中输入以下的命令:clear,clcX=-1:0.2:1;Y=1./(25*X.^2+1);dx0= 0.0739644970414201;dxn= -0.0739644970414201; S=csfit(X,Y,dx0,dxn)x1=-1:0.01:-0.5;y1=polyval(S(1,:),x1-X(1));x2=-0.5:0.01:0;y2=polyval(S(2,:),x2-X(2));x3=0:0.01:0.5; y3=polyval(S(3,:),x3-X(3));x4=0.5:0.01:1;y4=polyval(S(4,:),x4-X(4));plot(x1,y1,x2,y2,x3,y3,x4,y4, X,Y,'.')结果如图:②当n=20时,我们在命令窗口中输入以下的命令:clear,clcX=-1:0.1:1;Y=1./(25*X.^2+1);dx0= 0.0739644970414201;dxn= -0.0739644970414201; S=csfit(X,Y,dx0,dxn)x1=-1:0.01:-0.5;y1=polyval(S(1,:),x1-X(1));x2=-0.5:0.01:0;y2=polyval(S(2,:),x2-X(2));x3=0:0.01:0.5; y3=polyval(S(3,:),x3-X(3));x4=0.5:0.01:1;y4=polyval(S(4,:),x4-X(4));plot(x1,y1,x2,y2,x3,y3,x4,y4, X,Y,'.')结果如图:第三章函数逼近与快速傅里叶变换2. 由实验给出数据表x 0.0 0.1 0.2 0.3 0.5 0.8 1.0y 1.0 0.41 0.50 0.61 0.91 2.02 2.46试求3次、4次多项式的曲线拟合,再根据数据曲线形状,求一个另外函数的拟合曲线,用图示数据曲线及相应的三种拟合曲线。