力学編 第4章

壁との衝突

壁に衝突したボールは瞬間的に速度を変える。この時の衝突後の速度 ˙𝒙out は弾性衝突公式(19)から求めることができる。衝突の瞬間以外は、前章のニュートンの運動方程式をそのまま使って運動が計算できる。

壁面との衝突を含む場合のボールの運動 𝒙𝑡 を計算したい。

弾性衝突による速度 ˙𝒙 の変化を知りたい

壁がある場合であっても、壁と衝突する瞬間以外は、ボールは、重力などの力を受けて自由に運動する。この間は、第2章の場合そのものなので、ニュートンの運動方程式: 𝑚¨𝒙=𝒇(1) によって計算できる。従って、新たに考える必要があるのは、衝突の瞬間の運動の変化のみである。特に、反射速度 ˙𝒙out (=衝突直後の速度、右図)が分かれば十分である。なぜなら、運動を一意的に決めるのに必要な初期値はボールの位置・速度だけであるため(第1章の1.1節、衝突直後の位置・速度が分かれば、それらを初期値としてその後の運動が一意的に決まるからである(未知なのは速度のみ)

ただし、ボールの弾み方はボールや壁の素材によって異なり、よく跳ねる場合もあればそうでない場合もある。そのため、「弾みやすさ」を決めてやらないとと反射速度 ˙𝒙out は決まらないはずである。ここでは、最もよく弾む理想的な場合を考えることにする。これを弾性衝突という(右図)。このような理想的な極限が存在することは直感的にわかるだろう。例えば、床にボールをそっと落とした時、元の高さまで戻ってくるのが弾性衝突である。衝突の前後で速度の大きさが変化しないと言い換えても良い。

弾性衝突での速度の変化は、直感的に分かる。即ち、右図のように、反射速度 ˙𝒙out は、入射速度 ˙𝒙in (=衝突直前の速度)に対して「壁と垂直な方向の成分を反転したもの」になる(実験的にも確認されている)。従って、これを式で表せば、弾性衝突公式(式(19))が得られる。実際に運動を計算するには、壁の形状を数学的に定式化する方法も必要である。これらを踏まえてこの章では、以下の3つの節に分けて、ボールの運動 𝒙𝑡 を求める方法を議論する:4.1弾性衝突公式(3)の導出4.2壁の定式化4.3ボールの運動 𝒙𝑡 の計算衝突時には速度が瞬間的に変化するので、(速度の変化率である)加速度 ¨𝒙 は定義できない(無限大になる)。そのため、衝突の瞬間はニュートンの運動方程式(1)が使えず、上述のような幾何学的な戦略が必要となるのである。

4.1弾性衝突公式(3)の導出

この節では、まず幾何学的な考察により、反射速度 ˙𝒙out を与える弾性衝突公式(3)を導く。その後、力学的な考察から得られる「ダランベールの原理(7)と弾性衝突条件(8)」を用いて同じ公式を再導出する。

4.1.1反射速度 ˙𝒙out は、「壁と垂直な方向の成分」が反転する:弾性衝突公式(3)

冒頭でも述べたように、弾性衝突後の速度 ˙𝒙out のうち、「床と平行な成分」は衝突前と変わらず、「床と垂直な成分」は反転する。現実的には、平行成分も摩擦の影響で多少変化するが、これも無視できるとする。

これを数式で表すためには、右図のように、入射時の速度 ˙𝒙in を、「床や壁に対して平行な成分 ˙𝒙in 」と「垂直な成分 ˙𝒙in 」に分解すればよい: ˙𝒙in=˙𝒙in+˙𝒙in そうすれば、衝突により垂直成分 ˙𝒙in が反転するのだから、反射速度 ˙𝒙out˙𝒙out=˙𝒙in˙𝒙in(2) となる。非弾性衝突の場合は、 ˙𝒙in に1より小さい係数がかかる。

各成分 ˙𝒙in,˙𝒙in は、壁面の向きが与えられれば書き下せるはずである。そこで、壁に垂直な単位ベクトル(=単位法線ベクトル) ̂𝒏 を用いて書き下すことを考える(ハット記号 ̂𝒏 は単位ベクトルであることを表す)。そのためには、 ˙𝒙in,˙𝒙in を、「壁面への直交射影行列 𝑃 」および「壁面に垂直な方向への直交射影行列 𝑃(右図)を用いて、書き直せばよい: ˙𝒙in=𝑃˙𝒙in,˙𝒙in=𝑃˙𝒙in 𝑃,𝑃 の定義は以下の【4.1-注1】の式(5)。これらを式(2)に代入すれば ˙𝒙out=(𝑃𝑃)˙𝒙in(5)=(12̂𝒏̂𝒏T)˙𝒙in(3) となる。後は、衝突点での ̂𝒏 を求めることさえできれば、上式(3)が確定し(次節の式(19))˙𝒙out が計算できることになる。次節で、壁の形状から ̂𝒏 を求める方法を議論する。

【4.1-注1】直交射影行列:式(5)

右図のように、任意のベクトル 𝒗 を、ある平面 𝑆 に対して「平行な成分 𝒗 」と「垂直な成分 𝒗 」の和に分解する: 𝒗=𝒗+𝒗 この時、各成分 𝒗,𝒗 は、 𝑆 と垂直な単位法線ベクトル ̂𝒏 を用いて、それぞれ以下のように書ける: 𝒗=(1̂𝒏̂𝒏T)____𝑃𝒗,𝒗=(̂𝒏̂𝒏T)𝑃𝒗(4) 1 は単位行列、 ̂𝒏̂𝒏T は以下の【4.1-注2】の外積である。上式に現れた行列 𝑃,𝑃 のことを、直交射影行列という: 𝑃=1𝑃,𝑃=̂𝒏̂𝒏T(5)

直交射影行列(5)の例として、 𝑆𝑥-𝑦 平面である場合、単位法線ベクトルは ̂𝒏=[001]T とすればよいので、式(5)は以下のようになる: 𝑃=⎢ ⎢100010000⎥ ⎥,𝑃=⎢ ⎢000000001⎥ ⎥ 𝑃 は、平面 𝑆 、即ち、 𝑥-𝑦 平面への直交射影行列(= 𝑥,𝑦 成分のみを取り出す行列)となっている。一方、 𝑃 は、平面 𝑆 の垂線方向、即ち、、 𝑧 軸への直交射影行列(= 𝑧 成分のみを取り出す行列)となっている。

【4.1-注2】内積と外積

2つのベクトル 𝒂,𝒃 に対し、 𝒂𝒃T は行列の積として問題なく定義できる:𝒃T𝒃 の転置) 𝒂𝒃T=⎢ ⎢𝑎𝑥𝑎𝑦𝑎𝑧⎥ ⎥[𝑏𝑥𝑏𝑦𝑏𝑧]=⎢ ⎢𝑎𝑥𝑏𝑥𝑎𝑥𝑏𝑦𝑎𝑥𝑏𝑧𝑎𝑦𝑏𝑥𝑎𝑦𝑏𝑦𝑎𝑦𝑏𝑧𝑎𝑧𝑏𝑥𝑎𝑧𝑏𝑦𝑎𝑧𝑏𝑧⎥ ⎥(6) 転置記号 T が外側にあるので、これを外積(outer product)という。

