A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
1年ほど前に、放物線運動を解析したことがあるので、コメントさせていただきます。
プログラムのことを考える前に、物体の動きを良く理解する必要があります。物体の動きを理解していないと、作ったプログラムの動作が正しいかどうか確認することが出来なくなってしまいます。今回に限らず、技術計算の場合、作ったプログラムが正しく動作しているかどうかは、そのプログラムの基本となる数式通りに計算が行われているかどうかで判断することになります。
さて、物体が空気中で運動するときは、速度の二乗の抵抗を受けます。物体の運動はx軸とy軸の成分に分けて計算しますが、どちらの運動も速度の二乗の抵抗を受けます。空気の抵抗を無視した場合は、x軸方向の力は常に0でしたが、今回は空気の抵抗を考慮していますので、x方向の運動に対しても速度の二乗の抵抗を受ける運動として計算します。
y方向は重力と速度の二乗の力を受けます。重力は常に大地に向かう向きで働きますが、空気抵抗は物体の速度が0に近づくように働きます。
以上が物体の運動を考える上で必要な力です。これらの力を使って物体の運動方程式を作ります。
m(dVx/dt)=-kVx^2 ・・・・・・・・・・(1)
m(dVy/dt)=-kVy^2 -mg (上昇時)・・・(2)
m(dVy/dt)=kVy^2 -mg (降下時)・・・(3)
但し、kは粘性係数
y方向は上昇と降下でそれぞれ違っの式になってしまうことに注意してください。
この式をオイラー法またはルンゲ・クッタ法で数値的に計算することになります。上昇時は式1と式2を使って計算します。物体が頂点に達したら、即ち、Vy=0になったら式(2)を式(3)代えて計算を続けます。
物体が降下するとき、Vyは一定の速度に達します。これは重力と空気の粘性抵抗の大きさが等しくなるためです。そのときの速度は以下のとおりです。
Vy(終端速度)=sqrt(mg/k)
さて、プログラムで上記の計算を行わせて得られた結果が正しいことを証明するには、上記の運動の解析解と比較するのが一番です。
上記の運動の解析解は長い計算を必要としますので割愛します。しかし、計算の一部は、例えば、書籍「力学 新しい視点にたって」戸田ほか共訳 培風館に有ります。
なお、空気抵抗が速度に比例すると考えた場合は、上記の運動方程式が少し違ってきます。(簡単になります)この計算の一部は、例えば、書籍「物理入門コース1 力学」戸田著 岩波書店 に有ります。
放物線運動は解析解が得られるので、それと比較することで、数値計算が正しいかどうか確認できます。私は、表計算でこれらの運動方程式を計算したことがありますが、あまりお勧めしません。但し、このような技術計算が初めての場合は、運動方程式を理解するためには、必要です。しかし、今後も、運動方程式の数値解析を行うのであれば、簡単なシミュレーションソフト(市販)を用意した方が良いと思います。
No.1
- 回答日時:
いわゆる微分方程式を解く必要があります。
コンピュータで解くには微小時間ごとの状態を計算することになります。
回転していないボールとして
ある瞬間のボールの
X座標,Y座標,
X方向の速度,Y方向の速度,
X方向の空気抵抗,Y方向の空気抵抗,Y方向の引力,
X方向の移動量,Y方向の移動量
等を例えば1ミリ秒単位で計算してボールの軌道を求めます。
エクセルでも可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
なぜオーバーフローになるので...
-
関数を使わないで日付の計算を...
-
C言語についての質問です。 ル...
-
バッチファイルでウインドウを...
-
matlabの行列計算の最大サイズ...
-
駅間の距離を求め運賃計算するJ...
-
べき乗の計算が遅い理由
-
モジュラス103の計算とは何でし...
-
fortran πについて
-
スレッド処理からダイアログを...
-
流体解析のプログラムの作成で...
-
時間(ミリ秒を含む)の引き算
-
エクセルVBAでゴールシークの C...
-
自分の声が遅れて聞こえてくる...
-
正しい五十音順について
-
あるプログラムのコマンドライ...
-
C++ で、「)」が必要 というエ...
-
VBAにてメール作成した際、一部...
-
Excelで4096点以上のFFTの方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
EXCELなどで「返す」という表現
-
matlabで計算終了
-
排他的論理和 BCC(水平パリテ...
-
変化させるセルが変化しない
-
モジュラス103の計算とは何でし...
-
傾いた四角形内の範囲の条件式
-
VBAで関数をつくる
-
[急募]Pythonについてです。
-
数値計算の高速化 (cos, sin, exp)
-
C言語についての質問です。 ル...
-
切り上げたい
-
DLL(VC++で作った)で稼動中の...
-
CとFORTRANの計算速度はどちら...
-
趣味で「乗換案内」みたいなソ...
-
CGIの実行権限(ディスク容...
-
エクセルで特定のセルのみを任...
-
functionを含んだプログラムを...
-
時間差を求める
おすすめ情報