heat1d-i-glsc.c は、同次Dirichlet境界条件のもとでの1次元熱方 程式を法という陰解法 (implicit shceme) で解くためのプログラムで ある。
桂田 [2] の 7.5 節 (3) を見ながら解読すると良い。 (なお、連立1次方程式を解くための関数 trilu(), trisol() については、桂田 [3]の5章 (特に7節) を見よ。)
次のような工夫をしてあるので、 陽解法の計算をするためにも、 heat1d-e-glsc.c でなく、 heat1d-i-glsc.c を使う方が便利である ( 法は、 とすると陽解法である)。
% cglsc heat1d-i-glsc.c % ./heat1d-i-glsc 入力して下さい : nfunc(1..5)=1 入力して下さい : θ=0 入力して下さい : N=100 入力して下さい : λ=0.5 時間の刻み幅τ= 5e-05 になりました。 入力して下さい : 最終時刻 Tmax=1 入力して下さい : グラフ書き換え時間間隔(Δt)=0.01 T= 0.0000e+00 I u(i) I u(i) I u(i) I u(i) I u(i) 0 0.0000e+00 1 1.0000e-02 2 2.0000e-02 3 3.0000e-02 4 4.0000e-02 5 5.0000e-02 6 6.0000e-02 7 7.0000e-02 8 8.0000e-02 9 9.0000e-02 10 1.0000e-01 11 1.1000e-01 12 1.2000e-01 13 1.3000e-01 14 1.4000e-01 15 1.5000e-01 16 1.6000e-01 17 1.7000e-01 18 1.8000e-01 19 1.9000e-01 20 2.0000e-01 21 2.1000e-01 22 2.2000e-01 23 2.3000e-01 24 2.4000e-01 25 2.5000e-01 26 2.6000e-01 27 2.7000e-01 28 2.8000e-01 29 2.9000e-01 30 3.0000e-01 31 3.1000e-01 32 3.2000e-01 33 3.3000e-01 34 3.4000e-01 35 3.5000e-01 36 3.6000e-01 37 3.7000e-01 38 3.8000e-01 39 3.9000e-01 40 4.0000e-01 41 4.1000e-01 42 4.2000e-01 43 4.3000e-01 44 4.4000e-01 45 4.5000e-01 46 4.6000e-01 47 4.7000e-01 48 4.8000e-01 49 4.9000e-01 50 5.0000e-01 51 4.9000e-01 52 4.8000e-01 53 4.7000e-01 54 4.6000e-01 55 4.5000e-01 56 4.4000e-01 57 4.3000e-01 58 4.2000e-01 59 4.1000e-01 60 4.0000e-01 61 3.9000e-01 62 3.8000e-01 63 3.7000e-01 64 3.6000e-01 65 3.5000e-01 66 3.4000e-01 67 3.3000e-01 68 3.2000e-01 69 3.1000e-01 70 3.0000e-01 71 2.9000e-01 72 2.8000e-01 73 2.7000e-01 74 2.6000e-01 75 2.5000e-01 76 2.4000e-01 77 2.3000e-01 78 2.2000e-01 79 2.1000e-01 80 2.0000e-01 81 1.9000e-01 82 1.8000e-01 83 1.7000e-01 84 1.6000e-01 85 1.5000e-01 86 1.4000e-01 87 1.3000e-01 88 1.2000e-01 89 1.1000e-01 90 1.0000e-01 91 9.0000e-02 92 8.0000e-02 93 7.0000e-02 94 6.0000e-02 95 5.0000e-02 96 4.0000e-02 97 3.0000e-02 98 2.0000e-02 99 1.0000e-02 100 0.0000e+00 マウスでウィンドウをクリックして下さい。 % |
桂田 祐史