• Tidak ada hasil yang ditemukan

偏微分方程式入門 (1) 1 次元熱伝導方程式 - 明治大学

N/A
N/A
Protected

Academic year: 2025

Membagikan "偏微分方程式入門 (1) 1 次元熱伝導方程式 - 明治大学"

Copied!
4
0
0

Teks penuh

(1)

JOHOSYORI No.7

偏微分方程式入門 (1) 1 次元熱伝導方程式

桂田 祐史 1992 年 6 月 10 日

1 はじめに

今回から3回(予定)に渡って偏微分方程式の数値シミュレーションを体験してもらいます。

前回までに扱った常微分方程式とは、独立変数が t 唯一つのみの未知関数 u = u(t) に関す る、導関数を含む関係式、例えば

du

dt =F(t, u)

のような形の方程式のことでした1。こうした常微分方程式でモデル化される問題は相当に多く、

重要なものも少なくないのですが2、実は偏微分方程式と呼ばれる、はるかに広範な現象をモデ ル化出来るものがあります。それは一言で説明すると、独立変数が二個以上の未知関数に関す る、導関数(多変数なのですから当然偏導関数です)を含んだ方程式のことです。この情報処理II では、簡単で現象のイメージのつかみやすい熱伝導方程式と波動方程式を取り上げることにしま す。

2 熱伝導方程式

t,x という 2つの独立変数についての関数 u=u(x, t) についての方程式

(1) ∂u

∂t = 2u

∂x2 (0≤x≤1, t≥0)

は一次元熱伝導方程式と呼ばれます。これは(物理的には)長さが 1の一様な針金における熱の 伝わり具合を表わす方程式と解釈することが出来るからです3。この場合、t は時刻、x は針金 上の位置を表わす座標、u(x, t) は位置 x、時刻t における針金の温度を表わしています。

この方程式は、時刻 t = 0 での針金の各部分の温度を指定することに相当する初期条件

(2) u(x,0) =f(x) (0≤x≤1)

1前回までは未知関数をxで表わしましたが、今回は後の偏微分方程式と対比しやすいようにuを用います。

2佐藤總夫「自然の数理と社会の数理I,II」日本評論社、という本に色々楽しい例が載っています(もっと前に紹介 すべきでした)

3x2次元や3次元のベクトル、すなわちu3あるいは4つの独立変数t,x1,x2 (,x3)の関数である場合に

も似たような方程式が考えられます。これは熱伝導現象以外にも、拡散現象を表わしているという解釈も可能です。

伝染病の流行のシミュレーションに使われたりもしますし、証券会社の人が勉強するような経済学の本に出て来たり します(私はびっくりしました)。このように、数学の上では一つの方程式が、複数の現象に対応しているというこ とがあります。一つのイメージを固定しないほうがいいのかもしれません。

1

(2)

以外に、各時刻での針金の両端の状態を指定する「境界条件」を課すことにより、解 u が決定さ れる問題となります。境界条件としては、両端の温度が常に 0 であるという

(3D) u(0, t) =u(1, t) = 0 (t≥0),

あるいは、両端で熱の出入りがない(断熱)という

(3N) ∂u

∂x(0, t) = ∂u

∂x(1, t) (t≥0)

を考えることにしましょう。((3D) のように u の値を指定するものをDirichlet(ディリクレ)境

界条件、(3N) のように ∂u/∂xの値を指定するものを Neumann(ノイマン)境界条件と呼びま

す。)

これらの問題は、結果がどうなるかは直感的にもある程度理解できます。熱は温度の高いと ころから低いところに流れるので、時間の経過とともに針金の温度分布は場所によらない定数に 近付いて行くでしょう。そして (3D) の場合は冷え切って温度 0 に近付き、(3N) の場合は(熱 量が保存されるので)初期条件 f で決定される温度に近付くでしょう。

3 差分法によるシミュレーション

