ここで ]とおくと、
となるので、求めたい積分は となる。ただし なので
よって、
となる。
- 作者: Paul J. Nahin
- 出版社/メーカー: Springer
- 発売日: 2014/08/28
- メディア: ペーパーバック
- この商品を含むブログを見る
数値積分 台形公式+Richardson 補外
実行結果
0.5235988 0.5235969 0.5235909 pi/6= 0.5235988 続行するには何かキーを押してください . . .
プログラム
module m_mod implicit none real, parameter :: pi = 4 * atan(1.0) contains pure real function f(x) real, intent(in) :: x f = 1.0 /((x*x+1.0)*sqrt(x*x+2.0)) end function f pure real function trapez(func, x0, x1, n) result(s) procedure(f) :: func real , intent(in) :: x0, x1 integer, intent(in) :: n real :: h, y(0:n) integer :: i h = (x1 - x0) / n forall(i = 0:n) y(i) = func(x0 + i * h) s = h * ( y(0) / 2 + sum(y(1:n-1)) + y(n) / 2 ) end function trapez end module m_mod program test use m_mod implicit none integer, parameter :: n = 2**6 real :: s0, s1, x0, x1 x0 = 0.0 x1 = 1.0 s0 = trapez(f, x0, x1, n * 2) s1 = trapez(f, x0, x1, n ) print *, (4 * s0 - s1) / 3, s0, s1, 'pi/6=', pi / 6.0 end program test
(微修正H30.6.5)
Modern Fortran Explained (Numerical Mathematics and Scientific Computation)
- 作者: Michael Metcalf,John Reid,Malcolm Cohen
- 出版社/メーカー: Oxford University Press, U.S.A.
- 発売日: 2011/05/08
- メディア: ペーパーバック
- この商品を含むブログを見る