24小时热门版块排行榜    

查看: 1722  |  回复: 7
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

heyansheng12345

银虫 (小有名气)

[交流] 【求助】求助FORTRAN求积分程序

A等于0到X上的积分,用Fortran写出来的程序。
回复此楼

» 收录本帖的淘帖专辑推荐

Deform模拟

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

senlia

木虫 (小有名气)

★ ★
0112358(金币+2,VIP+0):辛苦了,欢迎常来 9-25 09:37
program f915
                implicit none
                external f1,f2,f3
                double precision a,b,simps
                write(*,*)'a,b'
                read(*,*)a,b
                write(*,*)simps(a,b,1d-7,f1)
                write(*,*)simps(a,b,1d-7,f2)
                write(*,*)simps(a,b,1d-7,f3)
        end program

        function simps(a,b,eps,f)
                implicit none
                double precision f
                double precision a,b,simps,eps
                double precision h,s1,s2,d,rc,rp
                double precision x
                integer m,i
                h=(b-a)/2.0
                s1=(f(a)+f(b)+4*f(a+h))*h/3.0
                rc=f(a+h)
                rp=f(a)+f(b)
                m=2
                do
                        rp=rp+2*rc
                        x=a-h/2.0
                        rc=0.0
                        do i=1,m
                                x=x+h
                                rc=rc+f(x)
                        enddo
                        s2=(rp+4.0*rc)*h/6.0
                        d=s2-s1
                        if(abs(s2)>=1.0)d=d/s2
                        if(abs(d)                         s1=s2
                        h=h/2.0
                        m=m+m
                enddo
                simps=s2
        end function simps

        function f1(x)
                implicit none
                double precision x,f1
                f1=1.0/(1.0+x)
        end function f1

        function f2(x)
                implicit none
                double precision x,y,f2
                y=1.0/3.0
                f2=0.5*((1.0+x*x)**y-(1.0-x*x)**y)
        end function f2

        function f3(x)
                implicit none
                double precision x,f3
                f3=4.0/(1.0+x*x)
        end function f3
function simps(a,b,eps,f)表示函数f(x)在(a,b)上积分 其它几个程序和函数是用来调试的
不知是否对你有用
书到用时方恨少, 天涯何处无芳草.
6楼2009-09-24 09:05:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主


heyansheng12345(金币+1,VIP+0): 9-23 16:15
数值积分程序到处都是,可以找一下Numerical Recipes 的FORTRAN版。
2楼2009-09-22 23:02:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

★ ★
wangen994(金币+1,VIP+0):辛苦了,欢迎常来 9-23 08:29
heyansheng12345(金币+1,VIP+0): 9-23 16:16
3楼2009-09-22 23:05:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

heyansheng12345

银虫 (小有名气)

谢谢,如果能给出小段的就最好了,
4楼2009-09-23 16:17:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见