壁面との衝突を含む場合のボールの運動
を計算したい。
弾性衝突による速度 の変化を知りたい
壁がある場合であっても、壁と衝突する瞬間以外は、ボールは、重力などの力を受けて自由に運動する。この間は、第2章の場合そのものなので、ニュートンの運動方程式:
によって計算できる。従って、新たに考える必要があるのは、衝突の瞬間の運動の変化のみである。特に、反射速度
(=衝突直後の速度、右図)が分かれば十分である。なぜなら、運動を一意的に決めるのに必要な初期値はボールの位置・速度だけであるため(第1章の1.1節)、衝突直後の位置・速度が分かれば、それらを初期値としてその後の運動が一意的に決まるからである(未知なのは速度のみ)。
ただし、ボールの弾み方はボールや壁の素材によって異なり、よく跳ねる場合もあればそうでない場合もある。そのため、「弾みやすさ」を決めてやらないとと反射速度
は決まらないはずである。ここでは、最もよく弾む理想的な場合を考えることにする。これを弾性衝突という(右図)。このような理想的な極限が存在することは直感的にわかるだろう。例えば、床にボールをそっと落とした時、元の高さまで戻ってくるのが弾性衝突である。衝突の前後で速度の大きさが変化しないと言い換えても良い。
弾性衝突での速度の変化は、直感的に分かる。即ち、右図のように、反射速度
は、入射速度
(=衝突直前の速度)に対して「壁と垂直な方向の成分を反転したもの」になる(実験的にも確認されている)。従って、これを式で表せば、弾性衝突公式(式())が得られる。実際に運動を計算するには、壁の形状を数学的に定式化する方法も必要である。これらを踏まえてこの章では、以下の3つの節に分けて、ボールの運動
を求める方法を議論する:
弾性衝突公式の導出壁の定式化ボールの運動の計算
衝突時には速度が瞬間的に変化するので、(速度の変化率である)加速度
は定義できない(無限大になる)。そのため、衝突の瞬間はニュートンの運動方程式()が使えず、上述のような幾何学的な戦略が必要となるのである。
4.1弾性衝突公式()の導出
この節では、まず幾何学的な考察により、反射速度
を与える弾性衝突公式()を導く。その後、力学的な考察から得られる「ダランベールの原理()と弾性衝突条件()」を用いて同じ公式を再導出する。
反射速度 は、「壁と垂直な方向の成分」が反転する:弾性衝突公式()
冒頭でも述べたように、弾性衝突後の速度
のうち、「床と平行な成分」は衝突前と変わらず、「床と垂直な成分」は反転する。現実的には、平行成分も摩擦の影響で多少変化するが、これも無視できるとする。
これを数式で表すためには、右図のように、入射時の速度
を、「床や壁に対して平行な成分
」と「垂直な成分
」に分解すればよい:
そうすれば、衝突により垂直成分
が反転するのだから、反射速度
は
となる。非弾性衝突の場合は、
に1より小さい係数がかかる。
各成分
は、壁面の向きが与えられれば書き下せるはずである。そこで、壁に垂直な単位ベクトル(=単位法線ベクトル)
を用いて書き下すことを考える(ハット記号
は単位ベクトルであることを表す)。そのためには、
を、「壁面への直交射影行列
」および「壁面に垂直な方向への直交射影行列
」(右図)を用いて、書き直せばよい:
の定義は以下の【4.1-注1】の式()。これらを式()に代入すれば
式
となる。後は、衝突点での
を求めることさえできれば、上式()が確定し(次節の式())、
が計算できることになる。次節で、壁の形状から
を求める方法を議論する。
【4.1-注1】直交射影行列:式()
右図のように、任意のベクトル
を、ある平面
に対して「平行な成分
」と「垂直な成分
」の和に分解する:
この時、各成分
は、
と垂直な単位法線ベクトル
を用いて、それぞれ以下のように書ける:
は単位行列、
は以下の【4.1-注2】の外積である。上式に現れた行列
のことを、直交射影行列という:
例
直交射影行列()の例として、
が
平面である場合、単位法線ベクトルは
とすればよいので、式()は以下のようになる:
は、平面
、即ち、
平面への直交射影行列(=
成分のみを取り出す行列)となっている。一方、
は、平面
の垂線方向、即ち、、
軸への直交射影行列(=
成分のみを取り出す行列)となっている。
【4.1-注2】内積と外積
2つのベクトル
に対し、
は行列の積として問題なく定義できる:(
は
の転置)
転置記号
が外側にあるので、これを外積(outer product)という。
逆に、
が内側にある
を考えることもでき、内積(inner product)という:
補足
外積()の例として、式()の2つ目の直交射影行列
を考えてみる。
に任意のベクトル
を掛けると、以下のようになる:
最後の式は、大きさが
で、向きが
であることを示している。
は、内積の性質により、
の
方向成分なので、確かに
方向の直交射影になっていることが分かる(右図)。
内積は
と表されることもあるが、本サイトでは使わない(「
」記号は実数や行列などの積を区切るためだけに使う)。また、第10章で述べるベクトルのクロス積
のことを外積と呼ぶことがあるが、全く別物である。
(参考)弾性衝突の力学的条件:ダランベールの原理()と弾性衝突条件()
弾性衝突公式()は既に幾何学的に得られているが、ここでは力学的に再導出することを考える。今の場合、冒頭でも述べたように、速度が瞬間的に変化するので、速度の時間微分である加速度は定義できないし、衝突時の力を完全に決定することも容易ではない。そのため、速度の変化を求めるにあたって、これまでの考え方が使えない。
ボールが壁に衝突した時、ボールには、壁にめり込むのを防ぐために働く拘束力が働く。この拘束力を
をおく(添え字
は拘束を意味するconstraintの頭文字)。
の向きは、直感的に壁に垂直となりそうである(右図)。実際、衝突での速度変化が「壁に垂直な成分」のみであることと、運動方程式によって速度が変化する方向と
の向きは一致することからも、もっともらしい。これを式で書くと、未定乗数と呼ばれる未知数
を用いて、以下のようになる:
この関係式は確かに成立し、ダランベールの原理と呼ばれる。未定乗数
は、衝突の瞬間の短い間に急激に変化するため、求めることは難しい。
ダランベールの原理()は、壁に接触していさえすれば、弾性衝突でなくても成り立つので、これとは別に、弾性衝突であるための条件があるはずである。衝突によってボールの運動の勢いが減衰しないという条件なので、速度の大きさが不変であればよい:
これを弾性衝突条件という。
弾性衝突公式()を導くには、上記のダランベールの原理()と弾性衝突条件()があれば十分である(以下の【4.1-注3】)。
【4.1-注3】弾性衝突公式()の力学的導出
弾性衝突公式()は、ダランベールの原理()と弾性衝突条件()から導くことができる。
導出
まず、ダランベールの原理()を、衝突前後の速度
に対する関係式にしたい。ダランベールの原理により、拘束力の向きは壁に垂直なので、速度の変化も壁に垂直である。よって、以下の関係式が成り立つ:(
は未知数)
実際には重力
の影響も含まれるが、衝突時間
が非常に小さいため、重力による速度の変化
は無視できる。
後は、未知数
を求めればよいわけだが、そのためには弾性衝突条件()(を2乗したもの):
を用いればよい。具体的には、式()を式()に代入して
を消去すればよい。すると
の単純な2次方程式になり、その解は以下の2つである:
だとすると、速度が変化しないため、壁にめり込んで拘束条件を破ってしまう。よって、もう一方が正しい解である。この
を式()に代入すると、
が確定し、幾何学的に求めた式()に一致する。
4.2壁の定式化
前節で弾性衝突公式()が得られたが、法線ベクトル
を決める方法がまだであった。
を求める公式は、壁の形状が不等式()の形で与えられている時、式()である。これにより、最終的な弾性衝突公式()が得られる。
拘束条件()によって壁の形状を表す
壁面の法線ベクトル
を求めたいのだが、これを計算するには、もちろん壁の形状が予め与えられている必要がある。そのために、壁の形状を、関数
で表すことにする。
は、ボールの位置
が壁の外にある時に正の値を取り、壁の内部で負の値を取る(右図)。つまり、
は、不等式
を満たす点のみを取ることができ、その他の点が壁になる。この不等式、または
そのものを拘束条件と呼ぶ。
例えば、半径
の球の内部にボールを閉じ込める場合、ボール位置
が取り得る範囲は
で表されるので、拘束条件は
とすればよい。ただし、
の取り方には任意性があり、例えば
などとしてもよい。記号
は以前にも登場しているが、定義または恒等式であることを表すものである。特に、方程式でないことを強調する。例えば式()の左側は拘束条件
の定義であり、
に対する方程式ではない(右側の不等式は
に対する方程式である)。ただし、自明な場合には、定義や恒等式であっても
と書く。(本サイトでは使わないが、定義を
で表す記法もある。例えば、
。)
壁面に垂直なベクトル :式()
後は、拘束条件
から、壁面の法線ベクトル
を求めればよい。これは純粋に幾何学的な問題であり、以下で与えられる(右図):
(導出は以下の【4.2-注1】。)
は、
が大きくなる方向、即ち、壁と反対側を向く。
この
を単位ベクトルにすれば
になる:
(
の正規化は、
だけにハット記号を付けることで表している。)
ところで、
は
になる場合がある。こうなると式()が定義できないので、上述の
の任意性を使って、
が成り立つようにしておく必要がある(右図)。
となる例として、任意の拘束条件
に対し、新しい拘束条件
を考えてみる。
は、元の壁の内部で負、外部で正となっているので
と同じ拘束条件を与えるが、壁面上で
となってしまう(最初の変形には次章【5.1-注3】の連鎖律が必要)。
【4.2-注1】曲面に垂直なベクトル
ある曲面が
によって表されているとする。この時、曲面上の点
における以下のベクトル
:
は、
であれば、曲面に垂直である。特に、
が大きくなる方向を向く。
はナブラと読む。
は
(以下の【4.2-注2】参照)の略記である。
導出
右図のように、2点
が曲面上にあるとする(両方とも
を満たす)。
を十分小さく取っておき、
を1次近似すると、以下の【4.2-注2】の式()により、以下のようになる:(右辺の量は
での値)
接平面上の任意の
に対してこの式が成り立つので、赤字部分の転置行列をとったもの:
は、接平面と垂直であるか、あるいは
である。式()の右辺は
の略記である(後で式が複雑になった時に見づらくなるのを防ぐため)。
となる点、即ち、あらゆる
に対して
となる点
を停留点という。例えば、1変数関数
であれば、微分がゼロになる点
が停留点である。
の向きが
の増加方向を向くことを示すには、(
が接平面上にあるという条件を捨てて)
を
の増加方向に取ってみればよい。この時の
の変化
は
となるので、内積の性質により、
と
は同じ側を向くことが分かる。
【4.2-注2】多変数関数の1次近似:式()
右図のように、2変数
の任意の関数
のグラフを考える。このグラフ上の任意の1点
の近傍を拡大していくと、右図のように次第に平面(=接平面という)に近づいていく。これは例えば、地球の表面は球面であるにもかかわらず、地上の我々からは平面に見えることからも分かる。
平面のグラフは一般に1次関数(
)で表せるので、
の近傍の値
も、微小なベクトル
の1次関数で近似できる:(右辺の各項は点
での値)
を全微分といい、その成分
を偏微分という。偏微分は1変数関数と見たときの微分である。例えば
であれば、
を定数と見て
で微分したもの。式()は、
と書くことにすれば
とも書ける。微分の計算をする際にはこちらのほうが便利である。例えば、次節の【4.3-注1】。
この1次近似の式()は、自然に拡張できる。例えば、
が3変数になった場合、式()を以下で置き換えればよい:
がベクトル値
になった場合は、成分ごとに1次近似することにより、全微分は行列になる:(
は2変数とした)
補足
- 式()の右辺第1項がこうなることは、
の時に両辺が等しくなることから分かる。同第2項については、例えば、
を固定したもの
を代入してみればよい:
を固定するということは、
を
の1変数関数とみなすことに対応するので、
の係数
は、
(=
の1変数関数と見た時の微分)でなければならない。
の係数についても同様である。
- 式()のように1次近似ができる時、
は、その点
において微分可能(あるいは全微分可能)であるという。1変数関数の場合と同様に、角ばった点があったりすると、その点では微分できない。なお、気にする必要はまずないが、
の各成分が存在しても(=偏微分が存在しても)、
が微分可能でない場合がまれにある。というのも、偏微分が存在しているだけでは
方向に1次近似できることしか言えず、別の方向では1次近似できないかもしれないからである。
弾性衝突公式(完成版):式()
以上により、反射速度
の公式を得るには、弾性衝突公式()に、法線ベクトル
の式()を代入すればよい。すると、以下のようになる:
これが求めたかった公式である。これで、拘束条件
を与えることにより、
が計算できるようになった。
4.3ボールの運動 の計算
以上により、弾性衝突公式()が得られたので、ボールの運動
が計算できる。
この節では、
の計算方法についてまとめた後、具体的な計算を2つの例(球面と波打つ床)に対して行う。
ボールの運動 の計算方法
さて、もともと知りたかったのは、衝突を含むボールの運動
である。実際に
を計算するには、まず、衝突する瞬間、即ち、拘束条件
を満たす瞬間の時刻
まで、前章で述べたニュートンの運動方程式
を用いて計算を進める(
は例えば重力)。その後、壁に接している状態で、弾性衝突公式():(再掲)
を使って反射速度
を計算する。それ以降は、再び衝突するまで
を用いて計算を進める。以上を繰り返していけばよい(右図)。
なお、初期値の取り方によっては、壁に接触したまま、壁に沿うように運動する場合も考えられる。その場合は、衝突が一瞬で終わるという暗黙の仮定が成立せず、これまでの議論が使えない。実際、式()をそのまま使うと、入射速度
の「壁面と垂直な方向成分」
は
なので、
となってしまい、壁が無いのと同じになってしまう。詳しくは後の第6章で扱うが、このような場合、拘束力を具体的に求めることができ、ニュートンの運動方程式を直接解いて
が計算できる。
【例題1】球面との衝突
半径
の円または球の内部にボールを閉じ込めた場合を考える(右図)。拘束条件
およびその微分
は、以下のようになる:(以下の【4.3-注1】の公式()を使う)
これを弾性衝突公式()に代入すれば、反射速度
を求める公式が得られる:
これを用いて数値計算を行うと、右図のようになる。
【4.3-注1】 の微分公式
位置ベクトル
の絶対値
の微分は、任意の次元で、以下のようになる:(
)
これは、幾何学的に考えれば自然だろう。実際、微小変位
を考えた際に、
の変化は
のように1次近似できることを使うと、
が円周方向を向く場合(
)には
、動径方向を向く場合(
)には
となり、もっともらしい。
導出
微分の定義()を使えばよい。即ち、求める微分は、
を1次近似したときの
の係数である:
変数関数の次近似:においてとする微分公式:
【例題2】 の形の床との衝突
もう1つの例として、2次元平面上において、右図のように
のグラフの形をした床との衝突を考える(2次元にしたのは単に式を見やすくするため)。拘束条件
およびその微分
は、以下のようになる:(
は
での微分:
)
これを式()に代入すれば
となる。
3次元の場合も同様であり、適当な関数を採用して数値計算を行うと右図のようになる。
ところで、衝突は、計算誤差を増大させる性質を持つ。というのも、衝突により、位置の微妙なずれが、運動方向のずれを生じさせるからである(床が湾曲している場合)。そのため、衝突を繰り返すとすぐに誤差が無視できなくなる。実際、上のシミュレーションでも、(計算のステップ幅
が毎回異なる実装のため)時間が経つにつれて毎回全く異なる運動になる。このように、計算できくなってしまうのは理論や計算の欠陥のようにも見えるが、そうではなく、現実世界での再現困難性を反映しているのである。実際、湾曲した床にボールを落として跳ねさせる実験を行うと、同じところから落としたつもりでも、数回跳ねると毎回違う運動になってしまう。この性質が、理論にも正しく反映されているわけである。