逆に、 T が内側にある 𝒂T𝒃 を考えることもでき、内積(inner product)という: 𝒂T𝒃=[𝑎𝑥𝑎𝑦𝑎𝑧]⎢ ⎢𝑏𝑥𝑏𝑦𝑏𝑧⎥ ⎥=𝑎𝑥𝑏𝑥+𝑎𝑦𝑏𝑦+𝑎𝑧𝑏𝑧

補足

外積(6)の例として、式(5)の2つ目の直交射影行列 𝑃=̂𝒏̂𝒏T を考えてみる。 𝑃 に任意のベクトル 𝒗 を掛けると、以下のようになる: 𝑃𝒗=̂𝒏̂𝒏T𝒗=̂𝒏(̂𝒏T𝒗)=(̂𝒏T𝒗)̂𝒏 最後の式は、大きさが ̂𝒏T𝒗 で、向きが ̂𝒏 であることを示している。 ̂𝒏T𝒗 は、内積の性質により、 𝒗̂𝒏 方向成分なので、確かに ̂𝒏 方向の直交射影になっていることが分かる(右図)

内積は 𝒂𝒃 と表されることもあるが、本サイトでは使わない(「 」記号は実数や行列などの積を区切るためだけに使う)。また、第10章で述べるベクトルのクロス積 𝒂×𝒃 のことを外積と呼ぶことがあるが、全く別物である。

