作者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