数值逼近课程设计

数值逼近课程设计

ID:13376565

大小:89.50 KB

页数:7页

时间:2018-07-22

数值逼近课程设计_第1页
数值逼近课程设计_第2页
数值逼近课程设计_第3页
数值逼近课程设计_第4页
数值逼近课程设计_第5页
资源描述:

《数值逼近课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数值逼近课程设计报告080710205邱明敏作业一多项式插值的Runge现象对于Runge函数f(x)=,在[-1,1]上作等距节点插值,分别取n=4,n=8,n=12,编出程序,画出此插值的图像。程序代码(matlab实现):lagrange.mfunctiony=lagrange(x0,y0,x)ii=1:length(x0);y=zeros(size(x));fori=iiij=find(ii~=i);y1=1;forj=1:length(ij),y1=y1.*(x-x0(ij(j)));endy=y+y1*y0(i)/prod(x0(i)-x0(ij));

2、endrunge.mfunctionrunge(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;y3=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-'

3、,x,y4,'r--',x,y5,'b-.',x,y6,'m:')legend('原函数','n=4','n=8','n=12')三、运行结果(运行过程):输入runge(4,8,12),可得插值图像:作业二Remez算法求函数f(x)=在[-1,1]上的二次多项式逼近。参考文献:数值分析算法描述与习题解答(徐士良著)二、程序代码(C语言实现):#include#includedoubleremezf(doublex){doubley;y=exp(x);return(y);}voidremez(doublea,doubleb,do

4、ublep[],intn,doubleeps){inti,j,k,m;doublex[21],g[21],d,t,u,s,xx,x0,h,yy;if(n>20)n=20;m=n+1;d=1.0e+35;for(k=0;k<=n;k++){t=cos((n-k)*3.1415926/(1.0*n));x[k]=(b+a+(b-a)*t)/2.0;}while(1==1){u=1.0;for(i=0;i<=m-1;i++){p[i]=remezf(x[i]);g[i]=-u;u=-u;}for(j=0;j<=n-1;j++){k=m;s=p[k-1];xx=g[k-1

5、];for(i=j;i<=n-1;i++){t=p[n-i+j-1];x0=g[n-i+j-1];p[k-1]=(s-t)/(x[k-1]-x[m-i-2]);g[k-1]=(xx-x0)/(x[k-1]-x[m-i-2]);k=n-i+j;s=t;xx=x0;}}u=-p[m-1]/g[m-1];for(i=0;i<=m-1;i++)p[i]=p[i]+g[i]*u;for(j=1;j<=n-1;j++){k=n-j;h=x[k-1];s=p[k-1];for(i=m-j;i<=n;i++){t=p[i-1];p[k-1]=s-h*t;s=t;k=i;}}p[m

6、-1]=fabs(u);u=p[m-1];if(fabs(u-d)<=eps)return;d=u;h=0.1*(b-a)/(1.0*n);xx=a;x0=a;while(x0<=b){s=remezf(x0);t=p[n-1];for(i=n-2;i>=0;i--)t=t*x0+p[i];s=fabs(s-t);if(s>u){u=s;xx=x0;}x0=x0+h;}s=remezf(xx);t=p[n-1];for(i=n-2;i>=0;i--)t=t*xx+p[i];yy=s-t;i=1;j=n+1;while((j-i)!=1){k=(i+j)/2;if(

7、xx=0;k--)t=t*x[0]+p[k];s=s-t;if(s*yy>0.0)x[0]=xx;else{for(k=n-1;k>=0;k--)x[k+1]=x[k];x[0]=xx;}}else{if(xx>x[n]){s=remezf(x[n]);t=p[n-1];for(k=n-2;k>=0;k--)t=t*x[n]+p[k];s=s-t;if(s*yy>0.0)x[n]=xx;else{for(k=0;k<=n-1;k

8、++)x[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。