作者joe1121111 (bsyoung)
看板Fortran
標題[問題] function的問題
時間Wed May 18 19:58:03 2011
這個程式是要用泰勒展開式去求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
1F:→ suzuke:talor=talor+1/fac(i)*(x**i) <==打錯了吧? 05/18 21:23
2F:→ suzuke:還有你展開式的零次方項沒有算到 05/18 21:33
3F:→ qaz692:試跑了一下你的程式...並沒有你說的nan的問題耶 05/19 07:29
4F:→ latinboy:talor沒有先歸零 05/19 08:50
5F:→ joe1121111:謝謝 原來是加個taylo=1就好了 謝謝來信的高手! 05/19 15:46