[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
54.1 The dynamics package | ||
54.2 Graphical analysis of discrete dynamical systems | ||
54.3 Visualization with VTK |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
パッケージ dynamics
には、
3D可視化と、アニメーション、微分差分方程式のグラフィックス解析、微分方程式の数値解のための関数が含まれています。
微分方程式用の関数については Numerical Methods
の節で記述します。
離散力学系とフラクタルの様々なグラフィックス表現を生成するためのいくつかの関数と、
Mandelbrotと Julia集合については Plotting
の節で記述します。
このパッケージのすべての関数は初めて使われる時自動的にロードされます。
Categories: Dynamical systems · Share packages · Package dynamics
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
いわゆるカオスゲームを実装します:
初期点 (x0, y0)をプロットし、
m個の点 [x1, y1]…xm, ym]の1つをランダムに選択します。
プロットする次の点はプロットした以前の点からランダムに選ばれた点までの線分上で、
ランダム点からその線分の長さに bを掛けた距離にあります。
手続きは n回繰り返されます。
オプションは plot2d
と同じです。
例. Sierpinsky三角形のプロット:
(%i1) chaosgame([[0, 0], [1, 0], [0.5, sqrt(3)/2]], [0.1, 0.1], 1/2, 30000, [style, dots]); |
Categories: Package dynamics · Plotting
2次元グラフに、点の水平座標が整数 0, 1, 2, ..., n、 垂直座標が再帰関係
y(n+1) = F(y(n)) |
で定義された数列の対応する値 y(n)である n+1個の点を描きます。
ここで、初期値 y(0)は y0に等しいです。
Fは1変数にだけ依存する式でなければいけません。
(例の中では yに依存していますが、他のいかなる変数を使うことができます),
y0は実数でなければいけなく、 nは正の整数でなければいけません。
この関数は plot2d
と同じオプションを受け付けます。
例。
(%i1) evolution(cos(y), 2, 11); |
Categories: Package dynamics · Plotting
再帰関係を伴う二次元離散力学系によって定義された点列の中の最初の n+1点を二次元プロットで表示します。 初期値 u0と v0を持つ
u(n+1) = F(u(n), v(n)) v(n+1) = G(u(n), v(n)) |
Fと Gは 2変数 uと vのみに依存する式 2つでなければいけません。
変数はリストの中に明示的に指名されなければいけません。
オプションはplot2d
と同じです。
例。 2次元離散力学系の発展:
(%i1) f: 0.6*x*(1+2*x)+0.8*y*(x-1)-y^2-0.9$ (%i2) g: 0.1*x*(1-6*x+4*y)+0.1*y*(1+9*y)-0.4$ (%i3) evolution2d([f,g], [x,y], [-0.5,0], 50000, [style,dots]); |
そしてそのフラクタルの小領域の拡大:
(%i9) evolution2d([f,g], [x,y], [-0.5,0], 300000, [x,-0.8,-0.6], [y,-0.4,-0.2], [style, dots]); |
Categories: Package dynamics · Plotting
反復関数系法を実装します。
この方法は関数 chaosgame
で記述した方法に似ていますが、
現在点からランダムに選ばれた点にセグメントを縮める代わりに、
そのセグメントの2成分はランダムに選ばれた点に対応する 2行 2列行列 Aiを乗算されます。
m個のアトラクティブな点の1つのランダムな選択を重み
r1,...,rmで定義された非均一な確率分布で作ることができます。
それらの重みは累積形で与えられます;
例えばもし確率0.2, 0.5, 0.3を持つ3点があるなら、
重み r1, r2と r3は 2, 7, 10とできます。
オプションはplot2d
と同じです。
例。 4つの行列と4点で得られたBarnsleyのシダ:
(%i1) a1: matrix([0.85,0.04],[-0.04,0.85])$ (%i2) a2: matrix([0.2,-0.26],[0.23,0.22])$ (%i3) a3: matrix([-0.15,0.28],[0.26,0.24])$ (%i4) a4: matrix([0,0],[0,0.16])$ (%i5) p1: [0,1.6]$ (%i6) p2: [0,1.6]$ (%i7) p3: [0,0.44]$ (%i8) p4: [0,0]$ (%i9) w: [85,92,99,100]$ (%i10) ifs(w, [a1,a2,a3,a4], [p1,p2,p3,p4], [5,0], 50000, [style,dots]); |
Categories: Package dynamics · Plotting
パラメータ xを持つ一次元離散力学系の族に関する軌道図を描画します; この種の図は一次元離散系の分岐の研究に使われます。
関数 F(y)は、
関数 evolution
の場合と同様に値 y0で始まる数列を定義しますが、
この場合、その関数は x0から xfまでの区間内の値を取り、
xstepの増分を持つパラメータ xにも依存します。
パラメータ xに使われるそれぞれの値は水平軸に示されます。
垂直軸は、数列に n1回の時間発展させた後得られる数列
y(n1+1),..., y(n1+n2+1)の n2個の値を示します。
plot2d
が受け付けるオプションに加えて、
垂直方向に表現された異なる点の最大数を設定するオプション pixelsを受け付けます。
例。パラメータ aを持つ2次写像の軌道グラフ:
(%i1) orbits(x^2+a, 0, 50, 200, [a, -2, 0.25], [style, dots]); |
x =
-1.25近傍の下位分岐周りの領域を拡大するために使用:
(%i2) orbits(x^2+a, 0, 100, 400, [a,-1,-1.53], [x,-1.6,-0.8], [nticks, 400], [style,dots]); |
Categories: Package dynamics · Plotting
再帰関係によって定義された数列に関する階段図形を描画します。
y(n+1) = F(y(n)) |
入力パラメータの解釈と許される値は
関数 evolution
に関するものと同じです。
階段図形は線 G(y) =
yと共に関数
F(y)のプロットから構成されます。
垂直区間は、その線上の点 (y0, y0)から関数
Fと交差する点まで描画されます。
水平区間はその点から線上の点 (y1, y1)に届くまで描画されます。
手続きは点 (yn, yn)に届くまで n回繰り返されます。
オプションは plot2d
と同じです。
例。
(%i1) staircase(cos(y), 1, 11, [y, 0, 1.2]); |
Categories: Package dynamics · Plotting
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
関数 sceneは、 Visualization ToolKit (VTK)ソフトウエアを使って3D画像とアニメーションを生成します。 この関数を使うためには、 Xmaximaと VTKを(あるシステムでは別のパッケージに含まれる VTKの TCLバインディングを含めて)システムにインストールしなければいけません。
空のリストもしくは いくつかの objects
と options
のリストを受け付けます。
プログラムはXmaximaを起動し、Xmaximaが3次元空間内に与えられたオブジェクトを表現し与えられたオプションを適用した外部ウィンドウを開きます。
それぞれのオブジェクトは以下の4つのクラスの1つに属さなければいけません: 球、立法、円柱、円錐 (Scene objects
を参照してください)
オブジェクトは名前を与えることか、最初の要素がクラス名で続く要素がそのオブジェクトのオプションであるリストで識別されます
例。 青の背景を持つ六角形ピラミッド:
(%i1) scene(cone, [background,"#9980e5"])$ |
マウスの左ボタンを押しながらグラフィックスウィンドウ上を動かすことによって、
ピラミッドの別のビューを見せるようにカメラを回すことができます。
2つのプロットオプション elevation
と azimuth
を
ビュー用カメラの初期の向きを変えるのに使うことができます。
マウスの中央ボタンを押しながら動かすとカメラを動かすことができ、
マウスの右ボタンを押しながら上下に動かすとズームイン/アウトします。
それぞれのオブジェクトオプションはオプション名で始まるリストでなければいけません。
許されるオプションのリストは Scene object's options
節で見つけられます。
例。これは、地面に落下してエネルギーを失うことなしに跳ね返る球を示します。 アニメーションを開始したり止めたりするには、play/pauseボタンを押してください。
(%i1) p: makelist ([0,0,2.1- 9.8*t^2/2], t, 0, 0.64, 0.01)$ (%i2) p: append (p, reverse(p))$ (%i3) ball: [sphere, [radius,0.1], [thetaresolution,20], [phiresolution,20], [position,0,0,2.1], [color,red], [animate,position,p]]$ (%i4) ground: [cube, [xlength,2], [ylength,2], [zlength,0.2], [position,0,0,-0.1],[color,violet]]$ (%i5) scene (ball, ground, restart)$ |
restartオプションは
位置リストの最後の点に届く度に自動的にアニメーションを再始動するのに使われます。
色に関して受け付けられる値はplot2dの color
オプションのものと同じです。
Categories: Package dynamics · Plotting
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
デフォルト値: 135
カメラの水平(x, y)平面上の回転。 angleは実数でなければいけません; 角度0は カメラがy軸の方向を示し、x軸が右に現れることを意味します。
Categories: Package dynamics · Plotting
デフォルト値: black
グラフィックスウインドウの背景色。
カラー名と16進数の赤-緑-青文字列を受け付けます (plot2dの color
オプションを参照してください)。
Categories: Package dynamics · Plotting
デフォルト値: 30
カメラの垂直回転。 angleは実数でなければいけません; 角度0はカメラが水平面上を指すことを意味し、 デフォルト角度の30度はカメラが水平面から30度下向きを示していることを意味します。
Categories: Package dynamics · Plotting
デフォルト値: 500
グラフィックスウィンドウの高さ(ピクセル)です。 pixelsは正の整数でなければいけません。
Categories: Package dynamics · Plotting
デフォルト値: false
true値は、リストの終わりに至った時アニメーションが自動的に再スタートすることを意味します。 "restart"とだけ書くのは、[restart, true]と等価です。
Categories: Package dynamics · Plotting
デフォルト値: 10
連続アニメーションフレームの間の繰り返しの間の時間(ミリ秒単位)です。 timeは実数でなければいけません。
Categories: Package dynamics · Plotting
デフォルト値: 500
グラフィックスウインドウの幅(ピクセル)です。 pixelsは正の整数でなければいけません。
Categories: Package dynamics · Plotting
デフォルト値: .scene
nameは文字列でなければいけません。
Xmaximaが scene
グラフィックス用に生成した Tkウインドウの名前として使われます。
デフォルト値 .scene
は新たなトップレベルウィンドウが生成されることを意味します。
Categories: Package dynamics · Plotting
デフォルト値: Xmaxima: scene
nameは 文字列でなければいけません。
scene
が生成するウィンドウのタイトルに書かれます。
Categories: Package dynamics · Plotting
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
高さが1で、軸から0.5単位離れた頂点を持つ六角形の底面を持つ正角錐を生成します。
オプション height
と radius
は
それらのデフォルト値を変えるのに使い、オプション resolution
は
底面の辺の数を変えるのに使います; より大きな値にするとコーンらしく見えます。
デフォルトでは軸はx軸に沿っていて、軸の中点は原点にあり、頂点はx軸の正側にあります;
それらのデフォルトを変えるには、オプション orientation
と center
を使ってください。
例. これは、プレイボタンを押すとz軸の周りを回転し始める角錐を示します。
(%i1) scene([cone, [orientation,0,30,0], [tstep,100], [animate,orientation,makelist([0,30,i],i,5,360,5)]], restart)$ |
Categories: Package dynamics · Plotting
単位1の辺でxy, xz, yz面と平行な面を持つ正立方体。
オプション xlength
, ylength
, zlength
で3つの辺の長さを変えることができ、長方形の箱に変えます。
オプション orientation
で表面を回転させることができます。
Categories: Package dynamics · Plotting
高さが1で、軸から0.5単位離れた頂点を持つ六角形の底面を持つ正角柱を生成します。
オプション height
, radius
でそれらのデフォルトを変えることができ、
オプション resolution
で底面の辺の数を変えることができます;
より大きな値にすると円柱らしく見えます。
オプション height
でデフォルトの高さを変えることができます。
デフォルトでは軸はx軸に沿っていて、軸の中点が原点に来ます; それらのデフォルトを変えるにはオプション orientation
, center
を使ってください。
Categories: Package dynamics · Plotting
0.5単位のデフォルト半径を持ち、原点に中心がある球。
Categories: Package dynamics · Plotting
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
propertyは以下の 4つのオプジェクトのプロパティの1つでなければいけません:
origin
, scale
, position
, orientation
そして positionsは点のリストでなければいけません。
再生ボタンを押すと、オプション tstep
が与える時間感覚で
オブジェクトプロパティを連続的にリストのすべての値をとるように変化させます。
一連の始めに戻すには巻き戻しボタンを使います。再度再生ボタンを押せばアニメーションが再スタートするようになります。
track
も参照してください。
Categories: Package dynamics · Plotting
デフォルト値: 1
円錐か円柱に対して、底面を描くかどうかを決めます。 numberの値 1で底面を描き、値 0では描きません。
Categories: Package dynamics · Plotting
デフォルト値: [0, 0, 0]
position
に関するオブジェクトの幾何中心の座標。
pointは3つの実数のリストか、コンマで区切られた3つの実数をとることができます。
円柱や円錐、立方体では、高さの半分にあり、球では中心にあります。
Categories: Package dynamics · Plotting
デフォルト値: white
オブジェクトの色。
カラーネームか16進の赤緑青文字列を受け付けます。
(polot2dの color
オプションを参照してください。)
Categories: Package dynamics · Plotting
デフォルト値: 180
球に関して、phiはz軸を通る垂直面上の角度です。 z軸の正の部分から測ります。 angleは0と180の間の数でなければいけません。 表面が終わるphiの最終値を設定します。 180より小さな値の時、球の表面の一部が消えます。
startphi
, phiresolution
も参照してください。
Categories: Package dynamics · Plotting
デフォルト値: 360
球に関して、thetaは水平面上の角度(経度)です。 x軸の正の部分から測ります。 angleは0と360の間の数でなければいけません。 表面が終わるthetaの最終値を設定します。 360より小さな値の時、球の表面の一部が消えます。
starttheta
, thetaresolution
も参照してください。
Categories: Package dynamics · Plotting
デフォルト値: 1
valueは正の数字でなければいけません。 円錐や円柱の高さを設定します。
Categories: Package dynamics · Plotting
デフォルト値: 1
オプション wireframe
が使われる時の線の幅。
valueは正の数でなければいけません。
Categories: Package dynamics · Plotting
デフォルト値: 1
valueは0と1の間の数でなければいけません。 数が小さいと、オブジェクトが透明になっていきます。 デフォルト値1は完全に不透明なオブジェクトを意味します。
Categories: Package dynamics · Plotting
デフォルト値: [0, 0, 0]
3つの軸に対するオブジェクトの回転角度。
anglesは3つの実数のリストか、コンマで区切られた3つの実数を取ることができます。
例: [0, 0, 90]
はオブジェクトのx軸を参照系のy軸に回します。
Categories: Package dynamics · Plotting
デフォルト値: [0, 0, 0]
オブジェクトの他の寸法を決めるのに使われるオブジェクトの原点の座標。 pointは3つの実数のリストか、コンマで区切られた3つの実数を取ることができます。
Categories: Package dynamics · Plotting
デフォルト値:
startphi
から endphi
までの phi角度区間が分割される部分区間の数。
numは正の整数でなければいけません。
Categories: Package dynamics · Plotting
表面を描画するのに使われる三角測量の頂点のみを表示します。
例: [sphere, [points]]
Categories: Package dynamics · Plotting
デフォルト値: 1
オプション points
を使う時の点の大きさ
valueは正の数でなければいけません。
Categories: Package dynamics · Plotting
デフォルト値: [0, 0, 0]
オブジェクトの位置の座標。 pointは3つの実数のリストかコンマで区切られた3つの実数を取ることができます。
Categories: Package dynamics · Plotting
デフォルト値: 0.5
円柱や円錐の底面の頂点と軸の距離、半径。 valueは正の数でなければいけません。
Categories: Package dynamics · Plotting
デフォルト値: 6
numberは2より大きな整数でなければいけません。 円錐や円柱の底面の辺の数を設定します。
Categories: Package dynamics · Plotting
デフォルト値: [1, 1, 1]
3つの軸に関してオブジェクトをスケールするのに使う3つの数字。
factorsは3つの実数のリストかコンマで区切られた3つの実数を取ることができます。
例: [2, 0.5, 1]
はオブジェクトをx軸方向に2倍に拡大し、y軸方向に半分に縮小し、z軸方向はそのままにします。
Categories: Package dynamics · Plotting
デフォルト値: 0
球に関して、phyはz軸を含む垂直面上の角度です。 z軸の正の部分から測られます。 angle0と180の間の数でなければいけません。 表面が始まるphiの初期値を設定します。 0より大きな値の時、球の表面の一部が消えます。
endphi
, phiresolution
も参照してください。
Categories: Package dynamics · Plotting
デフォルト値: 0
球に関して、thetaは水平面の角度(経度)です。 x軸の正の部分から測られます。 angle0と360の間の数でなければいけません。 表面が始まるthetaの初期値を設定します。 0より大きな値の時、球の表面の一部が消えます。
endtheta
, thetaresolution
も参照してください。
Categories: Package dynamics · Plotting
オブジェクトの表面を描画します。
表面を構築するのに使われる三角測量の線と点を表示します。
これはデフォルトの振る舞いです。
オプション points
や wireframe
でこの振る舞いを変えることができます。
Categories: Package dynamics · Plotting
デフォルト値:
starttheta
から endtheta
までの theta角度区間を分割する部分区間の数。
numは正の整数でなければいけません。
starttheta
, endtheta
も参照してください。
Categories: Package dynamics · Plotting
positionsは点のリストでなければいけません。
再生ボタンを押した時、オプション tstep
で与えられた時間感覚でオプジェクト位置がリストの点すべてに連続的に変わります。
オブジェクトの軌跡の後を残します。
一連の始めに戻すには巻き戻しボタンを使います。再度再生ボタンを押せばアニメーションが再スタートするようになります。
例. これは、5 m/sのスピード、45度の角度で投げられたボールの軌跡を表示します。空気抵抗は無視されます:
(%i1) p: makelist ([0,4*t,4*t- 9.8*t^2/2], t, 0, 0.82, 0.01)$ (%i2) ball: [sphere, [radius,0.1], [color,red], [track,p]]$ (%i3) ground: [cube, [xlength,2], [ylength,4], [zlength,0.2], [position,0,1.5,-0.2],[color,green]]$ (%i4) scene (ball, ground)$ |
animation
も参照してください。
Categories: Package dynamics · Plotting
デフォルト値: 1
立方体のx方向の高さ。
lengthは正の数でなければいけません。
ylength
, zlength
も参照してください。
Categories: Package dynamics · Plotting
デフォルト値: 1
立方体のy方向の高さ。
lengthは正の数でなければいけません。
xlength
, zlength
も参照してください。
Categories: Package dynamics · Plotting
デフォルト値: 1
立方体のz方向の高さ。
lengthは正の数でなければいけません。
xlength
, ylength
も参照してください。
Categories: Package dynamics · Plotting
表面を描画するの使われる三角測量の辺だけを表示します。
例: [cube, [wireframe]]
Categories: Package dynamics · Plotting
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by 市川雄二 on June, 21 2016 using texi2html 1.76.