ネムネコ脳内の仮想会議 [ひとこと言わねば]
ネムネコ脳内の仮想会議
「ネムネコ、お前、FTCSで計算するとき、計算領域の一番後ろ、どうやって計算したんだ?」
「u(一番後ろ,t)=0として計算したが何か問題があるケロか?」
「そのように計算していいのか?」
「スプレッドシートの方は、表をあまり大きくしたくなかったので、計算領域の一番後ろの点をx=10としている。速度c=0.2でt=50まで計算しているので、ここまで計算すると、この仮定に問題があるのは事実。
しかし、物理なんかで使う
という条件を課すと、微分方程式は
だから、
となるので、u(一番後ろ,t)=u(一番後ろ,0)=0となる。
だから、こう解いて問題はないと思うケロ。
それに、公開したスプレッドシート、あくまで、こういうふうに解けるという、計算の仕組みを説明するための、お試し版だにゃ。
記事の最後に載せたFTCSによる計算結果のグラフは、スプレッドシートのものとは異なり、計算領域をx=20まで拡大して解いたものだにゃ。ct=0.2×50=10の倍をとって計算しているから、u(20,t)=0としても、0≦x≦10の解u(x,t)に及ぼす影響はそれほど大きくないと思うケロ。それでも不安ならば、計算領域を0≦x≦100まで拡大し、このとき、この条件が計算結果にどのような影響を及ぼすか調べればいい。そして、影響を及ぼさない範囲で計算しなおせばいいだけの話だケロ。
それに、FTCSはすぐに激しく振動する数値解を出すケロ。この解はそもそも信用できないのだから、そんなに神経質になる必要はないと思うにゃ。」
――スプレッドシートではなく、プログラムを作って、x=20まで拡大して計算した結果はコチラ↓40ステップくらいまでu(20,t)=0という仮定を満たしていることがわかる。まったく影響はないとはいわないけれど、今日、公開したスプレッドシートの計算結果は概ね正しいはずだ!!現に、x=4、t=50のときのスプレッドシートによる計算値はおよそ0.86で下のグラフから読み取った値は約0.85でよく一致している。――
「
という条件を課すのならば、
とすべきだったんじゃないか。」
「それも考えたけれども、空間微分で2次精度の中心差分と1次精度の前進差分が混在することになり、解法として一貫していないから、採用しなかったケロ。」
・・・・・・・
コメント 0