数理解析研究所講究録
第 1780 巻 2012 年 22-31

22

Cindyscript でストレンジアトラクタを描く
静岡県立磐田南高等学校

入谷昭 (Akira Irtitani)

Iwataminami highschool1

はじめに高等学校の理数科や SSH(スーパーサイエンスハイスクール) 指定校では，自然科学の課題研究を行なっている．理科の分野では新しい発見にっながるような実験観察も可能であるが，数学となると高校生の力では独創的な研究をするのは難しい．しかし，コンピュータを用いるとさまざまな試行錯誤が可能となり，非線形微分方程式の数値解やフラクタルといった，高等学校の教育課程にない分野についてもアプローチが可能となる．このときに，適切な数式処理ソフトを利用することが肝要になるが，幾何ソフトとして出発した Cinderella が，第 2 版となってプログラミング言語 CindyScript を備え，代数計算も行なえるようになった．CindyScript は高校生にとっても習得が容易で，計算結果をビジュアルに表示するのにも優れたツールである．静岡県立磐田南高等学校理数科では，昨年度の 「自然界における螺旋」 の研究に続き，Cinderella を用いたカオスのストレンジアトラクタの描画をテーマに課題研究を行なった．本稿では，その成果を紹介しながら，数学教育における Cinderella の有用性について論じていく．

2Cindyscript とはCindyScript は，シンデレラに 2.0 版から加わったプログラミング環境である．特徴として次のようなものが挙げられる．
$\bullet$$\bullet$$\bullet$$\bullet$

インタプリタである．
書いたコードをすぐに実行して試すことができる．
描画面とは別にスクリプトエディタウィンドウを持つ．
コードの実行結果を別ウィンドウで確認でき，初学者にも使いやすい．

関数型言語である．
関数の定義などは Mathematica や Maxima と類似している．分岐や繰り返し処
理も関数型で行なう．手続き型言語を学んだ者なら簡単に理解でき，初学者にもわかりやすい．
描画した幾何要素をコントロールできる．

これは，他言語にはない大きなメリットである．幾何ソフトとして出発した Cinderella では，作図した幾何要素のコントロールが CindyScript から容易に行なえる．そのため，グラフィクスに関するコーディングがほとんど不要となり，アルゴリズムの中核となる部分に専念できる．

23$\bullet$$\bullet$

スロットという概念により，スクリプトを機能別にグルーピングできる．
マウスやキーボードによるユーザー入力，内部時計の利用など，目的に応じてコードをグルーピングでき，構造的に見通しのよいプログラムが作成できる．
変数の取り扱いの柔軟性
変数の型は明示しなくてよい．Cinderella が適切にメモリを割り当てる．幾何ソフトとして描いた図形要素の名前をそのまま変数として扱えることを含め，変数の取扱いに柔軟性がある．

3

課題研究での取り組み

静岡県立磐田南高等学校理数科 2 年生の課題研究で，CindyScript を用いてストレンジアトラクタの描画を行い，微分方程式の係数をインタラクティブに変化させたり，項を追加したりして自分たちのストレンジアトラクタを作り出す試みを行なった．その結果次のような作品を作った．(取り組み期間は 2 年生 lO 月から 3 年生 5 月)

3.1

係数をインタラクティブに変化させるシミュレーション

ローレンツの微分方程式では，係数を変化させるとさまざまな対流のモデルが生じる．

ある係数の組合せによって表れるのがローレンツアトラクタである．この係数を，画面上のスライダ操作によりインタラクティブに変化させるものを作った．Mathematica (7以降) では，Manipulate 関数によりスライダを使ってのパラメータ操作を行なえるようになったが，CindyScript を用いればより柔軟なスライダを作成することができる．

24$s$$r$$u$

スライダを用いて係数をインタラクティブに変化させる

3.2

3D グラフィクスによるローレンツアトラクタの描画

