B13 数値計算誤差 努力目標 理解して覚える 技術士試験の問題からは必要最小限の引用にとどめる。(問題)が記されている部分はその引用である。 問題および解答は日本技術士会のホームページより必要に応じて入手してください。 技術士第一次試験の問題 問題番号が赤字のものは、ボーナス問題 H27年 1−2−1 H24年 1−2−1 H19年 T−2−4 H27 1−2−1 正答: D (解答) コンピュータ内では0.01を2進数で処理しているため、厳密には0.01ではない。これが原因で答えが1ちょうどとならない可能性がある。これを丸め誤差という。 丸め誤差 数値を、どこかの桁で端数処理(切り上げ・切り捨て・四捨五入・五捨六入・丸めなど)をしたときに生じる誤差。 H24年 1−2−1 正答: C (解答) @ オーバーフローやアンダーフローが発生することがあります。無限大に近い計算は無理ですよね。 A (参考)に示しているように、加減算でも発生します。 B 桁落ちが起こり桁数が減少することがある。 C 正しい。繰り返しの多い計算では誤差を小さくするため、倍精度計算がよく用いられる。 D 100000.01 は8桁と、7桁を超えているので、誤差が発生する。 (参考) 浮動小数点(Wikipedia)より抜粋 浮動小数点を用いても、以下のような誤差が発生するとあります。 浮動小数点数は、浮動小数点方式による数のことで、もっぱらコンピュータの数値表現において、それぞれ固定長の仮数部と指数部を持つ、数値の表現法により表現された数である。 オーバーフロー/アンダーフロー 演算結果が指数部で表現できる範囲を超える場合があるが、最大値を超えた場合はオーバーフロー、絶対値の最小より小さい場合はアンダーフローという。 桁落ち 絶対値がほぼ等しい異符号の数値同士の加算後や、同符号でほぼ等しい数値同士の減算の後、正規化で有効数字が減少すること。 情報落ち 絶対値の非常に小さな値と絶対値の非常に大きな値との浮動小数点数の加減算を行うときは、まず指数を絶対値の大きい方に揃える桁合わせを行ない、それから加減算を行なう。そのため絶対値の小さな値は仮数部が右側に多くシフトされて下位の桁の部分が反映されずに結果の値が丸められて情報が欠落する。情報欠落ともいう。 積み残し 情報落ちが繰り返し起こる場合を言う。 丸め誤差 仮数部の桁数が有限であるため、収まらない部分の最上位桁で四捨五入(2進法では0捨1入)して仮数部の桁数に丸めることによる誤差。 H19年 T−2−4 正答: @ 理解して覚えましょう。 (解答) 丸め誤差はコンピュータで扱う数値が有限桁のビットで表されることによる誤差である。 打ち切り誤差は本来は無限項から成る式を有限項の式で置き換えることによる誤差である。 問題一覧表へ戻る |