-1

我有一个简单的问题。我想为 cos(x) 写泰勒级数展开。 我写了那些代码

x=input('Please input an angle in degrees: ');
cosx=1;
for i=1:1:x
addterm = (-1)^i*(x.^(2*i))/factorial(2*i);
cosx = cosx + addterm;
end
 a=['The value of cosine of ',num2str(x),' degrees is ', num2str(cosx)];
 disp(a)

但是那个代码没有给出真实的结果。为什么?

4

2 回答 2

1

你使用的泰勒级数需要x用弧度表示。在input乘以xπ/180度数转换为弧度之后。此外,您需要进行多次迭代,而不仅仅是x. 尝试for i=1:1:10,因为阶乘增长非常快。

于 2015-02-27T18:42:37.713 回答
0

因为你只让你的for循环从 1 运行到x; 可能你想让它运行到一个特定的自然数,例如:

for i=1:1:100

得到泰勒级数的前 100 项。此外,如果步长为 1,您可以省略步长,所以

for i=1:100

也可以。

编辑:我假设您输入x的是弧度,对吧?

于 2015-02-27T18:42:52.157 回答