Mathematica には，微分方程式の解の例としてローレンツアトラクタがあり，方程式と初期条件を書くだけで 3 次元の図が描画できる．また，Macintosh のグラフ描画ソフ
ト Grapher でも同様にして簡単に描画できる．Web 上には 3のアトラクタが描けるフリーソフトもある．しかし，数学教育という観点からは，出来合いのもので結果だけ得るのではなく，非線形微分方程式の数値解を求める原理や 3D グラフィクスの基礎も$D$学ばせたい．短期間の課題研究では，講義なしでゼロから学ばせるのは時間的にも困難があるので (課題研究は「講義はせず，生徒に自主的な研究をさせる」という方針で行なっている), Web 上の CinderellaJapan のサイトにレクチャを書いた．生徒はそれを読んで自分でコーディングを行なった．CinderellaJapan のサイトでは，「 $3D$ グラフィクスのための基本パッケージ」を提供しているが，下図はこれを利用したのではなく，生徒がレクチャを読んで独自に作成したものである．

ローレンツアトラクタの 3 次元相空間描画

25
3.3

初期値鋭敏性を示すアニメーション

コンピュータの内部時計を利用し，カオスの特徴である初期値鋭敏性を如実に示す作品を作った．を時刻とし，内部時計を取得してアニメーションにする．わずかに初期値が異なる 2 点が，しだいに別の軌道を描くようになり，十数秒後にはまったく異なる軌道をに移る．ローレンツ
アトラクタでの初期値鋭敏性の意味がよくわかる作品であり，調べた限りでは書籍や Web 上には同様のものは見当たらず，生徒が考えて作成したものである．これにより，カオスの意味に$t$ついての理解が一層進んだものと思われる．

3.4

独自のストレンジアトラクタ

物理現象を数式化し，そこからカオスを発見するのは高校生の課題研究では無理である．しかし，どのような微分方程式からカオスが現れるかを試行錯誤的に発見するのであれば可能性がある．結果として，ローレンツモデルとダフィン方程式に類似した方程式からいくつかのストレンジアトラクタを描くことができた．ただし，これが，力学系としてのカオスの条件 (リャプノフ指数など) を満たすかどうかといった理論的検証は高校生の範疇を超えているので，相空間内における図形的特質からカオスであろう，ということにとどまっている．

ローレンツ型ジヤパニーズ型

4

ストレンジアトラクタを描画する

ここからは，CindyScript によるストレンジアトラクタの描画と，その関連事項にっいて例を示し，数学教育における CindyScript の有用性を論じる．
カオスの例としてよく挙げられるのが，ローレンツアトラクタとジャパニーズアトラクタである．いずれも非線形微分方程式において，係数がある範囲の値をとるときにス26
トレンジアトラクタが現れる．ただし，ジャパニーズアトラクタはボアンカレ断面を表示するのが一般的である．これらは，カオスの入門書や啓蒙書に必ずといっていいほど登場するが，きちんと調べていくと奥深いものがある．

4.1

ローレンツアトラクタ

ローレンツアトラクタは，ローレンツ方程式と呼ばれる次の微分方程式において，係数がある値をとるときに現れる．
$\frac{dx}{dt}=-\sigma x+\sigma y,$$\frac{dy}{dt}=-xz+rx-y,$$\frac{dz}{dt}=xy-bz$

この非線形微分方程式の解を相空間にプロットするために，オイラー法またはルンゲクッタ法を用いる．オイラー法は，微分の定義式から簡単に導かれるため，高校生にもわかりやすく，コーディングも簡単である．次図にコードと結果を示す．

ローレンツアトラクタの描画とスクリプト

係数 $s,$の値と微小区間の値 $dt$ を設定し，差分化した方程式を関数として定義する．初期値を work というリストで与えておき，repeat 関数によって 4000 回繰り返し処$xy$ 平面と $xz$ 平面のものを同一面に描画している．Excel を用いたも理を行なっている．
$b,$$r$のなどで行われている方法である．([1])
しかし，相空間は 3 次元なので，できれば 3グラフィクスで表示したい．CindyScript を用いた 3 グラフィクスについては，昨年度，Web 上にその原理からコーディングまでのレクチャを書いたものがある．スクリプ
トも与えてあるので，生徒はそれを読んだり，Cinderella のサイト 「 $Mathevita1_{\lrcorner}$ の作品を解析したりしながら自分でコーディングしていった．3 の描画は，CindyScriptの組み込み関数 draw に，引数として $map3D$ 関数で 3 次元の点を 2 次元に射影した点を与えておこなう．map$3D$ 関数はユーザー定義関数で，Initialization スロットに定義されている．したがって，差分方程式を用いてプロットする中核の部分だけ微分方程式に応じて書き換えれば，3D のストレンジアトラクタを描くことができる．
$D$$D$$D$$()$

