数値解析の話

数値解析とは

数値解析は、数値計算によって解析学の問題を近似的に解く数学の一分野です。自然科学、工学、あらゆる分野に応用されています。この技術が発達したことでコンピュータ上で仮想的な実験を行うことができ、大きな実験装置を動かす手間やコストを省くことができるようになりました。


数値解析の例

数値解析の目標は難しい問題への近似解を与えることです。次の例があります。
・材料力学:自動車の衝突シミュレーション
・流体力学:ロケットの軌道計算、航空機の性能予測
・電磁気学:電気機器の設計や電磁環境の評価
・量子力学:原子や分子の動きや反応を解析
・統計学 :データ解析やモデリングを行い投資・株を予測


数値解析の長所と短所

数値解析の長所として次のものがあります。
・現状のデータから将来の予測や過去の再現が可能
・計測や観測が難しい現象を検討可能
・パラメータを変えて計算を繰り返すことで、現象を支配する因子の選別や影響・感度を評価可能

逆に短所は
・あくまで数学モデルから導かれるもので現実と一致するとは限らない
・初期条件や境界条件の設定で解が大きく異なる
・計算機上の実装には様々な制約が加わる(空間の非等方格子表現、桁落ちや精度落ち、離散化による誤差)



数値解析に必要なもの

特に、数学、特に微分方程式は、数値解析の根幹です。極論すると数値解析とは、現象を微分方程式で表現し、それを与えられた初期条件・境界条件で解くことです。大きなシステムは、それだけ多くの微分方程式が組み合わさって表現されます。
■1.計算機・情報技術の知識・技能
OS、プログラミング言語、アルゴリズム、データ可視化技術

■2.数学の知識・思考力
微積分(微分方程式)、線形代数、ベクトル解析

■3.対象に関する知識
個々のプロセスとその仕組み

■4.対象に関する情報(データ)
パラメータ、初期条件、境界条件



数値解析の難点

例として、金属加工の加工面解析を挙げます。金属加工には
・工具の回転運動
・被削材の把持と治具の設置
・加工中の振動やたわみ
・バリや磨耗、欠損の発生
・切屑の飛散
・工具寿命による工具取り換え
などのプロセスがあり、これらは材質や寸法、振動特性、温度特性、現場条件などに強く結び付いており、個々のプロセス(例えば「工具たわみ」)を丹念に数式で表現して組み合わせれば、一応、加工面状態が再現できます。

しかし、例えば工具たわみについて数学モデルができたとしても、実際のたわみがどのような条件で発生するのか(工具と被削材の接触状態、切屑の付着による加工面の変化)までは計算機は面倒を見てくれません。ユーザーが現場の情報を得て計算機に与える必要があります。ところがこの工具と被削材の接触状態の推定は現実的には大変に難しいものです。

