0

このデータは、Excel スプレッドシートで提供されます。それで、それをインポートした後、私はただやりvelocity = cumtrapz(t,y)ますposition = cumtrapz(velocity)か?

4

1 に答える 1

1

車が距離ゼロでゼロから出発する場合は正しいです。それ以外の場合は、初期速度も必要です。ここで実際に行っていることは、方程式を解き、a = f(t) = dv/dtさらにa = d^2s/dt^2を識別するvことであることに注意してくださいds/dt。常微分方程式系を解くことでそれを行います。

a = dv/dt
v = ds/dt

これにはいくつかの方法があります。たとえば、オイラーフォワードを使用します。

v'(t) = (v(t+h)-v(t))/h
<=> v(t+h) = hv'(t)+v(t)

導関数が与えられている場合、つまりa = a(t). 反復は、指定する必要がある初期条件v(0)で初期化されます。

あなたが知っているときv、あなたはsに行きます。次のように再びオイラーフォワードを使用します。

s'(t) = (s(t+h)-s(t))/h
<=> s(t+h) = hs'(t)+s(t)

ここで、初期条件を知っておく必要がありますs(0)。もしv(0) = s(0) = 0。オイラー順方向アルゴリズムは O(h) アルゴリズムですが、微分方程式を段階的に変換して解くコツを知っていれs'(t) = v(t)ば、より良い結果を得ることができます。これで、任意のルンゲ クッタ メソッドを使用できます。そして、使用するメソッド cumtrapz は、実際には O(h^2) メソッドです。これは、stackoverflow のカスタムとは少し異なる理論ですが、役に立てば幸いです。有限差分法と呼ばれる 2 次境界値問題の行列解法もありますが、こちらの方がやや高度です。さらに読むには、次から始めてください

http://en.wikipedia.org/wiki/Numerical_methods_for_ordinary_differential_equations

于 2014-04-25T11:02:10.830 に答える