コンピュータ工学基礎演習 2014 12 偏微分方程式を解く 機能創成専攻 生体工学領域 井村 誠孝 [email protected] 講義資料: http://bit.ly/bpe-ecp14 常微分・偏微分・連立 2014/7/7 常微分方程式 独立変数: 1 従属変数: 1 偏微分方程式 独立変数: 複数 従属変数: 1 連立常微分方程式 独立変数: 1 従属変数: 複数 連立偏微分方程式 独立変数: 複数 従属変数: 複数 Exercises in Computer Programming 2 / 17 講義資料: http://bit.ly/bpe-ecp14 偏微分方程式とは 独立変数を2個以上含むような関数の偏導関数を 含む方程式. 微分: dy ( x) dx 偏微分=注目している変数以外を固定して微分: ∂z ( x, y ) ∂x yは定数だと考える 多くの自然現象は偏微分方程式で記述される. Maxwell方程式,Schrödinger方程式,Navier-Stokes方程 式... 2014/7/7 Exercises in Computer Programming 3 / 17 講義資料: http://bit.ly/bpe-ecp14 偏微分とは? ∂z dy ∂y y z = f ( x, y ) dy dx ∂z dx ∂x 2014/7/7 ∂z ∂z dz = dx + dy ∂x ∂y x Exercises in Computer Programming (全微分) 4 / 17 講義資料: http://bit.ly/bpe-ecp14 代表的な偏微分方程式の型 拡散方程式 ∂u ∂ 2u = 2 ∂t ∂x 放物型 波動方程式 ∂ 2u ∂ 2u = 2 2 ∂t ∂x 双曲型 Laplace方程式 ∂ 2u ∂ 2u + 2= 0 2 ∂x ∂y 2014/7/7 楕円型 Exercises in Computer Programming 5 / 17 拡散方程式を解く 講義資料: http://bit.ly/bpe-ecp14 拡散方程式 拡散方程式で表される現象 u1 (< u0 ) u0 熱の移動 生体内の分子の移動 – 単純拡散 肺におけるガス交換 物質内の光の散乱 x J 拡散方程式はFickの法則と連続の式から導出され る. ∂u J= − ∂x ∂u ∂ 2u = 2 ∂u ∂J ∂t ∂x = − ∂t ∂x 2014/7/7 Exercises in Computer Programming 7 / 17 講義資料: http://bit.ly/bpe-ecp14 拡散方程式の意味 uはxとtの関数 ∂u ( x, t ) ∂ 2u ( x, t ) = ∂t ∂x 2 ある場所xでのuの時間変化= xの近傍のuの分布が決める. 2回微分が正=下に凸=uは増加 2回微分が0ならば 時間変化なし →傾き一定に向かう 2014/7/7 2回微分が負=上に凸=uは減少 Exercises in Computer Programming 8 / 17 講義資料: http://bit.ly/bpe-ecp14 熱の拡散 次の方程式を解く. ∂u ( x, t ) ∂ 2u ( x, t ) = ※任意の関数 2 ∂t ∂x これまでと一緒 初期条件 u ( x,0) = φ ( x) (0 ≤ x ≤ 1) 境界条件= u (0, t ) U= U1 (t ≥ 0) 0 , u (1, t ) 空間の端の状態 熱伝導とみなして考える(すなわちuは温度)と: 1次元の系で,系のサイズは1 初期状態(t=0)での温度分布が与えられている. 境界の温度は常に一定とする. 2014/7/7 Exercises in Computer Programming 9 / 17 講義資料: http://bit.ly/bpe-ecp14 離散化 独立変数の離散化 時刻の離散化: 空間の離散化: t → i∆t ≡ ti x → i∆x ≡ xi これまでと一緒 空間も離散化 解の離散化 位置 xi,時刻 t j における解: u ( x, t ) → u (i∆x, = j∆t ) u ( xi , t j ) ≡ uij N分割 0 x0 = 0 2014/7/7 x1 = 1 N 1 xN = 1 Exercises in Computer Programming 1 ∆x = N i xi = N i = 0,, N 10 / 17 講義資料: http://bit.ly/bpe-ecp14 偏微分の差分化 時間の偏微分 u ( xi , t j + ∆t ) − u ( xi , t j ) ∂u → ∂t ∆t 空間の偏微分 ∂ 2u ∂ ∂u u ( xi + ∆x, t j ) − 2u ( xi , t j ) + u ( xi − ∆x, t j ) = → 2 2 ∂x ∂x ∂x ( ∆x ) これは(対称性を考慮した)差分の差分である. 1 u ( xi + ∆x, t j ) − u ( xi , t j ) u ( xi , t j ) − u ( xi − ∆x, t j ) − ∆x ∆x ∆x 2014/7/7 Exercises in Computer Programming 11 / 17 講義資料: http://bit.ly/bpe-ecp14 差分化された拡散方程式 陽解法(オイラー法) 既知 ∂u ∂ u 未知 = 2 ∂t ∂x uij +1 − uij uij+1 − 2uij + uij−1 = 2 ∆t ( ∆x ) 2 ⇔ uij +1 = α uij+1 + (1 − 2α ) uij + α uij−1 (α ≡ ∆t / ( ∆x ) ) これまでと同様に 左辺に未知の値をまとめて 漸化式を作る ただし u ( x, t ) → u (i∆x, = j∆t ) u ( xi , t j ) ≡ uij 2 2014/7/7 Exercises in Computer Programming 12 / 17 講義資料: http://bit.ly/bpe-ecp14 初期条件・境界条件の差分化 初期条件 u ( x, 0) = φ ( x) ⇒ ui0 = φ ( xi ) 時刻 u uの表記: 位置 最初の値を決めるときに使う 境界条件 = u (0, t ) U= U1 0 , u (1, t ) j j , ⇒ u= U u = U1 0 0 N 2014/7/7 毎ステップ成り立つようにする Exercises in Computer Programming 13 / 17 講義資料: http://bit.ly/bpe-ecp14 常微分方程式の解法との比較 常微分方程式 偏微分方程式 初期条件を決める 初期条件を決める 以下を繰り返す 以下を繰り返す 漸化式に従って,1個の変 数の値を更新 漸化式に従って,(空間分 布を表す)複数個の変数の 値を更新 境界条件を適用 2014/7/7 Exercises in Computer Programming 14 / 17 陰解法 講義資料: http://bit.ly/bpe-ecp14 完全陰解法 空間微分項を,時刻 t j ではなく,時刻 t j +1 の値で 差分化する. u ( xi + ∆x, t j +1 ) − 2u ( xi , t j +1 ) + u ( xi − ∆x, t j +1 ) ∂ 2u → 2 2 ∂x ( ∆x ) 未知 既知 uij +1 − uij uij++11 − 2uij +1 + uij−+11 = 2 ∆t ( ∆x ) ⇔ −α u j +1 i +1 2014/7/7 + (1 + 2α ) ui j +1 − αu j +1 i −1 ( ui α ≡ ∆t / ( ∆x ) = Exercises in Computer Programming j 2 ) 16 / 17 講義資料: http://bit.ly/bpe-ecp14 連立1次方程式を解く 整理すると以下の連立方程式となる. −α 1 + 2α −α 1 + 2α −α −α 1 + 2α 0 u1j +1 u1j j +1 j u2 u2 −α u3j +1 u3j = −α 1 + 2α −α u Nj +−12 u Nj −2 j +1 j 1 + 2α u N −1 u N −1 −α 0 注: u0j , u Nj は境界条件から常に0なので,計算の必 要はない. 連立方程式の解き方は既に学習済み. 2014/7/7 Exercises in Computer Programming 17 / 17
© Copyright 2024 ExpyDoc