next up previous
: 機械精度 : プログラム : プログラム

誤差の評価

数値計算から信頼できる結果を得るには誤差の評価が重要である。誤差 には演算が有限回であることによるもの(打ち切り誤差)と、計算機が有限の桁数 (実数は無限桁!)しか扱えない為に起こる誤差がある。ここでは後者について考 える。例として次のプログラムを扱う。

課題1

      integer i,n
      real eps,sum
c
      read(*,*) eps,n
      sum=0.0
      do i=1,n
         sum=sum+eps
      end do
      write(*,1000) "n*eps=",n*eps,"sum=",sum
c
 1000 format(a,f12.7,a,f12.7)
c
      end
無限精度の計算機ならば、$N*eps=sum$ であるが、実際には そうはならない。 $\epsilon=1.0e-7, N=10000000$ として見よ。 $N$ を変えるとどうなるか試してみよ。





Kiyohide Nomura 平成16年5月11日