常微分方程式の初期値問題とは異なり、偏微分方程式を解く手段にはかなりのバリエーショ ンがありますが、ここでは差分法と呼ばれる方法を用いてみましょう。これは常微分方程式を解 くための Euler 法や Runge-Kutta 法などと同様に、(1)独立変数の範囲を分割して、とびとび の点の上での値を求めることを目標とする、(2)方程式に現われる微分を差分商で置き換える、

という二つのアイディアを用いたものです。常微分方程式の時と異なるのは、独立変数の個数が 2 以上のため、変数の領域の分割の仕方が少し難しくなることです。問題 (1)-(3) の場合は、考 えている変数 (x, t) は適当な長方形領域に属すると考えればいいので、長方形格子に区切るのが 自然で実際それで OK なのですが、後で述べるような、明らかでない注意が必要になります(例 えば正方形に区切るだけではうまく行きません)。

「空間変数」x については、区間 [0,1]を N 等分するのが、自然でしょう。

h= 1/N, xi =ih (i= 0,1,2,· · ·, N).

時間変数 t については、刻み幅(間隔)を τ としましょう。tjtj = (j = 0,1,· · ·) で定めます。

t に関する一階偏微分 ∂u

∂t(x, t) については「前進差分商」u(x, t+τ)−u(x, t)

τ で近似し、x に関する二階偏微分 2u

∂x2(x, t)については、「二階中心差分商」 u(x+h, t)2u(x, t) +u(x−h, t) h2

で近似することにより、(1) の近似方程式として u(x, t+τ)−u(x, t)

τ = u(x+h, t)2u(x, t) +u(x−h, t) h2

が得られます。そこで格子点上 (xi, tj) での u の近似値 Ui,j を考えると次の方程式の採用が有力 となります。

(4) Ui,j+1−Ui,j

τ = Ui+1,j2Ui,j+Ui−1,j

h2 (i= 1,2,· · ·, N 1;j = 0,1,2,· · ·), 2

(3)

一方 (2) からごく自然に

(5) Ui,0 =f(xi) (i= 0,1,2,· · ·, N)

が得られます。(3D) からは

(6D) U0,j =UN,j = 0 (j = 0,1,2,· · ·),

(3N)からは(ちょっと分かりにくいかもしれませんが)

(6N) U0,j =U1,j, UN,j =UN−1,j (j = 0,1,2,· · ·)

が考えられます。

数列 {Ui,j} に関する方程式 (4),(5),(6) は二つの添字 i, jを含んでいて一見複雑ですが、時 刻に関する方の添字 j の小さい方から順に計算していくことが可能です。それを見るには、λ = τ /h2 と置いて、(4) を

(7) Ui,j+1 = (12λ)Ui,j+λ(Ui+1,j+Ui−1,j)

と変形すると分かりやすいでしょう。(例えば、j = 0 の場合、Ui,j = Ui,0 (0 i ≤N)は (5) から分かるので、Ui,j+1 =Ui,1 が計算できます。これをすべての i について実行してから、次の j に移行すれば OK です。)

さて、ここで一つだけ注意すべき問題があります。常微分方程式の時は、刻み幅が一種類し かなかったのですが、ここでは h, τ と性質の違うものが 2 つあります。刻み幅を小さくする(0 に近付ける)時、どうやればうまく行くのでしょうか?結論を天下りに述べると、λ を0< λ≤ 1/2と選んで固定したまま、h,τ を小さくする必要があります。τ =λh2 ということですから、

τh よりもずっと速く小さくしないといけないことになります。このことは少し難しいので、

これ以上詳しい解説はしません。

今回例題プログラムとして用意した reidai7-1.fは、(4),(5),(6D)をプログラミングしたも のです(つまり (1),(2),(3D) のシミュレーションをします)。初期値は

f(x) =

