fortran66のブログ

fortran について書きます。

【メモ帳】積分


\begin{align}
I&=\int_0^1{dt\over(t^2+1)\sqrt{t^2+2}}\\
&(t=\sqrt2\tan x, dt=\sqrt2(1+\tan^2x)dx, 1=\sqrt2\tan a)\\
&=\int_0^a{\sqrt2(1+\tan^2x)\over(2\tan^2x+1)\sqrt{2\tan^2x+2}}dx\\
&=\int_0^a{{\sqrt2\over\cos^2x}\over\left({2\over\cos^2x}-1\right){\sqrt2\over\cos x} }dx\\
&=\int_0^a{\cos x\over2-\cos^2x}dx\\
&=\int_0^a{\cos x\over1+\sin^2x}dx\\
\end{align}

ここで \tan y = \sin x, [ y=\arctan(\sin x) ]とおくと、

\begin{align}
(1+\tan^2y)dy&=\cos x dx\\
(1+\sin^2x)dy &=\cos x dx\\
dy&={\cos x\over 1+\sin^2x}dx
\end{align}
となるので、求めたい積分I=\int_0^b dy=b となる。ただし  \tan b = \sin a なので

\begin{align}
1&=\sqrt2\tan a\\
{1\over\sqrt2}&={\sin a \over\cos a}\\
{1\over2}&={\sin^2a\over(1-\sin^2a)}\\
1-\sin^2a&=2\sin^2a\\
3\sin^2a&=1\\
\sin a&={1\over\sqrt3} \,\,(>0)\\
\end{align}
よって、
I=b=\arctan(\sin a)=\arctan{1\over\sqrt3}={\pi\over6}
となる。

数値積分 台形公式+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)

Modern Fortran Explained (Numerical Mathematics and Scientific Computation)

  • 作者: Michael Metcalf,John Reid,Malcolm Cohen
  • 出版社/メーカー: Oxford University Press, U.S.A.
  • 発売日: 2011/05/08
  • メディア: ペーパーバック
  • この商品を含むブログを見る