我寫了一個簡單的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