正向欧拉法

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;
   }
}

求速度和位移是否正确? 我如何修改它以找到高程?

不,那是错误的。正确的是

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