文档介绍:matlab数值分析实验报告
篇一:
数值分析matlab实验报告实验
2.1 多项式差值的振荡现象
一、实验内容设区间[-1,1]上函数 2in f(x)? 11?25x 2 ,考虑区间[-1,1]的一个等距划分,分点为 n xi??1? ,i=0,1,2,...,n,则拉格朗日插值多项式为Ln?? i?0 11?25xi 2 li(x).其中, li(x),i=0,1,2,...,n是Lagrange插值基函数. 1) 选择不断增大的分点数目n=2,3,...,画出原函数f(x)及插值多项式函数Ln(x) 在[-1,1]上的图像,比较并分析实验结果. 2) 选择其他的函数,例如定义在区间[-5,5]上的函数h(x) x1?x 4,g(x)?arctanx , 重复上述的实验看其结果如何.
二、实验程序 functin chapter2 prmps={ 请选择试验函数,若选f(x),请输入f,若选好h(x),请输入h,若选g(x),请输入g:
result=inputdlg(prmps, charpt 2 ,1,{ f Nb_f=char(result); if(Nb_f~= f Nb_f~= h Nb_f~= g ) errrdlg(试验函数选择错误! return; end result=inputdlg({请输入插值多项式的次数N:
}, charpt_2,1,{ 10 Nd=str2num(char(result)); if(Nd 1) errrdlg(插值多项式的次数输入错误! return; end sitch Nb_f case ff=inline(
1./(1+25*x.^2) a=-1;b=1; case hf=inline( x./(1+x.^4) a=-5;b=5; case gf=inline( atan(x) a=-5;b=5; end x0=linspace(a,b,Nd+1);y0=feval(f,x0);
x=a:0.1:b;y=Lagrange(x0,y0,x); clf; fplt(f,[a b], rx hld n; plt(x,y, b--xlabel( x ylabel( y=f(x) x and y=Ln(x)--
2.Lagrange函数functin y=Lagrange(x0,y0,x) n=length(x0); m=length(x); fr i=1:m z=x(i); s=0; fr k=1:n p=
1.0; fr j=1:n if (j~=k) p=p.*(z-x0(j))/(x0(k)-x0(j)); end end s=s+p*y0(k); end y(i)=s; end
三、实验结果及分析 1)选择不断增大的分点数目n,原函数f(x)及插值多项式函数Ln(x)在[-1,1]上的图像。1 随着提高插值多项式次数,可以提高逼近的精度,但是次数的增加,在区间两端点附近与原函数偏离很远,即出现了Runge现象。2)选择不断增大的分点数目n,原函数h(x)及插值多项式函数Ln(x)在[-1,1]上的图像。 2选择不断增大的