使用Python实现拉马努金的三角函数正弦公式

10 篇文章 1 订阅

最近其实是在看《数学女孩》的书籍,看着看着觉得中间的故事情节确实是累赘了。切换一下思维,找来了之前看过的拉马努金的故事。看到了其中的公式之后,简单实用程序实现了一下,做一下简单的验证。

在我看到的文章中,有这么一个公式:


简单使用Python实现如下:

  1 #!/usr/bin/python 

  2 

  3 pi = 3.1415926

  4 

  5 def fac(n):

  6     val = 1

  7     i = 1

  8     while(i<=n):

  9         val *= i

 10         i += 1

 11     return val

 12 

 13 def sin(x):

 14     r_val = 0.0

 15     for n in range(20):

 16         r_val += (((-1) ** n) * (x ** (2 * n + 1)))/fac(2 * n + 1)

 17     return r_val

 18 

 19 

 20 print("sin(pi/2) = %f" % sin(pi/2))

 21 print("sin(pi/3) = %f" % sin(pi/3))

 22 print("sin(pi/4) = %f" % sin(pi/4))

 23 print("sin(pi/6) = %f" % sin(pi/6))

 24 


程序的实现并不是很准确,仅仅进行了20步的迭代。但是,通过后面四个比较熟悉的计算看结果发现,仅仅10步的迭代已经取得了比较准确的结果。程序的运行结果如下:

GreydeMac-mini:python_exp11 greyzhang$ python lmnj_sin.py 

sin(pi/2) = 1.000000

sin(pi/3) = 0.866025

sin(pi/4) = 0.707107

sin(pi/6) = 0.500000


数学,的确是一个复杂深奥并且充满奥妙的科目。表达方式反复,但是确实最我们理解的世界最本真的描述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值