在MATLAB中,对于函数f(x)=sin(x),记fn(x)为f(x)在x=0处的n阶泰勒展开式,在同一个坐标系用不同颜色分别画出区间(-(2/3*pi),(2/3)*pi)内f(x)及fn(x)(n=1,3,5)的图形代码
时间: 2024-10-25 19:11:34 浏览: 26
在MATLAB中,你可以使用`taylor`函数生成泰勒级数,并结合`plot`函数来绘制不同阶数的泰勒展开式与原函数`sin(x)`。下面是一个示例代码片段:
```matlab
% 定义原函数 f(x) = sin(x)
x = linspace(-(2/3)*pi, (2/3)*pi, 400); % 创建等差数组,用于绘制曲线
y_f = sin(x);
% 计算不同阶数的泰勒展开式
n = [1, 3, 5]; % 需要展示的泰勒展开阶数
fn = cellfun(@(n)x .^ n .* diff(taylor(sin, x, 'Order', n - 1)), n, 'UniformOutput', false);
% 绘制原始函数
hold on; % 保持当前图形状态以便添加更多曲线
plot(x, y_f, 'b', 'LineWidth', 2, 'DisplayName', 'f(x) = sin(x)');
% 分别绘制各个泰勒展开式
for i = 1:length(n)
plot(x, fn{i}, 'Color', ['c' num2str(i)], 'LineWidth', 1.5, 'DisplayName', sprintf('Taylor Series (n=%d)', n(i)));
end
% 设置轴标签、图例和标题
xlabel('x');
ylabel('y');
title('Comparison of f(x) and its Taylor Series at x=0');
legend show;
% 关闭 hold,显示所有图形
hold off;
```
这段代码首先创建了一个在给定区间内的x值网格,然后计算了`sin(x)`的泰勒展开直到第三阶。接着,它分别绘制了原始函数以及每个泰勒展开式。最后,添加了适当的标注和图例。
运行此代码后,你将在同一个坐标系中看到`f(x)`(蓝色线)及其对应的三次和五次泰勒展开式(绿色和红色线)。注意,你需要将`'Order', n - 1`修改为你想要的阶数,因为`taylor`函数的阶数是从1开始计数的。
阅读全文