仮にパラメータが完璧に決まったとします。それでも、数値解析は、現在の状態から時々刻々の変化を計算して積み上げることで現象の変化を追跡するものですから、出発点だけは人間が与える必要があります(=初期条件。この例では、
・どの位置から加工が始まるか
・工具、被削材はどのような形状か
・加工温度、工具の把持状態はどうか
ということです。それを知るのは大変なことです。仮に全て揃ったとしても、それだけで数値解析の結果は正しいとは言えません。数値解析では連続的な時空間の上で数学モデルを厳密に解くかわりに、細かい時間・空間間隔の刻みで解こうとします。例えば被削材の形状は連続的に変わるのに、計算機では、計算の都合が良い、ワンカットおきに計算したりします。それを離散化と言います。これが誤差の原因になります。

以上のように諸々の弱点はあっても、たとえば「工具寿命はいつ来るか」というような、産業的に重要なアセスメントに対して、有効な答えを出すことができるのは数値解析だけです。摩耗によって工具刃先の形状が変化し、切削性が低下するという複雑な相互作用も、数学モデルを計算機で丹念に解くことで再現できます。


数値解析の流れ

上記の例からも、なんとなく理解できるかもしれませんが、一般的な数値解析の流れは次の通りです。

■①数理化・単純化
まず、知りたい現象を単純化して「数理モデル」の形にします。

■②離散化・近似
そのモデルの多くは複雑な微分方程式の形で表わされ、実際に計算することは不可能です。そこで離散化や近似によりコンピュータで計算可能な形に変形します。なお離散化とは、連続問題を近似的に離散問題に置き換えることです。例えば、微分方程式を解く場合が挙げられます。数値的に微分方程式を解くためには、データの数が有限でなければ扱うことができません。そこで微分方程式の定義域が連続なものであっても、その中から有限個の点を適切に代表点として選び、元の微分方程式をそれらの点での値についてだけの関係に置き換えて扱います。

離散化に用いる要素や節点の数、場の変数の評価点の数が小さくなれば、最終的に得られる代数方程式の規模も小さくなります。線形・非線形問題を問わず、汎用の離散化解析手法では支配方程式を最終的に連立一次方程式に帰着させ、この方程式の解から近似解を構成するため、連立方程式の元数の大小は解析時の計算負荷(使用メモリ、計算時間)に直結します。

■③計算
そうして初めて、式をコンピュータで解いて数値解を出すことができます。ただやはり数値解を直接求めることは難しく、そこで次の代表的解法があります。


数値解析の種類

■ニュートン法
ある関数の根を求めるために用いられます。ある点における接線とx軸との交点を新しい点とし、その新しい点においても再度接線を引いていき、収束するまでこの計算を繰り返すことで根を求めます。

ニュートン法の一手順の概念図。xn よりも xn+1 の方が f(x)=0 の解 x についてより良い近似を与えている.(出典: https://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%88%E3%83%B3%E6%B3%95)

■二分法
二分法とは、区間を狭めながら、ある関数が0となるxの範囲(つまり根)を求めます。区間において、中点の符号を判定し、負であれば新しい区間は小さい方から中点まで、正であれば新しい区間は中点から大きい方までとして区間を狭めていきます。ある一定誤差の範囲内に収まるまで繰り返し計算します。

2分法。 赤線は解の存在する範囲。この範囲を繰り返し1/2に狭めていく。(出典:https://ja.wikipedia.org/wiki/%E4%BA%8C%E5%88%86%E6%B3%95)

■オイラー法
オイラー法は、常微分方程式を解く方法の1つです。十分に小さい刻み幅で差分を取ることにより、近似的に解を得ることができます。常微分方程式に初期条件を与え、初期条件からわずかに値を増加させた点の値を計算し、さらに計算された点を元にわずかな値を増加させた点の値を計算します。その操作を繰り返します。y(xn+1)=y(xn)+Δx×y′(xn)、もしくはy(xn+1)=y(xn)+Δx×y′(xn+1)で表され、前者のように、次のy(xn+1)を求める計算がy(xn+1)を含まない単純な式で表される場合の解法を陽解法と呼び、後者のように現在値を求めるために過去の数値だけではなく、現在や未来の数値を必要とする解法を陰解法と呼びます。

オイラー法



ルンゲ・クッタ法
ルンゲ・クッタ法はオイラー法の派生で、傾きを調整して真の値に近づけます。オイラー法では曲線の傾きの変化が大きい場合には予測精度が落ちる、あるいは刻み幅を相当細かくしないと精度を維持できない等の問題があります。ルンゲ・クッタ法ではオイラー法で算出した傾きを含めて合計4つの手法で傾きを算出し、重みづけして平均を取ることで最終的な予測値としています。

ルンゲ・クッタ法

■モンテカルロ法
確率的な手法を用いて数値解析を行う手法です。乱数を用いて得られた何らかのパラメータを関数に代入し、関数の性質を確率的に評価します。繰り返し計算を行うことで、より正確な関数の特性を評価することができます(大数の法則)。実行時間を犠牲にすれば誤答する確率をいくらでも小さくすることができます。具体例として有名なのが円周率の近似値を計算するアルゴリズムです。半径1の円内にランダムに点を打ち、その点のうち円内に入るものの割合を計算することで円周率を求めることができます。モンテカルロ法は原子物理学や液体、気体中の粒子の解析、粉体の混合などに適用されます。

参考文献
https://ja.wikipedia.org/wiki/数値解析

いいなと思ったら応援しよう!

この記事が参加している募集