[問題] 請板上各位大大幫忙解惑

看板Fortran作者 (玩具)時間14年前 (2009/11/21 23:04), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
我寫的程式是要利用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)

11/22 00:14, , 1F
寫程式請記得一開始要加implicit none, 這裡的問題是
11/22 00:14, 1F

11/22 00:15, , 2F
在單雙數的判斷上, 用餘數來看就好了
11/22 00:15, 2F

11/22 16:42, , 3F
寫程式不一定要加implicit none,看個人習慣
11/22 16:42, 3F

11/23 12:04, , 4F
大一教fortran 77的老師都習慣 implicit real*8(a-h,o-z)
11/23 12:04, 4F

11/23 12:05, , 5F
後來我自己學fortran 90/95以後,都用implicit none
11/23 12:05, 5F
文章代碼(AID): #1B206O_6 (Fortran)