General::munfl

詳細

  • このメッセージは機械精度計算が機械アンダーフローを起こしたとき,つまり標準形で表せない機械数に対して出力される.
  • アンダーフローが生じると,結果の中の2進数値に実質的に切り捨てられるものが発生する.切り捨てられた桁数と,それらが値1を含んでいたかどうかによって,結果の確度がいくらか,またはすべて失われることも,あるいは全く失われないこともある.
  • すべての2進数が失われたら,結果は機械ゼロとなる.
  • このメッセージは機械(パック)アレーの操作に対しては生成されない.
  • 機械アンダーフローは任意精度数を使うことで回避できる.
  • Off[message]はメッセージが表示されないようにし,On[message] はメッセージが表示されるようにする(例: Off[General::munfl]).

例題

  (4)

この計算はアンダーフローを引き起こし,機械ゼロの出力を生成する:

任意精度数を使うことで小さい非零の結果が求められる:

$MinMachineNumberは標準形で表すことのできる最小の正の機械数である:

SetPrecisionを使って機械数を任意精度数に変換し,アンダーフローが生じないようにする:

機械数配列に対してメッセージは生成されない:

システムオプション"CheckMachineUnderflow"を使って機械アンダーフローの検出を無効にする:

このモードではアンダーフローメッセーは生成されない:

アンダーフロー検出を再び有効にする:

メッセージが生成されるようになる: