結果精度のコントロール
NDSolveやNMinimizeのような数値操作を行う場合,Mathematica はデフォルトにより機械数を使う.しかし,オプションWorkingPrecision->n とすることで n 桁精度の任意精度数が使えるようになる.
| Out[1]= |  |
| Out[2]= |  |
WorkingPrecisionを設定すると,これは通常計算結果の精度の上限を定義する.しかし,この制約条件内で Mathematica に目標精度と目標確度を指示することができる.多くの数値操作において目的精度と目的確度を数桁大きくするだけではるかに長い計算時間がかかるようになることは理解しておいた方がよい.それでもなお,高精度・高確度が確実に達成できることが重要な場合も多い.
精度と確度のコントロールオプション
| Out[3]= |  |
WorkingPrecisionを特定の値に設定するときは,Mathematica における数値操作のための各関数がPrecisionGoalとAccuracyGoalに特定のデフォルト設定を使っていなければならない.その典型的な例はNDSolveである.そのデフォルト設定はWorkingPrecisionにおける設定値の半分になっている.
目標精度と目標確度の両方が返される最終結果とそれらのさまざまなノルムや誤差推定に適用される.Mathematicaにおける数値操作の関数は通常指定の目標精度あるいは目標確度のどちらか一方に達した段階で結果を返す.どちらかの設定値がInfinityの場合はそうではない方だけが考慮される.
N[expr, n]で通常の数値評価を行う場合,Mathematica は結果が n 桁精度に達するように自動的に内部計算を調整する.しかし関数の数値操作を行う場合,実際にはWorkingPrecisionとPrecisionGoalをもっと明示的に指定する必要があるのが普通である.