toropippi / RK4ThreeBodyProblem

ルンゲクッタ法で3体問題を解くシミュレーションのプログラム。Unityで実装。WebGLで公開

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

・ルンゲクッタ法でピタゴラス3体問題をシミュレーションするプログラム(&WebGLサイト)
・時刻の刻み幅は可変で処理している。天体同士が近いときは刻むので重い
・天体同士の距離が1のときの時間刻み幅を任意に指定できる(デフォルト h=1/1024)
・精度は倍精度と疑似4倍精度を選べる
・ピタゴラス数?は32種類選べる

実行サイトはこちら
https://toropippi.github.io/RK4ThreeBodyProblem/

なぜ作った?
https://qiita.com/advent-calendar/2018/numerical_analysis
この数値計算 Advent Calendar 2018を見てルンゲクッタ法に興味がわき作った。

なぜUnity?
数値計算が普通程度にできて、画面描画が楽なやつで一番慣れているから
あとWebGLで気軽に公開できるのも面白いと思ったから

なぜGitHub?
本当は自分のFC2ホームページにWebGLを置きたかったけど1ファイル1MB制限でできず。
(このWebGL構成ファイルの中で最大のファイルは3MBある)
いろいろ調べてたらGitHub Pagesの機能に行き着いた。圧倒的感謝!

なぜ疑似4倍精度?
最初は倍精度で3,4,5の3体問題解いていたけど時間刻み幅を1/1024から1/1025にしただけで見た目上全く違う結果になったので、
時間刻み以外の問題がありそうだと思い倍精度の表現精度を疑った。
もし倍精度の精度が原因なら疑似4倍精度にしただけで解決するはず
→結果は予想通り4倍精度のときは、1/1024のときと1/1025のとき見た目上同じ結果が得られた。

About

ルンゲクッタ法で3体問題を解くシミュレーションのプログラム。Unityで実装。WebGLで公開

License:MIT License


Languages

Language:C# 100.0%