• 検索結果がありません。

べき級数法による偏微分方程式の解法

N/A
N/A
Protected

Academic year: 2021

シェア "べき級数法による偏微分方程式の解法"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)ハイパフォーマンス 92−3 コンピューティング (2002. 10. 25). べき級数法による偏微分方程式の解法 平山 弘. 菅 望. 神奈川工科大学 べき級数の四則演算や関数計算は、C++言語や Fortran を使うと容易に定義できる。こ れを利用すると常微分方程式の解をべき級数展開することができる。解は任意次数まで計 算できるので、Runge-Kutta に代わる任意次数の公式として使うことができる。べき級数 を使えば、誤差評価も容易に行え、許容誤差内の適切なステップサイズを容易に求められ る。さらに、べき級数を Padé 展開に変換し、それを利用すると任意次数でA安定な常微 分方程式を解く数値計算法を与える。 偏微分方程式を空間的に差分化し、得られる連立常微分方程式を時間方向にべき級数法 を適用して解くことを提案する。この方法を使うと安定で精度の高い計算ができる。. Solving Partial Differrential Equations by Power Series Hiroshi Hirayama and Nozomu Suga Kanagawa Institute of Technology The arithmetic operations and functions of power series can be defined by C++ language and Fortran. Using this, the solution of an ordinary differential equation can be expanded in power series. The solution can be expanded up to arbitrary order, so the calculation formula of arbitrary order can be used instead of Runge-Kutta formula. Power series can be used for the evaluations of the errors and the optimal step size within given error allowance easily. In addition, we can transform power series into Padé series, which give arbitrary order, high precision and A-stable formula for solving ordinary differential equation numerically. The partial differential equations can be converted into the simultaneous ordinary differential equations by differentiating spatially. This ordinary differential equation can be easily solved by the power series methods. The high precision and stable calculation can be done when we use this methods.. 1. はじめに プログラムでよく使われる演算子(+,-,*,/など)を、被演算の型が異なる場合、別の 意味を与えることができる機能、C++言語の機能(operator overload)を使い、有限項で 打ち切ったべき級数級数間の四則演算、べき級数級数の関数演算を定義する。この機能を 使うと、プログラムの形で与えられた任意の関数をべき級数展開することができる。 常微分方程式の初期値問題の解を任意次数のべき級数展開の形で得られる。得られたべ き級数級数解を数値計算に利用すれば、任意の次数の数値計算法が得られる。さらに、こ 1 −13−.

(2) のべき級数展開をある次数の Padé 展開式に変形すると、任意次数の A 安定な数値計算方 法[3]を与えることができる。 本論文では、この方法を偏微分方程式を解くのに利用することを提案する。この計算法 を使うと、安定で高精度の計算結果を得ることができる。ここで使用したプログラミング 言語は、入手が容易な C++言語を使っている。この計算は、数値計算でよく使われる Fort ran90 でも可能である。. 2. べき級数展開 関数をべき級数展開するための基本的な考え方を説明し、その計算方法について簡単に 論じる。詳しくは、Rall[5]や平山[2][8]などに述べられている。 2.1 べき級数級数の四則演算 べき級数級数の四則計算のプログラムは、以下のように簡単に作ることができる。平行 移動によって、展開位置を原点へ移すことができるので一般性を失うことなしに、原点で 展開した式だけを扱うことができる。この級数を次のように定義する。 (2.1) f ( x ) = f0 + f1 x + f2 x 2 + f3 x 3 + f4 x 4 +L (2.2) g( x ) = g 0 + g1 x + g 2 x 2 + g 3 x 3 + g 4 x 4 +L (2.3) h( x ) = h 0 + h1 x + h 2 x 2 + h 3 x 3 + h 4 x 4 +L 2.1.1 加減乗除算. h( x ) が f ( x ) と g ( x ) の和差積商のとき、 f , g および h の係数は、それぞれ次のような関 係になる。 h i = fi ± g i (2.4) 加減算 h( x ) = f ( x ) ± g( x ) (2.5). 乗算. n. hn = ∑ fk gn− k. h( x ) = f ( x ) g( x ). k =0. n −1  f( x ) f 1  、 h0 = 0 、 h n =  fn − ∑ h k g n − k  ( n ≥ 1 )  g0  g( x ) g0 k =0 (2.6)の第1式の両辺に g (x) を掛け、 (2.1)、(2.2)、および(2.3)を代入して、展開す る。両辺の同じ次数の係数が等しいことを利用して得られる。. (2.6). 除算. h( x ) =. 2.1.2 微積分演算. h( x ) が f ( x ) の微積分であるとき、 f および h の係数は、それぞれ次のような関係になる。 d f( x ) fm = 0 , h n = (n + 1) f n +1 (n = 0, L , m − 1) (2.7) 微分 h( x ) = dx 1 h 0 = 0, h n = f n −1 (n = 1, L , m) (2.8) 積分 h( x) = ∫ f ( x)dx n 積分演算で積分定数 h0 は任意であるが、ここでは、0と定義する。 2.2 べき級数級数の関数 他の多くの初等関数でも同様に係数間の漸化式を導くことができる。ここでは、べき級 数級数の指数関数の計算方法を示す。この方法は後に述べる常微分方程式の解のべき級数. −14− 2.

