43

微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

微分方程式と物理

森 真

Page 2: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

マルサスの微分方程式

人口は現在の人口に比例して増加するということでたてられたモデルです.x は人口を表すとすると,その変化 (微分)は人口 x に比例すると考え

dx

dt= ax

が成り立つと考えました.

Page 3: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

この方程式は1

xdx = a dt

と変形してから,両辺を積分すると

log x = at + c

書き直してx(t) = eatC (C = ec)

と解けます.こういう方程式を変数分離形と言います.解は a > 0ならば,t → ∞で無限に増えていき,a < 0ならば,t → ∞で 0に収束します.マルサスは食料は線形 (at + bの形)でしか増産できないので,人類はいずれ滅びると予想したのです.これがマルサスの人口論と言われ,真偽はともかく,多くの議論を生みました.数学が社会科学に用いられた初めての例ではないでしょうか.

Page 4: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

コンピュータで求める方法

それには,微分の定義に戻る必要があります.

dx

dt= lim

h→0

x(t + h) − x(t)

h

ですから,hが十分小さければ

x(t + h) − x(t)

h

は x(t)の時刻 t での微分に近いと考えられます.マルサスの方程式は

x(t + h) − x(t)

h+ ax(t)

つまりx(t + h) + x(t) + ahx(t)

が成り立ちます.時刻を 0, h, 2h, 3h, . . .と考えて,次々に代入していけば解が近似できます.

Page 5: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

Mathematicaで解く

a=1;h=0.1;

For[i = 1; x = 1; kinji = {{0, x}};, i <= 10, i++,

x += a*x*h; AppendTo[kinji, {i*h, x}]];

ListPlot[kinji,PlotJoined−>True]

とやれば,解が描けます.

Page 6: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

解の図微分方程式

dx

dt= x

Figure: 初期値 1と −1のときのオイラー法による近似

0.2 0.4 0.6 0.8 1

-2

-1

1

2

Page 7: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

問題

人類が絶滅するのは嫌だというので,人口が増えると,増加が鈍る項を加えて,マルサスの方程式を改良した人口モデルのロジスティック方程式

dx

dt= ax − bx2

の解をオイラー法で近似してください.

Page 8: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

問題点オイラー法では,より正確にするためには hを小さくすればいいのですが,そうすると,計算の回数が増えます.コンピュータは四捨五入をしますから,回数が増えると誤差が増える (丸め誤差)危険があります.これを回避するには,もっと近似のよい式を使う必要があります.

Figure: h = 0.1のときの,真の解との差 (赤が真の解)

0.2 0.4 0.6 0.8 1

1.25

1.5

1.75

2

2.25

2.5

2.75

Page 9: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

2次元の線形微分方程式

2次元の微分方程式で

dx

dt= ax + by

dy

dt= cx + dy

の形のものを,線形微分方程式といいます.

Page 10: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

行列による表現

dx

dt= ax + by

dy

dt= cx + dy

A =

(a bc d

)とおくと

d

dt

(xy

)= A

(xy

)と変形できることにまず注目しましょう.

Page 11: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

対角化

Aが対角化 P−1AP =

(λ 00 µ

)できれば,

(XY

)= P−1

(xy

)とお

くと

d

dt

(XY

)=

d

dtP−1

(xy

)= P−1A

(xy

)= P−1AP

(XY

)により,

dX

dt= λX

dY

dt= µY

と 2つのマルサスの微分方程式にわかれますので,解くことができます.

Page 12: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

対角化できる微分方程式

dx

dt=

7

3x − 2

3y

dy

dt= −1

3x +

8

3y

を解こう.ここでは

A =

(73 −2

3−1

383

)とおいて対角化すればよい.

Page 13: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

固有値,固有ベクトル

A = {{7/3,−2/3}, {−1/3, 8/3}}

とおいて,固有値と固有ベクトルを求める.

Eigenvalues[A]

Q=Eigenvectors[A]

Qは固有ベクトルが横に並んでいるので,縦に並べ直して

P=Transpose[Q]

Page 14: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

対角化

Inverse[P].A.P

とすれば,対角行列 (3 00 2

)を得る.すなわち (

XY

)= P−1

(xy

)とおけば

dX

dt= 3X

dY

dt= 2Y

になる.

Page 15: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

問題点

もちろん対角化できない場合も困りますが,それ以上に固有値が複素数になってしまう固有値が複素数になる微分方程式

dx

dt= x − y

dy

dt= x + y

では上の方法が使えません.こんな場合でも,オイラー法で微分方程式を近似することができます.

Page 16: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

Mathematicaによる解法

h = 0.1;

For[i = 1; x = 0.1; y = 0; kinji = {{x, y}}, i <= 67, i++, x +=

h(x - y); y += h(x + y); AppendTo[kinji, {x, y}]];

