0

速度(KM / h)と時間(日付)のレコードが複数あります。総移動距離を知りたいのですが。時間と速度は変化しています。このためのJavaアルゴリズムはありますか?

4

4 に答える 4

1

速度と時間のデータ ポイントがある場合は、ポイント間の平均速度を計算し (これは正確ではないかもしれませんが、データで実行できる最善の方法です)、時間を掛ける必要があります。時間測定として秒を使用したことに注意してください。あなたは日付を持っていると言っているので、簡単に変換できるはずです。時間が近い場合は、おそらくミリ秒を使用するのが最善です。

次のデータ ポイントがあるとします。

Time speed
0    12
4    15
7    13
11   18
17   21

ポイント 1 と 2 の間の平均速度は次のとおりです。

12 + 15 / 2 = 13.5

そしてタイム差は4秒。あなたが行うことができる最良の計算は、これらのデータポイント間を移動した距離が

4 * 13.5 * (1000 / 3600) = 15 metres

(1000 / 3600) ビットは km/h を m/s に変換しています。

アルゴリズムは、データ ポイントの各ペアで同じ計算を実行し、移動した合計距離を合計する必要があります。

于 2013-02-11T13:13:37.557 に答える
1

結果として生じる値のペアごとに、次のように計算するだけです。

distance = previousVelocity * timeDifference + (currentVelocity - previousVelocity) * timeDifference / 2

どこでtimeDifference = currentTime - previousTime

次に、すべてを合計してください。これは、一定の加速と減速を前提としています。

于 2013-02-11T13:02:48.553 に答える
0

基本的に、ポイント間の曲線 (x 軸 = 時間、y 軸 = 速度) をプロットし、そのグラフの下の面積を計算する必要があります。明らかに、これは補間の選択 (直線、ベジェ曲線、3 次スプラインなど) によって異なります。

これは、補間ライブラリの興味深いリストのように見えます。

javax.media.jai.Interpolationコンポーネントも利用できるようです。

于 2013-02-11T13:00:51.047 に答える
0

このための定義済みの「Java アルゴリズム」はありません。all を合計して全体の距離を計算する必要がありますds = v * dtdsはデルタ距離、vは速度とdtデルタ時間です。ループはうまくいきます。それ以外に、平均速度を決定し、1 つの乗算を行うことができます。

于 2013-02-11T12:51:33.113 に答える