( x 0≤x≤1/2 1−x 1/2≤x≤1

という、中央に山のある関数です。f77xでコンパイル、実行すると空間方向の分割数N と、上 で解説したパラメーター λ の入力を促してきますので、試してみたい値を入力して下さい。以下 の例では、N = 20, λ = 2/5 としています(λ は上で注意した条件を満足するように選びまし た)。

waltz11% f77x reidai7-1.f waltz11% reidai7-1

空間の分割数(<= 100), λ=時間刻み幅/空間刻み幅の2乗を入力してください。

20 0.4 ← N=40,λ=2/5 とした

時間刻み幅= 1.00000E-03になりました。

するとウィンドウが現われて、針金の温度の時間変化を見ることが出来ます。

時間に関する添字 j に関しては、とりあえず 1 万ステップ動かしますが、それでも足りない という場合に備えて

3

(4)

計算を続けますか?続けたいなら 1 を入力して下さい。

と尋ねて来るようになっています。止めたいなら、例えば 0 を入力して下さい。

問題7-1 次のことを実験しなさい。(1) 初期値を変えてみる。(2) λ を変えてみる。特に条件 0< λ≤1/2 を満足しない場合を試す。

問題7-2 プログラムを書き換えて、Neumann 問題 (4),(5),(6N) のシミュレーションをしなさ い。

4

Referensi

Dokumen terkait

で与えられる. 問3.2 Rn+1の座標 Xn+1 をRn+1 で定義された関数とみて,それをSn に制限したものをh とする( 高さ関数 ).hの全微分dhをSn \ {p+}, φ,Sn \ {p−},ψにおいて局所 座標表示せよ. さて,微分形式αを具体的に記述するときには,一気に大域的な記述を与えるのが困難な場

微分1形式についてPoincaréの補題を証明しよう. 𝜔 = ∑𝑛 𝑖=1 𝑔𝑖𝑑𝑥𝑖 をℝ𝑛の閉微分1形式とする.前問の2と同じ式(ただしℝ3はℝ𝑛 でおきかえる)によって𝑓を定義する.線積分の定義を用いて計算すると 𝑓𝑥1,…, 𝑥𝑛 =∫ 1 0 ∑𝑛 𝑖=1 𝑥𝑖𝑔𝑖𝑡𝑥1,…, 𝑡𝑥𝑛𝑑𝑡 であるが,この両辺を𝑥𝑗

4章 図形の調べ方 ※「主体的に学習に取り組む態度」については,「知識・技能」,「思考・判断・表現」の指導を踏まえ,単元全体を通して, ・図形の性質などを証明することの必要性と意味を考えようとしている。 ・平面図形の性質について学んだことを生活や学習にいかそうとしている。 ・平面図形の性質を活用した問題解決の過程をふり返って評価・改善しようとしている。

20 ヒント:まずp座標における静水圧平衡の関係に理想気体の状態方程式を用い て密度 または比容 を消去せよ。次に密度を消去した静水圧平衡の関係式を 水平方向に微分し、また、地衡風平衡の関係式を圧力pで微分し、両者を比較 せよ。 問 5.2 700 hPa面において、気温の南北勾配を1.0 K/100km(北のほうが低い)

問 7.1 次のような風の場において、渦度を計算せよ。 (1) (2) 課題 7.1 式12から15を導出するときに、基本場の東西風U を一様とは仮定 しないで、南北方向の変化を考慮に入れたら、式15はどのように書きかえられ るか。ただし、東西方向には一様とする。基本場の南北風はゼロとしてよい。 問 7.2 基本場の西風を35

f, g: R→Cは十分滑らかな関数で、 fx = ∑ n∈Z aneinx, gx =∑ n∈Z bneinx をその Fourier 級数展開とする。 4これが任意のf について成り立つとき、{φn}は完全正規直交系であるという。Parsevalの等式は、通常完 全正規直交系に関する命題として提示される。... この問題で述べた事実は、Fourier

…高校までに学んだ数学をおろそかにしていると、大学の数学で まともな成績を取ることはかなり難しいので; 数学的議論をすることが難しい、真剣に高 校数学の復習をするべきである。 それから Z du 1−u = log|1−u|+C Cは積分定数 とした人が多かったのだが、正しくは Z du 1−u =− Z du u−1 =−log|u−1|+C

プログラムは,2つのファイル(output.numerical,output.analytic)を結果として生成する. output.numerical Euler法で解いた結果ファイル.式の入力,初期条件の設定が正しければ,それな りの正しい結果になるはず. output.analytic