忘却の微分方程式(163) Maxima、{dynamics}、こんどは連立漸化式の発展だ

Joseph Halfmoon

第161回でevolution関数を使い「漸化式の発展」の様子を観察しました。今回はその2次元バージョン? evolution2D関数です。発展の様子を観察する対象は「連立漸化式」じゃないかと。ムツカシそうだよ。でもカオスでフラクタルな処理例はちょっとさらに上を行くのさ。ホントか?よくわからんが。

※「忘却の微分方程式」投稿順 index はこちら

※   MaximaおよびそのGUIであるwxMaximaの以下バージョンを使用させていただいております。

    • Maxima 5.46.0(x86_64-w64-mingw32)
    • wxMaxima 22.04.0
“dynamics”

このところ練習しておりますMaxima様のdynamicsパッケージです。この “dynamics” というお名前に、分かったような、分からぬような、腑に落ちなさをずっと感じておったのです。そしたらば『一橋大 川平友規』先生のお書きになった以下の文書読んで目が覚めました。ホントか?

漸化式から力学系へ Workbook

忘却力のお惚け老人、読んだその場は目から鱗が落ちても、直ぐに元に戻ります。

evolution2d関数

evolution2d関数を含むdynamicsパッケージの説明文書(日本語)が以下に(以下は東北大様のサイトだと思うのだけれども、結構ダウンしていること多し。個人の感想デス。)

https://flex.phys.tohoku.ac.jp/texi/maxima-ja/maxima_54.html

第161回で練習した evolution関数と今回のevolution2d関数の引数を比較しておくとこんな感じです。

evolution( F, y0, n, ..., options, ...);
evolution2d( [F, G], [u, v], [u0, v0], n, ..., options, ...);

evolution関数は、漸化式を

y(n+1) = F(y(n))

という形で表します。Fは「nは気にせずyの式で」定義。一方, evolution2d関数は、

u(n+1) = F(u(n), v(n))

v(n+1) = G(u(n), v(n))

という連立した形です。同様に「nは気にせず」FとGをそれぞれu、vで定義します。

evolution関数が横軸に n をとって縦軸に項の値を表示する形。それでnにつれて発展する様子を描くのに対して、evolution2d関数は横軸にu(n)、縦軸にv(n)をとって2次元的に発展の様子を描きます。順序をハッキリさせるため直線で点をつなぐと前回の階段図みたいな感じにもなります(直線でなくナナメ線なので階段にはならんけど。)

解説ページにある例は、見事にカオスでフラクタルな図形を描きます。

f: 0.6*x*(1+2*x)+0.8*y*(x-1)-y^2-0.9$
g: 0.1*x*(1-6*x+4*y)+0.1*y*(1+9*y)-0.4$
evolution2d([f,g], [x,y], [-0.5,0], 50000, [style,dots]);

結果が以下に。evo2Dexample0

解説ページにある上記例は、拡大するとフラクタルな雰囲気がありあり。

しかし上記のような図形を描く漸化式は簡単には見つかりませぬ。

試みに、非常にシンプルな「連立漸化式」を evolution2d に与えてみました。

a: 3*x+y$
b: 2*x+2*y$
evolution2d([a,b], [x,y], [2,-1], 10, [style,dots]);

そのプロット結果は以下に。最初の10個のつもりがドット間隔が粗すぎ。老眼の目に見えないので、赤で矢印してみましたぞ。evo2Dexample1

ドットではラチが空かないので、以下のようにして「線でつなぐ」形で書き直しました。

evolution2d([a,b], [x,y], [2,-1], 10, [style,lines]);

結果が以下に。evo2Dexample1line

一直線じゃん!

なお、上記の「連立漸化式」については、いつもお世話になっております『高校数学の美しい物語』様の以下のページを参照させていただいております。

連立漸化式の3通りの解き方

上記ページに胸に染み入るお言葉がありました。1行引用させていただきます。

連立漸化式を解くということは行列の n 乗を求めることに他なりません。

確かに。evolution2d関数の一面をも表しておると、いいのかそういうことで?

忘却の微分方程式(162) Maxima、{dynamics}、階段図で探る再帰数列のゆくえ へ戻る

忘却の微分方程式(164) Maxima、{dynamics}、シダの葉にみる反復関数系 へ進む