拉格朗日插值法matlab代码并绘制出插值多项式的图像要求代码是函数形式的便于调用
时间: 2023-12-03 11:46:33 浏览: 197
以下是拉格朗日插值法的 Matlab 代码,包括两个函数 `lagrange_interp` 和 `plot_lagrange_interp`:
```
function y = lagrange_interp(x, xdata, ydata)
% 拉格朗日插值法函数
% x:需要插值的点
% xdata:已知的 x 值
% ydata:已知的 y 值
n = length(xdata);
L = ones(n, length(x));
for i = 1:n
for j = 1:n
if i ~= j
L(i,:) = L(i,:) .* (x - xdata(j)) / (xdata(i) - xdata(j));
end
end
end
y = sum(ydata.*L);
end
function plot_lagrange_interp(xdata, ydata)
% 绘制拉格朗日插值多项式图像
% xdata:已知的 x 值
% ydata:已知的 y 值
xmin = min(xdata);
xmax = max(xdata);
x = linspace(xmin, xmax, 1000);
y = lagrange_interp(x, xdata, ydata);
plot(x, y, 'r', xdata, ydata, 'bo')
legend('插值多项式', '已知点')
end
```
使用方法如下:
1. 将上述代码保存为一个 `.m` 文件,例如 `lagrange_interp_plot.m`。
2. 在 Matlab 命令窗口中输入 `xdata` 和 `ydata`,表示已知的点的 x 值和 y 值。
3. 输入 `plot_lagrange_interp(xdata, ydata)`,即可绘制出插值多项式的图像。
例如,假设已知如下 5 个点:
```
xdata = [1, 2, 3, 4, 5];
ydata = [2.5, 3.6, 5.2, 7.3, 8.9];
```
则输入 `plot_lagrange_interp(xdata, ydata)` 即可得到插值多项式的图像。
阅读全文