matlab 中 cos(x) 的泰勒级数
Taylor series for cos(x) in matlab
我有一个简单的问题。我想为 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)
但是那个代码没有给真result.Why?
您使用的泰勒级数需要x
以弧度表示。在 input
之后将 x
乘以 π/180
以将度数转换为弧度。您还需要进行多次迭代,而不仅仅是 x
。尝试 for i=1:1:10
因为阶乘增长非常快。
因为你只让你的for
循环运行从1到x
;可能你想让它 运行 一个特定的自然数,例如:
for i=1:1:100
获取泰勒级数的前 100 项。
此外,如果步长为 1,则可以省略步长,因此
for i=1:100
同样有效。
编辑:我假设您输入的是 x
弧度,对吗?
我有一个简单的问题。我想为 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)
但是那个代码没有给真result.Why?
您使用的泰勒级数需要x
以弧度表示。在 input
之后将 x
乘以 π/180
以将度数转换为弧度。您还需要进行多次迭代,而不仅仅是 x
。尝试 for i=1:1:10
因为阶乘增长非常快。
因为你只让你的for
循环运行从1到x
;可能你想让它 运行 一个特定的自然数,例如:
for i=1:1:100
获取泰勒级数的前 100 项。 此外,如果步长为 1,则可以省略步长,因此
for i=1:100
同样有效。
编辑:我假设您输入的是 x
弧度,对吗?