人工衛星シミュレータ
学科の課題でつくりました。現在のところ、数値の羅列しか出力しないので、つまらないです。時間があったらDirectXやOpenGLを使ってビジュアルに表示できるようにしたいと思います。
ソースはここ
C++で書いたのですが、テンプレート機能に本当に助けられました。ルンゲクッタ積分がそのまま書けたのには涙もんです。
ルンゲクッタ積分[4次](strategy.hより)
template <class Function, class V1, class V2>
V2 nextByRK4(Function f, V1 x, V2 y, V1 h){
V2 k1, k2, k3, k4;
k1 = f(x, y) * h;
k2 = f(x + h/2, y + k1/2) * h;
k3 = f(x + h/2, y + k2/2) * h;
k4 = f(x + h, y + k3) * h;
return y + (k1 + k2*2 + k3*2 + k4)/6;
}
V2 nextByRK4(Function f, V1 x, V2 y, V1 h){
V2 k1, k2, k3, k4;
k1 = f(x, y) * h;
k2 = f(x + h/2, y + k1/2) * h;
k3 = f(x + h/2, y + k2/2) * h;
k4 = f(x + h, y + k3) * h;
return y + (k1 + k2*2 + k3*2 + k4)/6;
}
次の課題はカルマンフィルター(涙)。
コメント
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。