错误的泰勒系列错误图matlab

时间:2013-03-19 19:40:52

标签: matlab

我必须编写一个得到x(向量)和数字(N)的函数,并将绘制cos(x)的误差减去其taylor序列,直到N(例如N = 3,因此函数为abs(cos(x) ) - (1-X ^ 2/2 +的x ^ 4/4))。 这是代码:

function question2 (x,N)
sum=0;
s=1;
for i=0:2:N;
 sum=sum+((s*(x).^(i))/factorial(i));
 s=s*(-1);
end
y=abs(cos(x)-sum);
plot(x,y)
end

图表是这样的:incorrect graph

但那应该是僵尸!它必须是单调递减的,并且到最后几乎是线性的。感谢

1 个答案:

答案 0 :(得分:0)

我相信随着参数N的值增加,您预计会看到错误减少。但是,正如许多人指出的那样,您的代码将错误绘制为x的函数。随着您远离泰勒级数展开(在本例中为0),这个误差预计会增加。

要返回第一点,并显示错误如何随N变化,以下脚本会针对各种N值调用您的函数。结果如下所示,确认随着N增加,近似误差会下降。 / p>

x = linspace(0, pi, 10); % x grid
% plot
figure;
question2(x, 0);  % 1 term (just the constant)
hold on;
question2(x, 2);  % 2 terms 
question2(x, 4);  % 3 terms
question2(x, 6);  % 4 terms
xlabel('x');
ylabel('Approximation error');
legend({'1 term', '2 terms', '3 terms', '4 terms'}, 'Location', 'Best');

enter image description here