Animate with springs
Animate with springs - WWDC23 - Videos - Apple Developer
アップルのWWDC23において、ばねの運動を用いたiOSアニメーションについて解説されている。
動画内ではこれらの運動方程式のグラフを用いた説明がなされているが、ここでは減衰振動を線形微分方程式から導き出す過程を、備忘録として残しておきます。
前提として動画の解説では、下記3種類のパターンについての定義が記されており、これはそれぞれ(1)過減衰、(2)臨界減衰、(3)減衰振動を表す。
運動方程式
減衰振動は下記で表される。ここでは質量、は減衰係数、はばね定数、は位置を表している。
ここから減衰振動の一般解を求める。下記を定義し
これを代入すると、
となる。さらに
と仮定して、これを代入すると
となり、についての二次方程式となる。これは二次方程式の解より
が求められる。
ここでルートの中身に着目すると、
の3パターンに分けられる。このとき、
と置くと
と場合分けができ、このときのを減衰比という。
(1)を過減衰、(2)を臨界減衰、(3)を減衰振動を表す。
過減衰
ここから過減衰についての一般解を求める。
ルートの中身に着目すると、は共に負の実数となる。
......(*)をアップルの式に近づけるべく式変形させると、
これでアップルの公式とほぼ同じ形になった。
臨界減衰
ここから臨界減衰についての一般解を求める。
ということは、λは重解となる。
このとき、......(*)を満たす解というのは、
となる。このままだと二階微分方程式の解に任意定数が1つしかないことになる。
そこで定数として考えていたを時間に関する関数として置換する。
つまり、
と考えることにより、に関して微分するとき、もまた微分されることになる。
ここで先に二階微分方程式の変形式を先に提示しておく。
上記を踏まえて、......(*)を変形していく。
定数A, Bを用いて表すと
よって......(*)の一般解は、
となる。これでアップルの式と同じ形になった。
減衰振動
ここから減衰振動についての一般解を求める。を虚数を用いて式変形させると下記のようになる。
よって最初に定義した......(*)の一般解(線形結合)は、
と表すことができる。ここでオイラーの公式を用いる。公式は下記の通り。
これより、上記式はこのように書き換えられると分かる。
これらを元の式に代入して変形させると、
更にこれを定数に置き換えると、
が得られる。
ここで三角関数の合成を使って更に式変形させ、
が導き出された。
これで最初のアップルの公式と同じ形ができた(は初期条件により決まる任意定数)。