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

x ( ) x dx = ax

N/A
N/A
Protected

Academic year: 2021

シェア "x ( ) x dx = ax"

Copied!
43
0
0

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

全文

(1)

微分方程式と物理

森 真

(2)

マルサスの微分方程式

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

(3)

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

(4)

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

それには,微分の定義に戻る必要があります. dx dt = limh→0 x (t + h)− x(t) h ですから,hが十分小さければ x (t + h)− x(t) hx (t)の時刻tでの微分に近いと考えられます.マルサスの方程 式は x (t + h)− x(t) h + ax(t) つまり x (t + h)+ x(t) + ahx(t) が成り立ちます.時刻を0, h, 2h, 3h, . . .と考えて,次々に代入し ていけば解が近似できます.

(5)

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]

(6)

解の図

微分方程式 dx dt = x Figure: 初期値 1 と−1 のときのオイラー法による近似 0.2 0.4 0.6 0.8 1 -2 -1 1 2

(7)

問題

人類が絶滅するのは嫌だというので,人口が増えると,増加が鈍 る項を加えて,マルサスの方程式を改良した人口モデルのロジス ティック方程式 dx dt = ax− bx 2 の解をオイラー法で近似してください.

(8)

問題点

オイラー法では,より正確にするためには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

(9)

2

次元の線形微分方程式

2次元の微分方程式で dx dt = ax + by dy dt = cx + dy の形のものを,線形微分方程式といいます.

(10)

行列による表現

dx dt = ax + by dy dt = cx + dyA = ( a b c d ) とおくと d dt ( x y ) = A ( x y ) と変形できることにまず注目しましょう.

(11)

対角化

Aが対角化P−1AP = ( λ 0 0 µ ) できれば, ( X Y ) = P−1 ( x y ) とお くと d dt ( X Y ) = d dtP −1(x y ) = P−1A ( x y ) = P−1AP ( X Y ) により, dX dt = λX dY dt = µY と2つのマルサスの微分方程式にわかれますので,解くことがで きます.

(12)

対角化できる微分方程式

dx dt = 7 3x− 2 3y dy dt = 1 3x + 8 3y を解こう.ここでは A = ( 7 3 2 3 1 3 8 3 ) とおいて対角化すればよい.

(13)

固有値,固有ベクトル

A ={{7/3, −2/3}, {−1/3, 8/3}} とおいて,固有値と固有ベクトルを求める. Eigenvalues[A] Q=Eigenvectors[A] Qは固有ベクトルが横に並んでいるので,縦に並べ直して P=Transpose[Q]

(14)

対角化

Inverse[P].A.P とすれば,対角行列 ( 3 0 0 2 ) を得る.すなわち ( X Y ) = P−1 ( x y ) とおけば dX dt = 3X dY dt = 2Y になる.

(15)

問題点

もちろん対角化できない場合も困りますが,それ以上に固有値が 複素数になってしまう固有値が複素数になる微分方程式 dx dt = x− y dy dt = x + y では上の方法が使えません. こんな場合でも,オイラー法で微分方程式を近似することができ ます.

(16)

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]

(17)

この解法には誤りがある

方法に誤りはなさそうですが,新しいxyを求めるのに使って しまっています. x += h(x -y); y += h(x + y); この場合には,xやyは大きくは変わりませんので,大した問題 にはなりませんが,正しくは,一旦,xをしまっておいて,全部 求めてからもとへ戻せばいいのです.

(18)

Mathematica

による正しい解法

xを新しくしたxuとしてしまっておいて,新しい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]

(19)
(20)

問題

A = ( 1 2 1 1 ) の固有値と固有ベクトルを求め,さらにAを対角化してくださ い.さらにこの行列に対応する微分方程式 dx dt = x + 2y dy dt = x + y の解をオイラー法で求めてください.

(21)

物理と微分方程式

ニュートンの力学は I 等速直線運動 I F = ma,力は加速度に比例する I 作用反作用の法則 というたった3つの原理に基づいています. これと万有引力の法則 F = GmM r2 からりんごの落下から太陽と惑星の方程式まで導きだしたのです.

(22)

落下の方程式

物体は下に向かって,mg の力で引っ張られます. md 2y dt2 =−mg これは dy dt = v dv dt = −g と速度vも入れると簡単に解けて初期位置y0,初期速度v0y とお けば v (t) = v0y − gt y (t) = y0+ v0t− 1 2gt 2 となる.

