
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
double型変数a、bに格納された有効桁数7桁の2つの測定データ(3<a<3.0001、2.9999<b<3)に対し、演算結果の有効桁数が最も失われる演算を選ぶ問題。ほぼ等しい2数の減算による桁落ちを理解する。
四則演算などで、有効桁数が失われる現象(桁落ち)が、どの演算で起きるかを判断する問題。
① 桁落ち=ほぼ等しい2つの数の引き算で、上の桁が打ち消し合い有効桁が減る。足し算・掛け算・割り算ではほとんど減らない
② a、bはどちらも約3でほぼ等しい → a−b は 0.0002 未満になり、7桁のうち上の4桁ほどが消える
③ ②
aは3に非常に近い(3より少し大きい)値、bも3に非常に近い(3より少し小さい)値で、a≈bである。ほぼ等しい2つの数の差をとると、上位の桁が打ち消し合い、下位の(誤差を含む)桁だけが残るため、有効桁数が大きく失われる(桁落ち)。a−bは、約0.0001〜0.0002程度の値で、元の7桁の有効桁数から、4桁ほど失われて、3桁程度しか残らない。したがって②が最も適切である。
桁落ち=ほぼ等しい2数の減算で、有効桁数が失われること。桁落ちの回避には、式の変形(有理化など)による減算の回避が有効。
キーワード: 桁落ち、有効桁数、数値計算、誤差、浮動小数点、減算、情報工学部門