数値計算法 第13回 偏微分方程式と差分法 2008年度 九州工業大学工学部電気電子工学コース用講義資料 講師:趙孟佑 [email protected] 1 偏微分方程式 • 関数が二つ以上の独立変数に依存する時 – 例えば • 時間tと距離x • 距離xと距離y • 距離x,距離y,距離z • 時間tと距離x,距離y,距離z • 普通は最大4つまで – その関数の独立変数の変化に対応した振るまい を記述する。 2 偏微分方程式の例(楕円形) • Laplace方程式 – 電位f(x,y)の空間分布 f=0 等電位線� 4角形の中の� 電位分布� f=10 f=0 f=0 f=0 3 偏微分方程式の例(楕円形) • Poisson方程式 – 電位f(x,y)の空間分布 r(x,y)は空間電荷� 等電位線� f=0 +電荷� f=0 -電荷� f=0 4角形の中の� 電位分布� f=0 4 偏微分方程式の例(放物形) • 熱伝導方程式 – 温度T(x,t)の時間・空間分布 r:密度、C:比熱、k:熱伝導率� T 時間経過� x=0 x=L 5 偏微分方程式の例(双曲形) • 波動方程式 – 電磁波による電界E(x,t)の伝搬 c:光速� x 前進波� t 後進波� 6 差分法 • 微分を空間(あるいは時間)の連続的な領 域でするのでなく、ある離散的な点と点の 間の傾きで近似 f(x)のxiでの接線f’(xi) 後退差分� 前進差分� 中心差分� xi-1 xi xi+1 7 後退差分 • 関数f(x)のxiでの解析的な微分はf’(xi) • これをxiとxi-1の間の直線的な傾きで近似す る。 これを後退差分という。� 8 後退差分 • f(xi-1)のxiの値を使ってTaylor展開で求めると、 但し、� に代入すると、� 誤差� 9 後退差分 • よって、後退差分を微分の近似に使うと、誤差 は となり、刻み幅Dxの1乗に比例する。� 1次の精度と言う。� 10 前進差分 • 関数f(x)のxiでの解析的な微分はf’(xi) • これをxi+1とxiの間の直線的な傾きで近似す る。 これを前進差分という。� 11 前進差分の精度 • f(xi+1)のxiの値を使ってTaylor展開で求めると、 但し、� に代入すると、� 誤差� 12 前進差分の精度 • よって、前進差分の誤差も となり、刻み幅Dxの1乗に比例する。� 13 中心差分 • 関数f(x)のxiでの解析的な微分はf’(xi) • これをxi+1とxi-1の間の直線的な傾きで近似す る。 これを中心差分という。� 14 中心差分の精度 • f(xi+1)とf(xi-1)のxiの値を使ってTaylor展開で求め ると、 差をとって、2Dxで割ると、� 誤差� 15 中心差分の精度 • 中心差分の誤差は となり、刻み幅Dxの2乗に比例する。� 2次の精度と言う。� 16 差分法の応用 • 微分方程式を差分法を用いて解く。 • 例 – 1次元Poisson方程式の解法 • 電磁気(静電気)で多用する。 17 Poisson方程式の物理的意味 • Gaussの定理 電束密度� 電界強度� 18 Poisson方程式の物理的意味 • 電界は電位の傾き マイナス(-)がつくことに注意� f x fの傾き負、電界Exは正� 19 Poisson方程式の物理的意味 • Poisson方程式 に� を代入する� 電位の2階微分=-電荷/誘電率� 20 Poisson方程式の物理的意味 f(x=0)=V f(x=L)=0 x V 簡単化のため1次元で考える� 中に電荷がないと、r=0 電界Exは一定� 21 Poisson方程式の物理的意味 f(x=0)=V f(x=L)=0 x f V V Ex 0 L 22 Poisson方程式の物理的意味 f(x=0)=V f(x=L)=0 + + x + + V +の電荷が中にあると� 電位は上に凸になる� 23 Poisson方程式の物理的意味 f(x=0)=V f(x=L)=0 + + x + + f V V Ex 0 L 24 Poisson方程式の物理的意味 f(x=0)=V f(x=L)=0 ー� ー� ー� ー� x V ーの電荷が中にあると� 電位は下に凸になる� 25 Poisson方程式の物理的意味 f(x=0)=V f(x=L)=0 ー� ー� ー� ー� f x V V Ex 0 L 26 Poisson方程式の物理的意味 f(x=0)=V f(x=L)=0 ー� ー� + + ー� ー� x + + V +とーの電荷がわかれてあると� 27 Poisson方程式の物理的意味 f(x=0)=V f f(x=L)=0 ー� ー� + + ー� ー� x + + V • 誘電体の分極� • プラズマ中の電界� �等で重要� V Ex 0 L 28 楕円形微分方程式の境界条件 • Poisson, Laplace方程式を解くには、計算する領域 の境界での値についての条件が必要 値を与える 例:f(x=0)=V,f(x=L)=0 Dirichlet(ディリクレ)型の境界条件 傾き(一階微分)を与える 例: Neuman(ノイマン)型の境界条件 値か、傾きかのどちらか一方を与えればよい。両 方は要らない。 29 1次元Poisson方程式の解法 結局、1次元のPoisson方程式� をx=0からx=Lの間で差分法を使って解くとは� 境界x=0とx=LでのΦの値と、x=0~x=LのΔx刻みのN+1個の点� x1,x2,x3,-----,xN,xN+1での空間電荷密度r(x1),r(x2),r(3),--,r(xN),r(xN+1) が分かっていて、� x2,x3,-----,xN-1,XNでの電位fを求める� x1 0 xN x2 DX xN+1 L 30 捕捉 なぜ、x0,x1,x2,x3,-----,xNでなく、 x1,x2,x3,-----,xN,xN+1とxに� 番号をうつのか?� Fortran77ではx(0)という配列の添字は使えない。� よって、n+1個の数の配列を表すには� x(1),x(2),----,x(n),x(n+1)と1から始めないといけない。� ここで、x(1)=0,x(n+1)=Lとなる。� CやJAVAではx(0)という配列の添字が使えるので、� x0,x1,x2,x3,-----,xNとしてもよい。� 31 2階微分の差分 fi+1 fi-2 xi-2 fi-1 fi+2 fi xi-1 xi-1/2 xi xi+1/2 xi+1 xi+2 xiでのfの2階微分を次式で近似� これはまず、i-1/2とi+1/2での一階微分を中心差分で定義して� (計算する必要はない)� 32 2階微分の差分 fi+1 fi fi-1 fi-2 xi-1 xi-1/2 xi xi+1/2 xi+1 xi-2 を� fi+2 と� xi+2 の中心差分で表す� 33 2階微分の差分の誤差 より� 誤差� よって、この差分のやり方は2次の精度� 34 1次元Poisson方程式の解法 は以下の連立方程式になる� N-1個� i=1,i=N+1での� 式は要らない。� Dirichletの境界条件だから� 35 1次元Poisson方程式の解法 36 1次元Poisson方程式の解法 行列に直すと、� 係数行列はN-1XN-1の対角対称行列で、� 対角要素とその前後以外は全て0 消去法で解くのが最も手軽� 37 1次元Poisson方程式の解法 ここで� 38 1次元Poisson方程式の解法 まず2行目から対角要素の下の要素を順繰りに消していく。� ① ①-②x(-2)=②’ ② ②’ ②’-③x②’の係数=③’ ③ ③’ 以下同様に� ④ 39 1次元Poisson方程式の解法 2行目からN-1行目まで、対角要素の下の要素を消すと、� あとは、N-1行目から上に解いていく。� 40 1次元Poisson方程式の解法 41 1次元Poisson方程式の例 境界条件は� 刻み幅Dx=0.1m 42 1次元Poisson方程式の例 電荷の無いとき� 43 例 x r(C/m3) 0.0��0 1 1 2 2 3 3 4 2 5 0 6 - 2 7 - 3 8 -2 9 -1 10��0 44 例 x r(C/m3) 0.0��0 1 1 2 2 3 3 4 2 5 0 6 - 2 7 - 3 8 -2 9 -1 10��0 式は全部で9個� 45 例 x r(C/m3) 0.0��0 1 1 2 2 3 3 4 2 5 0 6 - 2 7 - 3 8 -2 9 -1 10��0 46 1次元Poisson方程式の例 implicit real*8 (a-h,o-z) parameter(nmax=11) dimension phi(nmax) dimension a(nmax),b(nmax),c(nmax) dimension d(nmax),e(nmax) dimension rho(nmax),phi(nmax) dimension x(nmax) n=10 dx=0.1 eps0=8.85d-12 phil=100 phir=0 c open(unit=10,file='rho.dat',status='old') do i=1,n+1 read(10,*)idum,rho(i) end do close(10) c do i=1,n+1 x(i)=(i-1)*dx end do c do i=1,n-1 a(i)=1.d0 b(i)=-2.d0 c(i)=1.d0 end do c phi(1)=phil phi(n+1)=phir c e(1)=-dx*dx/eps0*rho(2)-phil c e(n-1)=-dx*dx/eps0*rho(n-1)-phir � e(n-1)=-dx*dx/eps0*rho(n)-phir do i=2,n-2 e(i)=-dx*dx/eps0*rho(i+1) end do c c Solution of tri-diagnola matrix c do i=2,n-1 b(i)=c(i-1)-b(i-1)/a(i)*b(i) c(i)=-b(i-1)/a(i)*c(i) e(i)=e(i-1)-b(i-1)/a(i)*e(i) end do c d(n-1)=e(n-1)/b(n-1) c do i=n-2,1,-1 d(i)=(e(i)-c(i)*d(i+1))/b(i) end do c do i=1,n-1 phi(i+1)=d(i) end do c open(unit=20,file='poisson2.lis',status='unknown') do i=1,n+1 write(20,110)x(i),phi(i) end do 110 format(2(1x,e12.5)) close(20) c stop end 47 宿題 x=0からx=Lまでの一次元のpoisson方程式を解いて、� x=0からx=Lまでの電位fをグラフでプロットせよ。� L=1m, Dx=0.1m,f(x=0)=100,f(x=L)=0とし、rの分布は次ページ� の表で与えられる。� このmはメートルの意味� 48 宿題 x r(C/m3) 0.0��0 0.1 1x10-9 0.2 2x10-9 0.3 (m+1)x10-9 0.4 2x10-9 0.5 0 0.6 - 2x10-9 0.7 - 3x10-9 0.8 -(m+1)x10-9 0.9 -1x10-9 1.0���0 ここでmは学籍番号の下一桁である。� 49
© Copyright 2024 ExpyDoc