変分問題の数値解法(Numerical Analysis)について触れてみます
この辺のお話は有限要素法のバックボーンになりますのでとっても大事ですー
いろんな書籍やサイトで解説されてますので詳しくはそちらで・・・('A`)
今回はリッツ法(Ritz method)について,簡単な例題を通して計算の流れを確認していきます
ritz1.wxm
y : 曲線
y' : dy/dx
I : 汎関数
%o2にてyとy'がxに依存することを宣言します(画面出力は省略)
被積分関数Fを%o3式に示します
形式的に書きますが,汎関数IはFの作用(区間0〜1の積分)として%o4式で与えられます
このIを最小化する(δI = 0 を満足する)yを求める問題を考えます
まず変分法を使ってフツーに解きましょう
Fの作用を最小化する問題なので,オイラー・ラグランジュ方程式が使えます(%o5)
被積分関数Fを%o5式に代入して偏微分を計算し,ついでにy'も書き直した結果を%o7式に示します
この2階の常微分方程式をode2関数を使って解いた結果を%o8式に示します(%k1, %k2は積分定数)
2点[0, 0]および[1, 0]を通る境界条件より,%o9式を得ます
それでは,この問題をRitz法を使って解いてみます
境界条件を満足する試行関数(trial function)を%o10式に示します
この試行関数yを使って計算したFを%o11式に示します
このFを使って計算したIを%o12式に示します
Iの停留条件を%o13, %o14式に示します
上2式を連立一次方程式として未定係数c[1], c[2]について解いた結果を%o15式に示します
上の結果よりyは%o16式となります
Ritz法による解yを青線,変分法による解yoを赤線として%o17にプロットします