4.1.2参考弾性衝突の力学的条件:ダランベールの原理(7)と弾性衝突条件(8)

弾性衝突公式(3)は既に幾何学的に得られているが、ここでは力学的に再導出することを考える。今の場合、冒頭でも述べたように、速度が瞬間的に変化するので、速度の時間微分である加速度は定義できないし、衝突時の力を完全に決定することも容易ではない。そのため、速度の変化を求めるにあたって、これまでの考え方が使えない。

ボールが壁に衝突した時、ボールには、壁にめり込むのを防ぐために働く拘束力が働く。この拘束力を 𝒇c をおく(添え字 c は拘束を意味するconstraintの頭文字)𝒇c の向きは、直感的に壁に垂直となりそうである(右図)実際、衝突での速度変化が「壁に垂直な成分」のみであることと、運動方程式によって速度が変化する方向と 𝒇c の向きは一致することからも、もっともらしい。これを式で書くと、未定乗数と呼ばれる未知数 𝜆 を用いて、以下のようになる: 𝒇c=𝜆̂𝒏(7) この関係式は確かに成立し、ダランベールの原理と呼ばれる。未定乗数 𝜆 は、衝突の瞬間の短い間に急激に変化するため、求めることは難しい。

ダランベールの原理(7)は、壁に接触していさえすれば、弾性衝突でなくても成り立つので、これとは別に、弾性衝突であるための条件があるはずである。衝突によってボールの運動の勢いが減衰しないという条件なので、速度の大きさが不変であればよい: |˙𝒙out|=|˙𝒙in|(8) これを弾性衝突条件という。

弾性衝突公式(3)を導くには、上記のダランベールの原理(7)と弾性衝突条件(8)があれば十分である(以下の【4.1-注3】

【4.1-注3】弾性衝突公式(3)の力学的導出

弾性衝突公式(3)は、ダランベールの原理(7)と弾性衝突条件(8)から導くことができる。

導出

まず、ダランベールの原理(7)を、衝突前後の速度 ˙𝒙in,˙𝒙out に対する関係式にしたい。ダランベールの原理により、拘束力の向きは壁に垂直なので、速度の変化も壁に垂直である。よって、以下の関係式が成り立つ:Λ は未知数) ˙𝒙out=˙𝒙in+Λ̂𝒏(9) 実際には重力 𝒇g の影響も含まれるが、衝突時間 𝛿𝑡 が非常に小さいため、重力による速度の変化 𝛿˙𝒙𝛿𝑡1𝑚𝒇g は無視できる。

