変分法
変分法の基礎的な問題として,汎関数 を極値化する関数 を求めるというものがある.一般に,複数の独立変数があり,被積分関数 がいくつかの関数並びにそれより高次の導関数に依存している可能性がある.
極値関数は,各関数についての汎関数 の第一変分導関数を零に設定することにより得られるオイラー・ラグランジェ(Euler–Lagrange)方程式の解である.物理学や工学で扱われる常微分・偏微分方程式の多くは適切な汎関数に対するオイラー方程式として導くことができるので,変分法は一般的に使用できるものである.
VariationalD[f,u[x],x],VariationalD[f,u[x,y,…],{x,y,…}] | |
被積分関数 f によって定義された汎関数 の第一変分導関数を与える.ここで f は1つの関数 u および1つの独立変数 x あるいは複数の独立変数 x, y, …に依存する | |
VariationalD[f,{u[x,y,…],v[x,y,…],…},{x,y,…}] | |
被積分関数 f によって定義された汎関数 の第一変分導関数を与える.ここで f は複数の関数 u, v, …および複数の独立変数 x, y, …に依存する | |
EulerEquations[f,u[x],x],EulerEquations[f,u[x,y,…],{x,y,…}] | |
被積分関数 f のオイラー方程式を与える.ここで f は1つの関数 u,および1つの独立変数 x あるいは複数の独立変数 x, y, …に依存する | |
EulerEquations[f,{u[x,y,…],v[x,y,…],…},{x,y,…}] | |
被積分関数 f のオイラー方程式のリストを与える.ここで f は複数の関数 u, v, …および複数の独立変数 x, y, …に依存する |
VariationalDは被積分関数 によって定義される汎関数 の第一変分導関数を与える. はいくつかの関数 u, v, w, …,任意順でのそれらの導関数,変数 x, y, z, …に依存する可能性がある.被積分関数 が与えられると,EulerEquationsはオイラー(・ラグランジェ)方程式を返す.ここでも はいくつかの関数 u, v, w, …,任意順でのそれらの導関数,変数 x, y, z, …に依存する可能性がある.
FirstIntegrals[f,u[x],x],FirstIntegrals[f,{u[x],v[x],…},x] | |
被積分関数 f が{u[x],v[x],…}のいずれか,あるいは複数の要素と独立である場合,または x と独立である場合に,第一積分を与える | |
FirstIntegral[u] | 変数 u と関連した第一積分を与える(FirstIntegralsの出力に現れる) |
独立変数が x の1つしか存在しないとき,FirstIntegralsは以下の2つ場合に保存量を与える.
(1) f が座標 u に明示的に依存していなければ,それは「無視できる座標」と呼ばれ,対応するオイラー方程式が明確な第一積分(一般化された運動保存量)を持つ.
(2) f が u, v, ...と,それらの第一導関数のみに依存しており,x に明示的に依存していなければ,FirstIntegralsはハミルトニアン(Hamiltonian)に対応する第一積分も返す.
リッツ(Ritz)の変分法は,(1) 固有値問題 (ここで は演算子,は重み関数),(2) 形式 の問題( は正の有限演算子, は指定される)の2つの問題の近似解を求めるためのパワフルな方法である.境界条件を満足し,変分パラメータ , , …に依存する試行関数 の選択は,上のどちらの問題でも慎重に行わなければならない.(1)では,VariationalBound[{f,g},u[x,y,…],{{x,xmin,xmax},{y,ymin,ymax},…},ut,{a,amin,amax},{b,bmin,bmax},…]がを極値化する(ここで ,).この結果は,対応する固有値の上限およびパラメータの最適値となる.(2)では,VariationalBound[f,u[x,y,…],{{x,xmin,xmax},{y,ymin,ymax},…},ut,{a,amin,amax},{b,bmin,bmax},…]が汎関数 (ここで )を極値化し,汎関数の値および最適パラメータを与える.VariationalBoundは,適切な試行関数が与えられると,一般的な汎関数を極値化するために使用することもできる.NVariationalBoundはVariationalBoundと数値的に同様に動作する.また.内部関数FindMinimumを使うため,パラメータのオプションと入力形式はこれと同じである.
VariationalBound[{f,g},u[x,y,…],{{x,xmin,xmax},{y,ymin,ymax},…},ut,{a,amin,amax},{b,bmin,bmax},…] | |
範囲{{amin,amax},{bmin,bmax},…}における固有値の上限と a, b, …の最適値を与える | |
VariationalBound[f,u[x,y,…],{{x,xmin,xmax},{y,ymin,ymax},…},ut,{a,amin,amax},{b,bmin,bmax},…] | |
汎関数の値と a, b, …の最適値を与える | |
NVariationalBound[{f,g},u[x,y,…],{{x,xmin,xmax},{y,ymin,ymax},…},ut,{a,a0,amin,amax},{b,b0,bmin,bmax},…] | |
初期値が a0, b0, …の場合に,範囲{{amin,amax},{bmin,bmax},…}における固有値の上限と a, b, …の最適値を数値的に評価する | |
NVariationalBound[f,u[x,y,…],{{x,xmin,xmax},{y,ymin,ymax},…},ut,{a,a0,amin,amax},{b,b0,bmin,bmax},…] | |
初期値 a0, b0, …が与えられた場合に,汎関数の値と a, b, …の最適値を数値的に評価する |