matlab拉格朗日插值多项式

img

插值基函数
n 次代数插值问题的解可表示为

pn(x)=sumlimitsnk=0lk(x)yk,

MATLAB 程序

function  yi = LagInterp(x,y,xi)

%  Lagrange 插值多项式,调用格式为

%   yi = LagInterp(x,y,xi)

%  其中

%  x 为插值节点,y为节点处函数值,

%  xi 为为估计函数自变量,yi 为xi处函数估计值

%

n = length(x); m = length(xi); p = zeros(n,m);

for k = 1:n

   t = ones(n,m);

   for j = 1:n

       if j~=k

           if abs(x(k) - x(j))<eps

              error('% 输入的插值节点必须互异!');

           end

           t(j,:) = (xi - x(j))/(x(k) - x(j));

       end

   p(k,:) = prod(t);

   end

   yi = y*p;

end



x = [1.1275, 1.1503, 1.1735, 1.1972];

y = [0.11910, 0.13954, 0.15932, 0.17903];

xi = [1.1300 1.1600];

yi = LagInterp(x,y,xi)