0

Je fais un programme expérimental. Je dois trouver l'altitude à partir d'un ensemble de données expérimentales. Je n'enregistre que les données de temps et d'accélération et j'ai utilisé Forward Euler Method pour résoudre la double intégration. Le code que j'ai écrit est ceci.Méthode Forward-Euler

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

Est-il correct de trouver la vitesse et le déplacement? Comment puis-je le modifier pour trouver l'altitude?

+0

Avez-vous essayé quelque chose pour trouver l'altitude? –

+0

J'ai lu sur le mouvement du projectile. Je ne sais pas, si c'est la même application à mon problème, j'enregistre aussi la valeur de l'angle d'orientation de mon capteur, je pense que cela est utile à mon problème. Parce que si je divise le vecteur de vitesse le long de ses composantes y: vyf = vyi - gt = vi sen Θi - gt, et substituez g par ai (qui représentent – traveller

+0

mon accélération verticale au temps i), je pense que l'élévation pourrait être calculée comme suit yf = (vi sen Θi) t - ½ ai t^2, mais je ne sais pas si je peux substituer sen Θi avec sen azimuth au temps ti – traveller

Répondre

0

Non, c'est faux. Correct serait

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