Fortran - 級数計算!

Updated:


今回は、 Fortran95 で級数を計算してみただけです。

0. 前提条件

  • LMDE2(Linux Mint Debian Edition 2; 64bit) での作業を想定。
  • GCC 6.3.0 (GFortran) でのコンパイルを想定。
  • Fortran には長けていないので、コードに誤りがあるかもしれない。

1. Fortran コードの作成

計算する級数は \(\displaystyle \sum_{i=1}^{N}\frac{1}{i}\cdot\frac{2}{i+1}\cdot\frac{3}{i+2}\) で、 \(N=1000\)としている。

File: series.f95

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
!****************************************************
! 級数計算
! : SUM((1/i) * (2/(i+1)) * (3/(i+2))) を計算する
!
! date          name            version
! 2017.04.10    mk-mode.com     1.00 新規作成
!
! Copyright(C) 2017 mk-mode.com All Rights Reserved.
!****************************************************
!

program series
  implicit none
  integer, parameter :: terms = 1000
  real, dimension(terms) :: x, y, z
  integer :: i

  do i = 1, terms
     x(i) = 1.0 /  i
     y(i) = 2.0 / (i + 1)
     z(i) = 3.0 / (i + 2)
  end do

  print *, 'ANSWER = ', sum(x * y * z)

end program series

2. コンパイル

$ gfortran series.f95 -o series

3. 実行

$ ./series
 ANSWER =    1.49998903

学生時代に使用した Fortran (当時は大文字の FORTRAN77 )を思い出すべく、簡単なコードを書いてみた次第です。(当時覚えたことはほとんど忘れているので、初心者レベル)

少し前に円周率計算を行ったことはありますが、いずれは、他の複雑な計算等も行ってみたいと考えております。

以上。





 

Sponsored Link

 

Comments