今日からはじめる
微分方程式
Ryo KAJI
2015/8/7 プログラマのための数学勉強会 #4 1
自己紹介
• 高専 専攻科 中退 → 会社員
• 科目等履修生(東工大)
• 最近ほしいもの:
• 単位(落としました……)
• FPGAの勉強会の会場
2015/7/24 プログラマのための数学勉強会 #4 3
発表テーマの経緯
• 最初は制御工学の発表を想定していた。
• 以下の応用事例
• IoT : モータの回転量、トルク、電圧電流量の設計
• Web : サーバの負荷、メモリ利用量の調整
• しかし……
• 制御モデルの表現・解析で微分方程式が不可避
• まずは微分方程式に慣れてもらうことにした
2015/7/24 プログラマのための数学勉強会 #4 4
概要
• 目的
微分方程式がラプラス変換で解けることを知る
※ 条件: 線形かつすべての係数が定数であること
• 話すこと
1. 微分方程式の分類と代表的な解き方
2. 演算子法による解法
3. ラプラス変換による解法
2015/7/24 プログラマのための数学勉強会 #4 5
微分方程式と解きかた
分類と簡単な例
2015/8/7 プログラマのための数学勉強会 #4 6
微分方程式の分類(1/2)
• 未知関数 𝑓(𝑥) とその導関数 𝑓 𝑛
(𝑥) を含む方程式
• 常微分方程式 : 𝑓(𝑥) が一変数関数
• ニュートンの運動方程式
𝑚𝒙′′ = 𝑭
• 偏微分方程式 : 二変数以上
• 波動方程式
1
𝑠2
𝜕2 𝑢
𝜕𝑡2
=
𝜕2 𝑢
𝜕𝑥2
+
𝜕2 𝑢
𝜕𝑦2
+
𝜕2 𝑢
𝜕𝑧2
2015/7/24 プログラマのための数学勉強会 #4 7
微分方程式の分類(2/2)
• 線形: 以下の形で書けるもの
𝑦 𝑛
+ 𝑝 𝑛−1 𝑥 𝑦 𝑛−1
+ ⋯ + 𝑝0 𝑥 𝑦 = 𝑞 𝑥
• 斉次: 𝑞(𝑥) = 0
• 非斉次: 𝑞(𝑥) ≠ 0
• 非線形: 線形でないもの
• 例: Van der Pol 振動子
𝑥′′ − 𝜇 1 − 𝑥2 𝑥′ + 𝑥 = 0
2015/7/24 プログラマのための数学勉強会 #4 8
微分方程式の例(1/2)
• 例: 2階線形
𝑦′′ = −𝑦
• 一般解: 𝑦 𝑥 = 𝐶1 cos 𝑥 + 𝐶2 sin 𝑥
• 任意定数𝐶1, 𝐶2を含む解
• 特殊解: 𝑦 𝑥 = sin 𝑥
• 方程式を満たす解の一つ↔ある任意定数における解
2015/7/24 プログラマのための数学勉強会 #4 9
微分方程式の例(2/2)
• 例: 1階線形
𝑦′ = 𝑎𝑦
• 一般解: 𝑦 𝑥 = 𝐶1 𝑒 𝑎𝑥
• この例は置換積分法で計算できる
• 特殊解: 𝑦 𝑥 = 𝑒 𝑎𝑥
2015/7/24 プログラマのための数学勉強会 #4 10
微分方程式の解法(1/4)
• 一般解を求める手順
1. まず 𝑦 𝑛
を 𝛼 𝑛
に置き換えた方程式を作る
2. 1. で作った方程式を解く
3. 関数 𝑦 = Const 𝑒 𝛼𝑥
の線形結合が一般解
• ※2. の解には重解がないものとする
• (重解 → 線形独立でなくなる)
2015/7/24 プログラマのための数学勉強会 #4 11
微分方程式の解法(2/4)
• 例: 1階線形
𝑎𝑦′ + 𝑏𝑦 = 0
1. 方程式 𝑎𝛼 + 𝑏 = 0 の解は 𝛼 = −
𝑏
𝑎
2. 一般解: 𝑦 𝑥 = (Const)𝑒−
𝑏
𝑎
𝑥
2015/7/24 プログラマのための数学勉強会 #4 12
微分方程式の解法(3/4)
• 例: 2階線形
𝑎𝑦′′ + 𝑏𝑦′ + 𝑐𝑦 = 0
1. 方程式 𝑎𝛼2
+ 𝑏𝛼 + 𝑐 = 0 の二解を𝛼1, 𝛼2とする
2. 一般解: 𝑦 𝑥 = 𝐶1 𝑒 𝛼1 𝑥
+ 𝐶2 𝑒 𝛼2 𝑥
2015/7/24 プログラマのための数学勉強会 #4 13
微分方程式の解法(4/4)
• 例: 2階線形 非斉次
𝑎𝑦′′ + 𝑏𝑦′ + 𝑐𝑦 = 𝑓(𝑥)
1. まず 𝑎𝑦′′
+ 𝑏𝑦′
+ 𝑐𝑦 = 0 の解 𝑦0 を求める
2. 特殊解 𝑦𝑝 を(適当な方法で)見つける
3. 一般解は 𝑦0 + 𝑦𝑝
2015/7/24 プログラマのための数学勉強会 #4 14
ここまでのまとめ
• 微分方程式の種類と解法の一つを紹介した
• 線形微分方程式
• 斉次(𝑞(𝑥) = 0) → 代数方程式の解から一般解が求まる
• 課題
• 非斉次の場合 → 特殊解を求める技術が要る
• そもそも工学で必要なのは(ある条件下での)特殊解
2015/7/24 プログラマのための数学勉強会 #4 15
ラプラス変換とその応用
RC直列回路を例題に
2015/8/7 プログラマのための数学勉強会 #4 16
例題 : RC回路
By Splash
• 𝑉𝑖𝑛 𝑡 = 𝑢 𝑡 ; 𝑢(𝑡) =
1 𝑡 > 0
0 𝑡 ≤ 0
• 条件:(𝑡 ≤ 0; 𝑉𝐶 = 0) のとき𝑉𝐶 𝑡 は?
2015/7/24 プログラマのための数学勉強会 #4 17
へヴィサイドの演算子法(1/3)
• Oliver Heaviside(1850-1925)が発明
• 線形微分方程式の解法に利用される
• 𝑓 を微分する → 𝑝 を 𝑓 に乗じる
• 𝑓′ → 𝑝𝑓
• 𝑎𝑦′ + 𝑏𝑦 = 0 → 𝑝(𝑎𝑦) + 𝑏𝑦 = 0
•
1
𝑝
→ 積分する
2015/7/24 プログラマのための数学勉強会 #4 18
へヴィサイドの演算子法(2/3)
• 微分演算子 𝑝 を使うと先のRC回路は……
𝑢 𝑡 = 𝑅𝐼 + 𝑉𝐶
𝐼 = 𝐶(𝑉𝐶)′
→
𝑢 𝑡 = 𝑅𝐶(𝑉𝐶)′ + 𝑉𝐶
𝑢 𝑡 = 𝑝 𝑅𝐶𝑉𝐶 + 𝑉𝐶
• 解は次の計算で求まる
• 𝑢 𝑡 = 𝑝𝑅𝐶 + 1 𝑉𝐶, → 𝑉𝐶 =
𝑢 𝑡
1+𝑝𝑅𝐶
• 𝑉𝐶 =
𝑥
1+𝑥
𝑢 𝑡 = 𝑥 1 − 𝑥 + 𝑥2
− ⋯ 𝑢 𝑡 𝑥 =
1
𝑝𝑅𝐶
• 𝑉𝐶 = 𝑥 − 𝑥2
+ 𝑥3
− ⋯ 𝑢 𝑡
• 𝑉𝐶 = 1 − 1 − 𝑥 + 𝑥2
− 𝑥3
+ ⋯ 𝑢 𝑡
2015/7/24 プログラマのための数学勉強会 #4 19
へヴィサイドの演算子法(3/3)
• 1/𝑝 は 積分を意味するので
• 𝑥𝑢 𝑡 =
1
𝑝
1
𝑅𝐶
𝑢 𝑡 =
1
𝑅𝐶 0
𝑡
𝑢 𝑡 𝑑𝑡 =
𝑡𝑢(𝑡)
𝑅𝐶
• 𝑥2 𝑢 𝑡 =
1
2
𝑡2 𝑢(𝑡)
𝑅𝐶 2 , ⋯ , 𝑥 𝑛 𝑢 𝑡 =
1
𝑛!
𝑡 𝑛 𝑢(𝑡)
𝑅𝐶 𝑛 , ⋯
• 𝑉𝐶 = 1 − 1 −
𝑡
𝑅𝐶
+
1
2
𝑡
𝑅𝐶
2
−
1
3!
𝑡
𝑅𝐶
3
+ ⋯ 𝑢 𝑡
• 𝑉𝐶 = 1 − 𝑒−
𝑡
𝑅𝐶 𝑢 𝑡
2015/7/24 プログラマのための数学勉強会 #4 20
演算子法の問題点
• 演算子 𝑝 の曖昧さ
• 代数のように扱っていいのか?
• そもそも 𝑝 + 𝑝2 + 𝑝3 + ⋯ 𝑓 𝑡 は収束するのか?
• しかし便利な手法だった……
• 後にラプラス変換として発展し、現在使われる
• 演算子法自体も後に研究された(例: Mikusiński)
2015/7/24 プログラマのための数学勉強会 #4 21
ラプラス変換(1/2)
• 関数f(t)のラプラス変換
𝐹 𝑠 = ℒ 𝑓 𝑡 =
0
∞
𝑓 𝑡 𝑒−𝑠𝑡
𝑑𝑡
• 定義通り計算することは少ない
• 積分に基づくので線形性がある
• 逆変換は複素積分になる
• 変換表が存在する
2015/7/24 プログラマのための数学勉強会 #4 22
ラプラス変換(2/2)
• 計算に最低限必要なもの
1. ℒ 𝑢 𝑡 =
1
𝑠
2. ℒ 𝑓 𝑡 𝑒−𝑎𝑡 = 𝐹(𝑠 + 𝑎)
3. ℒ 𝑓 𝑡 − 𝑎 𝑢(𝑡 − 𝑎) = 𝐹 𝑠 𝑒−𝑎𝑠
4. ℒ 𝑓′ 𝑡 = 𝑠𝐹 𝑠 − 𝑓 0
以上の組み合わせで例題は解ける
2015/7/24 プログラマのための数学勉強会 #4 24
例題 : RC回路(再掲)
By Splash
• 𝑉𝑖𝑛 𝑡 = 𝑢 𝑡 ; 𝑢(𝑡) =
1 𝑡 > 0
0 𝑡 ≤ 0
• 条件:(𝑡 ≤ 0; 𝑉𝐶 = 0) のとき𝑉𝐶 𝑡 は?
2015/7/24 プログラマのための数学勉強会 #4 25
ラプラス変換による解法
• 解くべき微分方程式 ; 𝑢 𝑡 = 𝑅𝐶(𝑉𝐶)′ + 𝑉𝐶
1. 両辺をラプラス変換する
ℒ 𝑢 𝑡 =
1
𝑠
= 𝑅𝐶 𝑠ℒ 𝑉𝐶 − 𝑉𝐶 0 + ℒ 𝑉𝐶
2. 式変形する(部分分数分解が必要)
ℒ 𝑉𝐶 =
1
1 + 𝑠𝑅𝐶
1
𝑠
=
1
𝑠
−
1
𝑠 + 1/𝑅𝐶
3. 対応する関数を探す
𝑉𝐶 = 𝑢 𝑡 − 𝑒−
1
𝑅𝐶
𝑡
𝑢 𝑡 = 1 − 𝑒−
𝑡
𝑅𝐶 𝑢 𝑡
2015/7/24 プログラマのための数学勉強会 #4 26
ラプラス変換による解法
• いいところ: 以下の計算で解が求まる
• 二次方程式
• 代数計算
• よくないところ:
• 部分分数分解が面倒
• ラプラス逆変換: 𝑓 𝑡 = lim
𝑝→∞
1
2𝜋𝑖 𝑐−𝑖𝑝
𝑐+𝑖𝑝
𝐹 𝑠 𝑒 𝑠𝑡 𝑑𝑠
2015/7/24 プログラマのための数学勉強会 #4 27
まとめ
• 微分方程式は次の場合において機械的に解ける
• 常微分(一変数)
• 線形
• 定数係数
• ラプラス変換により微分積分なしに解が求まる
• 非斉次方程式に対しても適用可能
2015/7/24 プログラマのための数学勉強会 #4 28
参考:
• Maxima(Common Lisp製の数式処理ソフト)
• ラプラス変換/逆変換が計算できます
• URL: http://maxima.sourceforge.net/
2015/7/24 プログラマのための数学勉強会 #4 29

今日からはじめる微分方程式

Editor's Notes

  • #8 集合で絵を描く
  • #23 定義通り計算しない
  • #24 定義通り計算しない