编制matlab程序,实现函数f(x)=1/(1+x^2)在区间[-5,5]上分别采用10次、15次、20次等距节点差值公式,观察察龙格现象,要求龙格现象图像在同一窗口
时间: 2024-03-19 19:44:21 浏览: 134
以下是实现该程序的 Matlab 代码:
```matlab
% 定义函数
f = @(x) 1./(1+x.^2);
% 定义区间和节点数
a = -5;
b = 5;
n1 = 10;
n2 = 15;
n3 = 20;
% 定义等距节点
x1 = linspace(a, b, n1+1);
x2 = linspace(a, b, n2+1);
x3 = linspace(a, b, n3+1);
% 计算差值多项式
p1 = polyfit(x1, f(x1), n1);
p2 = polyfit(x2, f(x2), n2);
p3 = polyfit(x3, f(x3), n3);
% 计算插值结果
y1 = polyval(p1, x1);
y2 = polyval(p2, x2);
y3 = polyval(p3, x3);
% 计算理论值
x = linspace(a, b, 1000);
y = f(x);
% 计算龙格现象
R1 = abs(y - polyval(p1, x));
R2 = abs(y - polyval(p2, x));
R3 = abs(y - polyval(p3, x));
% 绘制图像
plot(x, R1, 'r', x, R2, 'g', x, R3, 'b');
legend('n=10', 'n=15', 'n=20');
title('龙格现象图像');
xlabel('x');
ylabel('R(x)');
```
运行该程序,即可得到在同一窗口下绘制的龙格现象图像。
需要注意的是,在实现过程中,我们使用了 `polyfit` 函数计算差值多项式,使用了 `polyval` 函数计算插值结果,使用了 `linspace` 函数生成等距节点。此外,我们还计算了理论值和龙格现象,并使用 `plot` 函数绘制了图像。
阅读全文