後は、未知数 Λ を求めればよいわけだが、そのためには弾性衝突条件(8)(を2乗したもの)˙𝒙Tout˙𝒙out=˙𝒙Tin˙𝒙in(10) を用いればよい。具体的には、式(9)を式(10)に代入して ˙𝒙out を消去すればよい。すると Λ の単純な2次方程式になり、その解は以下の2つである: Λ={02̂𝒏T˙𝒙in Λ=0 だとすると、速度が変化しないため、壁にめり込んで拘束条件を破ってしまう。よって、もう一方が正しい解である。この Λ を式(9)に代入すると、 ˙𝒙out が確定し、幾何学的に求めた式(3)に一致する。

4.2壁の定式化

前節で弾性衝突公式(3)が得られたが、法線ベクトル ̂𝒏 を決める方法がまだであった。 ̂𝒏 を求める公式は、壁の形状が不等式(11)の形で与えられている時、式(13)である。これにより、最終的な弾性衝突公式(19)が得られる。

4.2.1拘束条件(11)によって壁の形状を表す

壁面の法線ベクトル ̂𝒏 を求めたいのだが、これを計算するには、もちろん壁の形状が予め与えられている必要がある。そのために、壁の形状を、関数 𝐺(𝒙) で表すことにする。 𝐺(𝒙) は、ボールの位置 𝒙 が壁の外にある時に正の値を取り、壁の内部で負の値を取る(右図)。つまり、 𝒙 は、不等式 𝐺(𝒙)0(11) を満たす点のみを取ることができ、その他の点が壁になる。この不等式、または 𝐺 そのものを拘束条件と呼ぶ。

例えば、半径 𝑅 の球の内部にボールを閉じ込める場合、ボール位置 𝒙 が取り得る範囲は |𝒙|𝑅 で表されるので、拘束条件は 𝐺(𝒙)𝑅|𝒙|0(12) とすればよい。ただし、 𝐺 の取り方には任意性があり、例えば 𝐺𝑅2|𝒙|2 などとしてもよい。記号 は以前にも登場しているが、定義または恒等式であることを表すものである。特に、方程式でないことを強調する。例えば式(12)の左側は拘束条件 𝐺 の定義であり、 𝒙 に対する方程式ではない(右側の不等式は 𝒙 に対する方程式である)。ただし、自明な場合には、定義や恒等式であっても = と書く。(本サイトでは使わないが、定義を := で表す記法もある。例えば、 𝐺(𝒙):=𝑅|𝒙| 。)

4.2.2壁面に垂直なベクトル 𝒏 :式(13)

後は、拘束条件 𝐺(𝒙) から、壁面の法線ベクトル 𝒏 を求めればよい。これは純粋に幾何学的な問題であり、以下で与えられる(右図)𝒏=𝐺⎢ ⎢𝜕𝑥𝐺𝜕𝑦𝐺𝜕𝑧𝐺⎥ ⎥ (導出は以下の【4.2-注1】。) 𝐺 は、 𝐺 が大きくなる方向、即ち、壁と反対側を向く。

この 𝒏 を単位ベクトルにすれば ̂𝒏 になる: ̂𝒏=̂𝐺(𝐺|𝐺|)(13) 𝐺 の正規化は、 だけにハット記号を付けることで表している。)

ところで、 𝐺𝟎 になる場合がある。こうなると式(13)が定義できないので、上述の 𝐺 の任意性を使って、 𝐺𝟎 が成り立つようにしておく必要がある(右図)。 𝐺=𝟎 となる例として、任意の拘束条件 𝐺 に対し、新しい拘束条件 𝐺𝐺3 を考えてみる。 𝐺 は、元の壁の内部で負、外部で正となっているので 𝐺 と同じ拘束条件を与えるが、壁面上で 𝐺=3𝐺2𝐺=𝟎 となってしまう(最初の変形には次章【5.1-注3】の連鎖律が必要)。

【4.2-注1】曲面に垂直なベクトル

ある曲面が 𝐺(𝒙)=0 によって表されているとする。この時、曲面上の点 𝒙 における以下のベクトル 𝐺𝐺⎢ ⎢𝜕𝑥𝐺𝜕𝑦𝐺𝜕𝑧𝐺⎥ ⎥(14) は、 𝐺𝟎 であれば、曲面に垂直である。特に、 𝐺 が大きくなる方向を向く。 はナブラと読む。 𝜕𝑥𝐺𝜕𝐺𝜕𝑥 (以下の【4.2-注2】参照)の略記である。

導出

