Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2)...

12
Runge-Kutta Runge-Kutta 法で物理現象を解く 法で物理現象を解く 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学演習 (11/20)

Transcript of Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2)...

Page 1: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

Runge-KuttaRunge-Kutta法で物理現象を解く法で物理現象を解く

  堀 安範 (D2)

東京工業大学 地球惑星科学専攻井田研究室

2008年 後期 数値地球惑星科学演習 (11/20)

Page 2: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

概要概要

1 Runge-Kutta法で解ける物理現象の例

2 二重振り子とは?

3 解くべき微分方程式

4 数値計算コード

5 結果

6 まとめ

Appendix 1 --- プログラムの使い方

Appendix 2 --- 可視化の方法

Page 3: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

■ Rutherford Rutherford 散乱散乱

■ 磁場・電場中での荷電粒子の運動磁場・電場中での荷電粒子の運動

yy軸軸

xx軸軸

zz軸軸

B ※ Buneman-Boris法で計算

1. Runge-Kutta1. Runge-Kutta法で解ける物理現象法で解ける物理現象

E

AuHe原子核

Page 4: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

1. Runge-Kutta1. Runge-Kutta法で解ける物理現象法で解ける物理現象■ 物体の運動物体の運動 ((落下問題、振り子、単振動 落下問題、振り子、単振動 etc)etc)

■ 多体多体(N(N体体))問題 問題 ((重力相互作用重力相互作用))

yy軸軸xx軸軸

zz軸軸

空気抵抗:Stoke's law

反発係数 e = 0.9

※ 2048体 (leap-frog法)

Page 5: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

1. Runge-Kutta1. Runge-Kutta法で解ける物理現象法で解ける物理現象■ 物体の運動 (落下問題、振り子、単振動 etc)

■ 多体多体(N(N体体))問題 問題 ((重力相互作用重力相互作用))

yy軸軸xx軸軸

zz軸軸

空気抵抗:Stoke's law

反発係数 e = 0.9

※ 2048体 (leap-frog法)

Page 6: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

2. 2. 二重振り子二重振り子

O

物体 1

物体 2

糸で繋がれた「糸で繋がれた「2つのおもり」から成る」から成る振り子

解析力学でLagrangeLagrangeの運動方程式の運動方程式を勉強する時に登場 !!

初期の方位角 (の振れ幅)        の時は, 2つのおもりは、単振動となる ← 唯一、解析解が求められる(近似解)

しかし、それ以外の場合はしかし、それ以外の場合はどういう運動をするか分からない

※ ネタばれで言うと、「カオス」「カオス」になる

じゃあ、数値計算してみよう!!

Page 7: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

3. 3. 解くべき微分方程式解くべき微分方程式O

物体 1

物体 2

■ ■ 物体の座標物体の座標

■ ■ 系のエネルギー系のエネルギー

LagrangeLagrangeの運動方程式の運動方程式

但し、

Page 8: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

4. 4. 数値計算コード数値計算コード(1). (1). 計算精度計算精度   4次の精度が出ているか?

(2). (2). 計算コードは合っている計算コードは合っている??

   解析解と比較 ( )

(3). (3). 保存量保存量  外力なしの系では、   エネルギー保存 (Hamilton系)

102 103 104 105

グリッド数

0-2-4-6-8

-10-12-14

傾き−傾き−44

0 1 2時間 [s]

0.002

0.001

0

-0.001

-0.002

【数値解数値解】   --- + --- ×【解析解解析解】 -- ー

0 1 2 3 4 5 6時間 [s]

-10

-12

-14

-16→ どれくらいの精度まで??

Page 9: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

5. 5. 結果 結果 --- --- 物体の軌道物体の軌道(1). (2).

(3). (4).

-8 -4 0 4 8x 座標

0

-10

-20

y 座

-20 -10 0 10 20x 座標

0

-10

-20

y 座

-20 -10 0 10 20x 座標

10

0

-10

-20

y 座

x 座標

10

0

-10

-20

y 座

-20 -10 0 10 20

(Movie)(Movie)

(Movie)(Movie)

Page 10: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

6. 6. まとめまとめ

二重振り子の運動を二重振り子の運動を44次の次のRunge-KuttaRunge-Kutta法で数値計算した法で数値計算した..

■ 振れ幅が十分小さい場合

  2つの物体の運動 --- 単振動 (解析解と一致)

■ 振れ幅が大きい場合

物体1 --- 半径 半径 ll11 の円軌道上の円軌道上

物体 2 --- 軌道は 軌道は chaos chaos になっていたになっていた

【練習】  (1). 様々な初期角度について、物体の運動がどのようになるか調べてみよう.

  (2). 物体の質量、初期角速度を変えると、物体の運動はどのように変わるか?

  (3). 物体の運動をアニメーションにして見てみよう!! 

Page 11: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

Appendix Appendix 11■ ■ コードの使い方コードの使い方

(0) HP(0) HPからからdownloaddownloadしてくるしてくる (1) tar -xvzf Pendulum.tar.gz(1) tar -xvzf Pendulum.tar.gz

(2) (2) cd ./Pendulumcd ./Pendulum (3) (3)

以下の方法は、以下の方法は、        アニメーションを作成しない場合の方法

  ※ コード本体 ※ コード本体 ­­­ ­­­ pendulum.f90 を見て下さい.

(i) make(i) make (ii) ./pendulum(ii) ./pendulum

(iii) (iii) 計算結果「計算結果「pendulum.datpendulum.dat」を」をgnuplotgnuplotで描くで描く

Page 12: Runge-Kutta法で物理現象を解く³•で物理現象を解く 堀 安範 (D2) 東京工業大学 地球惑星科学専攻 井田研究室 2008年 後期 数値地球惑星科学

Appendix Appendix 22

■ ■ アニメーションで作成したい場合アニメーションで作成したい場合  (1)  ./start.sh (1)  ./start.sh をするだけをするだけ!!!!

・データファイル ・データファイル ­­­ pendulum.dat­­­ pendulum.dat          /Pendulum/data /Pendulum/data に出来ますに出来ます

  ・アニメーション   ・アニメーション ­­­ pendulum.gif­­­ pendulum.gif/Pendulum/image /Pendulum/image に出来ますに出来ます

「「pendulum.gif pendulum.gif を動画ソフトで見てみて下さい」を動画ソフトで見てみて下さい」

簡単なアニメーションが自動で作成されます