0

私は実験的なプログラムをやっています。一連の実験データから高度を求める必要があります。時間と加速度のデータのみを記録し、二重積分を解くためにForward Euler Methodを使用しました。私が書いたコードはこれです。フォワード - オイラー法

public void forward_method(double[] acceleration, double[] time){ 
    double deltaT = time[1] - time[0]; 
    double velocity[] = new double[time.length]; 
    double displacement[] = new double[time.lenght]; 

    velocity[0] = 0; 
    displacement[0] = 0; 

    for(int i = 0; i < acceleration.length - 1; i++){ 
     velocity[i + 1] = velocity[i] * acceleration[i] * deltaT; 
     displacement[i + 1] = displacement[i] * velocity[i] * deltaT; 
    } 
} 

速度と変位を見つけるのは正しいですか? 標高を見つけるためにどのように修正できますか?

+0

仰角を探してみましたか? –

+0

私は発射運動について読みました。私は私の問題に同じアプリケーションである場合、私はセンサーからの角度角度の値も記録する、私はそれが私の問題に役立つと思います。速度ベクトルをy成分に沿って除算すると、vyf = vyi - gt = vi senΘi - gtであり、gをai(これは時刻iの垂直加速度が – traveller

+0

である)で置き換えると、仰角はyf =(vi senΘi)t - 1/2 ai t^2に従うが、時刻tiでsenΘiをsen方位に置き換えることができるかどうかは分からない – traveller

答えて

0

いいえ、それは間違っています。正解は

velocity[i + 1] = velocity[i] + acceleration[i] * deltaT; 
    displacement[i + 1] = displacement[i] + velocity[i] * deltaT;