设有区间-1到1的函数f(x)=1/(1+25*x*x),考虑在区间-1到1的等距划分,分点为xi=-1+2*i/n,i是0到n的整数,n是从2到10的整数,画出原函数f(x)及每一个n对应的拉格朗日插值多项式函数Ln(x)的图像,用matlab语言编写相应的代码
时间: 2024-10-14 11:14:58 浏览: 52
在MATLAB中,我们可以使用循环结构和`linspace`函数来生成分点,然后利用`polyfit`和`polyval`计算拉格朗日插值多项式。这里是一个示例代码:
```matlab
% 定义函数f(x)
f = @(x) 1 ./ (1 + 25 * x.^2);
% 初始化n值从2到10
n_values = 2:10;
% 循环遍历n并绘制图像
for n = n_values
% 等间距划分区间
x_points = linspace(-1, 1, n);
% 计算每个x点的函数值
y_points = f(x_points);
% 使用拉格朗日插值多项式公式
coefficients = polyfit(x_points, y_points, n-1);
Ln = @(x) polyval(coefficients, x);
% 绘制原函数和拉格朗日插值
figure;
plot(x_points, y_points, 'o', 'DisplayName', sprintf('f(x) (n=%d)', n));
hold on;
plot(x_points, Ln(x_points), 'r', 'LineWidth', 2, 'DisplayName', sprintf('L_%d(x)', n));
legend('show');
xlabel('x');
ylabel('f(x)');
title(sprintf('Original Function & Lagrange Interpolation (n=%d)', n));
end
```
这段代码会生成一系列图表,每一张对应一个不同的n值,展示原函数f(x)以及对应的拉格朗日插值多项式L_n(x)。`polyfit`函数用于拟合多项式,而`polyval`则用于评估多项式在给定x值上的函数值。
阅读全文