右図のように、2点 𝒙,𝒙+𝛿𝒙 が曲面上にあるとする(両方とも 𝐺=0 を満たす)𝛿𝒙 を十分小さく取っておき、 𝐺(𝒙+𝛿𝒙) を1次近似すると、以下の【4.2-注2】の式(16)により、以下のようになる:(右辺の量は 𝒙 での値) 𝐺(𝒙+𝛿𝒙)____0𝐺0+𝑑𝐺𝑑𝒙𝛿𝒙𝑑𝐺𝑑𝒙𝛿𝒙0 接平面上の任意の 𝛿𝒙 に対してこの式が成り立つので、赤字部分の転置行列をとったもの: 𝐺𝑑𝐺𝑑𝒙T(15) は、接平面と垂直であるか、あるいは 𝟎 である。式(15)の右辺は (𝑑𝐺𝑑𝒙)T の略記である(後で式が複雑になった時に見づらくなるのを防ぐため)。 𝐺=𝟎 となる点、即ち、あらゆる 𝛿𝒙 に対して 𝛿𝐺0 となる点 𝒙 を停留点という。例えば、1変数関数 𝐺(𝑥)=𝑥3 であれば、微分がゼロになる点 𝑥=0 が停留点である。

𝐺 の向きが 𝐺 の増加方向を向くことを示すには、𝛿𝒙 が接平面上にあるという条件を捨てて) 𝛿𝒙𝐺 の増加方向に取ってみればよい。この時の 𝐺 の変化 𝛿𝐺𝛿𝐺(𝐺)T𝛿𝒙>0 となるので、内積の性質により、 𝐺𝛿𝒙 は同じ側を向くことが分かる。

【4.2-注2】多変数関数の1次近似:式(16)

右図のように、2変数 𝒙=(𝑥,𝑦) の任意の関数 𝐺(𝒙) のグラフを考える。このグラフ上の任意の1点 𝒙 の近傍を拡大していくと、右図のように次第に平面(=接平面という)に近づいていく。これは例えば、地球の表面は球面であるにもかかわらず、地上の我々からは平面に見えることからも分かる。

平面のグラフは一般に1次関数𝑧=𝑎+𝑏𝑥+𝑐𝑦で表せるので、 𝒙 の近傍の値 𝐺(𝒙+𝛿𝒙) も、微小なベクトル 𝛿𝒙 の1次関数で近似できる:(右辺の各項は点 𝒙 での値) 𝐺(𝒙+𝛿𝒙)𝐺+𝜕𝐺𝜕𝑥𝛿𝑥+𝜕𝐺𝜕𝑦𝛿𝑦=𝐺+𝑑𝐺𝑑𝒙𝛿𝒙𝑑𝐺𝑑𝒙[𝜕𝐺𝜕𝑥𝜕𝐺𝜕𝑦](16)(17) 𝑑𝑑𝒙 を全微分といい、その成分 𝜕𝜕𝑥,𝜕𝜕𝑦 を偏微分という。偏微分は1変数関数と見たときの微分である。例えば 𝜕𝐺𝜕𝑥 であれば、 𝑦 を定数と見て 𝑥 で微分したもの。式(16)は、 𝛿𝐺𝐺(𝒙+𝛿𝒙)𝐺(𝒙) と書くことにすれば 𝛿𝐺𝑑𝐺𝑑𝒙𝛿𝒙(18) とも書ける。微分の計算をする際にはこちらのほうが便利である。例えば、次節の【4.3-注1】

この1次近似の式(16)は、自然に拡張できる。例えば、 𝒙 が3変数になった場合、式(17)を以下で置き換えればよい: 𝑑𝐺𝑑𝒙[𝜕𝐺𝜕𝑥𝜕𝐺𝜕𝑦𝜕𝐺𝜕𝑧] 𝐺 がベクトル値 𝑮=[𝐺1𝐺2] になった場合は、成分ごとに1次近似することにより、全微分は行列になる:𝒙 は2変数とした) 𝛿𝑮𝑑𝑮𝑑𝒙𝛿𝒙𝑑𝑮𝑑𝒙⎢ ⎢ ⎢ ⎢𝜕𝐺1𝜕𝑥𝜕𝐺1𝜕𝑦𝜕𝐺2𝜕𝑥𝜕𝐺2𝜕𝑦⎥ ⎥ ⎥ ⎥

