1

このかなり有用な CodeProject の記事では進取的で非常に有益な人物が、ニュートン ミサイルがニュートン ターゲットに命中するために必要な計算を行いました (入力を少しいじるだけで、宇宙船間のコースと速度を一致させるためにも機能します)。

過去にこれを使って書いたものの 1 つは、互いにミサイル (ブロック) を発射する最大数百の宇宙船 (ブロック) 間の戦闘です。かなりきれい。

ただし、これは純粋なニュートン クラフトでのみ機能し、ほとんどの宇宙シミュレーターでの飛行に注意を払っている人 (または投機的な FTL 手法が好きな人) が言うように、ニュートンだけが飛行する方法ではありません。

そして、この素晴らしいコンピュータ ハードウェアをすべて備えたコンピュータ プログラムは、たとえば p+v*t+0.5*a*t*t = P+V*t+0.5*A* t*t を計算し、t と A (または、追跡者が左側にいるか右側にいるかによって a) を与える方程式を吐き出します。

Algebrator は私が見つけたものに最も近いものです (MATLAB はそれをエースにできるかもしれませが、2,100 ドルの予算はありません) が、1 列、2 行のベクトル「行列」に置き換えると窒息します。(私は5ではなく4.2を持っています)

それで - 星の間で大虐殺をするのを手伝ってくれませんか? 私は、MiB を倒すために出てくる邪悪なエイリアンの支配者ではありません。約束してください! :D

編集:解の方程式を探しているわけではありません。これらの解の方程式を教えてくれるソフトウェアを探しています。

ありがとう。

4

1 に答える 1

1

あなたが何をしようとしているのか、まだ完全にはわかりません。コード作成時に代数方程式を解きたい場合は、Wolfram Alpha が非常に便利です。 2F2+t%5E2+%3D%3D+q1+%2B+v1+t+%2B+a1%2F2+t%5E2%2C%7Ba1%2Ct%7D%5D .

実行時に代数方程式を解きたい場合、それは一般的に非常に難しい問題です。あなたが何をしようとしているのかについて詳細を教えていただければ、いくつかの優れた無料パッケージをお勧めできるかもしれません。

編集: 解決しようとしている可能性のある問題の例:

Q: 初期位置 q0、初期速度 v0、一定加速度 a0 の宇宙船と、初期位置 q1 のミサイルが与えられた場合、ミサイルが最終的に宇宙船と衝突するマグニチュード M のミサイル速度 v1 を見つけたいと考えています。

A: 連立方程式を解こうとしている

q0 + v0 t + 1/2 a0 t^2 = q1 + v1 t
v1 . v1 = M^2

ベクトル v1 の場合、衝突時間 t も不明です。私が知る限り、この系を閉じた形式で解くのは非常に困難です。Wolfram Alpha はそれを詰まらせており、Mathematica でさえ苦労しています。ただし、数値的な方法で攻撃するのは比較的簡単です。そのために、最初の方程式を 2 番目の方程式に代入して、まず t を解きます。

(q0 - q1 + v0 t + 1/2 a0 t^2) . (q0 - q1 + v0 t + 1/2 a0 t^2) == M^2 t^2

これは既知の係数を持つ t の 4 次多項式です。

[(q0 - q1).(q0-q1)] + [2 (q0 - q1).v0] t + [v0.v0 + (q0-q1).a0 - M^2] t^2 + [v0.a0] t^3 + [1/4 a0.a0] t^4 = 0

括弧内はすべて、既知の量から計算できるスカラーです。この 4 次の根を見つけるには、ブラック ボックスの根ソルバーを使用します (Jenkins-Traub を強くお勧めします。C++ コードは www.crbond.com/download/misc/rpoly.cpp で入手できます。Java と Fortran のバージョンも、 'ネット)。

ルートが得られたら、正の最小のものを選択し (これは、ミサイルができるだけ早く宇宙船に衝突する方向に対応します)、それを最初の方程式に代入し、v1 を自明に解きます。

EDIT2:

Q: 初期位置 q0、初期速度 v0、一定加速度 a0 の宇宙船と、初期位置 q1、初期速度 v1 のミサイルが与えられた場合、最終的にミサイルが衝突するマグニチュード M のミサイル加速度 a1 を見つけたいと考えています。宇宙船と。

A: この問題は最初の問題とよく似ています。あなたの方程式は今

q0 + v0 t + 1/2 a0 t^2 = q1 + v1 t + 1/2 a1 t^2
a1 . a1 = M^2

a1 と t は不明です。繰り返しますが、これらの方程式を組み合わせて、既知の係数を持つ t の 4 次方程式を得ることができます。

[(q0 - q1).(q0-q1)] + [2 (q0 - q1).(v0-v1)] t + [(v0-v1).(v0-v1) + (q0-q1).a0] t^2 + [(v0-v1).a0] t^3 + [1/4 a0.a0 - 1/4 M^2] t^4 = 0

再び、Jenkins-Traub を使用して根を見つけ、最小の正の根を最初の方程式に代入して、a1 を解きます。

于 2011-09-02T07:19:09.037 に答える