作者chris76930 (玩具)
看板Fortran
標題[問題] 請板上各位大大幫忙解惑
時間Sat Nov 21 23:04:53 2009
我寫的程式是要利用simpson's rule求(exp(x))*cos(4*x)的積分(從0到pi)
simpson's rule:(h/3)*[f(X0)+4*f(X1)+2*f(X2)+4*f(X3)+2*f(X4)+.......
+2*f(Xn-2)+4*f(Xn-1)+f(Xn)]
X0=a=0 , Xn=b=pi
f(X)=(exp(x))*cos(4*x)
h=(b-a)/2
----------------------以下為我的程式碼---------------------------------
program HW3a
real a1,a,b,sum,n,dx,h,fa,fa1,fb,t,c,fc
a1=0
b=3.141592654
fa1=exp(a1)*cos(4*a1)
fb=exp(b)*cos(4*b)
sum=0
a=0
sum1=0
c=0
do i=1,7
n=8
dx=(b-a)/n
h=(b-a)/6
if(i .eq. odd)then
a=a+i*dx
fa=exp(a)*cos(4*a)
sum=sum+4*fa
else if(i .eq. even)then
c=c+i*dx
fc=exp(c)*cos(4*c)
sum1=sum1+2*fc
end if
write(*,*)sum,sum1
end do
t=h*(sum+sum1+0.5*(fa1+fb))
r=t-v
write(*,*)"n=8,the integral=",t
write(*,*)"the error=",r
end
跑程式之後發現都是sum & sum1 都為0
想請問一下各位大大,
是不是紫色部分出了問題
因為我是分i為奇數或偶數來決定sum,sum1值
如果版主不妥的話,請告知我 我會自動刪文....
麻煩了!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.202.32
※ 編輯: chris76930 來自: 61.228.202.32 (11/21 23:06)
1F:推 terryys:寫程式請記得一開始要加implicit none, 這裡的問題是 11/22 00:14
2F:→ terryys:在單雙數的判斷上, 用餘數來看就好了 11/22 00:15
3F:→ agody:寫程式不一定要加implicit none,看個人習慣 11/22 16:42
4F:推 YCTzeng:大一教fortran 77的老師都習慣 implicit real*8(a-h,o-z) 11/23 12:04
5F:→ YCTzeng:後來我自己學fortran 90/95以後,都用implicit none 11/23 12:05