補足

  • 式(16)の右辺第1項がこうなることは、 𝛿𝒙=𝟎 の時に両辺が等しくなることから分かる。同第2項については、例えば、 𝑦 を固定したもの 𝛿𝒙=[𝛿𝑥0] を代入してみればよい: 𝐺(𝒙+𝛿𝒙)𝐺+()𝛿𝑥+0 𝑦 を固定するということは、 𝐺𝑥 の1変数関数とみなすことに対応するので、 𝛿𝑥 の係数 () は、 𝜕𝐺𝜕𝑥 (= 𝑥 の1変数関数と見た時の微分)でなければならない。 𝛿𝑦 の係数についても同様である。
  • 式(16)のように1次近似ができる時、 𝐺 は、その点 𝒙 において微分可能(あるいは全微分可能)であるという。1変数関数の場合と同様に、角ばった点があったりすると、その点では微分できない。なお、気にする必要はまずないが、 𝑑𝐺𝑑𝒙 の各成分が存在しても(=偏微分が存在しても)𝐺 が微分可能でない場合がまれにある。というのも、偏微分が存在しているだけでは 𝑥,𝑦 方向に1次近似できることしか言えず、別の方向では1次近似できないかもしれないからである。

4.2.3弾性衝突公式(完成版):式(19)

以上により、反射速度 ˙𝒙out の公式を得るには、弾性衝突公式(3)に、法線ベクトル 𝒏 の式(13)を代入すればよい。すると、以下のようになる: ˙𝒙out=[12̂𝐺(̂𝐺)T]˙𝒙in(19) これが求めたかった公式である。これで、拘束条件 𝐺 を与えることにより、 ˙𝒙out が計算できるようになった。

4.3ボールの運動 𝒙𝑡 の計算

以上により、弾性衝突公式(19)が得られたので、ボールの運動 𝒙𝑡 が計算できる。

この節では、 𝒙𝑡 の計算方法についてまとめた後、具体的な計算を2つの例(球面と波打つ床)に対して行う。

4.3.1ボールの運動 𝒙𝑡 の計算方法

さて、もともと知りたかったのは、衝突を含むボールの運動 𝒙𝑡 である。実際に 𝒙𝑡 を計算するには、まず、衝突する瞬間、即ち、拘束条件 𝐺(𝒙𝑡)=0 を満たす瞬間の時刻 𝑡 まで、前章で述べたニュートンの運動方程式 𝑚¨𝒙=𝒇 を用いて計算を進める𝒇 は例えば重力)。その後、壁に接している状態で、弾性衝突公式(19):(再掲) ˙𝒙out=[12̂𝐺(̂𝐺)T]˙𝒙in(20) を使って反射速度 ˙𝒙out を計算する。それ以降は、再び衝突するまで 𝑚¨𝒙=𝒇 を用いて計算を進める。以上を繰り返していけばよい(右図)

なお、初期値の取り方によっては、壁に接触したまま、壁に沿うように運動する場合も考えられる。その場合は、衝突が一瞬で終わるという暗黙の仮定が成立せず、これまでの議論が使えない。実際、式(20)をそのまま使うと、入射速度 ˙𝒙in の「壁面と垂直な方向成分」 (̂𝐺)T˙𝒙in𝟎 なので、 ˙𝒙out=˙𝒙in となってしまい、壁が無いのと同じになってしまう。詳しくは後の第6章で扱うが、このような場合、拘束力を具体的に求めることができ、ニュートンの運動方程式を直接解いて 𝒙𝑡 が計算できる。

4.3.2【例題1】球面との衝突

