用Matlab实现的拉格朗日插值并用函数plot绘制函数及其插值函数的图形。
时间: 2023-12-18 14:05:51 浏览: 182
拉格朗日插值算法_拉格朗日插值;matlab_拉格朗日插值_
5星 · 资源好评率100%
好的,这是一个关于Matlab实现拉格朗日插值并用函数plot绘制函数及其插值函数的示例代码:
```matlab
% 定义原函数
f = @(x) sin(x);
% 定义插值节点
nodes = [-pi, -pi/2, 0, pi/2, pi];
% 计算拉格朗日插值多项式
syms x;
L = 0;
for i = 1:length(nodes)
li = 1;
for j = 1:length(nodes)
if j ~= i
li = li * (x - nodes(j)) / (nodes(i) - nodes(j));
end
end
L = L + f(nodes(i)) * li;
end
% 绘制函数及其插值函数的图形
xx = linspace(-pi, pi, 1000);
yy = f(xx);
yy_interp = eval(subs(L, x, xx));
plot(xx, yy, 'b-', xx, yy_interp, 'r--');
legend('原函数', '插值函数');
```
首先,我们定义了原函数 `f(x)`,这里以 `sin(x)` 为例。然后,我们定义了插值节点 `nodes`,这里选择了五个节点。接着,我们计算拉格朗日插值多项式 `L`,这里使用了 `syms` 符号计算工具箱。最后,我们使用 `linspace` 函数生成一些横坐标值,然后用 `plot` 函数绘制原函数及其插值函数的图形。
注意,在这里,我们使用了 `eval` 和 `subs` 函数,分别用于计算插值函数在给定横坐标处的纵坐标值和将符号表达式中的符号替换为实际的数值。
阅读全文