(23)

放物線

x方向も考えると,水平には力が働いていないので d2x dt2 = 0 になります.x方向の初期位置x0,初期速度v0xとすると x (t) = x0+ v0xt となります,これからtを消去すると y (t) = y0+ v0y v0x(x (t)− x0) 1 2g ( x (t)− x0 v0x )2 と放物線が現れます.

(24)

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}]];

(25)
(26)

バネの方程式

バネの力は自然な状態からの長さの変化に比例する力が働きます (フックの法則). mdx 2 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は初期位置と初期速度から求めること ができます.

(27)

ふりこの方程式

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

(28)

問題

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

(29)
(30)

問題

dx dt = −10x + 10y dy dt = 29x− y − xz dz dt = 8 3z + xy の解をxy 平面に射影した図を作ってください.

(31)

ローレンツの方程式

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

(32)

ローレンツ方程式を

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}] ]

(33)

ローレンツ方程式の解

-15 -10 -5 5 10 15 20 -20 -10 10 20

(34)

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

dx dt = y dy dt = εy (1− x 2)− x は周期解にまつわりついて行く図になります.

(35)

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

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}]];

(36)

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

(37)

コンピュータによる解法

オイラー法はx (t + h)x (t) + x′(t)hで近似する方法です.これ はx (t + h)のテイラー展開 x (t + h) = x (t) + x′(t)h +x ′′(t) 2 h 2+· · · の初めの2項だけを用いたものです.もっとテイラー展開を長く 一致させればより正確な近似が得られるはずです.

(38)

方程式を 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を求めるのにym+1 = f (xm+1, ym+1)が必要な場合を陰的公 式,必要としないものを陽的公式といいます.陰的公式ではym+1 を解く必要があります.

(39)

オイラー法(陽的公式) ym+1= ym+ hym′ (ym′ = f (xm, ym)) 台形公式(陰的公式) ym+1 = ym+ h 2(y m+ ym+1′ ) h ym オイラー法 h ym ym+1 台形法

(40)

オイラー法ではxm< x < xm+1の点では y (x ) = ym+ (x− xm)ym′ 台形公式では ym+1 = ym+ h 2y m+ h 2y m+1 = ym+ h 2y m+ h 2(y m+ hym′′ +· · · ) = ym+ hym′ + h2 2 y ′′ m+· · · なので y (x ) = ym+ (x− xm)ym′ + (x− xm) 2 y ′′ m+· · · となります.台形公式はテイラー展開が2次まで一致しているこ とがわかります.しかし,陰的公式なのでym+1 = f (xm+1, ym+1) なので,ym+1を別の方法で近似するか,式を解かなければなりま せん.

(41)

後退オイラー法

ym+1= ym+ hym+1′ ym+1= ym−1+ 2hym′ 中点法は ym+1 = ym− hym′ + h2 2 y ′′ m+· · · + 2hym′ = ym+ hym′ + h2 2 y ′′ m+· · · と2次までテイラー展開が一致します.

(42)

中点法の実装

初期値をyに代入する.次に,1時刻前y−1を求めて,これをz にしまいます. y−1= y0− hy0 だから z = y − hy′ これらを用いて,中点法を次々に繰り返すのですが,一度,現在 のyの値を仮の保存場所w にしまいます. w = y 次に新しいyを中点法に従い計算します. y = z + 2h∗ y′ これが次の時刻のyになります.そして,仮に保存をしておいた 今のyの値を1時刻前になるので, z = w にしてしまいます. これを繰り返せばよいというわけです.

(43)

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つ求めなければなりません.

参照

関連したドキュメント

2Tは、、王人公のイメージをより鮮明にするため、視点をそこ C木の棒を杖にして、とぼと

ロボットは「心」を持つことができるのか 、 という問いに対する柴 しば 田 た 先生の考え方を

私たちの行動には 5W1H

仏像に対する知識は、これまでの学校教育では必

(自分で感じられ得る[もの])という用例は注目に値する(脚注 24 ).接頭辞の sam は「正しい」と

夫婦間のこれらの関係の破綻状態とに比例したかたちで分担額

都内人口は 2020 年をピークに減少に転じると推計されている。また、老年人 口の割合が増加し、 2020 年には東京に住む 4 人に

検討対象は、 RCCV とする。比較する応答結果については、応力に与える影響を概略的 に評価するために適していると考えられる変位とする。