27

3$D$

グラフィクスのためのスクリプト

座標軸は，Cinderella で 2 点を通る有向直線を 3 本作図し，これを CindyScript でコントロー レする。次の図で，XXO.xy などは，Cinderella で作図した点 XXO の座標を示す．
$y$Cinderella の幾何要素を使って座標軸を表示するスクリプト

ローレンツアトラクタの 3D 描画とスクリプト28
アトラクタを描画するためのスクリプトはほとんど同じである．さらに，描画面上でマウスをドラッグすれば視点を移動させ，対象を回転することができる．マウスがドラッグされたときの動作は，Mouse Drag スロットに書かれている．ドラッグの方向と量により回転行列を変化させている．

マウスがドラッグされたときの動作

このように，CindyScript では，プログラム全体をカテゴリー分けすることにより，構造的なプログラミングができるようになっている．

4.2

ジャパニーズアトラクタ

ジャパニーズアトラクタは，1961 年に京都大学の上田が発見した，ダフィン方程式の解曲線のアトラクタで，通常はそのボアンカレ断面を示す．ダフィン方程式は文献によって少しずっ形が異なるが，ここでは上田が大学院生のときに属していた林研究室で研究されていた次の式を扱う．
$\frac{d^{2_{X}}}{dt^{2}}+k\frac{dx}{dt}+x^{3}=B\cos t$$dx/dt=y$ とおくと，1 階の連立微分方程式に変形することができる．
ここで，$\frac{dx}{dt}=y$,$\frac{dy}{dt}=-ky-x^{3}+B\cos t$$\cos t$ の周期性を
この解曲線は，時間 を含めると 3 次元の相空間にプロットできるが，$t$$t=2n\pi$ の値だけを 2 次元の相空間にプロットしたのがボアンカレ断面であ利用して，る．やはりオイラー法によって差分化すれば，ローレンツアトラクタと同じようなコードで表示することができる．

29

ジャパニーズアトラクタ

なお，本図では原点付近に楕円状の点の集合があるが，これは初めから 180 回くらいまでのループで現れるもので，過渡的なものとして通常は破棄する．

4.3

生徒の取り組み

生徒は，以上のローレンッアトラクタとジャパニーズアトラクタを Excel で描画 ([1]) したのち，CindyScript でプログラムを作成した．初めは Web 上のレクチャにあるコードをそのまま使っていたが，原理がわかってくると Cinderellaの他のレクチャも参照して，3 次元の相区間での描画や，コンピュータの内部時計を用いてのアニメーションを作るようになった．ジャパニーズアトラクタでは，–
ジャ ニ $-$ ス アトフクタの &元解曲線
3 次元の相空間で解曲線を描画するという，まったく教えていないことにまで踏み込めるようになった．
さらに，微分方程式の項と係数を変化させるアトラクタの探索に乗り出した．その結果，ローレンツ型で 2 っ，ジャパニーズアトラクタ型で 2 つのアトラクタを作り出すことができた．その微分方程式は次の通りである．
さらに，微分方程式の項と係数を変化させるアトラクタの探索に乗り出した．その結果，ローレンツ型で 2 つ，ジャパニーズアトラクタ型で 2 つのアトラクタを作り出すことができた．その微分方程式は次の通りである．
$:_{\backslash ::_{:_{\sim\prime}}}..\cdot d$’$\backslash$ヅ—-$\grave\grave$$\ovalbox{\tt\small REJECT}\backslash 0$

$3$

30

. ローレンッ型その 1,$\frac{dx}{dt}=-a(x-y+z)$$\frac{dy}{dt}=b(-xz+cx-y)$,$\frac{dz}{dt}=xy-bz$

