在同一坐标系下,利用matlab的plot函数画出y=sinx,yn=泰勒展开求和的sinx图像,n=2,5,10
时间: 2024-09-18 19:00:43 浏览: 142
在MATLAB中,为了在同一坐标系下画出正弦函数`y = sin(x)`以及其泰勒展开求和的图像,首先我们需要定义一个范围广的`x`向量,然后分别计算`sin(x)`和它的泰勒展开和。这里我们以`n=2`, `n=5`, 和 `n=10`为例,使用有限次泰勒展开公式:
泰勒展开公式对于`sin(x)`的前`n`阶为:
\[ \sin(x) ≈ x - \frac{x^3}{3!} + \frac{x^5}{5!} - \ldots + (-1)^{n+1}\frac{x^{2n+1}}{(2n+1)!} \]
我们可以编写如下的MATLAB代码:
```matlab
% 定义x的范围
x = linspace(-pi, pi, 1000); % 生成1000个等差点,从-pi到pi
% 函数 y = sin(x)
y_sin = sin(x);
% 泰勒展开求和
n_values = [2, 5, 10]; % 指定的阶数
Taylor_series = zeros(size(x)); % 初始化存储结果的向量
for n = n_values
term = sign(x) .* x .^(2*n+1) ./ factorial(2*n+1);
Taylor_series = Taylor_series + term;
end
% 绘制图像
figure;
hold on; % 保持当前图形以便添加更多曲线
plot(x, y_sin, 'r', 'LineWidth', 1.5, 'DisplayName', 'y = sin(x)');
plot(x, Taylor_series, 'b-o', 'DisplayName', ['泰勒展开至n=' num2str(n_values)]);
title('Sin(x)及泰勒展开图像');
legend('show'); % 显示图例
xlabel('x');
ylabel('y');
阅读全文