レッスン
理論 — ラプラス方程式:定常状態の平板
ラプラス方程式(∂²u/∂x² + ∂²u/∂y² = 0)は、内部に熱源を持たない均質な物体の温度が変化しなくなった状態に対して成り立ちます。熱はある場所から入り、別の場所から出ていきますが、どの点においても熱が新しく生まれたり失われたりすることはありません。その解である調和関数は、平均値の性質を持っています。すなわち、ある領域内の任意の点における値は、その点を中心として領域内に描いた円周上の平均値と常に等しくなります。グリッドの世界では、この方程式は「すべての点が隣接する四つの点の平均になる」というシンプルな法則に姿を変えます。フーリエが『熱の解析的理論』(1822年)の中で、自身の級数を用いて最初に取り組んだのもこの問題でした。一方の端を沸騰した水の温度に、両側面を氷の温度に保った無限に長い平板が、最終的に変化しなくなった姿を解き明かしたのです。
各記号の意味
u- 定常状態の温度 (°C)
T- 辺に固定された温度。上、右、下、左に対してそれぞれ Tt、Tr、Tb、Tl
N- 1辺に並ぶグリッドマスの数。グリッド間隔は辺の長さの1/N
W- 点Pから放たれるウォーカーの数
全プロセスの詳細解説
-
細かいグリッドでは何回のスイープが必要か? 4 ステップ
冷たい状態から始めた場合、20 × 20のグリッドで平板の中心が25の0.1 °C以内に収まるまでに、ヤコビスイープを485回必要とします。では、1,000 × 1,000のグリッドでは何回必要になるでしょうか。 上辺が高温、Pは中心を押してみてください。画面には485という数字が表示されます。
-
冷え切った状態からスタートしたとき、最後まで残る誤差は sin πx sin πy という最も滑らかなパターンであり、各スイープごとにこの誤差は cos(π/N) 倍されていきます。上辺が100の場合、細かいグリッドの中心におけるこのパターンの大きさは 400/π² であり、N = 20 であってもすでにその値から半パーセント以内の範囲に収まっています:
-
これが0.1 °Cまで縮小しなければならないため、必要なスイープ回数 s は 40.53 cos(π/N)s = 0.1 という方程式を満たします。20 × 20のグリッドでこれを解くと、ページに表示された回数と一致します:
-
1,000 × 1,000のグリッドでは、cos(π/N) ははるかに1へ近づきます:
-
各スイープごとに、内部にある 999² 個の点が更新されます:
解答
約1.22百万回のスイープが必要であり、ひとつの点の更新回数に換算すると約 1.2 × 10¹² 回にも上ります。 これは、50倍細かいグリッドにするために485の約2,500倍(比率の二乗)の手間がかかることを意味します。これが、巨大なグリッドを純粋なヤコビ法だけで解くことが現実的ではない理由なのです。
-
学習の道すじ
熱伝導方程式、波動方程式、ラプラス方程式
参考文献 (2)
- Fourier's first worked example of his method: the permanent temperatures of a rectangular plate of infinite length, its base held at the temperature of boiling water and its two sides at that of ice (Arts. 163–165), solved as a series whose terms are e^(−kx) cos ky with the coefficients found by expanding 1 in cosines (Arts. 171–190): J. Fourier, The Analytical Theory of Heat, translated with notes by A. Freeman, Cambridge University Press, 1878 (Théorie analytique de la chaleur, 1822), Chapter III, Arts. 163–165, pp. 131–133, and Art. 190, p. 154.
- The random-number generator the walkers use, transcribed into the page from the authors' reference C and checked against it output for output: D. Blackman and S. Vigna, xoshiro128** 1.1, reference implementation in C (public domain), 2018, https://prng.di.unimi.it/xoshiro128starstar.c.