はじめに
先回の「微分方程式1」でトーマスのアトラクターを例にパラメトリック方程式をオイラー法で解きました。工学の基礎として2階の線形微分方程式があります。今回これを同様に解いてみます。オイラー法というのはP_new = P_old + dPという形式です。TouchDesignerのPOPで解く場合は、feedback POPとmath mix POPとを2重に接続し、下の接続がP_oldに対応します。一方dPをmath mix POPで計算し両者を加えます(先回もこのようにしています)。オイラー法は便利で頻繁に利用される方法ですが、単振動の場合にエネルギーが増えていきます。これは計算上そうなる問題で単振動に不向きです。これを解決する方法がシンプレクティック・オイラー法です。この方法でも解いています。
2階の線形微分方程式を解く
次が2階の線形微分方程式です。

パラメトリック方程式にすると

になります。
オイラー法による計算
先回と同様の算法です。プログラムの構成も先回と同様でが、render TOPの後にフィードバックを使って軌跡が残るようにしています。計算の主要部分は次です。

feedback POPとmath mix POPとが2重に接続されいること、null POPがfeedback POPへ戻すことが特徴です。この形式によってPnew = Pold +dPの計算します。Poldが2番目の接続でfeedbackされます。dPを一番目のフィードバックで値を更新しながらmath mix POPで求めます。そして更に両者を足し算しています。初期パラメータ及びmath mix POPのアトリビュートの設定は次のようになります。


次にアトリビュートで何をしているのかの説明です。

パラメトリック方程式とアトリビュートを見ながら見ていただくといいでしょう。先回同様に疑問に思われるのが、4.式ではないでしょうか、これは本来x, yではなく、dx, dyです。しかしTouchDesignerの計算としては、math mix POPで変化分を計算して、6. 式でフィードバックと合わせます。dP分をmath mix POPでP(0), P(1)即ちx、vで求めるので、このようにする必要があります。
それでは、計算結果を見ていただきましょう。
a = -0.2, b=-1 で減衰する場合です。初期値は(-1, 0)と(1, 0)の2点です。この2点が相空間で変化する様子が分かります。
次にa =0.2, b =-1で発散していく場合です。初期値は(-0.5, 0)と(0.5, 0)の2点です。
教科書通りの動きを見せています。
次に、a =0, b =-1の単振動の場合を示します。初期値は(-1, 0)と(1, 0)です。
注意してみていただくと、円が少しづつ太くなっていくことが分かります、本来真円になるわけですが、少し円が大きくなっているのです。これはオイラー法で生じる問題です。プログラムが間違っているのではありません。それでは原因について次に説明します。
オイラー法による単振動の問題
単振動の微分方程式は次です。これはa=0, b=-1の状態と同じです。

パラメトリック方程式にすると

です。
ここで、オイラー法で離散化します。

これを行列で書くと、

固有方程式は

となります。
これを解くと、固有値は

になります。
離散化時間の動きの判定は次ですから、

オイラー法で離散化すると、必ず外向きのスパイラルになります。これがオイラー法の課題です。この課題は古くから見つかっていますので対策があります。それが次のシンプレクティック・オイラー法です。
シンプレクティック・オイラー法による計算
主要部分のオペレータの構成は次です。

feedback POPとmath mix POPとの接続は1本になっています。null POPからfeedback POPへのフィードバックがあるのは同じです。これは値の更新のためのフィードバックです。オイラー法と違いmath mix POPで全て計算します。寧ろ直な求め方です。それでは算法について説明致します。

特徴はxoldとvoldを設定し、フィードバックを使って更新していきます。4.でvを求め、vの積分としてxの変化を求め、5.でxを求めています。アトリビュートは次です。

シンプレクティック・オイラー法によるa=0, b=-1の単振動の場合、初期値(-1,0), (1, 0)の計算結果を示します。
このように、きれいな単振動になりました。他の収束・発散する場合も求めています。それらはオイラー法と同じ結果です。
おわりに
今回は教科書的な2階の線形微分方程式のプログラムによる解法をTouchDesignerのPOPを使って試してみました。mathematica等の科学技術計算ソフトに比べてると、設定は複雑ですが、自分で体験しながら解ける点は嬉しさを感じます。イメージ作りに適していることをあらためて感じました。どんなに簡単に解けるようになっても、基礎的な知識は体験として持っている必要があります。先回の微分方程式1と比べていただくと、math mix POPのアトリビュートは違いますが、線形でも非線形でも同じ扱いで解けます。数値計算は強力です。

コメント