目录
一、拉格朗日插值多项式的推导
已知插值节点以及对应的函数值
。令插值多项式为
,
为拉格朗日插值多项式的基函数。
由于
......
可以得到:
进一步可以推得拉格朗日基函数:
若有:
则:
二、拉格朗日多项式逼近
误差项为:
三、拉格朗日插值多项式的MATLAB代码
function lagrange(X,Y)
%输入 X代表插值节点
% Y代表插值节点所对应的函数值
n=length(X);
L=zeros(n,n);
for i=1:n
V=1;
for j=1:n
if j~=i
V=conv(V,poly(X(j)))/(X(i)-X(j));
end
end
L(i,:)=V;
end
C=Y*L;
LAG=poly2sym(C);
fprintf('拉格朗日多项式为:\nP(x)=%s\n',LAG);
通过在命令行窗口中输入:
>> X=[1 2 3 4 5 6];
>> Y=[66 66 65 64 63 63];
>> lagrange(X,Y)
可以得到拉格朗日插值函数为:
P(x)=(599*x)/60 - (161*x^2)/24 + 2*x^3 - (10262108525909*x^4)/35184372088832 + (37529996894755*x^5)/2251799813685248 + 61
四、拉格朗日插值多项式的Python代码
from scipy.interpolate import lagrange
x=[1,2,3,4,5,6]
y=[66,66,65,64,63,63]
a=lagrange(x,y)
print(a)
最后得到的结果如下:
5 4 3 2
0.01667 x - 0.2917 x + 2 x - 6.708 x + 9.983 x + 61
即。