我正在尝试使用Maclaurin系列近似来制作近似Cos(2)的函数。到目前为止,我已经做了一个'Do'循环,但我的近似值是-1。
我的功能:
valX = 2
result = 0
numTerms = 5
i = 0
Do[
Print[
SetPrecision [
result =
result + (-1)^i*
(valX^(2*i)/Factorial[2*i]), 10]], {i, numTerms}]
结果:
-2.000000000
-1.333333333
-1.422222222
-1.415873016
-1.416155203 //decimal is correct but I'm off by -1.
答案 0 :(得分:1)
由于Mathematica是1索引的,因此Do[..., {i, numTerms}]
循环的范围是1到numTerms。你可能想从0到numTerms。试试这个,改变在最后一行:
valX = 2
result = 0
numTerms = 5
i = 0
Do[
Print[
SetPrecision [
result =
result + (-1)^i*
(valX^(2*i)/Factorial[2*i]), 10]], {i, 0, numTerms}]
答案 1 :(得分:0)
实际上我只是想通了。必须要做的是,我必须通过从指数中减去来补偿公式的递归。
正确公式:
result =
result + (-1)^i-1*
(valX^(2*i-2)/Factorial[2*i-2])
答案 2 :(得分:0)
如果从Pi / 2开始扩展,收敛也会更快,即:valX = 2-Pi / 2,循环从i = 1开始