Bonjour à tous. Je ne sais pas si je suis sur le bon forum mais je me
lance. (Désolé si je suis dans l'erreur).
Je travail présentement sur un programme utilisant la méthode
Runge-Kutta-Fehlberg (RKF45). Je trouve plein de livre ou site web me
donnant des infos contradictoires.
Voici mes questions :
Je calcule mon cofficient d'ajustement pour mon pas h de la façon suivante :
B = (erreur voulu/Erreur entre RK4 et RK5)^0.2
en C++
//Calculer RK4
yi1 = yi + (25*k1/216) + (1408*k3/2565) + (2197*k4/4104) - (1*k5/5);
//Calculer RK5
zi1 = yi + (16*k1/135) + (6656*k3/12825) + (28561*k4/56430) - (9*k5/50) +
(2*k6/55);
E = abs(zi1 - yi1);
if(E == 0.0)
B = 1.0;
else
B = pow(e/(2*E),0.2);
1) est-ce bien ^0.2 ou ^0.25 ?
2) je vois souvent 2*E cependant mes notes de cours me donne pow(e/(E),0.2);
Par la suite si mon cofficient B est trop grand (par exemple si j'ajuste
mon pas h avec 170) il se peut que cela soit trop. Donc plusieurs font une
vérification du genre :
si (B > seuil) alors
B = seuil
ainsi je préviens d'avoir un pas h trop grand pour le prochain calcul.
Dois-je faire cette vérification ?
J'espère ne pas avoir été hors sujet.
Merci à l'avance.
Phil
