fortran77中 积分用什么表示
2个回答
展开全部
可以自己写一个积分函数调用就够了,我可以帮你写一个简单的:C为积分下限,d积分上限,eps误差范围,s2返回值,f被积分的函数,n循环次数,这里f已经举了一个例子。
subroutine simp(c,d,eps,s2,f,n)
h=d-c
t1=h/2.*(f(c)+f(d))
n=1
5 s=0.0
do k=1,n
s=s+f(c+(k-0.5)*h)
end do
t2=t1/2.+h/2.*s
s2=t2+(t2-t1)/3.
if(n/=1) goto 20
15 n=n+n
h=h/2.
t1=t2
s1=s2
goto 5
20 if(abs(s2)<=1.) e=abs(s2-s1)
if(abs(s2)>=1.) e=abs((s2-s1)/s2)
if(e>=eps) goto 15
return
end
function f(x)
a=20.
b=10.
f=sqrt(a**2*(sin(x))**2+b**2*(cos(x))**2)
end
subroutine simp(c,d,eps,s2,f,n)
h=d-c
t1=h/2.*(f(c)+f(d))
n=1
5 s=0.0
do k=1,n
s=s+f(c+(k-0.5)*h)
end do
t2=t1/2.+h/2.*s
s2=t2+(t2-t1)/3.
if(n/=1) goto 20
15 n=n+n
h=h/2.
t1=t2
s1=s2
goto 5
20 if(abs(s2)<=1.) e=abs(s2-s1)
if(abs(s2)>=1.) e=abs((s2-s1)/s2)
if(e>=eps) goto 15
return
end
function f(x)
a=20.
b=10.
f=sqrt(a**2*(sin(x))**2+b**2*(cos(x))**2)
end
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询