(3) 展開法の単純な例にもなっている。 h( x ) = e f ( x ) とおくと、 dh df (2.9) =h dx dx を満たす。(2.9)に(2.1)、(2.3)を代入して、両辺の係数を比較すると、 1 n (2.10) h0 = e f0 , hn = ∑ k hn−k fk ( n ≥ 1 ) n k =1 が得られる。対数関数や三角関数の場合も同様な公式を得ることができる。. 3. 常微分方程式の解のべき級数展開 3.1 解のべき級数展開. dy について解かれた形になっている常微分方程式について考える。 dx dy (3.1) = f ( x , y) dx ここで、 y および f は、一般にベクトルである。この微分方程式の解のべき級数展開は、 次のように. 以下に示す Picard の逐次計算法[3][11]を使うことによって計算する。 (3.2). y0 = a 0 、. x. y n = a 0 + ∫ f ( x , y n −1 )dx 0. ただし、(3.2)の計算は x の n 次以上の高次の項は省略して計算する。 3.2. Padé 展開の計算. べき級数は、容易に Padé 展開することができる。 Padé 展開とは、以下のようにべき級 数展開式を、有理関数に変形したものである。 p0 + p1 x +L+ p M x M 2 (3.3) a 0 + a1 x + a 2 x +L = 1 + q1 x +L+ q L x L (3.3)式の両辺に右辺の分母を掛け、 M + L 次の係数まで一致するように、有理関数の係 数を決定することによって得られる。 このとき、解かなければならない一次方程式の係数は、Toeplitz 行列と呼ばれる特別な 行列になる。この場合の一次方程式は、一次方程式が未知数の数を n としたとき、通常 n 3 に比例するのに対し、 n 2 や n log n に比例する手間で計算できる高速な計算法が知られてい る。本論文の計算は、 n 2 に比例する Levinson-Durbin の方法[4]によって行った。 3.3. A 安定性. E. Hairer and G. Wanner[1]のⅣ章にあるように、A安定性を調べるために使われる微分方程 式の解を(3.3)のように、分子 M 次、分母 L 次式に Padé 展開したとき、 M ≤ L ≤ M + 2 のと き、A 安定であることが知られている。分母の次数が分子の次数と同じか1または2次高 い式に変形すれば、A 安定な公式となる。このように変形すれば常微分方程式の初期値問 題に対する任意次数の A 安定な公式が得られたことになる。従来の A 安定な計算法は、 非線型の方程式を解く必要がある[6]のに対し、本方法では、連立一次方程式を解く程度の. 3 −15−.

(4) 計算できるため、計算方法としても、単純で高速である。. 4. 偏微分方程式の解法 偏微分方程式は、次のように、時間の偏微分項についてかれた形になっている方程式に ついて考える。 ∂u ∂u ∂ 2u (4.1) = f ( , 2 , L) ∂t ∂x ∂x ここで、 u および f は、一般にベクトルである。この偏微分方程式は、空間方向に差分 化することによって、連立常微分方程式に変換できる。 dun (t ) u (t ) − un (t ) un +1 (t ) − 2un (t ) + un −1 (t ) = f n ( n +1 , ,L) (4.2) dt ∆x (∆x) 2 ここでは、空間方向への偏微分を最も単純な差分に変換してある。必要があれば、もっと 高次の差分式に変換できる。(4.2)に、(3.1)および(3.2)の解法を利用すれば、時間 t に ついてのべき級数が得られる。(4.2)の右辺には、未知数 u n (t ) の線形和の形であり、容易 に計算できる。 f n すなわち f が線形関数かそれに近い関数ならば、容易に計算できる。. 5. 数値例 数値例として、次のような単純な偏微分方程式を考える。 ∂u ∂ 2u = (5.1) (拡散方程式) ∂t ∂x 2 境界条件: u (t , x = 0) = 0, u (t , x = 1) = 0 初期条件: u (t = 0, x) = sin π x この方程式を陽的解法を使って解くために、差分化すると、次のようになる。 u ((n + 1)∆t , m∆x) − u (n∆t , m∆x) u (n∆t , (m + 1)∆x) − 2u (n∆t , m∆x) + u (n∆t , (m − 1)∆x) = (5.2) ∆t (∆x) 2 この方程式を安定的に解くために は、次の CFL 条件を満たさなけれ ばならない。 ∆t 1 ≤ (5.3) 2 (∆x) 2 1 ここでは、 ∆x = とするので、こ 20 の方程式を安定的に解くには、 1 ∆t = = 0.00125 より小さくする 800 必要がある。右の図は、 ∆t を CFL 条件から決められる値の 10 倍をと り( ∆t = 0.0125 )計算した結果で ある。問題なく安定的に解くこと ができることがわかる。このとき. a. −16− 4.

