next up previous
Next: 近似値と誤差 Up: 計算機言語 I 第2回 はじめての Previous: プログラムの解説

計算機イプシロン

繰り返しを使った例として計算機イプシロンを求めてみましょう. 計算機イプシロンとは $ 1.0 + \epsilon > 1.0 $ となる最小の正の数 $\epsilon$ のことです. もちろん, 実数の場合は, (有理数でも)上の式をみたす $\epsilon$ はいくらでも0 に近くとれるので意味がありません. (数学では最小値は存在しないというのでした.)

計算機の場合, 実数型はトビトビの値を取りますから, 上記の$\epsilon$ が定まります. 次のプログラムを 2-4.c という名前で入力し, コンパイルして実行してみて下さい. 処理内容については, 各自考えて下さい.

/* File name 2-4.c           */
/* Machine epsilon           */
#include <stdio.h>

main()
{
    int         i;      
    double      e;      /* The machine epsilon */

    e = 1.0;        

    for (i = 0; 1.0 + e > 1.0; i++) {
        e /= 2.0;
    }

    printf("machine epsilon = 2^(%d)\n", -(i-1));
}



Next: 近似値と誤差 Up: 計算機言語 I 第2回 はじめての Previous: プログラムの解説