忘却の微分方程式(157) Maxima、{dynamics}、マンデルブロ/ジュリア集合

Joseph Halfmoon

別シリーズで「吉例マンデルブロ集合」を描きました。Maxima様にもマンデルブロ集合、ジュリア集合など描く関数あり。そしてそれは最近練習しているplotdfパッケージを含む dynamicsパッケージの中に鎮座しておるのであります。dynamicsパッケージは「複素力学系」へといざなっておるのです。おっと、ヤバイよ。

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

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

    • Maxima 5.46.0(x86_64-w64-mingw32)
    • wxMaxima 22.04.0
dynamicsパッケージ

Maxima様の The dynamics packageのドキュメント(日本語)が以下に。

54. dynamics

前回もお世話になっている plotdf関数などもこのパッケージの配下(マニュアルは 22. Numerical だけれども)ということになっています。数値的に解くときにお世話になるルンゲクッタ法の関数 rkもこちらです。dynamicsと言われて、当然、力学、微分方程式を解いたりするのは頭の固い老人にも思い浮かぶのですが、このパッケージの誘う先には「複素力学系」が横たわっているみたいです。「とうぜん」複素力学系の入口には風神、雷神のごとくJulia集合とMandelbrot集合が起立しておる、と。

複素力学系素人老人がうんぬん言ってもせんないので、『防衛省』様の以下のページでもごらんくださいまし。

受験生のために(数学教育室)

なぜに防衛省、なぜに受験生なのかということは老人には一切不明。しかし、上記ページの下の方にPDFファイルへのリンクが貼りつけてあり、それを拝見すると、みんな大好きニュートン法からジュリア集合、マンデルブロ集合、そして複素力学系にいたる流れが簡潔にまとめられとります。ありがたし。

Maxima上でjulia集合、mandelbrot集合を描く

julia集合を描くためにdynamicsパッケージの中にjuliaという関数があり(lisp記述っす。)これについてMaxima様のドキュメントから一か所引用させていただきます。

このプログラムは追加パッケージ dynamicsの一部ですが、そのパッケージはロードする必要はなく、 juliaが使われる初回に自動的にロードされます。

なんか、julia優遇されてないかい。同じことはmandelbrotにも適用されるのですが。

以下のコード

julia (-0.55, 0.6, [iterations, 36], [x, -0.3, 0.2], [y, 0.3, 0.9], [grid, 512, 512], [color_bar_tics, 0, 6, 36])$

で描けるジュリア集合がこちら。

maximaJulia

mandelbrot集合を描くコードが以下に。

mandelbrot ([iterations, 30], [x, -2, 0.5], [y, -1.2, 1.2], [grid,512,512])$

描かれた集合が以下に。maximaMandelbrot

折角なので、次回は「複素力学系」に一歩踏み出すのか?お惚け老人はどうせ踏み込めん、表面をなぜるだけ?

忘却の微分方程式(156) Maxima、{plotdf}、Phase plane、Phase portrait へ戻る

忘却の微分方程式(158) Maxima、{dynamics}、カオスゲームって何よ? へ進む