function yi=lagint(x,y,xi)
% x,y为已知节点向量值;yi为xi处所求插值点
d_xi=xi-x;
n=length(x);
L=zeros(size(y));
L(1)=prod(d_xi(2:n))/prod(x(1)-x(2:n));
%或者 L(1)=prod(d_xi(2:n)./(x(1)-x(2:n)));
L(n)=prod(d_xi(1:n-1))/prod(x(n)-x(1:n-1));
%或者 L(n)=prod(d_xi(1:n-1)./(x(n)-x(1:n-1)));
for j=2:n-1
fenzi=prod(d_xi(1:j-1))*prod(d_xi(j+1:n));
fenmu=prod(x(j)-x(1:j-1))*prod(x(j)-x(j+1:n));
L(j)=fenzi/fenmu;
end
yi=sum(y.*L);
%fprintf('x=%f,y=%f',xi,yi);
Lagrange插值函数
最新推荐文章于 2024-04-16 00:12:09 发布