Méthode de Newmark

Un article de Wikipédia, l'encyclopédie libre.

La méthode de Newmark permet la résolution numérique des équations différentielles du deuxième ordre dont les termes sont éventuellement très compliqués.

[modifier] Principe

On considère l'équation

M\ \ddot x = f(x,\dot x, t)

dans laquelle le second membre peut être extrêmement compliqué, la force excitatrice ou la force d'amortissement dépendant par exemple de la position x. Il faut donc recalculer les forces pour chaque position et vitesse, éventuellement par des calculs très lourds.

Le principe de cette méthode consiste à déterminer par un développement limité la position et la vitesse à l'instant t à partir des mêmes grandeurs à l'instant tdt. Ce développement contient un terme d'erreur du troisième ordre proportionnel à la dérivée de l'accélération. En partant de l'hypothèse selon laquelle l'accélération varie linéairement sur l'intervalle, on aboutit à des formules qui ne dépendent plus de la dérivée troisième mais qui introduisent les dérivées à l'instant t en plus de celles à l'instant tdt.

Il est possible de jouer, jusqu'à un certain point, sur la répartition entre les deux ; nous considérerons le choix le plus utilisé. Enfin cette technique, qui fonctionne évidemment avec des équations linéaires, nécessite dans le cas non linéaire des itérations utilisant des valeurs avec l'indice a.

[modifier] Algorithme

À la différence d'autres méthodes d'intégration numérique l'algorithme est particulièrement simple.

Début

     { Les valeurs au pas précédent deviennent les anciennes valeurs }

     x_{t-dt} = x_t ; \dot{x}_{t-dt} = \dot{x}_t ; \ddot{x}_{t-dt} = \ddot{x}_t ;

     Répéter

        { Les nouvelles valeurs deviennent les anciennes valeurs }

        x_a = x_t ; \dot{x}_a = \dot{x}_t ;

         { Calcul de la nouvelle accélération en fonction des anciennes valeurs }

         \ddot{x}_t = {1 \over M} f(x_a,\dot{x}_a,t) ;

         { Calcul de la nouvelle vitesse et la nouvelle position en fonction de la nouvelle accélération }

         \dot{x}_t = \dot{x}_{t-dt} + {1\over 2} (\ddot{x}_{t-dt} + \ddot{x}_t) dt ;

         x_t = x_{t-dt} + \dot{x}_{t-dt} dt +{1\over 3} (\ddot{x}_{t-dt} + {\ddot{x}_t \over 2}) dt^2 ;

     Jusqu'à |x_t - x_a| < \varepsilon { La nouvelle approximation diffère assez peu de l'ancienne }

Fin.

Cet algorithme converge raisonnablement quand le pas de temps est suffisamment petit par rapport aux périodes impliquées (périodes propres du système ou périodes d'excitation) mais, à la différence de son utilisation dans le cas linéaire, on ne peut imposer une convergence inconditionnelle.

[modifier] Voir aussi

Autres langues