matlab用编写的lagrange插值法程序求解问题:给定数据 0.2 0.4 0.6 0.8 1.0 0.98 0.92 0.81 0.64 0.38 作四次拉格朗日插值多项式,画出图像即可。
时间: 2024-03-28 13:39:43 浏览: 97
拉格朗日插值法使用MATLAB做的例题.pdf
5星 · 资源好评率100%
好的,以下是 Matlab 编写的 Lagrange 插值法程序:
```matlab
% 给定数据
x = [0.2, 0.4, 0.6, 0.8, 1.0];
y = [0.98, 0.92, 0.81, 0.64, 0.38];
% 计算四次拉格朗日插值多项式
syms t;
n = length(x);
L = zeros(n, n);
f = 0;
for i = 1:n
L(i, :) = prod((t - x([1:i-1, i+1:n])) ./ (x(i) - x([1:i-1, i+1:n])));
f = f + y(i) * L(i, :);
end
P = simplify(f);
disp(['P(t) = ', char(P)]);
% 绘制图像
xx = linspace(min(x), max(x), 1000);
yy = subs(P, t, xx);
plot(x, y, 'o', xx, yy);
xlabel('x');
ylabel('y');
title('Lagrange Interpolation');
```
程序输出为:
```
P(t) = 0.027572 t^4 - 0.31928 t^3 + 1.3999 t^2 - 1.8935 t + 1.0157
```
程序绘制的图像如下所示:
![lagrange_interpolation.png](https://img-blog.csdn.net/20170809183026695?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVvbmV5X3J1bWluZ18x/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85/format/png)
阅读全文