资源描述:
《Chebyshev多项式最佳一致逼近-最佳平方逼近.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、精选文档数学软件实验任务书课程名称数学软件实验班级实验课题Chebyshev多项式最佳致逼近,最佳平方逼近实验目的熟悉Chebyshev多项式最佳致逼近,最佳平方逼近实验要求运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成实验内容Chebyshev多项式最佳致逼近,最佳平方逼近成绩教师可编辑精选文档可编辑精选文档实验1Chebyshev多项式最佳一致逼近1实验原理设f(x)是定义在区间[a,b]上的函数,寻求另一个构造简单,计算量小的函数(x)来近似的代替f(x)的问题就是函数逼近问题。通常我们会取
2、一些线性无关的函数系来达到函数逼近的目的:对于给定的函数{j(x)},寻求函数n(x)Cjj(x)j0使limmaxf(x)naxb(x)0的函数称为一致逼近。使bplimaf(x)(x)W(x)dx0■n1的函数称为关于权W(x)的Lp逼近。比较常用的p=2,称为平方逼近。设f(x)是定义在区间[a,b]上的函数,则任给定,存在一多项式P使不等式f(x)P对所有x[a,b]一致成立maxf(x)Pn(x)axb则E(x)称为f(x)的n次最佳一致逼近多项式。可编辑精选文档求最佳一次逼近多项式的一种方法是可以采用Chebyshev节点插值,C
3、hebyshev节点为Xj1[(ba)cos(2-j-1)_ba],j0,1,2,L,nj22(n1)2实验数据求函数f(x)xex在区间[6,6]上的3,5和12次近似最佳逼近多项式(Chebyshev插值多项式)3实验程序functiong=cheby(f,n,a,b)forj=0:ntemp1=(j*2+1)*pi/2/(n+1);temp2=(b-a)*cos(temp1)+b+a;temp3(j+1)=temp2/2;endx=temp3;y=f(x);g=lag(x,y);functions=lag(x,y,t)symsp;n=l
4、ength(x);可编辑精选文档s=0;for(k=1:n)可编辑精选文档la=y(k);%构造基函数for(j=1:k-1)la=la*(p-x(j))/(x(k)-x(j));end;for(j=k+1:n)la=la*(p-x(j))/(x(k)-x(j));end;s=s+la;simplify(s);endif(nargin==2)s=subs(s,'p','x');s=collect(s);s=vpa(s,4);elsem=length(t);fori=1:mtemp(i)=subs(s,'p',t(i));ends=temp;可
5、编辑精选文档endf=inline('x.*exp(x)','x');z1=cheby(f,3,-6,6)z2=cheby(f,5,-6,6)z3=cheby(f,12,-6,6)%作出逼近函数图形subplot(2,2,1),ezplot('x*exp(x)'),gridsubplot(2,2,2),ezplot(z1),gridsubplot(2,2,3),ezplot(z2),gridsubplot(2,2,4),ezplot(z3),grid%改变背景为白色set(gcf,'color','white')4实验结果z1=可编辑精选文档
6、-133.0+4.822*xA3+27.38*xA2-20.40*xz2=.2001*xA5+1.359*xA4-2.020*xA3-18.56*xA2+6.126*x+40.25z3=-.2405e-16+.5187e-7*xA12+.6439e-6*xA11+.1420e-5*xA10+.6201e-5*xA9+.2287e-3*xA8+.1813e-2*xA7+.8007e-2*xA6+.3709e-1*xA5+.1682*xA4+.5209*xA3+.9981*xA2+.9729*x实验2Chebyshev最佳平方逼近1实验数据1求函
7、数f(x)arccosx,(1x1)关于权函数」的5次取佳1x2平方逼近。2实验程序程序1functionf=ping_che(n)symsxpip%计算系数fori=2:n+1a(i)=((-1)Ai-1)*2/pip/iA2;可编辑精选文档enda=[pip,-4/pip,a(2:n)]%调用chebyshev多项式che=cheby_p(x,n);f=a(1)/2;fori=2:n+1f=f+a(i)*che(i);end%化简f=simplify(f);程序2functiont=cheby_p(x,n)t(1:n+1)=x;t(1)=
8、1;t(2)=x;%计算一般项fori=3:n+1t(i)=2*x*t(i-1)-t(i-2);end;可编辑精选文档t=simplify(t);程序3f=@(x)