Next: Functions and Variables for plotdf, Previous: plotdf, Up: plotdf [Contents][Index]
関数plotdf
は、
1次常微分方程式(ODE)や2つの自励1次ODE系の
(勾配場とも呼ばれる)方向場のプロットを生成します。
PlotdfはXmaximaを要求します。 コンソールや他のMaximaインターフェースから使うことができますが、 結果のファイルはXmaximaに送られ、プロットされます。 plotdfを使ってみる前にXmaximaをインストールしたことを確認してください。
単一のODEの方向場をプロットするには、ODEを以下の形式で書かなければいけません:
dy -- = F(x,y) dx
そして関数Fをplotdf
の引数に与えなければいけません。
もし独立変数と従属変数が、上の式のようにxとyでないなら、
plotdfコマンドへの引数として与えられるリストの中に明示的に
それら2つの変数を指名しなければいけません。
(例を見てください。)
2つの自励ODEの組の方向場をプロットするには、 それらを以下の形式で書かなければいけません。
dx dy -- = G(x,y) -- = F(x,y) dt dt
そしてplotdf
の引数は2つの関数GとFを
その順に持つリストでなければいけません;
すなわち、リストの最初の式は水平軸上に表された変数の時間導関数であり、
二番目の式は垂直軸上に表された変数の時間導関数です。
それら2つの変数はxとyである必要はありませんが、
もしそうでないなら、
plotdfに与えられる二番目の引数は
2つの変数を、最初のものが水平軸上のものを、その後垂直軸上のものを指定する別のリストでなければいけません。
もしただ1つのODEが与えられるなら、
plotdf
は、
暗にx=t
,G(x,y)=1
と認め、
非自励方程式を2つの自励方程式系に変換します。
Previous: Introduction to plotdf, Up: plotdf [Contents][Index]
[
u,v]
, ...options...) ¶[
dxdt,dydt]
, ...options...) ¶[
dudt,dvdt]
, [
u,v]
, ...options...) ¶2次元xとyに方向場を表示します。
最初の引数は導関数を指定し、式か2つの式のリストでなければいけません。
dydx, dxdt, dydtはxとyに依存する式です。
dvdu, dudt, dvdtはuとvに依存する式です。
それら2つの変数に加えて、
parameters
オプションで与えられる数値を持つか(オプション構文法は以下に与えられます)、
slidersオプションで指定される許される値の範囲の
パラメータ一式にも、式は依存するかもしれません。
コマンド内やメニューで選択して、いくつかの他のオプションを与えることができます。
プロット上でクリックしたり、オプションtrajectory_at
を使って、
積分曲線を得ることができます。
direction
オプションを使って、積分の方向を制御できます。
オプションは、forward, backward, bothのいずれかの値を取り得ます。
nsteps
で積分ステップの数を与えることができ、
tstep
オプションでそれらの間の時間間隔を設定できます。
積分にはAdams Moulton法が使われます;
4次の適応Runge-Kutta法に切り替えることも可能です。
プロットウィンドウメニュー:
プロットウィンドウのメニューには以下のオプションがあります: Zoom, はマウスの振る舞いを変えて、プロット領域上で左ボタンをクリックすることで ズームインできるようになります。 ある点近くをクリックする毎に、クリックした点を中心にしてプロットが拡大されます。 Shiftキーを押しながらクリックすると、 以前の倍率にズームアウトします。 ある点をクリックした時、軌跡の計算を再開するには、 メニューからIntegrateを選択してください。
メニューの中のオプションConfigを使って, 使用中のODE(s)や様々な他の設定を変えることができます。 構成の変更がされた後、新しい設定を稼働するには、 メニューオプションReplotを選択しなければいけません。 もし、座標の組を Configダイアログメニューの場Trajectory atに入れて、 enterキーを押したら、 既に示されているものに加えて、新しい積分曲線が表示されます。 Replotが選択された時は、 入れられた最後の積分曲線だけが表示されます。
右マウスボタンを押しながらカーソルを動かすと、 プロットを横や上下にドラッグできます。 ステップ数やtの初期値、x, yの中心や範囲のような追加パラメータは、 Configメニューで設定できます。
プロットのコピーは、メニューオプションSaveを使って、 ポストスクリプトファイルとして保存できます。
プロットオプション:
plotdf
コマンドはいくつかのコマンドを含むかもしれません。
それぞれのコマンドは複数の項目のリストです。
最初の項目はオプション名で、
残りはオプションに割り当てられる値から成ります。
plotdf
が認識するオプションは以下の通りです:
plotdf
に与えられたら、
x変数はtに直接比例することになります。
デフォルト値は0.1です。
tstep
のステップ回数を定義します。
デフォルト値は100です。
forward
―これは増分tstep
で独立変数をnsteps
回増やします―
backward
―これは独立変数を減らします―
またはboth
―これは
nsteps
回前進、 nsteps
回後進で拡げた積分曲線に導きます―
キーワードright
とleft
を、
forward
とbackward
の別称として使うことができます。
デフォルト値はboth
です。
versus_t
が0と異なる任意の値を与えられたら、
二番目のプロットウィンドウが表示されます。
二番目のプロットウィンドウは、
メインプロットウィンドウのメニューに似た別のメニューを含みます。
デフォルト値は0です。
name=value
の列を持つ文字列で与えなければいけません。
name=min:max
の列を持つ文字列で与えなければいけません。
例:
(%i1) plotdf(exp(-x)+y,[trajectory_at,2,-0.1])$
(%i1) plotdf(x-y^2,[xfun,"sqrt(x);-sqrt(x)"], [trajectory_at,-1,3], [direction,forward], [y,-5,5], [x,-4,16])$
グラフは関数y = sqrt(x)も表示します。
(%i1) plotdf([v,-k*z/m], [z,v], [parameters,"m=2,k=2"], [sliders,"m=1:5"], [trajectory_at,6,0])$
(%i1) plotdf([y,-(k*x + c*y + b*x^3)/m], [parameters,"k=-1,m=1.0,c=0,b=1"], [sliders,"k=-2:2,m=-1:1"],[tstep,0.1])$
(%i1) plotdf([w,-g*sin(a)/l - b*w/m/l], [a,w], [parameters,"g=9.8,l=0.5,m=0.3,b=0.05"], [trajectory_at,1.05,-9],[tstep,0.01], [a,-10,2], [w,-14,14], [direction,forward], [nsteps,300], [sliders,"m=0.1:1"], [versus_t,1])$