wayne 发表于 2010-8-19 12:49:01

x+sin(x)在Pi处泰勒展开,就可以知道楼主的迭代思想了

wayne 发表于 2010-8-19 12:57:36

有点乱,不知道是先有鸡还是先有蛋

wayne 发表于 2010-8-19 13:50:08

14# gxqcn

sin(x)是可以并行计算的,我现在就是双线程计算
sin x = x-x^3/3!+x^5/5!-...(-1)k-1*x2k-1/(2k-1)!+... (-∞
abiao 发表于 2010-8-18 19:52 http://bbs.emath.ac.cn/images/common/back.gif
你要算到Pi的十万位的话,你的Sin(x)级数就应该至少 算到 406859次幂。

abiao 发表于 2010-8-19 20:22:06

我是判断 叠加上去的数小到一定程度便终止循环,也就是说超过精度范围了

wayne 发表于 2010-8-20 10:36:55

24# abiao

只能说 你的算法是可行的,但是,有很多的算法比你的更高效。
http://en.wikipedia.org/wiki/Numerical_approximations_of_%CF%80
比如,这个收敛速度就奇快:
http://upload.wikimedia.org/math/6/6/8/6681cd21f3ca9bf13248a87d4202e06a.png

wayne 发表于 2010-8-20 10:40:04

还有不少算法,计算指定的精度,不需要判断,直接计算到指定的项

abiao 发表于 2010-8-20 19:32:34

我奇怪的是这么简单的公式,效率也不低,为什么没人发现?尽去整那些复杂的公式?

wayne 发表于 2010-8-20 20:41:49

我是判断 叠加上去的数小到一定程度便终止循环,也就是说超过精度范围了
abiao 发表于 2010-8-19 20:22 http://bbs.emath.ac.cn/images/common/back.gif
x+ sinx的收敛速度的确挺快的,并不需要计算多少次。
我实际验算了一下,初始值x=3,精度设定为1万位,10万位,都只需迭代计算sin十次,即可达到对应的精度
======================================
至于sin的计算,这个可以直接用斯特林公式算出 指定精度位数的sin值需要计算到多少项,可以免去判断。

liangbch 发表于 2010-8-21 10:37:14

关键是如何高效的计算sin(x),我在10楼就提出这个问题,到楼主并没有给出令人信服的解答。

wayne 发表于 2010-8-22 10:51:38

29# liangbch
楼主的思路好像说了:
就是sin级数展开,判断 叠加上去的数小到一定程度便终止循环。
============================================
页: 1 2 [3] 4 5
查看完整版本: 我想的圆周率计算法,1万位十进制精度计算时间在数秒至数十秒左右