研究概要 |
シンプレクティック数値シミュレーション技術はハミルトン系の精密な軌道計算が可能な反面,一般的な陽的な数値スキームが発見されていないために計算コストが高いことが問題であった.そこで本研究では,シンプレクティック数値シミュレーションの高速化を図るため,シンプレクティック数値シミュレーションにより力学系の軌道を計算する際の軌道上での大域的な計算誤差を推定し,複数の推定結果からシミュレーションを実行する全ての初期値に対する計算誤差推定値を表すエラーマップを生成することで効率良く計算する手法を開発した.計算誤差の推定は,ハミルトン系においては保存量が存在することを利用し,保存量の初期値からのずれが数値計算の誤差によることからずれの大きさを正規化することにより推定する.そして一定の割合で初期値を変化させ複数回のシミュレーションを実行することで複数の誤差推定値を算出し,それらを線形に補間することで必要な全ての初期値についての推定誤差を得てエラーマップとする.高速化は,数値シミュレーションの計算精度と計算速度を決定する要素として数値計算の刻み幅に着目し,刻み幅を適切に調整することで達成される.つまり,エラーマップを参照し,計算誤差が大きいと推定される初期値に対しては刻み幅を小さく設定して精密に計算し,計算誤差が小さいと推定される初期値に対しては刻み幅を大きく設定して高速に計算する.本年度では以上のアルゴリズムに基づきPCクラスタの上で実装し,エラーマップを使用しない場合に比べ処理が3倍から5倍の高速化が達成されたことを確認した.実装はオブジェクト指向言語であるC++を用いたシンプレクティック数値シミュレーション専用のクラスライブラリとして開発されており,多種多様な力学系の解析を行う際に短期間で効率的にコードを開発可能である.
|