【仕様書】最小構成のモデルベース開発事例 その8【離散化後編】

【仕様書】最小構成のモデルベース開発事例 その8【離散化後編】 事例

バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/

はじめに

前回はテイラー展開第2項までを使用した総和法と差分法の証明をした。
今回はさらに精度を上げるために第3項までを使用したパターンを検討する。

登場人物

博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

総和法に対して1項増やして積分精度を上げる

フクさん
フクさん

さてと、
テイラー展開第3項まで使用するとどのような式が完成するかって話かな。

太郎くん
太郎くん

うん。

フクさん
フクさん

まず、第3項までの式はこうなる。
$$f(t)=f(t_0+Δt)=f(t_0 )+f(t_0 ) \frac{d}{dt}Δ+\frac{1}{2} f(t_0)\frac{d^2}{dt^2 } Δt^2$$

太郎くん
太郎くん

前々回に出てきたね。

フクさん
フクさん

今回も定性積分の定義である、\(\int f(t)dt-\int f(t_0)dt\)に対して解きたいので、
両辺を積分する。
$$\int f(t)=f(t_0+Δt)=\int( f(t_0 )+f(t_0 ) \frac{d}{dt}Δ+\frac{1}{2} f(t_0)\frac{d^2}{dt^2 } Δt^2 )$$
$$=f(t_0+Δt)=\int( f(t_0 )+f(t_0 ) \frac{d}{dt}Δ+\frac{1}{2} f(t_0)\frac{d^2}{dt^2 } Δt^2 )$$
$$=\int f(t_o)dt+f(t_0)Δt+\frac{1}{2}f(t_0)\frac{d}{dt}Δt^2$$
あとは移項して、右辺を定積分の形にする。
$$f(t_0)Δt+\frac{1}{2}f(t_0)\frac{d}{dt}Δt^2=\int f(t)dt-\int f(t_0)dt$$

太郎くん
太郎くん

右辺は定積分になったけど、

左辺が何をしているのちょっとわからないかな。

フクさん
フクさん

ここで前回の差分法の式を取り出す。
$$f(t_0)\frac{d}{dt}=\frac{f(t_0+Δt)-f(t_0)}{Δt}$$

太郎くん
太郎くん

もしや、これを代入?!

フクさん
フクさん

その通り。
代入するとこうなる
$$f(t_0)+\frac{1}{2}(f(t_0+Δt)-f(t_0)Δt)=\int f(t)dt-\int f(t_0)dt$$

太郎くん
太郎くん

・・・。
これでも左辺が良く分からないんだけど。

フクさん
フクさん

だろうと思って絵を描いた。

台形法図解、∫f(t_0+Δt)dt、∫f(t_0)dt、∫(t_0+Δt)、f(t_0)、1/2(f(t_0+Δt)-f(t_0))Δt、f(t_0)Δt、t_0、Δt、t_0+Δt
太郎くん
太郎くん

あ、意味わからないと言ってた、
\(\displaystyle\frac{1}{2}(f(t_0+Δt)-f(t_0)Δt)\)
の部分は青三角形の部分になるのか?

フクさん
フクさん

そういうこと。
ちなみに、これは台形法という名前が付いている。

太郎くん
太郎くん

んー、でも良く解けるもんだねぇ。
あと、この式の形が答えになるとかどう判断してるの?

フクさん
フクさん

まぁ実は式の形については、あんまり考えてなくて、
自分で絵を描けるかどうかという観点でしか解いていない。

太郎くん
太郎くん

絵を描く?

太郎くん
太郎くん

そういえば、フクさんは結構、絵で描くことを重要視しているよね?
それも関係している?

フクさん
フクさん

絶対的な話ではないけど、以下のイメージでいるよ。
「絵で描ける」→「一定の理屈は通っているはず」→「他者に説明し易い」
例えば、数学的には存在しない式が導出されても、
「絵で描ける」が実現できれば、それはそれで自分自身の公式と言えると思ってる。

太郎くん
太郎くん

おー、なるほど!
(今日のフクさんは一段と輝いて見える!)

フクさん
フクさん

