[陽解法でも収束するかも] [ネコ騙し数学]
[陽解法でも収束するかも]
ddt^3です。ちょっと面白いなぁ~と思って、差分法に関する安定条件をググってみると、フォン・ノイマンの安定条件ってのが出てきます(註1。
http://dr-asa.hatenablog.com/entry/2017/08/31/154806
上記HPによると、放物型偏微分方程式の陽解法が安定であるためには、任意の整数0≦mに対して、
だそうです。ここでGは時間方向への誤差の拡大率,βmは、
であり、Lは解析領域の長さです。この条件は解の大きさに誤差も比例するという前提なので、mは解を空間方向にフーリエ展開した場合の波数(モード次数)と考えられます。
к=1/2,Δt=0.1,Δx=0.4,L=4として、m=0,1,2,・・・に対してG(m)をプロットしてみると、図-1になります。
波数20以上は周期的な繰り返しです。解析結果のグラフをみてみると、どう考えても1次モードのみ励起されるはずです。
です。
Gは誤差の拡大率です。初期誤差をεとし、誤差は解の大きさに比例するという前提を信じれば、
で、時間ステップnにおける誤差を評価できる事になります(たぶん最悪の予想)。T(x,t)は解,tnはnステップ目の時刻です。
解析結果は放物線が一様に圧縮されてくような感じなので、T(x,tn)/T(x,0)をx=2の値の変化で代表させます。紙面から読み取った値は、
・・・表-1くらいかな?。
これをグラフに起こして強引に指数関数近似したのが図-2です。相関係数がR2=1とウルトラ良いので(^^)、図-2の補間結果から、
で近似する事にします(註2)。
次に初期誤差εですが、T(x,0)=x(4-x)=-x2+4xなので、t=0でのx方向への2階差分の絶対値はa(0)=1のはず。
時間差分は1階で、空間差分は2階だから、
くらいかな?(^^;)。
以上を使って、誤差の積算Ε(n)を計算してやると、図-3になります。
「ネコの旦那!。陽解法で永遠に数値積分しても、最大誤差0.0102くらいで収束しそうでっせ!」
陰解法は、長時間積分に対して陽解法より平均的に精度が良いだけの話で、局所的な精度は陽解法が上回る場合もあり得ると、自分は思っています。例えばあまり長くない時間積分であれば、無条件安定なシンプレクティック法よりルンゲクッタ法の方が、ずう~っとずう~っと精度が良い。
シンプレクティック法は陽解法のくせに(まさに陰に)陰解法の特性を持つのに対して、ルンゲクッタ法による超長時間積分では、解は0に減衰します。という訳で・・・。
予想1)
陽解法でも発散しないケースだったから、陽解法の精度がバカみたいに良かった?。
でもですね、n=100で既に0.001~最大0.01程度の誤差は見込まれます。単精度ですよね?。問題のスケール規模は100=1のオーダーで単精度の有効数字は6桁。倍精度でやりたいなぁ~(^^;)。
予想2)
倍精度計算したら、劇的に状況が変化するかも。あくまで「するかも」。
以上、他人のプログラムなんて頼まれても読みたくないddt^3の、他人事のような発言でした(^^;)。
(執筆:ddt³さん)
(註1)フォン・ノイマン法による陽解法の安定性判定については、ねこ騙し数学でも過去に「陽解法による拡散方程式の安定性」という記事で取り上げている。
http://nekodamashi-math.blog.so-net.ne.jp/2016-11-23
(註2)微分方程式の厳密解は、
そして、n=1のとき
となるので、約5%くらいの誤差で
と近似できる。