python使用三角迭代计算圆周率PI的方法
作者:不吃皮蛋
这篇文章主要介绍了python使用三角迭代计算圆周率PI的方法,实例分析了Python迭代算法的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了python使用三角迭代计算圆周率PI的方法。分享给大家供大家参考。具体如下:
方法1:
复制代码 代码如下:
# Calculating PI using trigonometric iterations
# FB36 - 20130825
import math
x = 1.0
y = 1.0
z = 1.0
w = 1.0
v = 1.0
u = 1.0
for i in range(30):
x = math.sin(x) + x
y = math.cos(y) + y
z = math.cos(z) + math.sin(z) + z
w = math.cos(w) - math.sin(w) + w
v = math.cos(v) * math.sin(v) + v
u = math.cos(u) / math.sin(u) + u
print i
print x, y * 2.0, z * 4.0 / 3.0, w * 4.0, v * 2.0, u * 2.0
print
# FB36 - 20130825
import math
x = 1.0
y = 1.0
z = 1.0
w = 1.0
v = 1.0
u = 1.0
for i in range(30):
x = math.sin(x) + x
y = math.cos(y) + y
z = math.cos(z) + math.sin(z) + z
w = math.cos(w) - math.sin(w) + w
v = math.cos(v) * math.sin(v) + v
u = math.cos(u) / math.sin(u) + u
print i
print x, y * 2.0, z * 4.0 / 3.0, w * 4.0, v * 2.0, u * 2.0
方法2:
复制代码 代码如下:
# Calculating PI using trigonometric iterations
# FB36 - 20130901
import math
def sin2(x):
return ((math.e ** complex(0.0, x) - math.e ** complex(0.0, -x)) / 2.0).imag
def cos2(x):
return ((math.e ** complex(0.0, x) + math.e ** complex(0.0, -x)) / 2.0).real
x = 1.0
y = 1.0
x2 = 1.0
y2 = 1.0
for i in range(5):
x = math.sin(x) + x
y = math.cos(y) + y
x2 = sin2(x2) + x2
y2 = cos2(y2) + y2
print i, x, x2, y * 2.0, y2 * 2.0
# FB36 - 20130901
import math
def sin2(x):
return ((math.e ** complex(0.0, x) - math.e ** complex(0.0, -x)) / 2.0).imag
def cos2(x):
return ((math.e ** complex(0.0, x) + math.e ** complex(0.0, -x)) / 2.0).real
x = 1.0
y = 1.0
x2 = 1.0
y2 = 1.0
for i in range(5):
x = math.sin(x) + x
y = math.cos(y) + y
x2 = sin2(x2) + x2
y2 = cos2(y2) + y2
print i, x, x2, y * 2.0, y2 * 2.0
希望本文所述对大家的Python程序设计有所帮助。