lagrange.m

来自「Matlab中没有现成的Lagrange插值函数」· M 代码 · 共 20 行

M
20
字号
%Matlab中没有现成的Lagrange插值函数,必须编写一个M文件实现Lagrange插值。
%设n个节点数据以数组x0,y0 输入(注意Matlat的数组下标从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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?