資源描述:
《matlab實現(xiàn)拉格朗日插值》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、數(shù)值分析上機報告題目:插值法學(xué)號:201014924姓名:靳會有一、調(diào)用MATLAB內(nèi)帶函數(shù)插值1、MATLAB內(nèi)帶插值函數(shù)列舉如下:interp1interpftinterp2interp3interpnsplinemeshgridndgridgriddata一維數(shù)據(jù)內(nèi)插(查表法)使用FFT方法的一維數(shù)據(jù)內(nèi)插二維數(shù)據(jù)內(nèi)插(查表法)三維數(shù)據(jù)內(nèi)插(查表法)多維數(shù)據(jù)內(nèi)插(查表法)三次樣條內(nèi)插為三維繪圖產(chǎn)生X和Y陣為多維函數(shù)和內(nèi)插產(chǎn)生陣列數(shù)據(jù)網(wǎng)格2、取其中的一維數(shù)據(jù)內(nèi)插函數(shù)(interp1)為例,程序如下:其調(diào)用格式為:yi=interp1(x,y,xi)yi=int
2、erp1(x,y,xi,method)舉例如下: x=0:10:100 y=[40444652657680828892110]; xi=0:1:100 yi=interp1(x,y,xi,'spline')3、其他內(nèi)帶函數(shù)調(diào)用格式為:Interpft函數(shù):y=interpft(x,n) y=interpft(x,n,dim)interp2函數(shù):ZI=interp2(X,Y,Z,XI,YI),ZI=imerp2(Z,ntimes)ZI=interp2(Z,XI,YI),ZI=interp2(X,Y,Z,XI,YI,method)interp3函數(shù):VI=i
3、nterp3(X,Y,Z,V,XI,YI,ZI)VI=interp3(V,ntimes)VI=interp3(V,XI,YI,ZI)VI=interp3(…,method)Interpn函數(shù):VI=interpn(X1,X2,X3,…,V,Y1,Y2,Y3,…)VI=interpn(V,ntimes)VI=interpn(V,Yl,Y2,Y3,…) VI=interpn(…,method)Spline函數(shù):yi=spline(x,y,xi) pp=spline(x,y)meshgrid函數(shù):[X,Y]=meshgrid(x,y)[X,Y]=meshgrid(x
4、)[X,Y,Z]=meshgrid(x,y,z)Ndgrid函數(shù):[X1,X2,X3,…]=ndgrid(x1,x2,x3,…) [X1,X2,X3,…]=ndgrid(x)Griddata函數(shù):ZI=griddata(x,y,z,XI,YI)[XI,YI,ZI]=griddata(x,y,z,xi,yi) […]=griddata(…method)二、自編函數(shù)插值1、拉格朗日插值法:建立M文件:functionf=Language(x,y,x0)symstl;if(length(x)==length(y))n=length(x);elsedisp('x和y的
5、維數(shù)不相等!');return;%檢錯endh=sym(0);for(i=1:n)l=sym(y(i));for(j=1:i-1)l=l*(t-x(j))/(x(i)-x(j));end;for(j=i+1:n)l=l*(t-x(j))/(x(i)-x(j));end;h=h+l;endsimplify(h);if(nargin==3)f=subs(h,'t',x0);%計算插值點的函數(shù)值elsef=collect(h);f=vpa(f,6);%將插值多項式的系數(shù)化成6位精度的小數(shù)end在MATLAB中輸入:x=[18316668707270;]y=[23335
6、251434046];f=Language(x,y)plot(x,y)結(jié)果為:f=Inf+(-t)*Inf-54329.8*t^2+1503.75*t^3-22.2065*t^4+0.16789*t^5-0.000512106*t^6圖形如下:MATLAB實現(xiàn)拉格朗日插值建立如下拉格朗日插值函數(shù):functiony=lagrange(x0,y0,x);n=length(x0);m=length(x);fori=1:mz=x(i);s=0.0;fork=1:np=1.0;forj=1:nifj~=kp=p*(z-x0(j))/(x0(k)-x0(j));enden
7、ds=p*y0(k)+s;endy(i)=s;end畫圖程序如下:x=[-5:1:5];y=1./(1+x.^2);x0=[-5:0.001:5];y0=lagrange(x,y,x0);y1=1./(1+x0.^2);plot(x0,y0,'r')holdonplot(x0,y1,'g')注:畫出的圖形為n=10的圖形得到圖形如下:n=10的圖像牛頓K次插值多項式一、實驗?zāi)康模?、掌握牛頓插值法的基本思路和步驟。2、培養(yǎng)編程與上機調(diào)試能力。二、牛頓插值法基本思路與計算步驟:給定插值點序列(。構(gòu)造牛頓插值多項式。輸入要計算的函數(shù)點并計算的值,利用牛頓插值公式,當(dāng)
8、增加一個節(jié)點時,只需在后