1、数 值 逼 近 课 程 设 计 报 告 作业作业一一 多项式插值的多项式插值的 Runge 现象现象 对于对于RungeRunge函数函数f(x)=f(x)= , 在, 在 - -1,11,1上作等距节点插值, 分别取上作等距节点插值, 分别取n=4,n=8,n=12,n=4,n=8,n=12, 编出程序,画出此插值的图像。编出程序,画出此插值的图像。 程序代码程序代码(matlab(matlab实现实现) ): lagrangelagrange.m.m function y=lagrange(x0,y0,x) ii=1:length(x0);y=zeros(size(x); for i=ii
2、 ij=find(ii=i);y1=1; for j=1:length(ij),y1=y1.*(x-x0(ij(j); end y=y+y1*y0(i)/prod(x0(i)-x0(ij); end runge.mrunge.m function runge(m1,m2,m3) x1=-1+2*0:m1/m1; y1=1./(1+25*x1.2); x=-1:0.01:1; y4=lagrange(x1,y1,x); x2=-1+2*0:m2/m2; y2=1./(1+25*x2.2); x=-1:0.01:1; y5=lagrange(x2,y2,x); x3=-1+2*0:m3/m3; y
3、3=1./(1+25*x3.2); x=-1:0.01:1; y6=lagrange(x3,y3,x); x=-1:0.01:1; y=1./(1+25*x.2); plot(x,y,k-,x,y4,r-,x,y5,b-.,x,y6, m:) legend(原函数,n=4,n=8,n=12) 三三、运行结果(运行过程) :运行结果(运行过程) : 输入 runge(4,8,12)runge(4,8,12),可得插值图像: 作业作业二二 Remez 算法算法 求函数求函数 f(x)=f(x)=在在 - -1,11,1上的二次多项式逼近。上的二次多项式逼近。 参考文献:数值分析算法描述与习题解答(
4、徐士良著)参考文献:数值分析算法描述与习题解答(徐士良著) 二二、程序代码程序代码(C(C 语言语言实现实现) ): #include#include #include#include double remezf(double x)double remezf(double x) double y;double y; y=exp(x);y=exp(x); returreturn(y);n(y); void remez(double a,double b,double void remez(double a,double b,double p,int n,double eps)p,int n,double eps) int i,j,k,m; int i,j,k,m; double double x21,g21,d,t,u,s,xx,x0,h,yy;x21,g21,d,t,u,s,xx,x0,h,yy; if(n