看板 Fortran 關於我們 聯絡資訊
這個程式是要用泰勒展開式去求e^n 這個程式所運算出的結果是錯的 我想了好久還是不知道錯在哪 program exp implicit none real*8 x, y, i, fac, taylor write(*,*) '輸入次方' read(*,*) x write(*,*) '展開式要幾項' read(*,*) y write(*,*) taylor(x,y) stop end c------------------------------- real*8 function taylor(x,y) real*8 x, y, i, fac i=1 do while (i .le. y) talor=talor+1/fac(i)*(x**i) i=i+1 以上是用第一個function用loop去求 write(*,*) taylor end do return end c--------------------------- real*8 function fac(i) real*8 i, y, i fac=1 do y=1,i fac=fac*y end do 這個是用來算階乘的程式 當我用x=1 y=10去算 結果跑出-NaN = =" 麻煩高手可以解答一下哪邊寫錯了嗎 return end -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.114.61
suzuke:talor=talor+1/fac(i)*(x**i) <==打錯了吧? 05/18 21:23
suzuke:還有你展開式的零次方項沒有算到 05/18 21:33
qaz692:試跑了一下你的程式...並沒有你說的nan的問題耶 05/19 07:29
latinboy:talor沒有先歸零 05/19 08:50
joe1121111:謝謝 原來是加個taylo=1就好了 謝謝來信的高手! 05/19 15:46