用matlab做出上述题目对应的代码
时间: 2024-02-03 07:02:18 浏览: 93
Matlab代码
好的,以下是使用 Matlab 进行实验的代码:
1. 对于函数 f(x) = 1/(1+25x*x)
```matlab
% 定义函数
f = @(x) 1./(1+25*x.^2);
% 定义插值节点数量
n = [2, 5, 10, 15];
% 等距插值节点
for i=1:length(n)
xi = linspace(-1, 1, n(i));
yi = f(xi);
xx = linspace(-1, 1, 1000);
yy = lagrange(xi, yi, xx);
subplot(length(n),1,i);
plot(xx, f(xx), 'b-', xx, yy, 'r-');
title(['n = ', num2str(n(i))]);
legend('f(x)', 'Ln(x)');
end
```
2. 对于函数 h(x) = x/(1+(x^4))
```matlab
% 定义函数
h = @(x) x./(1+x.^4);
% 定义插值节点数量
n = [2, 5, 10, 15];
% 等距插值节点
for i=1:length(n)
xi = linspace(-5, 5, n(i));
yi = h(xi);
xx = linspace(-5, 5, 1000);
yy = lagrange(xi, yi, xx);
subplot(length(n),1,i);
plot(xx, h(xx), 'b-', xx, yy, 'r-');
title(['n = ', num2str(n(i))]);
legend('h(x)', 'Ln(x)');
end
```
3. 对于函数 g(x) = arctanx
```matlab
% 定义函数
g = @(x) atan(x);
% 定义插值节点数量
n = [2, 5, 10, 15];
% 等距插值节点
for i=1:length(n)
xi = linspace(-5, 5, n(i));
yi = g(xi);
xx = linspace(-5, 5, 1000);
yy = lagrange(xi, yi, xx);
subplot(length(n),1,i);
plot(xx, g(xx), 'b-', xx, yy, 'r-');
title(['n = ', num2str(n(i))]);
legend('g(x)', 'Ln(x)');
end
```
4. 使用切比雪夫插值节点
```matlab
% 定义插值节点数量
n = [2, 5, 10, 15];
% 切比雪夫插值节点
for i=1:length(n)
xi = chebyshev(n(i), -1, 1);
yi = f(xi);
xx = linspace(-1, 1, 1000);
yy = lagrange(xi, yi, xx);
subplot(length(n),1,i);
plot(xx, f(xx), 'b-', xx, yy, 'r-');
title(['n = ', num2str(n(i))]);
legend('f(x)', 'Ln(x)');
end
```
其中,`lagrange` 函数是用来计算拉格朗日插值多项式的,`chebyshev` 函数是用来生成切比雪夫插值节点的。
阅读全文