细履平沙 发表于 2006-9-14 12:32:34

拉格朗日插值的Matlab实现

Matlab中没有现成的拉格朗日插值函数,必须编写一个M文件实现拉格朗日插值。
设n个节点数据以数组x0, y0输入(注意Matlab的数组下标从1开始),m 个插值点以数
组x输入,输出数组y 为m 个插值。编写一个名为lagrange.m的M文件:
function y=lagrange(x0,y0,x);
n=length(x0);m=length(x);
for i=1:m
   z=x(i);
   s=0.0;
   for k=1:n
         p=1.0;
         for j=1:n
                if j~=k
                   p=p*(z-x0(j))/(x0(k)-x0(j));
                end
         end
         s=p*y0(k)+s;
      end
      y(i)=s;
end

andy 发表于 2017-5-17 13:17:09

您好,我想请问下,能不能把s=0.0和p=1.0放在最前面,谢谢!
页: [1]
查看完整版本: 拉格朗日插值的Matlab实现