拉格朗日插值MATLAB代码
时间: 2024-12-16 20:13:05 浏览: 12
二元拉格朗日插值Matlab代码
当然,下面是一个完整的拉格朗日插值的MATLAB代码示例,它包括了上述提到的所有步骤:
```matlab
% 定义数据点
x = [0 1 2 3]; % 横坐标
y = [1 4 9 16]; % 纵坐标
% 计算插值多项式系数
p = polyfit(x, y, length(x) - 1);
% 创建拉格朗日基函数
lfun = @(t) arrayfun(@(i) prod((t - x(1:i))./(x(i+1:end) - x(i))), 1:length(x), 'UniformOutput', false);
% 评估新点处的插值值
t = linspace(min(x), max(x)); % 新的x值范围
interpolated_y = arrayfun(lfun, t) * p;
% 绘制原始数据点和插值曲线
figure;
plot(x, y, 'o', 'MarkerSize', 10, 'LineWidth', 1, 'DisplayName', 'Data Points');
hold on;
plot(t, interpolated_y, '-', 'Color', 'red', 'DisplayName', 'Interpolated Curve');
% 添加标题和标签,并显示图例
xlabel('x');
ylabel('y');
title('Lagrange Interpolation Example in MATLAB');
legend show;
% 显示插值误差 (如果需要)
% error = interp1(x, y, t, 'spline') - interpolated_y; % 如果想比较与Spline插值的差异
```
这个例子演示了如何从给定的数据点使用拉格朗日插值法生成一个新的函数。执行这段代码后,会看到原始数据点和插值曲线的图形。
阅读全文