- ベストアンサー
ボールの飛ぶ軌道
プログラムで3次元上でボールが飛んでいくときの座標を計算したいのですが、そういう時はこの式を使えばいいよ、と言ったような式ってあるのでしょうか? (できれば、ボールの回転とか空気抵抗とか入っている詳しいやつがあればうれしいです…) 学校の先生に微分方程式を解けばいいとか言われたんですが、わかりませんでした。。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
1. 簡単に、質点の運動で近似するなら、No.2の解答にあるように、抵抗の項を含む運動方程式を解けばいいです。数値解の方法はいろいろありますが、一般的なのはルンゲクッタ法でしょう(方程式をいきなり解いてくれるソフトも何種類か市販されていますが、高価です)。回転も考えたいのであれば、回転による軌道ズレの大きさを、例えば回転数と揚力の関係を別に作り、抵抗の項を含む運動方程式で解いた解に、時間を追って補正を加えていけばいいでしょう。 2. 本格的に、回転や抵抗を含めた計算をする場合、座標をボールの中心にとり、その周りの流体方程式を解き、揚力や抵抗を求めて、重心の運動方程式に組み込みます。流体方程式は「質量、運動量、エネルギーの保存則」の3つです(流体力学の本を御覧下さい)が、流れの影響を現す項があるので、嫌らしい形をしています。微分方程式の数値解を求めるときは、微分を差分に直して解くのですが、流れの影響を現す項のために、単純にプログラムを組んだのでは、数値不安定を起こして、でたらめな答えになってしまいます。それを、避けるためにいろいろな解法が工夫されています。また、数値計算では、連続体をとびとびの点や棒またはシートで近似しているので、どうしても実際の動きとは違いが出てしまいます。その影響を小さくするためには、流体方程式に人工粘性項というものをつけ加えて対処します。(詳しくは、数値解析に関する本をお読み下さい)。 3. 3次元の流体計算は、形にもよりますが、パソコンでは時間がかかり過ぎます。
その他の回答 (3)
kusakabe66です。 はい、βは空気抵抗の比例定数です。 説明を忘れてました。すみません。
お礼
分かりました。 ありがとうございます。
質点に働く空気抵抗ならばそう難しくありません。 たいていは進行方向に対して-βvくらいの値を運動方程式に加えるだけです。速度が大きくなると-βv^2くらいになることもあります(ここで出てきた微分方程式を解けばよい)。また、βは形や空気に対する粘性などでやや変わりますが、そう大きな値ではないと思います。 ただし、これが質点ではなく剛体ならば回転も考えないといけなくなるので解くのが非常に面倒になります。こちらだと流体力学の知識も必要になりますね。 よほど凝らない限りは質点として近似的に扱ってもかまわないと思いますけどね。
お礼
返事どうもです。 すみません、βとは空気抵抗を表した記号のことですか?
- tocoche
- ベストアンサー率36% (65/180)
> 微分方程式を解けばいい というのは、時間毎の変化量を把握すればよいということです。 空気抵抗がない場合、水平方向の速度には変化がないので X = X + Vx * dt Y = Y + Vy * dt Vz = Vz - g * dt : Z = Z + Vz * dt の繰り返しだけで、軌道をプロットできます。 空気抵抗があると計算は困難です。(私はできません)
お礼
回答ありがとうございます。 上の式でなんとなく分かったような気がします。 実際プログラムでも動きました。 しかし、空気抵抗となるとやっぱり難しいですか。 (ぜんぜん式とか分からないのに、かなりの精度の軌道を計算させなければならないのですが、やっぱり厳しいでしょうか…) とにかく、もうちょっといろいろ調べてみようと思います。ありがとうございます。
お礼
流体が入るとかなり大変そうなのですね…。 実際、なるべく早く計算を終わらせなくてはならないので、流体はあきらめようかと思います。。 それでは、ルンゲクッタ法というのを調べてみようかと思います。どうもです。