2015-02-08 31 views
-1

通过评估方程pi = arctan(1/5) - arctan(1/239),写出一个将返回pi的近似值的函数,其中arctan是从数学库。即时通讯使用Python 3.4.1python中的arctan(x)函数

我使用的功能是:

def wallis(pairs): 
    acc = 1 
    num = 2 
    for apair in range(pairs): 
     leftterm = math.atan(0.2) 
     rightterm = math.atan(0.0041) 

     acc = leftterm - rightterm 

     return pi 

,但没有奏效。这很混乱。

+1

你能否阐述一下“但它没有工作” ...要的是什么,你有什么已经有了等等? - 还有在那个函数中定义的'pi'的位置...... – 2015-02-08 04:39:22

+0

你不会在任何地方计算pi。你说“返回pi”,但你永远不会有像“pi = ...”这样的表达式,所以它不是一个变量。 – 2015-02-08 04:40:32

+0

@AdamHughes由于OP没有包含* exact *错误或合适的回溯 - 它在全球范围内确实存在(似乎不太可能)......但是在这里 - 说,没有进一步的信息,不可能得出结论:) – 2015-02-08 04:42:07

回答

1

我不知道你在哪里得到那个公式;

它看起来像你试图做瓦利斯的公式,pi = (2/1) * (2/3) * (4/3) * (4/5) * ...和切换到Machin的公式,pi == 16 * atan(1/5) - 4 * atan(1/239)中游。

from math import atan 

def approx_pi(): 
    return 16 * atan(1/5) - 4 * atan(1/239) 

然后

>>> approx_pi() 
3.1415926535897936 
+0

看到的东西是我做了完全相同的事情,但我导入错误的数学库。我从我的python教科书中得到了这个公式。这是沃利斯公式。 – Cb173 2015-02-08 21:41:36

+0

@CassandraBrown:“完全相同”? _真的吗?我计算了六个关键性的错误,而不是涉及你如何输入atan ......而这是不是Wallis的公式。 – 2015-02-08 22:29:28