[問題] 關於積分上下限為無限大
B:積分上限是無限大
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
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.127.84
推
03/13 19:34, , 1F
03/13 19:34, 1F
→
03/13 19:35, , 2F
03/13 19:35, 2F
推
03/13 19:50, , 3F
03/13 19:50, 3F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
2
3
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章