PDEtools[PDEplot] -1階線形または非線形偏微分方程式の解をプロットする
使い方
PDEplot(PDE, inits, srange, options)
パラメータ
PDE - n 個の変数に関する1つの未知関数を含む1階のPDE
inits - n+1 個の式または等式のリストで、n+1 空間の中の (n-1)-次元多様体のパラメータ形式を指定する。;初期データ
srange - 初期データに対するパラメータの範囲(1個または複数個)
options - (オプション) PDEplot,option で説明される等式
|
説明
|
|
•
|
コマンド PDEplot は、1階の線形または非線形偏微分方程式 (PDE) の、与えられた初期条件に対する解のプロットを生成します。
|
•
|
n-1個のパラメータに依存する (n+1)-空間内の多様体 ( n=2 のときは曲線 )の方程式からなる初期データが与えられ、積分超曲面がそれを通らなければならないとき、解を生成するのに特性多様体の方法が使われ、数値計算法を適用できる1階の PDE の組からなる系が結果として得られます。デフォルトは、内部的なルンゲ-クッタの4次の方法を(ステップサイズを固定して)用います。 method のオプションの等式により、他の dsolve[numeric] の方法を選択することができます。しかしながら、これらの外部的な方法はプロットの生成をかなり遅くすることに注意して下さい。
|
•
|
第1引数 PDE はどんな1階の偏微分方程式でもかまいません。区分的に線形な関数を含む PDE は、Maple V のリリース4と同様、ハードウェアの数値法( evalhf ) を用いて扱うことができます。 第1引数の後の引数はすべて、どんな順序でも構いません。
|
•
|
パラメータ inits は、(n+1)-空間内で、積分曲面が通らなければならない曲線のパラメータ形を指定する n+1 個の要素からなるリストです。その要素は n-1 個のパラメータに依存せねばなりません。n=3 のとき、パラメータとしてたとえば s と t を使うと、リストの要素は、[f1(s,t), f2(s,t), f3(s,t), f4(s,t)] のような式、または [x2=f1(s,t), u=f2(s,t), x1=f3(s,t), x3=f4(s,t)] のような形の等式でなければなりません。ここで f(s,t) は、数値的に評価できる s と t の明示的な関数です。この2つの入力は等価ですが、等式が与えられた場合、要素の順序は無関係です。
|
•
|
パラメータ srange は初期データで使われるパラメータの範囲のリストです。それは [s1 = a1..b1,s2 = a2..b2, ...] のように与えられなければなりません。
|
•
|
n = 2 ならば、デフォルトでは、解曲面は不透明な色の着いた膜として表示されます。n > 2 ならば、デフォルトでは、全体で求める解超曲面を掃くような一連の曲面が、アニメーションで表示されます。より詳しいことについては、plots[animate] を参照して下さい。
|
•
|
残りの引数は、option = value という形の等式として指定されるオプションとして解釈されます。特に、スタイルオプションにより、点だけからなるプロット、または line mode を使ってそれらを補間することができます。より詳しいことについては、plot3d,option を参照して下さい。
|
•
|
この関数は PDEtools パッケージの一部なので、コマンド with(PDEtools) を実行した後に限り、PDEplot(..) の形で使えます。しかし、コマンドの長い形 PDEtools[PDEplot](..) を使うことにより、常時アクセスできます。
|
|
|
例
|
|
2つの独立変数の非線型偏微分方程式 (pde1) が与えられたとします。
>
|
pde1 := diff(u(x,y),x)*diff(u(x,y),y)-x*y+u(x,y)=0;
|
| (2.1) |
x-y 平面内の単位円周を使って、偏微分方程式の積分曲線を PDEplot により調べられます。
>
|
PDEplot(pde1, [cos(t),sin(t),0], t=-Pi..Pi,
ic_assumptions=[diff(u(x,y),x) = -cos(t)]);
|
PDE の非線形性により、実際には、初期曲線の導関数の値に依存して、2つの解の可能性が考えられます。これらの値はオプション `ic_assumptions` を用いて与えられます。
>
|
PDEplot(pde1, [cos(t),sin(t),0], t=-Pi..Pi,
ic_assumptions=[diff(u(x,y),x) = cos(t)]);
|
>
|
pde2 := sin(diff(u(x,y,z),y)) = u(x,y,z);
|
| (2.2) |
>
|
ics := [cos(t)*sin(s), cos(s)*cos(t), cos(t), sin(t)] , [t=0..Pi, s=0..Pi];
|
| (2.3) |
>
|
PDEplot(pde2, ics, animate=only, numsteps=[-5,6], stepsize=.1, axes=NONE,
style=PATCHNOGRID, numchar=[16,16], orientation=[148,66],
lightmodel='light2');
|
もう1つ別の例。
>
|
pde3 := (y^2+z(x,y)^2+x^2)*diff(z(x,y),x) - 2*x*y*diff(z(x,y),y)
- 2*z(x,y)*x = 0;
|
| (2.4) |
>
|
PDEplot(pde3, z(x,y), [t,t,sin(Pi*t/0.1)/10], t=0..0.1, numchar=40,
orientation=[-163,56], basechar=true, numsteps=[20,20], stepsize=.15,
initcolour=cos(t)*t, animate=false, style=PATCHCONTOUR);
|
ページ PDEtools[PDEplot_options] には、もっと多くの例があります。
|
|
参照
|
|
DEtools, DEtools[DEplot], dsolve, dsolve[classical], dsolve[dverk78], dsolve[gear], dsolve[lsode], dsolve[numeric], dsolve[rkf45], PDEplot_options, PDEtools, plot3d, plots[animate]
|
|