《MATLAB编辑n次拉格朗日函数插值法的程序.doc》由会员分享,可在线阅读,更多相关《MATLAB编辑n次拉格朗日函数插值法的程序.doc(3页珍藏版)》请在金锄头文库上搜索。
1、n次拉格朗日函数插值程序:function LagrangesNs() %用于求过n点的拉格朗日n-1次插值多项式options=Name of data file;title=Lagranges_points;lineNo=2;def=Lagranges.dat;outval=inputdlg(options,title,lineNo,def);if isempty(outval)=1,return,endfilename=outval1;data=load(filename);x=data(:,1);y=data(:,2);lagrangesN(x,y);endfunction lagra
2、ngesN(x,y)%画出已知n个点的位置plot(x,y,*);hold on%n次拉格朗日多项式为 y=a0+a1*x+a2*x2+a(n-1)*x(n-1) %其中a0 a1 a2a(n-1)为待求系数n=length(x);X=Vandermonde(x,1);A=Xy;%绘制插值函数图象x1=linspace(0,max(x);x2=Vandermonde(x1,n);y1=x2*A;plot(x1,y1);hold on%显示公式func=y= ,num2str(A(1);for i=2:n; b=+ ,num2str(A(i),*x,num2str(i-1); func=func
3、,b;endtext(0.8,0.8,func);end%创建一个Vandermonde行列式function XX=Vandermonde(x,m)%创建x的列向量if m=1 n=length(x); XX=zeros(n); for i=1:n XX(:,i)=x.(i-1); endelse n=length(x); XX=zeros(n,m); for i=1:m XX(:,i)=x.(i-1); endend end运行情况:按“run”运行时,弹出窗口将图框中的相关数据更改为:注:在Lagranges 1.dat文件中数据为: 0 11 0.36792 0.1353点击图框中的“OK”,在“command window”中输出结果为: