記事内に広告が含まれています

結局「誤差」ってなんだ?~数値計算編~

物理・数学・技術
スポンサーリンク
  • 広告を含む場合があります

こんな人に読んでもらいたい記事です

・「数値計算の誤差ってどういうこと?」

・数値計算をする上で「誤差」の少ない計算結果を出したい!

という人

結論

数値計算はそもそも解析的に計算できないから数字に直して?計算する手法で
どうしても誤差を含む計算です.

とはいえ数値計算と現実の結果を比較してできるだけ誤差が小さくしたいもの.

そんなとき考えるべき計算「誤差」の要素について整理しました.

数値計算で「誤差」につながるものを挙げてみました.

(1)モデル誤差(物理モデル,数学モデル)
(2)データ誤差(経験的計測でわかるデータ,以前の計算結果)
(3)打ち切り(離散化)誤差
(4)計算誤差(計算機の誤差)

数値計算には誤差がつきもの

こんにちはりゅういえんじにあでです.

微分積分が入っていたり,三角関数が含まれる方程式を解くときにはどうしても
解析的にとくことができず,数値計算に頼る以外にない場合があります.

数値計算で物事を考えるとき,
主な「誤差」の原因として起こりうる要素を整理してみました.

より正確な,精度が高い計算をするために誤差が生じるポイントを整理してみました.

支配的な項目(影響が大きい項目)からつぶしていけるとよいですね.

数値計算をやってみたい,と思ったらまずは既存のコードを自分で書いてみるのが
いいと思っています.

以下の本が参考になるかもしれません.

 

数値計算「誤差」の原因

数値計算で「誤差」として出てきてしまう主な原因を以下に挙げます.

(1)モデル誤差(物理モデル,数学モデル)

モデル誤差とは系のモデル化に伴い生じる誤差で,計算の手順に入る以前の誤差と言えます.

物理モデルのおけるモデル誤差は,系の物理的な特徴の単純化によるものです.

例えば,高校物理で出てくる運動方程式も,物体を単純な質点としてとらえた結果立式できるものです.

仮に現実の物体の運動が質点の運動とみなせなければ,現実と乖離した挙動を占めす
(誤差が発生する)ことになります.

数学モデルは実体を数式による表現で示そうとするわけですが,
その現実と式の差がモデル誤差になります.

(2)データ誤差(経験的計測でわかるデータ,以前の計算結果)

計算に用いるデータ(数値)の誤差によって生じる計算誤差のことを指します.

誤差があるデータとはなんぞやと思うかもしれませんが,具体的に示すと以下のようなものがあります.

・経験的計測によってわかるデータ(数値)

重力加速度,粘性係数,減衰係数など具体的に計測をして得られた数値のことです.

そもそも計測には誤差が含まれているので,誤差を含む数値を利用して計算すると誤差が出るのはある意味当然ですね.

・以前の計算によるデータ(数値)

数値計算では何度も同じ計算を繰り返す手法が多いですが,
以前の計算結果を次の計算をするときに利用する場合があります.

以前の計算結果に誤差があれば当然その計算結果を利用する次の計算にも影響を与えるのはなんとなくわかるでしょう.

(3)打ち切り誤差・離散化誤差

計算手法(アルゴリズム)を用いて得られる結果と真の結果との差のことを指します.

特に微積分の数値計算で,連続な式を離散化することで生じる誤差のことを「離散化誤差」などと言ったりします.

計算アルゴリズムによって生じる誤差が変わるわけですから,
ある計算アルゴリズムを採用した人の能力?センス?をによって大小が変わる誤差といえると思います.

関数をある一点の導関数で表現される項の無限和で表すことを「テイラー級数展開」などと言いますが,この級数の計算を途中で切って(無視して)扱ったりします.

(そもそも無限の計算なんてできないから,影響の少ないところまで計算してあとは無視しよう,という発想ですね)

この無視した計算部が打ち切り誤差というわけです.

(4)計算誤差(計算機の誤差)

そもそも計算機(コンピュータなど)の性能などで決まってしまう誤差です.

「丸め」とか「情報落ち」,「桁落ち」などと言ったりします.

「丸め」はざっくりいうと四捨五入,切り捨ての処理のことで,
計算機で扱える桁まで値が変わることを指します.

「情報落ち」は「積み残し誤差」などとも言います.

2数の加算減算するとき,2数の絶対値の違いが有効数字桁数以上の場合,
絶対値の小さいほうの数値は計算結果に影響を与えない.というものです.

例えば
654321 + 0.654321 = 654321.654321
となるのが正しい足し算ですが,有効数字6桁であることを考えると,
この加算の計算結果は
「654321」
になり,小数点以下の値が関与しないことになります.

おわりに

数値計算で出てくる「誤差」ってどんなものが原因になるか?
という視点で整理してみました.

計算式によってどの誤差が顕著に響いてくるのかが変わってくるので,
数値計算するときはその誤差の要因まで気を配れるとよいですね.

ありがとうございました.

 

タイトルとURLをコピーしました