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

ここで,tに関して中心差分を行っているのだが,これをやると,スキームの最初の段階を別のもので 計算しなければならなくなるので,ここは前進差分にしてしまおう.すなわち,

u(x, t+ ∆t)−u(x, t)

∆t

=−cu(x+ ∆x) +u(x, t) +u(x−∆x, t) 3

×u(x+ 2∆x, t)2u(x+ ∆x, t) + 2u(x∆x, t)−u(x−2∆x, t) 2∆x

−νu(x+ ∆x) +u(x, t) +u(x−∆x, t) 2(∆x)2

を考える.

これを差分方程式に書き換えると,

uk+1j =ukj −c ∆t

6∆x(ukj+1+ukj +ukj1)(ukj+1−ukj1)−ν ∆x

2(∆x)3(ukj+22ukj+1+ 2ukj1−ukj2) となる.これを用いてKdV方程式を数値的に解くことにしよう.もはや初期・境界値問題を定式化した 形では書かないが,Derichlet境界条件を課し,区間[0,1]で端の値を0にしておく.初期関数f(x)を与 えたときの時間的変化を見てみることにしよう.

いきなりソリトン解を与える関数で数値計算してもよいが,それでは面白みがない.まず,初期関数 としてsin波を与えてみよう.

一見画面がごちゃごちゃになって不安定な解なのかと思いきや,鋭くとがった数本の解が方崩れせずに 進行していく現象が確認できる.これは,Zabusky,Kruskalが数値的に発見した最初のもので,とがった 孤立波が実はソリトン解なのである..

そこで,sech波を初期関数として与えてみると,形崩れせず長時間生き残ることがわかる.ソリトン 解の有名な現象としては,2つのソリトン波の衝突である.これもこの差分スキームで∆t,∆x, c, νをう まく選んでやると,数値的に見ることができる.

2つのソリトンの衝突

波高の高いソリトンの方が速く進み,波高の低いソリトンに衝突.

衝突の間は形が変わるが,抜けてしまうと,形は保たれている.

∆t= 0.001, N = 100, c= 1, ν= 0.0001

s1 = 1, s2 = 15, s3 = 70, t1 = 16, t2 = 55, A= 1, B = 0.4

ここでは,区間の長さをs3で指定し,最初のソリトンの高さをA,その位置をs1, s2で指定し,2番目 のソリトンの高さをB,その位置をt1, t2で指定している.

ここでは,特に,cに比べてνが十分小さい場合にソリトン解が見られることに注意しておく.このよ うな解が本当にKdV方程式の厳密解であるのかどうか,それは問題であるが,実際にそうであることが 理論的に証明された.

5 微分方程式の有限要素法

6 微分方程式の有限要素法による数値解析 7 微分方程式の境界要素法

8 微分方程式の境界要素法による数値解析

bababababababababababababababababababababababab

ここはまだ書いていない.これらの方法は,数学的にはかなり理論的な難しさがあり,また,

適用される問題もかなり複雑な状況設定が可能になるため,難しい.まだ筆者はこの分野につい てはほとんど何も知らない.

9 付録

ここでは,本文中で述べ切れなかったこと,取り上げるには過度に数学的な内容と思わ れるものなどを述べる.ここで述べる内容は,数学的に重要であることはもちろんであるが,

数値解析的に重要ではないということではない.むしろ数値解析を適正かつ実用的に行うた めには,ここで述べるような微分方程式論を知っておく必要がある.そのことは注意してお きたい.

9.1 代数方程式および連立方程式の解法