正向欧拉法
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;
我正在做一个实验程序。我需要从一组实验数据中找到高程。我只记录时间和加速度数据,我用前向欧拉法求解二重积分。我写的代码是这样的。
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;