半径 𝑅 の円または球の内部にボールを閉じ込めた場合を考える(右図)。拘束条件 𝐺 およびその微分 𝐺 は、以下のようになる:(以下の【4.3-注1】の公式(22)を使う) 𝐺𝑅|𝒙|0𝐺=𝑑𝐺𝑑𝒙T=̂𝒙 これを弾性衝突公式(20)に代入すれば、反射速度 ˙𝒙out を求める公式が得られる: ˙𝒙out=(12̂𝒙̂𝒙T)˙𝒙in(21)

これを用いて数値計算を行うと、右図のようになる。

【4.3-注1】 |𝒙| の微分公式

位置ベクトル 𝒙 の絶対値 |𝒙| の微分は、任意の次元で、以下のようになる:𝒙𝟎 𝑑𝑑𝒙|𝒙|=̂𝒙T(22) これは、幾何学的に考えれば自然だろう。実際、微小変位 𝛿𝒙 を考えた際に、 |𝒙| の変化は 𝛿|𝒙|𝑑|𝒙|𝑑𝒙𝛿𝒙 のように1次近似できることを使うと、 𝛿𝒙 が円周方向を向く場合𝛿𝒙𝒙には 𝛿|𝒙|=0 、動径方向を向く場合𝛿𝒙𝒙には 𝛿|𝒙|=±|𝛿𝒙| となり、もっともらしい。

導出

微分の定義(18)を使えばよい。即ち、求める微分は、 𝛿|𝒙| を1次近似したときの 𝛿𝒙係数である: 𝛿|𝒙|=𝛿|𝒙|2∣ ∣ ∣ ∣ ∣1変数関数の1次近似:𝛿𝑓𝑑𝑓𝑑𝑋𝛿𝑋において𝑓=𝑋とする𝑑|𝒙|2𝑑|𝒙|2𝛿|𝒙|2∣ ∣ ∣ ∣微分公式:𝑑𝑋𝑑𝑋=12𝑋(=12|𝒙|)=12|𝒙|𝛿|𝒙|2∣ ∣ ∣ ∣ ∣ ∣𝛿|𝒙|2|𝒙+𝛿𝒙|2|𝒙|2=(𝒙+𝛿𝒙)T(𝒙+𝛿𝒙)𝒙T𝒙=2𝒙T𝛿𝒙+𝛿𝒙T𝛿𝒙2𝒙T𝛿𝒙+0̂𝒙T𝛿𝒙

4.3.3【例題2】 𝑦=𝑓(𝑥) の形の床との衝突

もう1つの例として、2次元平面上において、右図のように 𝑦=𝑓(𝑥) のグラフの形をした床との衝突を考える(2次元にしたのは単に式を見やすくするため)。拘束条件 𝐺 およびその微分 𝐺 は、以下のようになる:𝑓𝑥 での微分: 𝑓=𝑑𝑓/𝑑𝑥 𝐺(𝑥,𝑦)𝑦𝑓(𝑥)0𝐺=[𝜕𝑥𝐺𝜕𝑦𝐺]=[𝑓1] これを式(20)に代入すれば ˙𝒙out=(12𝑓2+1[𝑓2𝑓𝑓1])˙𝒙in(23) となる。

3次元の場合も同様であり、適当な関数を採用して数値計算を行うと右図のようになる。

ところで、衝突は、計算誤差を増大させる性質を持つ。というのも、衝突により、位置の微妙なずれが、運動方向のずれを生じさせるからである(床が湾曲している場合)。そのため、衝突を繰り返すとすぐに誤差が無視できなくなる。実際、上のシミュレーションでも、(計算のステップ幅 𝛿𝑡 が毎回異なる実装のため)時間が経つにつれて毎回全く異なる運動になる。このように、計算できくなってしまうのは理論や計算の欠陥のようにも見えるが、そうではなく、現実世界での再現困難性を反映しているのである。実際、湾曲した床にボールを落として跳ねさせる実験を行うと、同じところから落としたつもりでも、数回跳ねると毎回違う運動になってしまう。この性質が、理論にも正しく反映されているわけである。