ListPlot[kinji, PlotJoined −> True, Ticks −> None]

と行えば,解がオイラー法で近似できます.

Page 17: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

この解法には誤りがある

方法に誤りはなさそうですが,新しい x を y を求めるのに使ってしまっています.

x += h(x -y);

y += h(x + y);

この場合には,x や y は大きくは変わりませんので,大した問題にはなりませんが,正しくは,一旦,x をしまっておいて,全部求めてからもとへ戻せばいいのです.

Page 18: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

Mathematicaによる正しい解法

x を新しくした x は uとしてしまっておいて,新しい y を求めるときにはとっておいた x を使えばいいわけです.その後,uを xに戻します.h = 0.1;

For[i = 1; x = 0.1; y = 0; kinji = {{x, y}}, i <= 67, i++,

u=x+ h(x - y); y += h(x + y);x=u; AppendTo[kinji, {x, y}]];

ListPlot[kinji, PlotJoined −> True, Ticks −> None]

と行えば,解がオイラー法で近似できます.

Page 19: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

Figure: 初期値 (0.1, 0)での近似解

Page 20: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

問題

A =

(1 21 1

)の固有値と固有ベクトルを求め,さらに Aを対角化してください.さらにこの行列に対応する微分方程式

dx

dt= x + 2y

dy

dt= x + y

の解をオイラー法で求めてください.

Page 21: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

物理と微分方程式

ニュートンの力学は

I 等速直線運動I F = ma,力は加速度に比例するI 作用反作用の法則

というたった 3つの原理に基づいています.

これと万有引力の法則

F = GmM

r2

からりんごの落下から太陽と惑星の方程式まで導きだしたのです.

Page 22: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

落下の方程式物体は下に向かって,mg の力で引っ張られます.

md2y

dt2= −mg

これは

dy

dt= v

dv

dt= −g

と速度 v も入れると簡単に解けて初期位置 y0,初期速度 v y0 とお

けば

v(t) = v y0 − gt

y(t) = y0 + v0t −1

2gt2

となる.

Page 23: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

放物線

x 方向も考えると,水平には力が働いていないので

d2x

dt2= 0

になります.x 方向の初期位置 x0,初期速度 v x0 とすると

x(t) = x0 + v x0 t

となります,これから t を消去すると

y(t) = y0 +v y0

v x0

(x(t) − x0) −1

2g

(x(t) − x0

v x0

)2

と放物線が現れます.

Page 24: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

Mathematicaで描く

x , y 方向それぞれに速度があるので 4次元になります.そのうち,x , y だけをとっておいて,図にします.g=1;h = 0.1;

For[i = 1; x = 0; y = 0;vx=0.5;vy=20; kinji = {{x, y}},

i <= 100, i++,ux=x+ h*vx; vx += 0; uy=y+h*vy;vy+=-g*y;x=ux;y=uy; AppendTo[kinji, {x, y}]];

ListPlot[kinji, PlotJoined −> True, Ticks −> None]

Page 25: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

落下の運動

Page 26: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

バネの方程式バネの力は自然な状態からの長さの変化に比例する力が働きます(フックの法則).

mdx2

dt2= −kx

これもdx

dt= v

dv

dt= −kx

と速度 v も入れると,見通しが良くなりますが落下の方程式のように解くことはできません.しかし,勘がよければ,x(t) = A sin(Bt + C )のような形をしていることに気がつくはずで,そうなると解は

x(t) = A sin(√

kt + C )

v(t) = A cos(√

kt + C )

であることがわかり,A, C は初期位置と初期速度から求めることができます.

Page 27: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

ふりこの方程式

これまでの方程式は線形でしたから,線形代数で解くことができました.しかし,ふりこでは

md2x

dt2= −mg sin x

の形をしています.x が 0に近ければ sin x ∼ x とみることができてバネの方程式と同じになります.これがふりこが振れ幅によらず一定のリズムをする理由です.でも正しい解はこれとは違うはずです.このような方程式を非線形の方程式といいます.解けないものはコンピュータで近似解を求めるしか方法はありません.

Page 28: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

問題ふりこの方程式を解くプログラムを作ってさまざまな初期値について解の挙動を調べてください.予想通りの行動はしてくれません.これはオイラー法があまり良い近似でないために時間がたつと正確な解から遠ざかってしまうからです.

Page 29: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

本当の答え

Page 30: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

問題

dx

dt= −10x + 10y

dy

dt= 29x − y − xz

dz

dt= −8

3z + xy

の解を xy 平面に射影した図を作ってください.

Page 31: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

ローレンツの方程式

この方程式は気象の長期予報について研究していたローレンツが考えたものです.この解をみて,彼は長期予報は不可能であると結論をしました.解の形が蝶に似ていることから,北京で蝶が羽ばたきをすると,ニューヨークに嵐が起きるなどと象徴的に言われています.

