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
2.9k
数値シミュレーション / Python Simulation
プログラミング基礎同演習
kaityo256
PRO
December 15, 2020
Tweet
Share
More Decks by kaityo256
See All by kaityo256
渡辺研Slackの使い方 / Slack Local Rule
kaityo256
PRO
10
11k
卒論の書き方 / Happy Writing
kaityo256
PRO
54
28k
生成AIとの付き合い方 / Generative AI and us
kaityo256
PRO
13
7k
モンテカルロ法(3) 発展的アルゴリズム / Simulation 04
kaityo256
PRO
10
1.7k
UMAPをざっくりと理解 / Overview of UMAP
kaityo256
PRO
12
4.3k
SSH公開鍵認証による接続 / Connecting with SSH Public Key Authentication
kaityo256
PRO
7
770
論文紹介のやり方 / How to review
kaityo256
PRO
18
90k
デバッグの話 / Debugging for Beginners
kaityo256
PRO
18
1.9k
ビット演算の話 / Let's play with bit operations
kaityo256
PRO
8
730
Other Decks in Education
See All in Education
GOVERNOR ADDRESS:2025年9月29日合同公式訪問例会:2720 Japan O.K. ロータリーEクラブ、2025年10月6日卓話:藤田 千克由 氏(国際ロータリー第2720地区 2025-2026年度 ガバナー・大分中央ロータリークラブ・大分トキハタクシー(株)顧問)
2720japanoke
0
750
焦りと不安を、技術力に変える方法 - 新卒iOSエンジニアの失敗談と成長のフレームワーク
hypebeans
1
640
心理学を学び活用することで偉大なスクラムマスターを目指す − 大学とコミュニティを組み合わせた学びの循環 / Becoming a great Scrum Master by learning and using psychology
psj59129
1
1.6k
HTML5 and the Open Web Platform - Lecture 3 - Web Technologies (1019888BNR)
signer
PRO
2
3.2k
自己紹介 / who-am-i
yasulab
PRO
5
6.3k
Web Search and SEO - Lecture 10 - Web Technologies (1019888BNR)
signer
PRO
2
3.1k
Padlet opetuksessa
matleenalaakso
9
15k
2025年度伊藤正彦ゼミ紹介
imash
0
160
KBS新事業創造体験2025_科目説明会
yasuchikawakayama
0
160
Leveraging LLMs for student feedback in introductory data science courses (Stats Up AI)
minecr
0
160
JavaScript - Lecture 6 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
俺と地方勉強会 - KomeKaigi・地方勉強会への期待 -
pharaohkj
1
1.6k
Featured
See All Featured
sira's awesome portfolio website redesign presentation
elsirapls
0
140
Technical Leadership for Architectural Decision Making
baasie
1
240
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
200
So, you think you're a good person
axbom
PRO
2
1.9k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
100
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
300
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
97
Game over? The fight for quality and originality in the time of robots
wayneb77
1
110
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Embracing the Ebb and Flow
colly
88
5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
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の時間微分が
こんな式で与えられている を評価できたら次のステップの値が + = + で計算できる あとは初期条件から次々と「次の時刻の状態」を 計算することで系の時間発展を計算できる アニメーションを作ってみる