(5) に使用した公式は、分母 2 次、分子 2 次の有理関数を使った 5 次の 図5.1 公式を利用した。さらに 8 倍の( ∆t = 0.1 )を 使って解くと次のページの図5.2のように なる。このように安定的に解くことができる。 この計算方法は、陽的解法よりも1ステップ 進めるための計算は多くなるが、大きな刻み 幅で計算でできるので、計算効率は非常によ くなる。さらに大きく刻み幅をとり、 ∆t = 0.125 と取ると、大きな数になり発散する ような不安定性ではないが、不自然な計算結 果が現れる。それを図5.3に示す。 次数を上げると、 ∆t = 0.125 でも自然で安定 な計算結果が得られる。分子が4次で、分母 も4次の公式で計算した結果を図5.4に示 す。このように計算精度を上げれば安定な範 a 囲が大きくなる。 図5.2 計算精度を上げるためには、A安定な公式を使うだけでなく、次数を上げて計算しなけ ればならない。 このように時間微分について解かれた形になっている偏微分方程式は比較的容易に解く ことができる。. a. 図5.3 図5.4 上の図は、すべて同じ問題の計算結果ですが、左下に伸びる軸のメモリは、ステップ番 号である。ステップサイズ h は計算結果によって異なるので、そのことを注意して見る必 要がある。右に伸びる軸はすべての計算結果で同じ意味を持つが、単位が ∆x = 0.05 になっ. 5 −17−.

(6) ている。. 6. おわりに 偏微分方程式をA安定な常微分方程式の計算法を使って解いてみた。安定性は常に満た すが、不自然な結果を出す可能性もある。これを避けるには、時間ステップを小さくする か、または次数を上げることによって避けることができる。次数を上げれば、計算時間ス テップを大きくとることができるので、1回のあたりの計算量が多くなっても全体として 計算量が小さくなる場合もある。 今回の計算では、最も単純な陽的な計算法と比較したが、計算法にもいろいろな計算法 [9][10][13]があり、陰的な計算法との比較がこれからの課題である。. 参考文献 [1] Hairer E., Wanner G., Solving Ordinary Differential Equations II, Springer-Verlag,(1991) [2] Hirayama H., Numerical Technique for Solving an Ordinary Differrential Equation by Picard's Methods, Integral Methods in Science and Engineering/Editor P. Schiavone, C. Constanda, A. Mioduchowski, Birkhauser, Berlin(2002) [3] 平山、小宮、佐藤, Taylor級数法による常微分方程式の解法, 日本応用数理学会論文誌, 12(2002), pp. 1-8 [4] Press W.H., Flannery B.P., Teukolsky S.A., Vetterling W.T., Numerical Recipes in C, Cambridge University Press, Cambridge(1988) [5] Rall,L. B. , Automatic Differentiation-Technique and Applications, Lecture Notes in Computer Science, Vol.120, Springer-Verlag, Berlin-Heidelberg-New York(1981) [6] 田中,高山,2段数陰的Runge-Kutta法について,情報処理学会論文誌, 36(1995), pp. 226-234 [7] Corliss G. and Chang Y. F., Solving Ordinary Differential Equations Using Taylor Series, ACM Trans. Math. Soft., 8(1982), 114-144 [8] 平山弘, C++言語によるべき型特異点をもつ関数の数値積分, 日本応用数理学会論文誌, 5(1995), 257-266 [9] 伊理, 小野, 戸田, 合成関数の高速微分法とその導関数を含むRunge-Kutta系の常微分方程 式 数値解法公式への応用, 情報処理学会論文誌, 26(1986), 389-396 [10] 小野, 戸田, 伊理, 微分係数を用いた埋め込 み型Runge-Kutta系2段公式について,情報 処理学会論文誌, 28(1987), 807-814 [11] 佐野理, キーポイント微分方程式, 岩波書店, 東京, 1993 [12] 田中 , 高山 , 安定性のよい 9 段数 7 次陽的 Runge-Kutta 法について , 情報処理学会論文誌 , 34(1993), 52-61. −18− 6.

(7)

参照

関連したドキュメント

In this paper, we introduce a new combinatorial formula for this Hilbert series when µ is a hook shape which can be calculated by summing terms over only the standard Young tableaux

We derive a high-order topological asymptotic expansion for a Kohn-Vogelius type functional with respect to the presence of a small obstacle inside the fluid flow domain.. An

We will call equa- tion (2.1) the Miwa correspondence... The difference equation thus turns into a power series in the lattice parameters. If all goes well, its coefficients will

of the Fuchs class linear differential equation which contains a term with the first order derivative of the unknown function, we propose effective methods for solving both the

But, at least in the case of the radial nonlinear standing wave equation, a simple technique based on the power series expansion of the Laplace transform of the Adomian

This problem becomes more interesting in the case of a fractional differential equation where it closely resembles a boundary value problem, in the sense that the initial value

Szufla, Kneser’s theorem for weak solutions of an mth-order ordinary differential equation in Banach spaces,

In this paper, we study a problem for second order ordinary differential equation with mixed nonlocal boundary conditions combined weighting integral boundary conditions with