Description du problème
On se propose de résoudre numériquement sur l'intervalle l'équation différentielle suivante :
avec les conditions aux limites .
La solution analytique de cette équation est :
Résolution par le schéma numérique de Runge-Kutta
La méthode de Runge-Kutta appliquée à cette équation du second ordre consiste à la transformer en un système d'équations différentielles du premier ordre à conditions initiales :
Avec
Pour des raisons pratiques, nous écrivons le système (3) sous forme matricielle :
Soit :
où ,
et
La fonction U solution de l'équation (4) est telle que pour :
U1 =u(0) et Un+1 =u(1)=0
Les coefficients de Runge-Kutta sont calculés à partir de l'expression suivante :
Avec et h le pas de discrétisation.
Le programme principal permettant la résolution numérique de cet exemple a été réalisé à l'aide d'Octave et est présenté dans le fichier Equa_RK4_Tir.m. La fonction F(x, U) est implémentée dans un autre fichier nommé F.m et se présente comme suit :
function y=F(u,M,B)
y=M*u+B;
return
endfunction
Le fichier rk4_Equa_octave.m contient la fonction permettant de calculer par la méthode de Runge-Kutta d'ordre 4 la solution U pour une condition initiale donnée. Cette fonction reçoit comme arguments d'entrée, les bornes de l'intervalle (x0 et x1), le nombre n d'intervalles et le vecteur condition initiale U 1 .
Etude comparative
La résolution de l'équation a été faite pour une valeur de n=10 et comparée à la solution exacte donnée par l'équation (2).
Le tableau ci-après résume également les valeurs obtenues par la méthode des éléments finis et celle des différences finies.
x |
Solution exacte |
RK4 + tir |
Erreur RK4 |
Méthode elts finis |
Erreur elts finis |
Méthode diff finies |
Erreur diff finies |
0.000000 |
0.000000 |
0.000000 |
0.00e+00 |
0.000000 |
0.00e+00 |
0.000000 |
0.00e+00 |
0.090909 |
0.028545 |
0.028412 |
2.90e-03 |
0.031310 |
4.86e-17 |
0.031569 |
2.59e-04 |
0.181818 |
0.054778 |
0.028412 |
2.90e-03 |
0.031310 |
4.86e-17 |
0.031569 |
2.59e-04 |
0.272727 |
0.076573 |
0.055279 |
4.28e-03 |
0.059555 |
9.71e-17 |
0.060047 |
4.92e-04 |
0.363636 |
0.092165 |
0.077661 |
4.31e-03 |
0.081971 |
1.39e-16 |
0.082648 |
6.78e-04 |
0.454545 |
0.100290 |
0.093060 |
3.30e-03 |
0.096362 |
1.39e-16 |
0.097159 |
7.96e-04 |
0.545455 |
0.100290 |
0.099659 |
1.66e-03 |
0.101321 |
1.53e-16 |
0.102159 |
8.37e-04 |
0.636364 |
0.092165 |
0.096502 |
1.40e-04 |
0.096362 |
1.39e-16 |
0.097159 |
7.96e-04 |
0.727273 |
0.076573 |
0.083590 |
1.62e-03 |
0.081971 |
1.25e-16 |
0.082648 |
6.78e-04 |
0.818182 |
0.054778 |
0.061877 |
2.32e-03 |
0.059555 |
1.04e-16 |
0.060047 |
4.92e-04 |
0.909091 |
0.028545 |
0.033181 |
1.87e-03 |
0.031310 |
5.55e-17 |
0.031569 |
2.59e-04 |
1.000000 |
0.000000 |
0.000000 |
1.47e-18 |
0.000000 |
1.24e-17 |
0.000000 |
1.24e-17 |
Il apparaît clairement que la méthode des éléments finis donne une meilleure précision par rapport à la méthode de Runge-Kutta et celle des différences finies.