急,高手帮我看看这个fortran求积分的程序哪错了,为什么运行不出来结果.
急,高手帮我看看这个fortran求积分的程序哪错了,为什么运行不出来结果.program f915implicit noneexternal f1,f2,f3double precision a,b,simpswrite(*,*)'a,b'read(*,*)a,bwrite(*,*)simps(a,b,1d-7,f1)write(*,*)simps(a,b,1d-7,f2)write(*,*)simps(a,b,1d-7,f3)end programfunction simps(a,b,eps,f)implicit nonedouble precision fdouble precision a,b,simps,epsdouble precision h,s1,s2,d,rc,rpdouble precision xinteger m,ih=(b-a)/2.0s1=(f(a)+f(b)+4*f(a+h))*h/3.0rc=f(a+h)rp=f(a)+f(b)m=2dorp=rp+2*rcx=a-h/2.0rc=0.0do i=1,mx=x+hrc=rc+f(x)enddos2=(rp+4.0*rc)*h/6.0d=s2-s1if(abs(s2)>=1.0)d=d/s2if(abs(d)==0) s1=s2h=h/2.0m=m+menddosimps=s2end function simpsfunction f1(x)implicit nonedouble precision x,f1f1=1.0/(1.0+x)end function f1function f2(x)implicit nonedouble precision x,y,f2y=1.0/3.0f2=0.5*((1.0+x*x)**y-(1.0-x*x)**y)end function f2function f3(x)implicit nonedouble precision x,f3f3=4.0/(1.0+x*x)end function f3
最佳回答
这是想写一维变步长Simpson积分吧1、你给代码里有一个do后面什么都没有写啊,这肯定运行不出来的。2、if(abs(s2)>=1。0)d=d/s2if(abs(d)==0) s1=s2 这两句不太明白想表达什么。我把simps(a,b,eps,f)修改了下,应该可以运行出来了,LZ看下××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××function simps(a,b,eps,f)implicit nonedouble precision fdouble precision a,b,simps,epsdouble precision h,s1,s2,d,rc,rpdouble precision xinteger m,ih=(b-a)/2。0s1=(f(a)+f(b)+4*f(a+h))*h/3。0rc=f(a+h)rp=f(a)+f(b)m=2d=eps+1。0do while(d。ge。eps)rp=rp+2*rcx=a-h/2。0rc=0。0do i=1,mx=x+hrc=rc+f(x)enddos2=(rp+4。0*rc)*h/6。0d=abs(s2-s1)s1=s2h=h/2。0m=m+menddosimps=s2end function simps
最新回答共有2条回答
-
2026-04-01 08:45:53愤怒的萝莉
回复这是想写一维变步长Simpson积分吧1、你给代码里有一个do后面什么都没有写啊,这肯定运行不出来的。2、if(abs(s2)>=1。0)d=d/s2if(abs(d)==0) s1=s2 这两句不太明白想表达什么。我把simps(a,b,eps,f)修改了下,应该可以运行出来了,LZ看下××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××function simps(a,b,eps,f)implicit nonedouble precision fdouble precision a,b,simps,epsdouble precision h,s1,s2,d,rc,rpdouble precision xinteger m,ih=(b-a)/2。0s1=(f(a)+f(b)+4*f(a+h))*h/3。0rc=f(a+h)rp=f(a)+f(b)m=2d=eps+1。0do while(d。ge。eps)rp=rp+2*rcx=a-h/2。0rc=0。0do i=1,mx=x+hrc=rc+f(x)enddos2=(rp+4。0*rc)*h/6。0d=abs(s2-s1)s1=s2h=h/2。0m=m+menddosimps=s2end function simps
热门文章
- 康达学院专转本五年制
- 高考一个考场分ab卷吗
- not only but also用法
- 某物体做自由落体运动,从释放开始计时,则物体在前2s内的平均速度为______m/s,物体下落2m时的速度大小为______m/s.
- 三角函数公式大全表格
- 地理中考必背知识点2022
- 2013-2014学年小学六年级科学上学期期末考试试卷及答案
- 人教版2014-2015学年小学五年级英语第二学期期中教学质量检测试卷及答案
- 【Linux驱动开发】设备树详解(二)设备树语法详解
- 别跟客户扯细节
- 在别的城市买房子能落户吗
- 卖房前要把装修贷还完吗
- 高中政治教学提高教学效果的方法探究
- “互联网+”背景下的初中英语课堂教学改革与创新策略研究
- 2022年终止合同范本
- 租房合同范本范文
- 如何挑选土豆
- 如何挑选土鸡
