Cos的Maclaurin扩展不能正确逼近

时间:2013-06-29 03:39:51

标签: wolfram-mathematica

我正在尝试使用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.

3 个答案:

答案 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开始