1: 2015-04-17 (金) 22:32:41 osinko |
2: 2015-04-18 (土) 01:30:02 osinko |
| + | #contents |
| + | #jsmath |
| **区分求積法 [#s289f866] | | **区分求積法 [#s289f866] |
| | | |
- | 積分計算のベースとなる基本的な考え方で構成された計算手法。理解してしまうと素朴な計算テクニックだと判るのですが | + | 積分計算のベースとなる基本的な考え方で構成された計算手法 |
- | \(\sum { }\)や\(\lim _{ }{ \)を利用するので、初めて積分を利用しようとする人にとっては理解できるまで充分難しいと思います | + | |
| | | |
| + | |
| + | 変数 dt が細かく微細になればなるほど計算精度が向上していく事が以下のコードで確認できる。理想は値が極限である事 |
| #code(csharp){{ | | #code(csharp){{ |
| using UnityEngine; | | using UnityEngine; |
| void Start () | | void Start () |
| { | | { |
- | print (Integral (4, Gravity, 10000)); | + | print (Integral (4f, 0.5f, Gravity)); |
| } | | } |
| | | |
- | float Integral (float upper, Func<float,float> f, int diveideT) | + | float Integral (float t, float dt, Func<float,float> f) |
| { | | { |
- | float delta = upper / diveideT; | + | float parts = t / dt; |
| float sum = 0; | | float sum = 0; |
- | float dt = delta; | |
| | | |
- | for (int i = 0; i < diveideT; i++) { | + | for (int n = 1; n <= parts; n++) { |
- | sum += f (dt) * delta; | + | sum += f (dt) * dt * n; |
- | dt += delta; | + | |
| } | | } |
| return sum; | | return sum; |
| } | | } |
| }} | | }} |
| + | |
| + | ** "" [#fe880850] |
| + | \(\lim _{ \Delta t\rightarrow 0 }{ \int { 9.8 } t dt } \quad \quad \rightarrow \quad \quad \lim _{ \Delta t\rightarrow 0 }{ \quad 9.8{ \left( \Delta t \right) }^{ 2 }\sum _{ n=1 }^{ \frac { t }{ \Delta t } }{ n } } \quad \quad \rightarrow \quad \quad \lim _{ \Delta t\rightarrow 0 }{ \quad 9.8{ \left( \Delta t \right) }^{ 2 }\left\{ \frac { \left( 1+\frac { t }{ \Delta t } \right) \frac { t }{ \Delta t } }{ 2 } \right\} \quad } \\ \\ \rightarrow \quad \quad \lim _{ \Delta t\rightarrow 0 }{ \quad 4.9{ \left( \Delta t \right) }^{ 2 }\left( \frac { t }{ \Delta t } +\frac { { t }^{ 2 } }{ { \left( \Delta t \right) }^{ 2 } } \right) } \quad \quad \rightarrow \quad \quad \lim _{ \Delta t\rightarrow 0 }{ \quad 4.9{ \Delta t\cdot t }+4.9{ t }^{ 2 } } \quad \quad \rightarrow \quad \quad 4.9{ t }^{ 2 }\) |