拉格朗日插值法matlab
时间: 2023-08-20 13:40:04 浏览: 31
在 MATLAB 中实现拉格朗日插值法的步骤如下:
1. 创建两个向量 x 和 y,分别存储函数的输入和输出值。
2. 定义插值点 xi。
3. 创建一个 for 循环,循环遍历 xi 中的每个值。
4. 在循环中,计算拉格朗日插值多项式的系数。
5. 使用计算出的系数和插值点 xi,计算出插值函数的输出值 yi。
6. 使用 plot 函数将插值函数和原始数据绘制在同一张图上,以便比较。
下面是一个简单的 MATLAB 代码示例:
```matlab
% 定义输入和输出向量
x = [1, 2, 4];
y = [2, 3, 1];
% 定义插值点
xi = linspace(1, 4, 10);
% 创建空向量存储插值函数的输出值
yi = zeros(size(xi));
% 循环遍历插值点
for i = 1:length(xi)
% 计算拉格朗日插值多项式的系数
c = lagrange_coef(x, y, xi(i));
% 使用系数和插值点计算插值函数的输出值
yi(i) = polyval(c, xi(i));
end
% 绘制插值函数和原始数据
plot(x, y, 'o', xi, yi);
legend('原始数据', '插值函数');
```
其中,lagrange_coef 函数的实现如下:
```matlab
function c = lagrange_coef(x, y, xi)
n = length(x);
c = zeros(1, n);
for i = 1:n
% 计算拉格朗日插值多项式的系数
p = 1;
for j = 1:n
if i ~= j
p = conv(p, poly(x(j))) / (x(i) - x(j));
end
end
c = c + y(i) * p;
end
% 调整系数向量的长度,使其与插值点 xi 的长度相同
c = c(end:-1:1);
c = c(1:length(xi));
end
```
该函数的输入参数为输入向量 x、输出向量 y 和插值点 xi,返回值为拉格朗日插值多项式的系数向量 c。