4: 2015-06-13 (土) 16:55:09 osinko |
現: 2015-07-09 (木) 21:57:02 osinko |
| TITLE:微分2 | | TITLE:微分2 |
| + | <注意:このページの書いてある事はかなり好き勝手にやってます> |
| + | 適当に思考実験で以下で色々式をこねまわしていますが、こんなやりかたで漸化式を作っている例がみつかりません・・・ |
| + | 色々調べているのですが、たぶん、無茶苦茶なやりかたなのだと思います。ただ漸化式は作れているので、数式の書き方が数学の文法にのっとってないのだと思います |
| + | 常識的に変な書き方をしてしまっていると思いますので、今後調べて正しい書き方に直す予定です。ここに書いてある事を真面目に受け取らないようにお願いします |
| + | |
| + | memo:常微分方程式 |
| + | http://ja.wikipedia.org/wiki/%E6%BC%B8%E5%8C%96%E5%BC%8F |
| + | http://ja.wikipedia.org/wiki/%E5%B8%B8%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E5%BC%8F |
| + | http://ja.wikipedia.org/wiki/%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E6%B3%95 |
| + | |
| **微分を利用して漸化式を作る例 [#rc60f063] | | **微分を利用して漸化式を作る例 [#rc60f063] |
| #jsmath | | #jsmath |
| | | |
| 累乗根や対数など計算機に任せられる部分があるなら積分して位置の関数から値を計算する方が良い | | 累乗根や対数など計算機に任せられる部分があるなら積分して位置の関数から値を計算する方が良い |
- | ・・もう少しゲーム制作技術に役立ちそうな具体的な例を考えてみる | + | ・・もう少し具体的な例を考えてみる |
| | | |
| **物理的な値を求める漸化式を作ってみる [#xb9cf616] | | **物理的な値を求める漸化式を作ってみる [#xb9cf616] |
| + | #jsmath |
| + | 思考実験として物理的な値を求める漸化式を作る |
| + | |
| + | <問題> |
| + | &font(150%){速度\(v=9.8t\) で移動する物体がある。この物体が700m先の位置を通過する時間を知りたい}; |
| + | |
| + | この問題を解くため微分積分にあてはめると \(v=9.8t\) を形式的積分の式である \(a{ x }^{ n }\quad \mapsto \quad a\frac { 1 }{ n+1 } { x }^{ n+1 }\) に通すと |
| + | \(v=9.8{ t }^{ 1 }\quad \mapsto \quad y=9.8\frac { 1 }{ 1+1 } { t }^{ 1+1 }\quad \rightarrow \quad y=4.9{ t }^{ 2 }\) となる |
| + | \(y=4.9{t}^{2}\) は距離の関数なので\(y=700\)との連立方程式を解けばよい |
| + | |
| + | \(\begin{cases} y=4.9{ t }^{ 2 } \\ y=700 \end{cases}\quad \rightarrow \quad 4.9{ t }^{ 2 }=700\quad \rightarrow \quad { t }=\sqrt { \frac { 700 }{ 4.9 } } =11.952...\)・・・① |
| + | |
| + | 11.952秒後に通り過ぎる。この計算をする時、電卓に\(\sqrt { }\)キーや\(\log { } \)キーがない。対数表も持ってない |
| + | 「&font(Red){微積分が無限、極限回数の計算を繰り返してたどり着く答えを得ている事を実感できない};」時は以下のようにする |
| + | |
| + | \(f'(a)=\lim _{ b\rightarrow a }{ \frac { f(b)-f(a) }{ b-a } } \quad \mapsto \quad 9.8{ t }_{ 0 }=\lim _{ { t }_{ 0 } \rightarrow { t }_{ 1 } }{ \frac { 4.9{ t }_{ 0 }^{ 2 }-700 }{ { t }_{ 0 }-{ t }_{ 1 } } } \) |
| + | |
| + | \(9.8{ t }_{ 0 }=\lim _{ { t }_{ 0 } \rightarrow { t }_{ 1 } }{ \frac { 4.9{ t }_{ 0 }^{ 2 }-700 }{ { t }_{ 0 }-{ t }_{ 1 } } } \quad \rightarrow \quad 9.8{ t }_{ 0 }\left( { t }_{ 0 }-{ t }_{ 1 } \right) =\lim _{ { t }_{ 0 } \rightarrow { t }_{ 1 } }{ 4.9{ t }_{ 0 }^{ 2 }-700 } \quad \rightarrow \quad 9.8{ t }_{ 0 }^{ 2 }-9.8{ t }_{ 0 }\cdot { t }_{ 1 }=\lim _{ { t }_{ 0 } \rightarrow { t }_{ 1 } }{ 4.9{ t }_{ 0 }^{ 2 }-700 } \\ \) |
| + | |
| + | \(\rightarrow \quad -9.8{ t }_{ 0 }\cdot { t }_{ 1 }=\lim _{ { t }_{ 0 } \rightarrow { t }_{ 1 } }{ -4.9{ t }_{ 0 }^{ 2 }-700 } \quad \rightarrow \quad 9.8{ t }_{ 0 }\cdot { t }_{ 1 }=\lim _{ { t }_{ 0 } \rightarrow { t }_{ 1 } }{ 4.9{ t }_{ 0 }^{ 2 }+700 } \quad \rightarrow \quad { t }_{ 0 }\cdot { t }_{ 1 }=\lim _{ { t }_{ 0 } \rightarrow { t }_{ 1 } }{ \frac { 4.9 }{ 9.8 } { t }_{ 0 }^{ 2 }+\frac { 700 }{ 9.8 } } \\ \) |
| + | |
| + | \(\rightarrow \quad { t }_{ 1 }=\lim _{ { t }_{ 0 } \rightarrow { t }_{ 1 } }{ \frac { 4.9 }{ 9.8 } { t }_{ 0 }+\frac { 700 }{ 9.8{ t }_{ 0 } } } \quad \rightarrow \quad { t }_{ 1 }=\lim _{ { t }_{ 0 } \rightarrow { t }_{ 1 } }{ \frac { 1 }{ 2 } { t }_{ 0 }+\frac { 700 }{ 9.8{ t }_{ 0 } } } \quad \rightarrow \quad { t }_{ 1 }=\lim _{ { t }_{ 0 } \rightarrow { t }_{ 1 } }{ \frac { 1 }{ 2 } \left( { t }_{ 0 }+\frac { 700 }{ 4.9{ t }_{ 0 } } \right) } \\ \) |
| + | |
| + | \(\rightarrow \quad { t }_{ n+1 }=\frac { 1 }{ 2 } \left( { t }_{ n }+\frac { 700 }{ 4.9{ t }_{ n } } \right) \\ \)・・・② |
| + | |
| + | この最期の漸化式をコードにすると以下になる |
| + | #code(csharp){{ |
| + | using UnityEngine; |
| + | using System.Collections; |
| + | |
| + | public class Numbers6 : MonoBehaviour |
| + | { |
| + | void Start () |
| + | { |
| + | float t0 = 15f; |
| + | float c = 700f; |
| + | |
| + | float t1 = 0; |
| + | |
| + | for (int i = 0; i < 5000; i++) { |
| + | t0 = (1f / 2f) * (t0 + (c / (4.9f * t0))); |
| + | t1 = t0; |
| + | } |
| + | print (t0); |
| + | } |
| + | } |
| + | }} |
| | | |
- | 思考実験として物理的な値を求める漸化式を作る。 | + | t0の値はどんな値を入れても良い。このコードでは5000回計算を繰り返しているが、微分も積分も無限回数この計算を繰り返している事になる。その答えは必ず、\(11.952...\)へと収束する。微分積分はこの仕組みを利用してコンパクトに値を求めているらしい |
| | | |
| | | |
| #navi | | #navi |