朗格朗日插值法matlab代码
时间: 2023-07-09 16:42:57 浏览: 127
【数值计算】IGS星历拉格朗日插值算法附matlab代码.zip
5星 · 资源好评率100%
朗格朗日插值法的 MATLAB 代码如下:
```matlab
% Lagrange Interpolation
% 输入: X 插值点
% Y 插值点函数值
% n 插值次数
% x 逼近点
% 输出:y 逼近值
function y = LagrangeInterp(X, Y, n, x)
if n >= length(X)
fprintf('错误:插值点不够\n');
return
end
m = length(x);
y = zeros(m, 1);
for k = 0 : n
for i = 1 : m
y(i) = y(i) + Y(k + 1) * prod(x(i) - X([1:k, k + 2:end])) / prod(X(k + 1) - X([1:k, k + 2:end]));
end
end
end
```
其中,X 是插值点的横坐标,Y 是插值点的纵坐标,n 是插值的次数,x 是需要逼近的点的横坐标,y 是对应的逼近值。
使用时,可以将需要插值的函数值存储在 Y 中,然后选取一些插值点的横坐标和纵坐标,存储在 X 和 Y 中,调用 `LagrangeInterp(X, Y, n, x)` 函数即可得到逼近值 y。
阅读全文