作者: 
phystw (phys.tw)   
2014-03-13 18:15:20B:積分上限是無限大
A:積分下限為有限整數假設是0好了
請問大家,積分上下限為無限的的狀況該怎麼處理?
我想~不應該隨便給一個很大的數值,結果會不一樣。
以下我引用彭國倫FORTRAN90的範例
積分上限給一個很大的值,
    A=0.0 ! 積分下限
    B=1.0E+06 ! 積分上限
積分函數 常數*Exp(-4*x)
    PROGRAM main
    !implicit none
    REAL Pi
    PARAMETER(Pi=3.1415926)
    REAL F, Cross_section_const
    EXTERNAL F, Cross_section_const !補充宣告說明F, Cross_section_const 是函式
    EXTERNAL SIMPSON_INT !補充宣告說明 SIMPSON_INT 是函式
    REAL A, B ! 積分上限
    REAL ANS ! 積分結果
    A=0.0 ! 積分下限
    B=1.0E+06 ! 積分上限
    ANS = SIMPSON_INT(A, B, F) * &
          SIMPSON_INT(A, B, Cross_section_const)! 常數做積分
    WRITE(*,*) '積分結果:', ANS
    PAUSE
    STOP
    END Program main
!C
!C  積分函數
    REAL FUNCTION F(X) ! 自訂函式宣告
    implicit none
    REAL X
    F = Exp(-4*X)
    RETURN
    END
    REAL FUNCTION Cross_section_const ! 自訂函式宣告! 常數做積分
    implicit none
    Cross_section_const = 5.0
    RETURN
    END
!C
!C  辛普森法積分函數
!C
    REAL FUNCTION SIMPSON_INT(A, B, FUNC)
    Implicit None
    REAL A, B
    REAL FUNC
    EXTERNAL FUNC
    INTEGER INTERVALS
    PARAMETER(INTERVALS=10000)
    REAL C
    REAL SUM
    REAL STEP
    REAL STEP2
    STEP = (B-A)/INTERVALS
    STEP2 = STEP*2
    SUM = FUNC(A) + FUNC(B) ! 給一個函數初始值
    DO C = A + STEP, B - STEP, STEP2
       SUM = SUM + 4*FUNC(C)
    EndDo
    DO C = A + STEP2, B - STEP2, STEP2
       SUM = SUM + 2*FUNC(C)
    EndDo
    SIMPSON_INT = SUM*STEP/3.0
    RETURN
    END