というわけで次は微分の方だね。

太郎くん
太郎くん

オッケー。

差分法に対して1項増やして積分精度を上げる

フクさん
フクさん

次は微分に対してテイラー展開第3項までを適用する。

太郎くん
太郎くん

うん。

フクさん
フクさん

まず、一個前提を追加する。

太郎くん
太郎くん

前提?

フクさん
フクさん

これまでの前提は以下。
$$f(t)=f(t_0+Δt)$$

太郎くん
太郎くん

前々回やってたね。

フクさん
フクさん

ここにもう一個追加する。
$$f(t)=f(t_0-Δt)$$

太郎くん
太郎くん

あー、
現在から見た未来と過去から見た現在は同じってことだね?

フクさん
フクさん

そうそう。

フクさん
フクさん

そして、この二つの前提をテイラー展開に組み込むと以下がでる。
$$f(t)=f(t_0+Δt)=f(t_0 )+f(t_0 ) \frac{d}{dt}Δ+\frac{1}{2} f(t_0)\frac{d^2}{dt^2 } Δt^2$$
$$f(t)=f(t_0-Δt)=f(t_0 )-f(t_0 ) \frac{d}{dt}Δ+\frac{1}{2} f(t_0)\frac{d^2}{dt^2 } Δt^2$$

太郎くん
太郎くん

両方とも似てるけど、第2項の符号が違うのかな?

太郎くん
太郎くん

あ、もしやこれで相殺して項を減らす?!

フクさん
フクさん

大正解。

フクさん
フクさん

$$f(t_0+Δt)-f(t_0-Δt)$$
をすると第2項だけが残る。
$$f(t_0+Δt)-f(t_0-Δt)=2f(t_0)\frac{d}{dt}Δt$$
そして、\(f(t_0)\displaystyle\frac{d}{dt}\)に対して解く。
$$f(t_0)\frac{d}{dt}=\frac{f(t_0+Δt)-f(t_0-Δt)}{2Δt}$$

太郎くん
太郎くん

これも絵に描けるのか・・・。

フクさん
フクさん

絵にするとこう。

中間差分法図解、f(t_0+Δt)、f(t_0)、f(t_0-Δt)、Δt、t_0-Δt、t_0、t_0+Δt
フクさん
フクさん

こういうのを中心差分法と呼ぶ。
ちなみに、
前回やった\(f(t_0+Δt)\)で解いたパターンだと前進差分法、
やってないけど\(f(t_0-Δt)\)で解いたパターンだと後進差分法、
って呼ぶよ。

太郎くん
太郎くん

名前がついているといことは割と使う手法ってことだね。

フクさん
フクさん

そうだね。
ここまでだと比較的説明し易いし、
それほど演算負荷も上がらないから割と使われていることは多いね。

太郎くん
太郎くん

うん。すごく勉強になった。

太郎くん
太郎くん

んで、これでPID制御の離散化ができるってことで良いのかな?

フクさん
フクさん

そうだね。そこは次回やってみよう。

今回のまとめ

フクさん
フクさん

まとめだよ。

  • テイラー展開第3項までを使用した積分近似手法は台形法と呼ばれる。
  • テイラー展開第3項までを使用した微分近似手法は中心差分法と呼ばれる。
    • \(f(t_0+Δt)\)で解いたパターンだと前進差分法。
    • \(f(t_0-Δt)\)で解いたパターンだと後進差分法。
  • 数式を解く場合は、「絵を描けるか」という観点で解くと迷わなくて良い場合がある。
    • 納得もできるし、説明もし易い。

離散化3話分まとめ

フクさん
フクさん

フクさん:
離散化の話で3回に渡ったんで、それのまとめ。

  • ぶっちゃけ総和法と差分法だけ知ってればOK。(初歩)
  • しかし、それらの向こう側も知っておく必要がある。(原理)
  • そして、知った上で不要と判断して意図的に捨てる。(基礎)

という感じのアプローチを意識できていれば、
変に初歩で止まって応用が利かないということは起こりにくくなる。

バックナンバーはこちら

コメント

タイトルとURLをコピーしました