レスラー型その 2 (レスラー型)$\frac{dy}{dt}=x-z$$\frac{dx}{dt}=b-z$,$\frac{dz}{dt}=yz+x-r$

ジャパニーズアトラクタ型その 1$-=y-kx^{2}$$dxdt$,$\frac{dy}{dt}=-ky-x^{3}+B\cos t+k^{2}(y-(B+1-ky)x^{3}-y^{2})$ジャパニーズアトラクタ型その 2$-=y-kx^{2}-ky$$dxdt$,$\frac{dy}{dt}=-ky-x^{3}+B\cos t$

微分方程式としての違いはわずかであるが，係数や項を少し変えただけでストレンジアトラクタは現れなくなることを考えれば，決して簡単に見つかったものではなく，試行錯誤の末に 4 つだけ見つけたというべきだろう．(図は前掲)

5

結論と課題
以上のように，CindyScript は高校生でも容易に習得でき，プログラミングそのものよりも，これを用いたシミュレーションに多くの労力を割くことができ，探求活動の強力な道具となりうることがわかった．しかし，「ストレンジアトラクタの探究」というテーマに関しては，次の課題がまだ残っている．
$\bullet$

ルンゲクッタ法による数値解

オイラー法よりもルンゲクッタ法の方が誤差の少ない結果が得られる．生徒はルンゲクッタ法にも取り組んではいたが，オイラー法との違いを明確にするなど，論文としてこれを含めるには至らなかった．
$\bullet$

計算機の誤差問題

大学の講義などでは，コンピュータの小数計算の誤差問題が扱われている．([11])Excel の計算誤差も有名である．カオスに関しては，ロジスティック写像のリター
ンマップとそれに関連する計算機の誤差間題がある．これについては，高校生の課題研究の進行と合わせた形で，CinderellaJapan サイトの「Cinderella でカオス」の項目に掲載したが，高校生にとっても格好の研究材料となるだろう．
$\bullet$ジャパニーズアトラクタの描画に関する問題

前項と関連するが，ジャパニーズアトラクタの描画については微妙な問題があ$2\pi/800$ をとっている．これを $2\pi/720$ とする．文献 [1] では，微小区間 $dt$ として，31$2\pi/800$ でも，ルンゲクッタ法で計算する
るとアトラクタが現れなくなる．また，とアトラクタが現れない．上田は「複雑系を超えて」 ([8]) の中で，「数値解析のアルゴリズムにしても，どのようなアルゴリズムを使っていただいても，また時間軸の刻みにしても，そこそこ大きくとっていただいても，同じ図がでてきます．
」と書いている．しかし，そうはなっていないのである．この点については，生徒も探究をしたが原因は掴めなかった．数値シミュレーションの信頼度に関係する，今後の大きな課題である．

これらは，今年の研究を先行研究として，後の学年の生徒が取り組むことを期待している．

参考文献[1] 臼田伊藤井上，Excel で学ぶ理工系シミュレーション入門，(CQ 出版社) ,2003[2] E.N.Lorenz, Deterministic Nonperiodic Flow, Journal of the ATOMOSPHERICSCIENCES, 1963
[3] ジェイムズグリック，カオス

新しい科学をつくる，新潮文庫，1991[4] EN. ローレンツ，カオスのエッセンス，共立出版，1997[5] 山口昌哉，カオスとフラクタル，ちくま学芸文庫，2010[6] 山口昌哉，カオス入門，朝倉書店，1996[7] ラルフエイブラハム，ヨシスケウエダ著，稲垣・赤松訳，カオスはこうして発見された，共立出版，2OO2[8] 上田西村稲垣，複雑系を超えて[9] Hirsch , Smale , Devaney,

カオス発見から未来へ，筑摩書房，1999

力学系入門

原著第 2 版，共立出版，2007[10] 林上田赤松，ある二階非線形常微分方程式の定常解について，数理解析研究所講究録 113 巻，19711-27[11] 井上純一，カオスフラクタル講義ノート，http://chaosweb complex eng hokudai ac ip/,2009