matlab代码实现拉格朗日插值
时间: 2023-12-15 08:04:21 浏览: 83
好的,我可以回答这个问题,以下是 matlab 代码实现拉格朗日插值的示例:
首先定义数据点和插值点:
```matlab
% 定义数据点
x_data = [-2, -1, 0, 1, 2];
y_data = [0.1353, 0.3679, 1, 0.3679, 0.1353];
% 定义插值点
x_interp = linspace(min(x_data), max(x_data), 100);
```
然后定义拉格朗日插值函数:
```matlab
function y_interp = lagrange_interp(x_data, y_data, x_interp)
% 初始化插值结果
y_interp = zeros(size(x_interp));
% 对每个插值点求解
for i = 1:length(x_interp)
% 对每个数据点计算插值基函数
L = ones(size(x_data));
for j = 1:length(x_data)
if j ~= i
L = L .* (x_interp(i) - x_data(j)) ./ (x_data(i) - x_data(j));
end
end
% 计算插值点的函数值
y_interp(i) = sum(L .* y_data);
end
end
```
最后调用函数并绘制插值结果图:
```matlab
% 调用函数
y_interp = lagrange_interp(x_data, y_data, x_interp);
% 绘制图像
figure;
plot(x_data, y_data, 'o', x_interp, y_interp, '-');
legend('数据点', '插值结果');
```
希望对你有所帮助。
阅读全文