用matlab编写一段拉格朗日插值法的代码
时间: 2024-05-07 07:21:52 浏览: 80
用matlab编写拉格朗日插值算法的程序.docx
下面是一个简单的 Matlab 代码实现拉格朗日插值法:
```matlab
function y = lagrange_interp(x, y, xi)
% x: 原始数据的自变量向量
% y: 原始数据的因变量向量
% xi: 插值点自变量向量
n = length(x);
m = length(xi);
y = zeros(1,m);
for j = 1:m
L = ones(n,1);
for k = 1:n
for i = 1:n
if i ~= k
L(k) = L(k) * (xi(j)-x(i))/(x(k)-x(i));
end
end
end
y(j) = sum(y .* L);
end
end
```
可以将上述代码保存为 `lagrange_interp.m` 文件,然后调用函数进行插值计算。例如:
```matlab
x = [0 1 2 3 4];
y = [1 3 2 5 1];
xi = 0:0.1:4;
yi = lagrange_interp(x, y, xi);
plot(x,y,'o',xi,yi)
```
上述代码中,`x` 和 `y` 分别为原始数据的自变量和因变量,`xi` 为插值点自变量向量,`yi` 为插值点对应的因变量向量。将插值结果绘制成图形,可以通过 `plot` 函数实现。
阅读全文