Page 32: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

ローレンツ方程式をMathematicaで解くh = 0.01;

For[i = 1; x = 0.1; y = 0.1; z = 0.1; kinji = {{x, y}}, i < 5000,i++,

u=x + h(-10x + 10y);

v=y + h(28x - y - x*z);

z += h(-8z/3 + x*y);

x=u;

y=v;

AppendTo[kinji, {x, y}]

]

ListPlot[kinji, PlotJoined −> True]

Page 33: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

ローレンツ方程式の解

-15 -10 -5 5 10 15 20

-20

-10

10

20

Page 34: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

ファンデルポルの微分方程式

dx

dt= y

dy

dt= εy(1 − x2) − x

は周期解にまつわりついて行く図になります.

Page 35: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

ファンデルポルの微分方程式

h = 0.1; m = 2;

For[i = 1; x = 0.1; y = 0; kinji = {{x, y}}, i <=1000, i++,

u =x+ h*y;

y += h(m*(1 -x2)*y - x);

x=u

AppendTo[kinji, {x, y}]];

ListPlot[kinji, PlotJoined −> True, Ticks −> None]

Page 36: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

ファンデルポルの微分方程式

Figure: 初期値が内側からと外側からの図

Page 37: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

コンピュータによる解法

オイラー法は x(t + h)を x(t) + x ′(t)hで近似する方法です.これは x(t + h)のテイラー展開

x(t + h) = x(t) + x ′(t)h +x ′′(t)

2h2 + · · ·

の初めの 2項だけを用いたものです.もっとテイラー展開を長く一致させればより正確な近似が得られるはずです.

Page 38: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

方程式をy ′ = f (x , y)

とします.これを時間刻み h毎に初期値 y(0)から導く.x を T までなら, 0, h, 2h, . . .と T/h回繰り返すことにしましょう.このm回目を ymで表しましょう.xm = mhです.l 段階法 ymを得るのに,ymから ym−l+1を用います.この方法には初期値として,y0 = y(0)の他に y1, . . . , yl−1までを別の方法で求めることが必要になります.ym+1を求めるのに y ′

m+1 = f (xm+1, ym+1)が必要な場合を陰的公式,必要としないものを陽的公式といいます.陰的公式では ym+1

を解く必要があります.

Page 39: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

オイラー法 (陽的公式)

ym+1 = ym + hy ′m (y ′

m = f (xm, ym))

台形公式 (陰的公式)

ym+1 = ym +h

2(y ′

m + y ′m+1)

h

y ′m

オイラー法

h

y ′m y ′

m+1

台形法

Page 40: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

オイラー法では xm < x < xm+1の点では

y(x) = ym + (x − xm)y ′m

台形公式では

ym+1 = ym +h

2y ′m +

h

2y ′m+1

= ym +h

2y ′m +

h

2(y ′

m + hy ′′m + · · · )

= ym + hy ′m +

h2

2y ′′m + · · ·

なので

y(x) = ym + (x − xm)y ′m +

(x − xm)

2y ′′m + · · ·

となります.台形公式はテイラー展開が 2次まで一致していることがわかります.しかし,陰的公式なので y ′

m+1 = f (xm+1, ym+1)なので,ym+1を別の方法で近似するか,式を解かなければなりません.

Page 41: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

後退オイラー法

ym+1 = ym + hy ′m+1

ym+1 = ym−1 + 2hy ′m

中点法は

ym+1 = ym − hy ′m +

h2

2y ′′m + · · · + 2hy ′

m

= ym + hy ′m +

h2

2y ′′m + · · ·

と 2次までテイラー展開が一致します.

Page 42: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

中点法の実装初期値を y に代入する.次に,1時刻前 y−1を求めて,これを zにしまいます.

y−1 = y0 − hy ′0

だからz = y − hy ′

これらを用いて,中点法を次々に繰り返すのですが,一度,現在の y の値を仮の保存場所 w にしまいます.

w = y

次に新しい y を中点法に従い計算します.

y = z + 2h ∗ y ′

これが次の時刻の y になります.そして,仮に保存をしておいた今の y の値を 1時刻前になるので,

z = w

にしてしまいます.これを繰り返せばよいというわけです.

Page 43: 微分方程式と物理 - Nihon Universitymori/2009jyugyou/visual_math... · 2009-11-25 · ふりこの方程式 これまでの方程式は線形でしたから,線形代数で解くことができ

2回微分

y ′′(x) ∼y ′(x+h)−y ′(x)

h − y ′(x)−y ′(x−h)h

h

=y ′(x + h) − 2y ′(x) + y ′(x − h)

h2

を使うと 2回の微分方程式を近似することができますが,2段階法なので最初に 2つ求めなければなりません.