[問題] function的問題

看板Fortran作者 (bsyoung)時間13年前 (2011/05/18 19:58), 編輯推噓0(005)
留言5則, 4人參與, 最新討論串1/2 (看更多)
這個程式是要用泰勒展開式去求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

05/18 21:23, , 1F
talor=talor+1/fac(i)*(x**i) <==打錯了吧?
05/18 21:23, 1F

05/18 21:33, , 2F
還有你展開式的零次方項沒有算到
05/18 21:33, 2F

05/19 07:29, , 3F
試跑了一下你的程式...並沒有你說的nan的問題耶
05/19 07:29, 3F

05/19 08:50, , 4F
talor沒有先歸零
05/19 08:50, 4F

05/19 15:46, , 5F
謝謝 原來是加個taylo=1就好了 謝謝來信的高手!
05/19 15:46, 5F
文章代碼(AID): #1DqxHEel (Fortran)
討論串 (同標題文章)
文章代碼(AID): #1DqxHEel (Fortran)