我写了一个简单的Fortran程序计算高斯常数:如何计算任意高精度的数字?
program main
implicit none
integer :: i, nit
double precision :: u0, v0, ut, vt
nit=60
u0=1.d0
v0=sqrt(2.d0)
print *,1.d0/u0,1.d0/v0
do i=1,nit
ut=sqrt(u0*v0)
vt=(u0+v0)/2.d0
u0=ut
v0=vt
print *,1.d0/u0,1.d0/v0
enddo
end program main
结果0.83462684167407308后4次迭代。无论如何,使用算术几何平均法有更好的结果吗?人们如何计算诸如pi,欧拉常数等数字的许多数字?每个无理数都有一个特定的算法吗?
Fortran中我要做的就是用数学来这些常量来评估然而,许多数字,我需要/想,再切和这些数字粘贴到我的源文件中的一个参数的定义。严肃地说,准确地计算这些数字到高精度是一项艰巨的任务。如果你真的想自己做,开始阅读这里:http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic – 2013-03-05 14:48:38
根据你的链接,内存是主要限制和Fortran并不适应这样的计算。谢谢您的帮助。 – user1824346 2013-03-05 15:10:59
这个页面 - http://myweb.lmu.edu/dmsmith/FMLIB.html - 表明你从维基百科文章中得出了一个不准确的结论。谷歌会帮你找到更多的图书馆去学习。 – 2013-03-05 15:25:32