我試圖用fortran編寫一個exp(x)/ sin(x)的泰勒級數展開式,但是當我測試我的小數實現(N = 3和X = 1.0)並手動添加它們,結果不符合我的預期。手邊我計算了4.444 ..,並且我發現了程序7.54113。你能否檢查我的代碼並告訴我是否有任何問題。Fortran中exp(x)/ sin(x)的泰勒級數展開
這裏是在WolframAlpha的E 1 X/SIN(X)的展開公式:http://www.wolframalpha.com/input/?i=e%5Ex%2Fsin%28x%29
PROGRAM Taylor
IMPLICIT NONE
INTEGER ::Count1,Count2,N=3
REAL:: X=1.0,Sum=0.0
COMPLEX ::i=(0.0,0.1)
INTEGER:: FACT
DO Count1=1,N,1
DO Count2=0,N,1
Sum=Sum+EXP(i*X*(-1+2*Count1))*(X**Count2)/FACT(Count2)
END DO
END DO
PRINT*,Sum
END PROGRAM Taylor
INTEGER FUNCTION FACT(n)
IMPLICIT NONE
INTEGER, INTENT(IN) :: n
INTEGER :: i, Ans
Ans = 1
DO i = 1, n
Ans = Ans * i
END DO
FACT = Ans
END FUNCTION FACT
嘗試在Excel中編寫Taylor條件(或其他...),然後在Fortran中重寫它。這不是Fortran問題,而是理解如何將函數擴展到良好擴展的問題。 – Rook 2012-03-28 10:17:23
您是否試圖計算複雜或實數值情形的泰勒級數展開式? – talonmies 2012-03-28 11:09:23
'COMPLEX :: i =(0.0,0.1)'哎呀? – steabert 2012-03-28 16:24:01