[ 1 ] ~導入~
基本的に数学自体はそんなに好きではない僕ですが、数学をふんだんに使う「物理」は大好きだったりします。
特に力学が(電磁気学や熱力学などに比べて)かなり好きな人間です。
さて好き嫌いはいいとして、力学は必要に迫られて勉強しようという人が多い分野だと思います。(ゲーム製作とかで)
ということで自分の記憶の整理と、もしかしたらだれか役に立つ人がいるかもしれないという期待を込めて、
記事を書いてみます。
一応方針としては、 「物理の参考書に載っているような式をプログラムでどうあらわすか?」
ということに主眼を置こうと思います。
あともう一つですが、いけるところまで行きます。つまり(試してわかったことも含め)僕が書ける範囲では可能な限り書いて説明してみたいと思います。
ついでに自分は普段、数値計算してエクセルに結果を出力してごにょごにょするだけで、別段ウィンドウで動きを見たりはしないので、
そのへんの自分の勉強にもなるかなと思います。
[ 2 ] ~対象および前提知識~
対象: おもに力学を必要としている人。または別段そういったわけでもないが単に記事を読んでくれる人
またプログラミングで簡単な物理演算を考えたい人
前提知識:
数学----最低限三角関数とベクトルのイメージをとらえられること。
----極力がんばって説明しますが、将来的に数学はある程度の高難易度になる予定です。
物理----特には問わないですが、日常をよく観察していることを前提とします。
----(たとえばエレベーターで登るとき、初め体重が重く感じて最後に体重が軽く感じるなど)
プログラム----C++がある程度よめること。テンプレートをふんだんに使ったりはたぶんしないですが、stlのvector等は使ったことがあるものとします。
[3] ~断り~
座標系:(読み飛ばしてOK)
► スポイラーを表示
基本C++を用います。
需要と供給の面からDxLibraryを用いるつもりです。
[4] ~用いる記号の代表的な意味~
(多分書き漏れがあるので、場合によって調整すると思いますが)
a : 加速度の大きさ(スカラー)
a (太字): 加速度(ベクトル)
d : 長さおよび距離
D : 2次方程式の判別式
e : 反発係数
F : 力の大きさ(スカラー)
F : 力の大きさ(ベクトル)
g : 重力加速度の大きさ(スカラー)
h : 高さ
i : 添え字。おもに整数
i : 虚数単位。 i2 = -1
I : 慣性モーメント(スカラー)
I : 慣性テンソル(テンソル)
j : 添え字。おもに整数。
k : ばね定数
k : 整数
l : 長さ
L: 長さ
m : 質量
n : 整数
O : 原点
p : 運動量の大きさ(スカラー)
p : 運動量(ベクトル)
q : 座標(一般の座標)
r : 半径
s : 変位の大きさ(スカラー)
s : 変位(ベクトル)
t : 時間
T : 運動エネルギー
u : 変位(ベクトル)
U : 位置エネルギー
v : 速度の大きさ(スカラー)
v : 速度(ベクトル)
x : x座標
x : 変位(ベクトル)
y : y座標
z : z座標
などなどです。べつに今覚えなくてもいいです。
To Be Continue...