设函数f(x)在区间[a,b]上连续,在给定n+1个不同节点上的值分别为
,要求构造一个不超过n次的多项式:
, 去近似函数y=f(x),使之满足插值条件:
它的几何意义是,用过n+1个不同点的n次代数曲线Ln(x)近似地代替曲线 y=f(x)
现在来构造一般插值多项式Ln(x),设在给定n+1个不同节点上的n次插值基函数分别为
,则所求不超过n次的插值多项式表示为:
下面求插值基函数由条件:
可得插值基函数在各节点上函数值表为:
作为任一点的n次插值基函数分别为
,由于在除
外所有节点取值皆为0,因此,
含有因子,又因为
为n次多项式,故
可表示为:
再由条件得
其中
将Ln称为函数f(x)的拉格朗日插值多项式。下面是算法的Matlab实现:
function [p]=Lag_Polyfit(X,Y)例如
%Matlab命令文件LagSin.m
%用拉格朗日插值法拟合[0,2*pi]上的sin函数
x0=linspace(0,2*pi,10);
y0=sin(x0); %拟合数据采样
p=Lag_Polyfit(x0,y0); %调用Lag_polyfit计算拟合多项式
x=0:0.02:2*pi;
y1=sin(x); %sin函数值
y2=polyval(p,x); %拟合多项式值
plot(x0,y0,'+',x,y2,'r') %sin函数(蓝色)与多项式(红色)效果图
命令窗口中输入lagsin观察图形输出窗口
>>logsin %函数(文件)名不区分大小写
Ruger现象:
评论