Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
数値シミュレーション / Python Simulation
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kaityo256
PRO
December 15, 2020
Education
0
3k
数値シミュレーション / Python Simulation
プログラミング基礎同演習
kaityo256
PRO
December 15, 2020
Tweet
Share
More Decks by kaityo256
See All by kaityo256
この講義について / 00-setup
kaityo256
PRO
0
210
GitHubによるWebアプリケーションのデプロイ / 07-github-deploy
kaityo256
PRO
1
180
演習:Gitの基本操作 / 04-git-basic
kaityo256
PRO
0
340
演習:Gitの応用操作 / 05-git-advanced
kaityo256
PRO
0
210
演習:GitHubの基本操作 / 06-github-basic
kaityo256
PRO
0
200
バージョン管理とは / 01-a-vcs
kaityo256
PRO
1
200
Gitの仕組みと用語 / 01-b-term
kaityo256
PRO
0
190
計算物理におけるGitの使い方 / 01-c-compphys
kaityo256
PRO
2
480
コマンドラインの使い方 / 01-d-cli
kaityo256
PRO
0
100
Other Decks in Education
See All in Education
Flinga
matleenalaakso
4
15k
JAPAN AI CUP Prediction Tutorial
upura
2
900
2026 Medicare 101 Presentation
robinlee
PRO
0
190
多様なメンター、多様な基準
yasulab
6
19k
【ベテランCTOからのメッセージ】AIとか組織とかキャリアとか気になることはあるけどさ、個人の技術力から目を背けないでやっていきましょうよ
netmarkjp
2
3.9k
Data Representation - Lecture 3 - Information Visualisation (4019538FNR)
signer
PRO
1
2.9k
次期バージョン 14.5.1 Early Access Program が始まりました
harunakano
1
120
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4019538FNR)
signer
PRO
0
3k
2025-12-19-LT
takesection
0
120
【dip】「なりたい自分」に近づくための、「自分と向き合う」小さな振り返り
dip_tech
PRO
0
260
Going over the Edge
jonoalderson
0
750
悩める リーダー達に 届けたい書籍|レジリエントマネジメント 書籍イントロダクション-260126
mimoza60
1
400
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
A better future with KSS
kneath
240
18k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
86
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
HDC tutorial
michielstock
1
540
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
100
Writing Fast Ruby
sferik
630
63k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Unsuck your backbone
ammeep
672
58k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
120
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Transcript
1 1 数値シミュレーション プログラミング基礎同演習 慶應義塾大学理工学部物理情報工学科 渡辺 2020/12/15
2 2 数値シミュレーション • 差分化 • 弾道計算 • 反応拡散方程式
3 3 あるルールに従う系の振舞を 再現・予想すること それをコンピュータ上でやるのがコンピュータシミュレーション
4 4 訓練のためのシミュレーション フライトシミュレータ ドライブシミュレータ 娯楽のためのシミュレーション シミュレーションゲーム (戦略、経営等) ロールプレイングゲーム 予測のためのシミュレーション
天気予報・自動車の設計・創薬
5 5 物理とは 我々が住むこの世界を理解・記述する学問 この世界のルール この世界は微分方程式で記述されている これを支配方程式(Governing Equation)と呼ぶ
6 6 古典的な物体の運動を記述する = ∙ = , ∙ = 0
× = − , × − = ニュートンの運動方程式 = 1 + 流体の流れを記述する ナビエ・ストークス方程式 電場や磁場の振る舞いを記述する マクスウェル方程式 例:天体の運動、弾道計算 例:天気予報 例:スマートフォンの開発等
7 7 = 2 2 拡散方程式 物質やエネルギーなどが広がって (拡散して)いく様子を表現する方程式
8 8 = 2 2 拡散方程式 温度の時間変化を表す ある点での温度が上がるか下がるか? あがるならどれくらい上がるか?
9 9 = 2 2 拡散方程式 ある地点での二階微分の値 = () 2
2 > 0 2 2 < 0 下に凸なら正 = () 上に凸なら負
10 10 = 2 2 拡散方程式 まわりの平均との差を表す 下に凸=自分は平均より低い 平均 平均
上に凸=自分は平均より高い
11 11 拡散方程式 まわりを見て 自分が平均以下なら増えようとする 自分が平均以上なら減ろうとする 自分 自分は平均より低い 平均 =
2 2
12 12 支配方程式 = 知りたい現象を記述する微分方程式 これを解けば未来がわかる ほとんどの微分方程式は厳密に解くことができない 数値的に近似解を求める コンピュータシミュレーション
13 13 コンピュータは 離散的値しか扱えない この世界は連続的 計算機が扱えるように連続的な値をとびとびの値にすることを離散化と呼ぶ
14 14 = − 2 2 離散化には空間の離散化と時間の離散化がある 時間 空間
15 15 空間の離散化 時間の離散化 拡大するとピクセルに 静止画像を高速コマ送り 我々が計算機を通して目にするものは離散化されている
16 16 連続的な世界 離散的な世界 この領域全体の物理量を この点での値で代表させる
17 17 微分を差分で近似すること(離散化の一種) + ℎ = + ℎ′ + ℎ2
テイラー展開を一次まで考える 二次以上を無視する ≈ + ℎ − () ℎ ′ について解く 微分が差分で近似された
18 18 O Time t () 時刻tにおける傾き O Time t
() ≈ + −() t+dt 時間変化=現在と少し未来の差
19 19 + ℎ = + ℎ′ + ℎ2 2
′′() テイラー展開を二次まで考える − ℎ = − ℎ′ + ℎ2 2 ′′() 2 2 ≈ + ℎ − 2 + ( − ℎ) ℎ2 ′ を消去 二次の中央差分 二階微分
20 20 = − 2 2 ある場所の時間変化量は まわりの平均との差をへらそうとする この地点での次のステップでの値を 周りの値をみて決める
上記の操作をすべての地点について繰り返すと 次のステップ(少し未来)での「世界」がわかる 「ステップ」を繰り返せば、遠い未来の世界がわかる
21 O x y 地面から投げた場合は45度の角度が最も遠くに飛ぶ ※空気抵抗は無視する
22 O x y 少し高いところから投げた場合、 最も遠くに飛ぶ角度は45度より 上向きになる? 下向きになる?
23 高いところから投げた場合、 初速が速くなると最も遠くに 飛ぶ角度は・・・ 上向きになる? 下向きになる? 物理において「極限」を考えるのは基本
24 24 Belousov-Zhabotinsky (BZ) 反応 いくつかの溶液を混ぜる 色が周期的に変わっていく 周期的な化学反応が拡散と組み合わさると?
25 周期的な化学反応が拡散と組み合わさると 不思議な模様が生まれる 化学反応と拡散を表現する方程式 反応拡散方程式 拡散反応方程式が生み出す模様 チューリング・パターン
26 26 二種類の化学物質uとvがお互いに反応しながら拡散する式 = ∆ − 2 + (1 −
) = ∆ + 2 − + 拡散 反応 Gray-Scott Model
27 = ∆ − 2 + (1 − ) uの時間微分が
こんな式で与えられている を評価できたら次のステップの値が + = + で計算できる しかし を計算するには を計算しなければならない ∆
28 連続的な世界 離散的な世界 (, ) u[m][n] 連続な2変数関数を 2次元のリストで近似する
29 = ∆ − 2 + (1 − ) 座標(m,n)地点での計算
u[m][n]+v[m][n]**2 ここはそのまま計算できる 問題はここ ※ 実際にはNumPyで配列全部まとめて計算する
30 は中央差分で近似する ∆ + + + + ≈ -4 二次元ラプラシアンの中央差分
自分のセルの上下左右を足して、 自分の4倍を引く =まわりの平均との差(の4倍) =
31 = ∆ − 2 + (1 − ) uの時間微分が
こんな式で与えられている を評価できたら次のステップの値が + = + で計算できる あとは初期条件から次々と「次の時刻の状態」を 計算することで系の時間発展を計算できる アニメーションを作ってみる