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