Cours Analyse Numerique 2122

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 179

Introduction à l’Analyse Numérique

avec le langage de programmation Python

Saber EL AREM

Arts et Métiers ParisTech

January 24, 2022

S. EL AREM ENSAM 1 / 179


Grandes lignes Organisation du cours

Partie I: Organisation du cours

1 Introduction
Acquis d’apprentissage
Organisation du cours
Références

Organisation du cours S. EL AREM ENSAM 2 / 179


Grandes lignes Introduction au calcul scientifique

Partie II: Introduction au calcul scientifique

2 Introduction au calcul scientifique


Définition: calcul scientifique
Calcul sur ordinateur

3 L’erreur n’est pas seulement humaine


Erreurs de modélisation
Erreurs numériques
Notion de stabilité

Introduction au calcul scientifique S. EL AREM ENSAM 3 / 179


Grandes lignes Résolution d’équations non-linéaires

Partie III: Résolution d’équations non-linéaires: f (x) = 0


4 Introduction
5 Quelques problèmes types
6 Étapes de résolution
Etape 1: Localisation des zéros
Etape 2: Construction d’une suite
7 Méthode de point fixe
8 Méthode de la dichotomie ou bissection
9 Méthode de Lagrange ou Regula Falsi
10 Méthode de la sécante
11 Méthode de Newton-Raphson
12 Méthode de Newton en dimension > 1
13 Déjà implémentées dans scipy
14 Exercices
Résolution d’équations non-linéaires S. EL AREM ENSAM 4 / 179
Grandes lignes Systèmes d’équations linéaires

Partie IV: Systèmes d’équations linéaires : A x = b


15 Position du problème
Existence et unicité
16 Conditionnement
Sensibilité aux erreurs
Problème bien posé
17 Méthodes directes
Élimination de Gauss
Décomposition LU
Méthode de CHOLESKY
18 Méthodes itératives
Méthode de Jacobi
Méthode de Gauss-Seidel
Exercice
19 Matrices creuses
Exemple: Matrice tridiagonale
Matrices pentadiagonales
Systèmes d’équations linéaires S. EL AREM ENSAM 5 / 179
Grandes lignes Partie V: Intégration numérique

Partie V: Intégration numérique

20 Intégration Numérique: Principes

21 Méthode des rectangles

22 Méthode du point milieu

23 Méthode des trapèzes

24 Méthode de Simpson

25 Exercice: méthode de Monte-Carlo

26 Quadrature de Gauss-Légendre

Partie V: Intégration numérique S. EL AREM ENSAM 6 / 179


Grandes lignes Partie VI: Équations différentielles ordinaires

Partie VI: Équations différentielles ordinaires


27 Problème avec condition initiale
Introduction
28 Résolution numérique
Méthodes de Runge Kutta: introduction
Méthode d’Euler
Euler Implicite
Runge-Kutta d’ordre 2
Runge-Kutta d’ordre 4
29 Exemples de problèmes
Exemple 1: Oscillateur de Van Der Pol
Exemple 2: Oscillateur de Duffing
Exemple 2: Oscillateur de Duffing
30 Exemple 3: Attracteur de Lorenz
Équations et résolution
31 Équations aux Dérivées Partielles (EDP)
Partie VI: Équations différentielles ordinaires S. EL AREM ENSAM 7 / 179
Part I

Organisation du cours

S. EL AREM ENSAM 8 / 179


Introduction Acquis d’apprentissage

Acquis d’apprentissage disciplinaires visés


1 Exploiter les méthodes d’aide à la décision
Choisir une méthode d’aide à la décision en fonction de la
nature de problème et les critères de décision
Poser un problème d’optimisation et implémenter la
technique adéquate pour le résoudre
2 Identifier, structurer, formaliser les données d’un
problème technique ou scientifique
Identifier les composants d’un système d’information et
expliquer leur fonctionnement
Appliquer une démarche de modélisation d’un projet de
système d’information
Construire une application autour d’une base de données
Modéliser les processus métiers utilisant un système
d’information
Appliquer un langage de consultation d’une base de
données pour extraite les informations pertinentes

Acquis d’apprentissage S. EL AREM ENSAM 9 / 179


Introduction Acquis d’apprentissage

Acquis d’apprentissage disciplinaires visés

3 Formaliser un problème canonique de génie


mécanique/industriel en vue de le résoudre
numériquement
4 Choisir et utiliser, ou réaliser, un programme
informatique adapté pour la résolution d’un système
d’équations, modélisant un problème physique à résoudre
Appréhender les problèmes inhérents aux applications
numériques et les erreurs en résultant
Identifier la nature des équations à résoudre, déterminer si
une solution exacte est envisageable, et en déduire la
nature des méthodes de calcul symbolique et/ou
numérique que l’on peut mettre en œuvre

Acquis d’apprentissage S. EL AREM ENSAM 10 / 179


Introduction Organisation du cours

Organisation de la première partie

Première partie: Analyse Numérique

1 9 séances de 1 heure 20 minutes


2 1 TP de 3 heures
3 Évaluation :
TP + Devoir Analyse Numérique (coef. 25%)
un test de 10 à 15 minutes à la fin de chaque chapitre
(coef. 10%)
Test de 1 heure (coef. 65%)

Organisation du cours S. EL AREM ENSAM 11 / 179


Introduction Organisation du cours

Organisation de la deuxième partie

Deuxième partie: Programmation

1 5 séances de 1 heure 20 minutes


2 1 TP de 3 heures
3 Évaluation :
TP (coef. 25%)
un test de 10 à 15 minutes à la fin de chaque partie
(coef. 10%)
Test de 1 heure (coef. 65%)

Organisation du cours S. EL AREM ENSAM 12 / 179


Bibliographie Références

Bibliographie

Ce support est un extrait de ce qu’on a discuté en cours.


Il est loin d’être complet. Les notions théoriques sont
exposées et discutées dans le polycopié téléchargeable sur
le site du cours (Savoir).

Références S. EL AREM ENSAM 13 / 179


Bibliographie Références

Coursera.org

Références S. EL AREM ENSAM 14 / 179


Bibliographie Références

FUN: France Université Numérique

Références S. EL AREM ENSAM 15 / 179


Part II

Introduction au calcul scientifique

S. EL AREM ENSAM 16 / 179


Introduction au calcul scientifique Définition: calcul scientifique

Définition: calcul scientifique

On peut définir le calcul scientifique comme la dis-


cipline regroupant des outils, techniques et théories
nécessaires à la résolution sur un ordinateur d’un
problème mathématique résultant de la modélisation
d’un phénomène de la physique, chimie, biologie,
économie, et sciences appliquées en général. Le calcul
scientifique est considéré aujourd’hui comme le troisième
pilier de la science juste à côté de l’analyse théorique et
des expériences dans la découverte scientifique.

Définition: calcul scientifique S. EL AREM ENSAM 17 / 179


Introduction au calcul scientifique Définition: calcul scientifique

Différentes étapes d’un calcul scientifique


La recherche de solution approchée par calcul scientifique se
décompose en plusieurs étapes avec, en pratique, des
aller-retours d’une étape à l’autre:
1 La modélisation du phénomène observé par le biais
d’équations mathématiques. Par exemple les équations de
Maxwell, Navier-Stokes, Diffusion . . .
2 L’analyse théorique du modèle où on étudie les propriétés
des équations mathématiques pour, par exemple, prouver
l’existence et l’unicité de solution éventuelle.
3 Ensuite vient l’étape d’analyse numérique où on étudie
les algorithmes les mieux adaptés à la résolution et ce
selon les propriétés des équations. Ici il est question de
taux de convergence, complexités temporelle (temps
CPU) et spatiale (mémoire), . . .
4 vient enfin l’implémentation informatique de la méthode
et la vérification de son comportement sur des cas tests
simples pour lesquels on connaı̂t la solution.
5 après sa validation, la nouvelle méthode sera utilisée sur
des cas réels notamment industriels et souvent plus
complexes.
Définition: calcul scientifique S. EL AREM ENSAM 18 / 179
Introduction au calcul scientifique Définition: calcul scientifique

Définition: calcul scientifique S. EL AREM ENSAM 19 / 179


Introduction au calcul scientifique Calcul sur ordinateur

L’ordinateur, un outil incontournable

L’ordinateur est aujourd’hui un outil incontournable


pour simuler et modéliser des systèmes complexes,
mais il faut encore savoir exprimer nos problèmes
(physiques, économiques, biologiques . . . ) en
langage formalisé des mathématiques pures sous la
forme d’équations mathématiques (EDO, EDP, . . . )
Nous sommes habitués à résoudre les problèmes de
façon analytique, alors que l’ordinateur ne travaille
que sur des suites de nombres binaires: des 0 et des
1,
On verra qu’il existe souvent plusieurs approches
pour résoudre un même problème, ce qui conduit à
des algorithmes différents.

Calcul sur ordinateur S. EL AREM ENSAM 20 / 179


Introduction au calcul scientifique Calcul sur ordinateur

Quel algorithme choisir ?

Un algorithme, pour être utile, doit satisfaire un certain


nombre de conditions. Il doit être :
1 Rapide: le nombre d’opérations de calcul pour
arriver au résultat escompté doit être aussi réduit
que possible ;
2 Précis: l’algorithme doit savoir contenir les effets
des erreurs qui sont inhérentes à tout calcul
numérique (ces erreurs peuvent être dues à la
modélisation, aux données, à la représentation sur
ordinateur ou encore à la troncature) ;
3 souple: l’algorithme doit être facilement
transposable à des problèmes différents.

Calcul sur ordinateur S. EL AREM ENSAM 21 / 179


Introduction au calcul scientifique Calcul sur ordinateur

Quel algorithme choisir ?

Le choix et l’optimisation des algorithmes numériques


mis en pratique sont absolument cruciaux tant pour les
calculs de type industriel souvent très répétitifs et devant
donc pouvoir être exécutés en un temps très court, que
pour les calculs de référence pour lesquels la seule limite
est la patience de celui qui les fait.

Calcul sur ordinateur S. EL AREM ENSAM 22 / 179


Introduction au calcul scientifique Calcul sur ordinateur

Bien réfléchir avant de calculer !

L’expérience montre qu’entre une approche numérique


standard et une approche soigneusement réfléchie et op-
timisée un gain de temps de calcul d’un facteur 100,
voire davantage, est souvent observé. Il est clair qu’on
peut passer ainsi, grâce à cet effort, d’un calcul totale-
ment déraisonnable à un calcul parfaitement banal : tout
l’enjeu de l’analyse numériques est là ! C’est dire
l’importance pour tout ingénieur de bien connaı̂tre ces
méthodes, leurs avantages et leurs limites.

Calcul sur ordinateur S. EL AREM ENSAM 23 / 179


L’erreur n’est pas seulement humaine

Les erreurs

Le simple fait d’utiliser un ordinateur pour représenter


des nombres réels induit des erreurs. Par conséquent,
plutôt que de tenter d’éliminer les erreurs, il vaut mieux
chercher à contrôler leur effet. Généralement, on peut
identifier plusieurs niveaux d’erreur dans l’approximation
et la résolution d’un problème physique.

S. EL AREM ENSAM 24 / 179


L’erreur n’est pas seulement humaine Erreurs de modélisation

Erreurs de modélisation

1 Erreurs de modèle : ces erreurs sont dues au fait que les


modèles mathématiques sont plus ou moins idéalisés, ce
qui donne lieu à plusieurs erreurs. Un exemple est
l’erreur du modèle du pendule qui ne tient pas en
considération la force de friction.
2 Erreurs de mesure : ces erreurs sont dues à la présence
dans le modèle mathématique de paramètres numériques
dont les valeurs ne peuvent être observées ou déterminées
qu’approximativement suite à des mesures
expérimentales. Telles sont toutes les constantes
physiques, comme, par exemple, la longueur L dans le
modèle du pendule, le module d’Young E et le coefficient
de Poisson ν en élasticité linéaire isotrope.

Erreurs de modélisation S. EL AREM ENSAM 25 / 179


L’erreur n’est pas seulement humaine Erreurs numériques

Erreurs numériques
1 Erreurs d’approximation ou de troncature et : Par
exemple, le calcul de la somme d’une série ne pourra être
accompli qu’en procédant à une troncature convenable.
+∞ +∞
X 1 X (−1)k
= 2 ou 4 =π
2k 2k + 1
k=0 k=0

1 >>> sum ([1/2.0** i for i in range (100) ])


2.0
3 >>> 4* sum ([( -1) ** i /(2.0* i +1) for i in range (10000) ])
3.1414926535900345

2 Erreurs d’arrondi ea : ce sont les erreurs associées au


système de numération. Elles sont dues au fait qu’un
ordinateur ne peut prendre en considération qu’un
nombre fini de chiffres.La résolution par des algorithmes
numériques entraı̂ne immanquablement l’introduction et
la propagation d’erreurs d’arrondi.
Erreurs numériques S. EL AREM ENSAM 26 / 179
L’erreur n’est pas seulement humaine Erreurs numériques

Erreurs numériques

1 Erreurs d’approximation ou de troncature et : Par


exemple, le calcul de la somme d’une série ne pourra être
accompli qu’en procédant à une troncature convenable.
2 Erreurs d’arrondi ea : ce sont les erreurs associées au
système de numération. Elles sont dues au fait qu’un
ordinateur ne peut prendre en considération qu’un
nombre fini de chiffres.La résolution par des algorithmes
numériques entraı̂ne immanquablement l’introduction et
la propagation d’erreurs d’arrondi.
>>> 0.1+0.1+0.1
2 0.30000000000000004

4 >>> (0.1+0.1+0.1) *1.0 e17 - 3.0 e16


4.0

Erreurs numériques S. EL AREM ENSAM 27 / 179


L’erreur n’est pas seulement humaine Erreurs numériques

Les divers types d’erreur

1 Erreurs de calcul: ec = et + ea
2 Erreur de modèle: em

Erreurs numériques S. EL AREM ENSAM 28 / 179


L’erreur n’est pas seulement humaine Notion de stabilité

Stabilité d’un problème physique : système chaotique

Un problème est dit chaotique si une petite variation des


données initiales entraı̂ne une variation totalement
imprévisible des résultats. Un exemple est l’effet papillon de
Edward Lorenz. Cette notion de chaos, liée à la physique
d’un problème, est indépendante du modèle mathématique
utilisé et encore moins de la méthode numérique utilisée pour
résoudre ce problème mathématique. De nombreux
problèmes sont chaotiques, par exemple la turbulence en
mécanique des fluides.

Notion de stabilité S. EL AREM ENSAM 29 / 179


L’erreur n’est pas seulement humaine Notion de stabilité

Stabilité d’un problème mathématique : sensibilité

Un problème est dit très sensible ou mal conditionné si une


petite variation des données ou des paramètres entraı̂ne une
grande variation des résultats. Cette notion de
conditionnement, liée au problème mathématique, est
indépendante de la méthode numérique utilisée pour le
résoudre. Pour modéliser un problème physique qui n’est pas
chaotique, on construira un modèle mathématique qui sera le
mieux conditionné possible.

Notion de stabilité S. EL AREM ENSAM 30 / 179


L’erreur n’est pas seulement humaine Notion de stabilité

Stabilité d’une méthode numérique

Une méthode est dite instable si elle est sujette à une


propagation importante des erreurs numériques de
discrétisation et d’arrondi. Un problème peut être bien
conditionné alors que la méthode numérique choisie pour le
résoudre est instable. Dans ce cas, il est impératif de changer
de méthode numérique. Par contre, si le problème de départ
est mal conditionné, aucune méthode numérique ne pourra y
remédier. Il faudra alors essayer de trouver une formulation
mathématique différente du même problème, si on sait que le
problème physique sous-jacent est stable.

Notion de stabilité S. EL AREM ENSAM 31 / 179


Part III

Résolution d’équations non-linéaires:


f (x) = 0

S. EL AREM ENSAM 32 / 179


Introduction

Introduction

Calculer les zéros d’une fonction f réelle (c’est-à-dire les


racines d’une équation f (x) = 0) est un problème que
l’on rencontre très souvent en Calcul Scientifique. En
général, cette tâche ne peut être effectuée en un nom-
bre fini d’opérations. Par exemple, nous savons qu’il
n’existait pas de formule explicite donnant les racines
d’un polynôme quelconque de degré supérieur à 4. La
situation est bien sûr encore plus complexe quand f n’est
pas un polynôme. Pour résoudre le problème, on utilise
donc des méthodes itératives: partant d’une ou plusieurs
valeurs initiales, on construit une suite de valeurs xk qui,
si tout se passe bien, converge vers un zéro de la fonction
f considérée.

S. EL AREM ENSAM 33 / 179


Quelques problèmes types

Problème 1: Fonds d’investissement

Le client d’une banque dépose au début de chaque année


v euros dans un fonds d’investissement et en retire, à
la fin de la n-ème année, un capital de M euros. Nous
voulons calculer le taux d’intérêt annuel moyen T de cet
investissement. Comme M est relié à T par la relation
n
X 1+T
M =v (1 + T )k = v [(1 + T )n − 1]
T
k=1

nous déduisons que T est racine de l’équation algébrique


non linéaire :
1+T
f (T ) = 0 où f (T ) = M − v [(1 + T )n − 1]
T

S. EL AREM ENSAM 34 / 179


Quelques problèmes types

Problème 2: Équation d’état d’un gaz

Nous voulons déterminer le volume V occupé par un


gaz dont la température est T et dont la pression est
p. L’équation d’état (i.e. l’équation liant p, V et T ) est
donnée par:

N 2 
[p + a( (V − N b) = kN T (1)
V
où a et b sont deux coefficients qui dépendent du gaz
considéré, N est le nombre de molécules contenues dans
le volume V et k est la constante de Boltzmann. Nous
devons donc résoudre une équation non linéaire dont la
racine est V

S. EL AREM ENSAM 35 / 179


Quelques problèmes types

Problème 3: Statique
Considérons le système mécanique représenté par les quatre
barres rigides ai de la Figure 2.1. Pour une valeur admissible
de l’angle β, déterminons la valeur de l’angle α entre les
barres a1 et a2 .

S. EL AREM ENSAM 36 / 179


Quelques problèmes types

Problème 3: Statique
Partant de la relation
vectorielle:

a1 − a2 − a3 − a4 = 0

et remarquant que la barre a1


est toujours alignée avec l’axe
des x, on peut déduire les
relations suivantes entre β et
α:

a1 a1 a2 + a22 − a23 + a24


cos(β) − cos(α) − cos(β − α) = − 1 (2)
a2 a4 2a2 a4
où ai est la longueur connue de la i−ème barre. Cette égalité,

appelée équation de Freudenstein, peut être récrite comme


suit :
f (α) = 0
S. EL AREM ENSAM 37 / 179
Quelques problèmes types

Problème 3: Statique

Cette égalité, appelée équation


de Freudenstein, peut être
récrite comme suit :

f (α) = 0

où
a1 a1 a2 + a22 − a23 + a24
f (x) = cos(β) − cos(x) − cos(β − x) + 1
a2 a4 2a2 a4
Une expression explicite de la solution n’existe que pour des
valeurs particulières de β. Signalons également qu’il n’y a pas
existence d’une solution pour toutes les valeurs de β, et
qu’une solution peut ne pas être unique. Pour résoudre cette
équation pour toute valeur de β entre 0 et π, nous devrons
avoir recours à des méthodes numériques.
S. EL AREM ENSAM 38 / 179
Quelques problèmes types

Plusieurs méthodes

Plusieurs méthodes existent et elles différent pas leur


vitesse de convergence et par leur robustesse. Lorsqu’il
s’agit de calculer les zéros d’une seule fonction, la vitesse
de la méthode utilisée n’est souvent pas cruciale. Cepen-
dant, dans certains applications il est nécessaire de cal-
culer les zéros de plusieurs milliers de fonctions et la
vitesse devient alors un élément stratégique.

S. EL AREM ENSAM 39 / 179


Étapes de résolution

f (x) = 0 : étapes de résolution

Soit f : R → R une fonction continue donnée dont on veut


évaluer numériquement un ou plusieurs zéros x̂ , c’est-
à-dire qu’on cherche tous les x̂ tels que f (x̂) = 0. Les
méthodes numériques pour approcher consistent à :
1 localiser grossièrement le (ou les) zéro(s) de f en
procédant à l’étude du graphe de f et/ou à des
évaluations qui sontsouvent de type graphique ; on
note x0 cette solution grossière ;
2 construire, à partir de x0 , une suite x1 , x2 , x3 , . . .
telle que limk→∞ xk = x̂ où f (x̂) = 0. On dit alors que
la méthode est convergente.

S. EL AREM ENSAM 40 / 179


Étapes de résolution

Définition: ordre de convergence

Soit p un entier positif. On dit qu’une méthode convergente


est d’ordre p s’il existe une constante C telle que:

|x̂ − xk+1 | ≤ C|x̂ − xk |p


ou encore
|x̂ − xk+1 |
lim ≤C
k→∞ |x̂ − xk |p

1 Si p = 1 (et C < 1) on parle de convergence linéaire


2 Si p = 2 on parle de convergence quadratique
3 Si p = 3 on parle de convergence cubique
4 Si p = 1 et C = Cn , où Cn dépend de n et est tel que
limn→∞ Cn = 0, on parle de convergence surlinéaire

S. EL AREM ENSAM 41 / 179


Étapes de résolution Etape 1: Localisation des zéros

Etape 1: Localisation des zéros

Définition
Soit f : R → R une fonction. On dit que x̂ est un zéro de f si
f (x̂) = 0. Il est dit simple si f 0 (x̂) 6= 0 , multiple sinon.
Si f est de classe C p avec p ∈ N, on dit que x̂ est un zéro de
multiplicité p
(
f (i) (x̂) = 0 i = 0, 1, . . . , p − 1
f (p) (x̂) 6= 0,

Pour localiser grossièrement le (ou les) zéro(s) de f on va


d’abord étudier la fonction f , puis on va essayer d’utiliser un
corollaire du théorème des valeurs intermédiaires et le
théorème de la bijection afin de trouver un intervalle qui
contient un et un seul zéro.

Etape 1: Localisation des zéros S. EL AREM ENSAM 42 / 179


Étapes de résolution Etape 1: Localisation des zéros

Théorème des valeurs intermédiaires


Soit f une fonction continue sur un intervalle I = [a; b] de R.
Alors f atteint toutes les valeurs intermédiaires entre f (a) et
f (b). Autrement dit :
si f (a) ≤ f (b) alors pour tout d ∈ [f (a), f (b)] il existe c ∈ [a; b]
tel que f (c) = d ;
si f (b) ≤ f (a) alors pour tout d ∈ [f (b), f (a)] il existe c ∈ [a; b]
tel que f (c) = d ;

Ce théorème donne alors le corollaire immédiat suivant.


Corollaire
Soit f une fonction continue sur un intervalle I = [a; b] de R.
˙ (b) < 0 alors il existe (au moins un) x̂ ∈]a, b[ tel
Alors si f (a).f
que f (x̂) = 0

Etape 1: Localisation des zéros S. EL AREM ENSAM 43 / 179


Étapes de résolution Etape 1: Localisation des zéros

Le théorème des valeurs intermédiaires garantit juste


l’existence d’un zéro. Pour l’unicité on essayera d’appliquer le
théorème de la bijection dont l’énoncé est rappelé ci-dessous.
Théorème de la bijection
Soit f une fonction continue et strictement monotone sur un
intervalle I = [a; b] de R alors f induit une bijection de I dans
f (I). De plus, sa bijection réciproque est continue sur I ,
monotone sur I et de même sens de variation que f

Etape 1: Localisation des zéros S. EL AREM ENSAM 44 / 179


Étapes de résolution Etape 2: Construction d’une suite

Ayant encadré les zéros de f , la construction de suites qui


convergent vers ces zéros peut se faire à l’aide de plusieurs
méthodes numériques. Ci-dessous on décrit les méthodes les
plus connues.
1 Méthode de point fixe
2 Dichotomie ou bissection
3 Regula Falsi ou Lagrange
4 Newton-Raphson
5 Sécante

Etape 2: Construction d’une suite S. EL AREM ENSAM 45 / 179


Méthode de point fixe

Méthode de point fixe

Une méthode de point fixe pour résoudre numériquement


f (x) = 0 consiste, dans une première phase, à transformer le
problème en un problème équivalent du type:

x = g(x)

Clairement, il existe une infinité de manières pour opérer


cette transformation. Par exemple, on peut poser:

g(x) = x − f (x)

ou plus généralement :

g(x) = x + αf (x) avec α 6= 0

On peut même prendre pour α une fonction de x pour autant


qu’elle ne s’annule pas.
S. EL AREM ENSAM 46 / 179
Méthode de point fixe

Méthode de point fixe

Définition
si x∗ ∈ R est tel que x∗ = g(x∗ ), on dira que x∗ est un point fixe
de g; l’image de x∗ par g est x∗ lui-même.

Supposons donc que x∗ ∈ R soit un zéro de f , de façon


équivalente, un point fixe de g. Alors une méthode de point
fixe consiste à:
évaluer une approximation x0 du point fixe x∗
calculer successivement xn+1 = g(xn ), n = 0, 1, 2, . . .
Naturellement toute méthode de point fixe n’est pas
forcément convergente. Par contre, si elle converge et si g est
continue, alors sa limite x est nécessairement un point fixe de
g puisque
x = lim xn+1 = lim g(xn ) = g(x)
n→∞ n→∞

S. EL AREM ENSAM 47 / 179


Méthode de point fixe

Définition
Soit I un intervalle de R et soit g : x ∈ I ←→ g(x) ∈ R une
fonction. Nous dirons que g est une contraction stricte sur I
s’il existe une constante χ < 1 telle que

|g(x) − g(y)| ≤ χ|x − y|, ∀x, y ∈ I

Théorème
Soit I un intervalle fermé de R et soit g : x ∈ I ←→ g(x) ∈ R une
fonction donnée. On suppose que g satisfait les deux
propriétés suivantes:
1 g est une contraction stricte sur I
2 g(I) ⊂ I
alors g a un et un seul point fixe x∗ dans I et, ∀x0 ∈ I, la suite
(xn ) donnée par

xn+1 = g(xn ), n = 0, 1, 2, . . .
S. EL AREM ENSAM 48 / 179
Méthode de la dichotomie ou bissection

Méthode de la Dichotomie ou bissection

Dans les méthodes de dichotomie et de Lagrange , à chaque


pas d’itération on divise en deux un intervalle donné et on
choisit le sous-intervalle où f change de signe.

Soit deux points a0 et b0 (avec a0 < b0 ) d’images par f


de signe contraire (i.e. f (a0 ).f (b0 ) < 0). En partant de
I0 = [a0 , b0 ], les méthodes de dichotomie et de Lagrange
produisent une suite de sous-intervalles Ik = [ak , bk ], k ≥ 0,
avec Ik ∈ Ik−1 pour k ≥ 1 et tels que f (ak ).f (bk ) < 0.

S. EL AREM ENSAM 49 / 179


Méthode de la dichotomie ou bissection

Méthode de la Dichotomie

S. EL AREM ENSAM 50 / 179


Méthode de la dichotomie ou bissection

1 def dichotomie (f ,a ,b , tol ) :


’’’ retourne c / f ( c ) =0
3 avec la tol é rance tol ’’’
i =0
5 if abs ( f ( a ) ) < tol : return a
if abs ( f ( b ) ) < tol : return b
7 if f ( a ) * f ( b ) >0.0:
print ( " La racine n ’ est pas encadr é e par {} et {} " . format (a ,
b))
9 sys . exit (0)
c = ( a + b ) /2
11 while ( abs ( f ( c ) ) > tol and abs (a - b ) > tol ) :
i +=1
13 if f ( a ) * f ( c ) <= 0:
b = c
15 else :
a = c
17 c = ( a + b ) /2
print ( " nb d ’ it é rations : " ,i )
19 return c

S. EL AREM ENSAM 51 / 179


Méthode de Lagrange ou Regula Falsi

1 def Lagrange (f ,a ,b , tol ) :


’’’ retourne c / f ( c ) =0
3 avec la tol é rance tol ’’’
if abs ( f ( a ) ) < tol : return a
5 if abs ( f ( b ) ) < tol : return b
if f ( a ) * f ( b ) >0.0:
7 print ( " La racine n ’ est pas encadr é e par {} et {} " . format (a ,
b))
# sys . exit (0)
9 return None
c = a - f ( a ) *( b - a ) /( f ( b ) -f ( a ) )
11 i =0
while ( abs ( f ( c ) ) > tol and abs (b - a ) > tol ) :
13 i +=1
if f ( a ) * f ( c ) <= 0:
15 b = c
else :
17 a = c
c = a - f ( a ) *( b - a ) /( f ( b ) -f ( a ) )
19 print ( ’ nbre it é rations : ’ , i )
return c

S. EL AREM ENSAM 52 / 179


Méthode de la sécante

Méthode de la sécante
Soit f : R → R une fonction continue et soit x̂ ∈ [a, b] un zéro de
f . La méthode de la sécante est une variante de la méthode
de Lagrange dans laquelle on ne demande plus à ce que le
zéro soit entre ak et bk . Pour calculer xk+1 on prend
l’intersection de l’axe des abscisses avec la droite passant par
les points (xk , f (xk )) et (xk−1 , f (xk−1 )), i.e. on cherche x
solution du système linéaire:

y = f (xk ) − f (xk−1 ) (x − x ) + f (x ),

k k
xk − xk−1
y = 0,

ce qui donne:

xk − xk−1
x = xk − f (xk )
f (xk ) − f (xk−1 )

S. EL AREM ENSAM 53 / 179


Méthode de la sécante

Définition: Méthode de la Sécante

Il s’agit d’une méthode à trois niveaux : approcher les zéros


de f se ramène à calculer la limite de la la suite récurrente:

x donné,
 0


x1 donné,
 xk − xk−1
xk+1 = xk −
 f (xk )
f (xk ) − f (xk−1 )

Cette méthode a ordre de convergence



1+ 5
2

S. EL AREM ENSAM 54 / 179


Méthode de la sécante

Implémentation de la méthode de la Sécante

def secante ( x0 , x1 ,f , tol ) :


2 ’’’ resolution de f ( x ) =0 par
methode de la secante ’’’
4 i =0
while ( abs ( f ( x1 ) ) > tol ) :
6 i +=1
x0 , x1 = x1 , x1 - f ( x1 ) *( x1 - x0 ) /( f ( x1 ) -f ( x0 ) )
8 print ( ’ nbre it é rations : ’ ,i )
return x1
10
if __name__ == ’ __main__ ’:
12 n =5
k =32.0
14 g = lambda x : x ** n - k
dg = lambda x : n * x **( n -1)
16 print ( ’ Racine ’ ,n , ’ ieme ’ , ’ de ’ ,k , ’= ’ , secante (10.0 , 11.0 , g , 1.0 e
-4) )

S. EL AREM ENSAM 55 / 179


Méthode de Newton-Raphson

Méthode de Newton-Raphson
Dans la méthode de Newton-Raphson, le passage de xk à xk+1
se fait de la manière suivante: xk+1 est l’abscisse du point
d’intersection de la tangente au point (xk , f (xk )) et l’axe y = 0.
Théorème
On suppose f de classe C 2 sur [a, b]. On suppose aussi qu’il
existe x̂ vérifiant f (x̂) = 0 et f 0 (x̂) 6= 0. Alors ∃δ > 0 tel que la
suite définie par:

x0 ∈ [x̂ − δ, x̂ + δ],
f (x )
xk+1 = xk − 0 k
f (xk )

soit bien définie et converge vers x̂.

Pour k assez grand, on a la majoration suivante :

|x̂ − xk+1 | < |x̂ − xk |2

S. EL AREM ENSAM 56 / 179


Méthode de Newton-Raphson

Remarque sur la méthode de Newton-Raphson

Attention
à noter que même si la méthode de Newton−Raphson permet
en général d’obtenir une convergence quadratique, un
mauvais choix de la valeur initiale peut provoquer la
divergence de cette méthode (notamment si la courbe
représentative de f présente au point d’abscisse x0 une
tangente à peu près horizontale). D’où l’importance d’une
étude préalable soignée de la fonction f (cette étude est
d’ailleurs nécessaire pour toute méthode de point fixe).

S. EL AREM ENSAM 57 / 179


Méthode de Newton-Raphson

Méthode de Newton−corde

Cette méthode permet d’éviter de calculer f 0 (xk ) à chaque


itération de l’algorithme de Newton. La méthode de la
corde consiste à remplacer f 0 (xk ) par f 0 (x0 ). La conver-
gence est linéaire

S. EL AREM ENSAM 58 / 179


Méthode de Newton-Raphson

Implémentation de Newton et Newton-corde

def newton (f , df , x0 , tol ) :


2 while abs ( f ( x0 ) ) > tol :
x0 = x0 - f ( x0 ) / df ( x0 )
4 return x0

6
def corde (f , df0 , x0 , tol ) :
8 while abs ( f ( x0 ) ) > tol :
x0 = x0 - f ( x0 ) / df0
10 return x0

12 if __name__ == ’ __main__ ’:
n =4.87
14 k =8.51** n
eps =1.0 e -3
16 f = lambda x : x ** n - k
df = lambda x : n * x **( n -1)
18 x0 =10.0
print ( ’ racine selon newton ’ , newton (f , df , x0 , eps ) )
20 print ( ’ racine selon corde ’ , corde (f , df ( x0 ) ,x0 , eps ) )

S. EL AREM ENSAM 59 / 179


Méthode de Newton-Raphson

Système d’équations non-linéaires

Considérons un système d’équations non linéaires de la forme:




 f1 (x1 , x2 , . . . , xn ) = 0

f2 (x1 , x2 , . . . , xn ) = 0

..


 .

fn (x1 , x2 , . . . , xn ) = 0

où f1 , . . . , fn sont des fonctions non linéaires. En posant


f = (f1 , f2 , . . . , fn )t et x = (x1 , x2 , . . . , xn )t Notre système d’équations
devient :

f (x) = 0

S. EL AREM ENSAM 60 / 179


Méthode de Newton en dimension > 1

Système d’équations non-linéaires

Notre système d’équations devient :

f (x) = 0

Exemple:

2
sin x + y + log z − 7 = 0

3x + 2y − z 3 + 1 = 0

x+y+z−5=0

S. EL AREM ENSAM 61 / 179


Méthode de Newton en dimension > 1

Système d’équations non-linéaires

Notre système d’équations devient :

f (x) = 0

Pour étendre la méthode de Newton au cas d’un système, on


remplace la dérivée de la fonction scalaire f par la matrice
jacobienne Jf de la fonction vectorielle f définie par:
∂fi
(Jf )ij = i, j = 1, 2, . . . , n
∂xj

On construit la suite (xn ) avec la relation de récurrence:

xn+1 = xn − [Jf (xn )]−1 f (xn )

S. EL AREM ENSAM 62 / 179


Méthode de Newton en dimension > 1

Système d’équations non-linéaires


∂fi
Le calcul analytique de pourrait être impraticable, il est
∂xj
préférable de l’approcher par :

∂fi fi (x + h ej ) − fi (x)

∂xj h

où h est un petit incrément de xj et ej représente le vecteur


unitaire dans la direction j. Avec ces notations, la méthode
de Newton s’écrit alors:

k n
 étant donné x ∈ R


Tant que ||∆x|| > 



calculer Jf (xk )

résoudre en ∆x, Jf (xk )∆x = −f (x)





 k+1
x = xk + ∆x

S. EL AREM ENSAM 63 / 179


Méthode de Newton en dimension > 1

Newton en dimension n > 1


import numpy as np
2 import math
def newtonRaphson2 (f ,x , tol =1.0 e -9) :
4 def jacobian (f , x ) :
h = 1.0 e -4
6 n = len ( x )
jac = np . zeros (( n , n ) )
8 f0 = f ( x )
for i in range ( n ) :
10 temp = x [ i ]
x [ i ] = temp + h
12 f1 = f ( x )
x [ i ] = temp
14 jac [: , i ] = ( f1 - f0 ) / h
return jac , f0
16 for i in range (30) :
jac , f0 = jacobian (f , x )
18 if math . sqrt ( np . dot ( f0 , f0 ) / len ( x ) ) < tol :
return x
20 dx = np . linalg . solve ( jac , - f0 )
x = x + dx
22 if math . sqrt ( np . dot ( dx , dx ) ) < tol * max ( max ( abs ( x ) ) ,1.0) :
return x
print ( " Beaucoup d ’ iterations " )

S. EL AREM ENSAM 64 / 179


Déjà implémentées dans scipy

Méthodes de résolution déjà implémentées


1 scipy.optimize.bisect
2 scipy.optimize.newton
3 scipy.optimize.fsolve
4 scipy.optimize.root
5 scipy.optimize.newton krylov
A chaque fois on vérifie notre implémentation avec les
méthodes déjà implémentées dans scipy.

S. EL AREM ENSAM 65 / 179


Exercices

Exercice 1

S. EL AREM ENSAM 66 / 179


Exercices

Solution Exercice 1

1 from scipy . optimize import root , fsolve , newton_krylov


import numpy as np
3 def f ( x ) :
f = np . zeros ( len ( x ) )
5 f [0] = 150.0* np . cos ( x [0]) + 180.0* np . cos ( x [1]) - 200.0* np . cos (
beta ) -200
f [1] = 150.0* np . sin ( x [0]) +180.0* np . sin ( x [1]) -200.0* np . sin (
beta )
7 return f
beta = np . radians (75.0)
9 x0 = [ np . radians (100.0) , np . radians (200.0) ]
x = root (f , x0 ) . x
11 x = newton_krylov (f , x0 )
print ( ’ solution :\ n ’)
13 print ( ’ Theta1 = ’ , np . degrees ( x [0]) )
print ( ’ Theta2 = ’ , np . degrees ( x [1]) )

S. EL AREM ENSAM 67 / 179


Exercices

Deux solutions possibles

23.0°

52.0°

20.0° 75.0° 55.0°


75.0°

S. EL AREM ENSAM 68 / 179


Exercices

Exercice 2

S. EL AREM ENSAM 69 / 179


Exercices

Solution Exercice 2

1 from scipy . optimize import root , fsolve , newton_krylov


import numpy as np
3 def f ( x ) :
f = np . zeros ( len ( x ) )
5 x [0] = 1000.0
f [0] = x [0]*( - np . tan ( x [2]) + np . tan ( x [1]) ) -16
7 f [1] = x [0]*( np . tan ( x [3]) + np . tan ( x [2]) ) -20
f [2] = -4.0 * np . sin ( x [1]) -6* np . sin ( x [2]) +5* np . sin ( x [2]) +3
9 f [3] = 4.0 * np . cos ( x [1]) +6* np . cos ( x [2]) +5* np . cos ( x [2]) -12.0
return f
11
x0 = [1000. ,0.75 ,1.50 ,1.10]
13 x = root (f , x0 ) . x

15 print ( ’ solution :\ n ’)
print ( ’T = ’ ,x [0])
17 print ( ’ Theta1 = ’ , np . degrees ( x [1]) )
print ( ’ Theta2 = ’ , np . degrees ( x [2]) )
19 print ( ’ Theta3 = ’ , np . degrees ( x [3]) )

S. EL AREM ENSAM 70 / 179


Exercices

Exercice 3

2
sin x + y + log z − 7 = 0

3x + 2y − z 3 + 1 = 0

x+y+z−5=0

Solution
1 from scipy . optimize import root , fsolve , newton_krylov
import numpy as np
3
def f ( x ) :
5 f = np . zeros ( len ( x ) )
f [0] = np . sin ( x [0]) + x [1]**2 + np . log ( x [2]) - 7.0
7 f [1] = 3.0* x [0] + 2.0** x [1] - x [2]**3 + 1.0
f [2] = x [0] + x [1] + x [2] - 5.0
9 return f

11 print ( ’ solution :\ n ’ , root (f ,[4. ,3.5 ,.5]) . x )


print ( ’ solution :\ n ’ , fsolve (f ,[0. ,0.5 ,0.1]) )
13 print ( ’ solution :\ n ’ , newton_krylov (f ,[10. ,3.5 ,2.5]) )

S. EL AREM ENSAM 71 / 179


Exercices

Exercice 4

Le client d’une banque dépose au début de chaque année


v euros dans un fonds d’investissement et en retire, à
la fin de la n-ème année, un capital de M euros. Nous
voulons calculer le taux d’intérêt annuel moyen T de cet
investissement. Comme M est relié à T par la relation
n
X 1+T
M =v (1 + T )k = v [(1 + T )n − 1]
T
k=1

nous déduisons que T est racine de l’équation algébrique


non linéaire :
1+T
f (T ) = 0 où f (T ) = M − v [(1 + T )n − 1]
T

S. EL AREM ENSAM 72 / 179


Exercices

Solution

1 from scipy import optimize


v = 1000.0 # versement annuel
3 n = 10 # ann é es
M = 10700.0 # montant retir é apres n ann é es
5 def f ( T ) :
return M - v *(1+ T ) / T *((1+ T ) ** n -1)
7 # R é solution
print ( ’ Taux moyen sur ’ ,n , ’ ann é es ’)
9 print ( optimize . root (f ,0.01) . x ) # En utilisant root
print ( ’ ***** ’)
11 print ( optimize . bisect (f ,0.001 ,0.2) ) # En utilisant bisect ( dichotomie
)
print ( ’ ***** ’)
13 print ( optimize . newton (f ,0.001) ) # En utilisant la s é cante
print ( ’ ***** ’)
15 print ( optimize . newton_krylov (f ,0.001) ) # En utilisant Newton - Raphson

S. EL AREM ENSAM 73 / 179


Part IV

Systèmes d’équations linéaires : A x = b

S. EL AREM ENSAM 74 / 179


Position du problème Existence et unicité

Position du problème

Dans ce chapitre, nous ne traiterons que des systèmes


linéaires carrés d’ordre n. On cherche x ∈ Rn vérifiant
A.x = b. Avec A ∈ Mn (R) et b ∈ Rn connus.

Dans ce cas, on est assuré de l’existence et de l’unicité de la


solution si une des conditions équivalentes suivantes est
remplie

Existence et unicité S. EL AREM ENSAM 75 / 179


Position du problème Existence et unicité

Existence et unicité de la solution

x ∈ Rn vérifiant
A.x = b
Avec A ∈ Mn (R) et b ∈ Rn connus.

Dans ce cas, on est assuré de l’existence et de l’unicité de la


solution si une des conditions équivalentes suivantes est
remplie:
1 det(A) 6= 0
2 A.x = 0 ⇐⇒ x = 0

Existence et unicité S. EL AREM ENSAM 76 / 179


Conditionnement Sensibilité aux erreurs

Sensibilité aux erreurs 1

Tout problème de calcul numérique consiste en fait à


déterminer une solution x dépendant de données d :

x = F (d)

Définition: problème bien posé


Un problème est dit bien posé au sens de HADAMARD s’il
possède une solution unique, continue par rapport aux
données. Il est dit mal posé dans le cas contraire.

Sensibilité aux erreurs S. EL AREM ENSAM 77 / 179


Conditionnement Sensibilité aux erreurs

Sensibilité aux erreurs 2

Un problème x = F (d) étant bien posé il est souhaitable


de savoir mesurer sa sensibilité aux perturbations sur les
données.

Définition:Problème bien conditionné


Un problème bien posé au sens de HADAMARD est
conditionné de manière absolue s’il existe une constante C
telle que pour tout d et pour tout dˆ au voisinage de a, on ait :

ˆ − F (d)| ≤ C|dˆ − d|
|F (d)

La plus petite des constantes C vérifiant l’inégalité précédente


est appelé le conditionnement absolu du problème.

Sensibilité aux erreurs S. EL AREM ENSAM 78 / 179


Conditionnement Sensibilité aux erreurs

Sensibilité aux erreurs 3

Si la constante C est petite la solution x sera donc peu


sensible aux perturbations sur les données : on dit que le
problème est bien conditionné ; un algorithme de calcul
de la solution sera stable.
Si C est grande les perturbations sur les données seront
amplifiées : on dit que le problème est mal conditionné ou
 raide  (stiff en anglais). Il est à craindre qu’un algo-

rithme de calcul de la solution soit instable : le choix de


cet algorithme sera alors important. Le caractère  petit
 ou  grand  dépend bien sûr des problèmes traités et

du type de conditionnement : on peut raisonnablement


parler de problème:
mal conditionné si C > 10
bien conditionné si C < 2

Sensibilité aux erreurs S. EL AREM ENSAM 79 / 179


Conditionnement Problème bien posé

Problème bien posé: récapitulatif

Le problème x = F (d) est bien posé :


1 si la solution x existe,
2 x est unique,
3 x dépend continûment des données d
Nous utiliserons indifféremment les termes bien posé et stable
et nous ne considérerons dans la suite que des problèmes bien
posés.

La dépendance continue par rapport aux données signifie


que de petites perturbations sur les données d induisent
de “petites” modifications de la solution x.

Problème bien posé S. EL AREM ENSAM 80 / 179


Conditionnement Problème bien posé

Problème bien posé: récapitulatif

Un problème qui ne possède pas les propriétés ci-dessus est


dit mal posé ou instable.

Il faut alors le régulariser: le transformer convenablement en


un problème bien posé, avant d’envisager sa résolution
numérique.
Il n’est en effet pas raisonnable d’espérer qu’une méthode
numérique traite les pathologies intrinsèques d’un problème
mal posé.

Problème bien posé S. EL AREM ENSAM 81 / 179


Conditionnement Problème bien posé

Étude du conditionnement

Variation du second membre


Le système A.x = b devient A.(x + ∆x) = b + ∆b. On a alors:

A.∆x = ∆b

Étant données une norme vectorielle et la norme matricielle


subordonnée on a:

∆x = A−1 .∆b =⇒ k ∆x k=k A−1 .∆b k≤k A−1 kk ∆b k

aussi
A.x = b =⇒ k b k≤k A k . k x k
d’où

k ∆x k k ∆b k
≤ γ(A)
kxk kbk
Problème bien posé S. EL AREM ENSAM 82 / 179
Conditionnement Problème bien posé

Étude du conditionnement

Variation du second membre


k ∆x k k ∆b k
≤ γ(A)
kxk kbk
γ(A) =k A kk A−1 k est le conditionnement de A.
Puique I = A−1 .A on a γ(A) ≥ 1

Lorsque γ(A) est grand, une faible variation relative du second


membre peut entraı̂ner une forte variation relative de la
solution : le système est mal conditionné.

Problème bien posé S. EL AREM ENSAM 83 / 179


Conditionnement Problème bien posé

Étude du conditionnement

Variation du premier membre


On montre aisément dans ce cas
k ∆x k k ∆A k
≤ γ(A)
k ∆x + x k kAk

le conditionnement de A, γ(A) mesure donc la sensibilité de la


solution d’un système linéaire vis-à-vis des données.

Problème bien posé S. EL AREM ENSAM 84 / 179


Conditionnement Problème bien posé

Étude du conditionnement

Le conditionnement de A, γ(A) mesure donc la sensibilité


de la solution d’un système linéaire vis-à-vis des données.

Il s’agit d’un outil théorique permettant d’expliquer cer-


taines situations, mais pas les prévoir. En effet son calcul
est très coûteux puisqu’il nécessite le calcul de A−1 .

Problème bien posé S. EL AREM ENSAM 85 / 179


Conditionnement Problème bien posé

Étude du conditionnement

Pour toute norme matricielle on peut définir le


conditionnement de la matrice. On montre facilement que
l’on a toujours pour une matrice A inversible :

1 γ(A) ≥ 1
2 γ(A) = γ(A−1 )
3 γ(λA) = γ(A) pour λ 6= 0
max |λ|
λ∈Sp(A)
4 γ(A) ≥
min |λ|
λ∈Sp(A)

Exemple pour fixer les idées

Problème bien posé S. EL AREM ENSAM 86 / 179


Conditionnement Problème bien posé

Existence et unicité de la solution

La solution du système peut alors être calculée par la formule


de CRAMER. Cependant cette formule est d’une utilité
pratique limitée à cause du calcul des déterminants qui est
très coûteux. Pour cette raison, des méthodes numériques
alternatives aux formules de CRAMER ont été développées.
On distingue deux grandes familles de méthodes:
1 Les méthodes directes: la solution est donnée par une
formule et calculée en un nombre fini d’étapes. on
distingue les méthodes exactes où le résultat est la valeur
exacte de la solution et les méthodes approchées où c’est
une valeur approchée de la solution ;
2 Les méthodes itératives: la valeur exacte de la solution
est la limite x lim xn d’une suite définie par récurrence et
n→∞
on prend une valeur xn , avec n bien choisi, comme valeur
approchée de la solution.

Problème bien posé S. EL AREM ENSAM 87 / 179


Conditionnement Problème bien posé

Méthodes directes versus itératives

On distingue deux grandes familles de méthodes:


1 Les méthodes directes: la solution est donnée par une
formule et calculée en un nombre fini d’étapes. on
distingue les méthodes exactes où le résultat est la valeur
exacte de la solution et les méthodes approchées où c’est
une valeur approchée de la solution ;
2 Les méthodes itératives: la valeur exacte de la solution
est la limite x lim xn d’une suite définie par récurrence et
n→∞
on prend une valeur xn , avec n bien choisi, comme valeur
approchée de la solution.

Problème bien posé S. EL AREM ENSAM 88 / 179


Méthodes directes Élimination de Gauss

Méthodes directes

Élimination de Gauss:
Consiste à réduire la matrice du système à la forme
triangulaire ; la résolution est alors immédiate.

Élimination de Gauss S. EL AREM ENSAM 89 / 179


Méthodes directes Élimination de Gauss

Élimination de Gauss:

On considère le système d’équations linéaires :



4x1 − 2x2 + x3 = 11

−2x1 + 4x2 − 2x3 = −16 (3)

x1 − 2x2 + 4x3 = 17

La phase de réduction se décompose en 3 étapes:

Élimination de Gauss S. EL AREM ENSAM 90 / 179


Méthodes directes Élimination de Gauss

Élimination de Gauss:
On considère le système d’équations linéaires :

4x1 − 2x2 + x3 = 11
 (a)
−2x1 + 4x2 − 2x3 = −16 (b)

x1 − 2x2 + 4x3 = 17 (c)

La phase de réduction se décompose en 3 étapes:


Étape 1 et 2: Équation pivot = (a)

Eq.(b) ←→ Eq.(b) − λ1 Eq(a)


Eq.(c) ←→ Eq.(c) − λ2 Eq(a)
avec dans ce cas :
−2
λ1 = = −0.50
4
1
λ2 = = 0.25
4
Élimination de Gauss S. EL AREM ENSAM 91 / 179
Méthodes directes Élimination de Gauss

La phase de réduction se décompose en 3 étapes:

Étape 1 et 2:Équation pivot = (a)

Eq.(b) ←→ Eq.(b) − λ1 Eq(a)


Eq.(c) ←→ Eq.(c) − λ2 Eq(a)
avec dans ce cas :
−2
λ1 = = −0.50
4
1
λ2 = = 0.25
4


4x1 − 2x2 + x3 = 11
 (a)
3x2 − 1.5x3 = −10.50 (b) (4)

−1.5 x2 + 3.75 x3 = 14.25 (c)

Élimination de Gauss S. EL AREM ENSAM 92 / 179


Méthodes directes Élimination de Gauss


4x1 − 2x2 + x3 = 11
 (a)
3 x2 − 1.5x3 = −10.5 (b) (5)

−1.5 x2 + 3.75 x3 = 14.25 (c)

Étape 3: Équation pivot = (b)

Eq.(c) ←→ Eq.(c) − λ3 Eq(b)


avec dans ce cas :
−1.5
λ3 = = −0.50
3
Et le système 5 devient :

4x1 − 2x2 + x3 = 11
 (a)
3 x2 − 1.5x3 = −10.5 (b) (6)

3 x3 = 9 (c)

Élimination de Gauss S. EL AREM ENSAM 93 / 179


Méthodes directes Élimination de Gauss

La phase de réduction (ou d’éliminations) étant terminée.


Le système original a été transformé en un système trian-
gulaire équivalent plus facile à résoudre par substitutions.

Élimination de Gauss S. EL AREM ENSAM 94 / 179


Méthodes directes Élimination de Gauss

1 import numpy as np
def gaussElimin (a , b ) :
3 n = len ( b )
# Elimination Phase
5 for k in range (0 ,n -1) :
for i in range ( k +1 , n ) :
7 if a [i , k ] != 0.0:
lam = a [i , k ]/( a [k , k ])
9 # a [i , k +1: n ] = a [i , k +1: n ] - lam * a [k , k +1: n ]
a [i ,:] = a [i ,:] - lam * a [k ,:]
11 b [ i ] = b [ i ] - lam * b [ k ]
# Back substitution # remont é e
13 for k in range (n -1 , -1 , -1) :
b [ k ] = ( b [ k ] - np . dot ( a [k , k +1: n ] , b [ k +1: n ]) ) /( a [k , k ])
15 # print ( type ( b [ k ]) )
return b
17
if __name__ == ’ __main__ ’:
19 n =3
A =200* np . random . rand (n , n )
21 b =100.0* np . random . rand (n ,1)
x = np . linalg . solve (A , b ) # np . dot ( np . linalg . inv ( A ) ,b )
23 print ( ’ Numpy solve :\ n ’ ,x )
print ( ’ solution gauss :\ n ’ , gaussElimin (A , b ) )

Élimination de Gauss S. EL AREM ENSAM 95 / 179


Méthodes directes Élimination de Gauss

Elimination de Gauss: Stratégie de pivot

Afin de limiter la propagation des erreurs d’arrondi il faut


choisir le pivot le plus grand possible à chaque étape. Il existe
deux stratégies :
1 Pivot partiel : le pivot à l’étape k est l’élément de module
maximum sur toute la colonne à partir de la ligne k
c’est-à-dire parmi tous les éléments (Aik )k≤i≤n
2 Pivot total : le pivot à l’étape k est l’élément de module
maximum sur toute la matrice à partir de la ligne k et de
la colonne k c’est-à-dire parmi tous les éléments (Aij )k≤j≤n
k≤i≤n

La stratégie de pivot total est plus efficace que celle de pivot


partiel. . . mais elle nécessite beaucoup plus de calculs. En
effet, la stratégie par pivot total nécessite environ n3 tests, ce
qui augmente considérablement le coût de la méthode de
GAUSS alors que la stratégie par pivot partiel ne nécessite
qu’environ n2 tests : on se contente donc généralement de la
stratégie de pivot
Élimination partiel.
de Gauss S. EL AREM ENSAM 96 / 179
Méthodes directes Élimination de Gauss

Élimination de Gauss: Stratégie de pivot

Code python et vérification à faire en exercie

Élimination de Gauss S. EL AREM ENSAM 97 / 179


Méthodes directes Élimination de Gauss

Implémentation de la stratégie de pivot

Élimination de Gauss S. EL AREM ENSAM 98 / 179


Méthodes directes Décomposition LU

Méthodes directes

Décomposition LU
La méthode LU, dont le nom vient de Low-Up , s’appelle
aussi méthode LR pour Left-Right. Elle consiste à effectuer la
réduction de la matrice A des premiers membres à la forme
triangulaire par la méthode de GAUSS sans se préoccuper
des seconds membres, mais en conservant les coefficients
utilisés dans la réduction.

Le système à resoudre devient:


(
Ly = b
Ax = b ⇐⇒ LUx = b ⇐⇒
Ux = y
Décomposition LU S. EL AREM ENSAM 99 / 179
Méthodes directes Décomposition LU

Méthodes directes: LU

Décomposition LU S. EL AREM ENSAM 100 / 179


Méthodes directes Décomposition LU

Exercice 1

 
2 0 0
Soit A = 4 2 1
0 4 4
1 Donner la décomposition LU de A. Expliciter les matrices
L et U .
2 Résoudre en x 

0
Ax = b =  4 
12
en suivant la méthode LU .

Décomposition LU S. EL AREM ENSAM 101 / 179


Méthodes directes Méthode de CHOLESKY

Méthode de CHOLESKY

La méthode de CHOLESKY s’applique uniquement aux


matrices réelles symétriques, définies et positives ; dans
ce cas c’est la plus efficace. On rencontre souvent ce
type de matrices dans la discrétisation des problèmes
différentiels.

Définition:
Une matrice réelle A est symétrique, définie et positive si et
seulement:
1 A = At
2 ∀x ∈ Rn xt .A.x ≥ 0
3 xt .A.x = 0 ⇐⇒ x = 0

Méthode de CHOLESKY S. EL AREM ENSAM 102 / 179


Méthodes directes Méthode de CHOLESKY

Méthode de CHOLESKY

Définition:
Une matrice réelle A est symétrique, définie et positive si et
seulement:
1 A = At
2 ∀x ∈ Rn xt .A.x ≥ 0
3 xt .A.x = 0 ⇐⇒ x = 0

Théorème
Une matrice réelle A est symétrique, définie et positive si et
seulement s’il existe une matrice L triangulaire inférieure
inversible telle que
A = L.Lt

Méthode de CHOLESKY S. EL AREM ENSAM 103 / 179


Méthodes directes Méthode de CHOLESKY

Méthode de CHOLESKY

 Pj
 Aij = k=1 Lik Ljk

 Pj−1
= k=1 Lik Ljk + Lij Ljj
Ce qui donne:
 √


L11 = A11





 q
Ljj = Ajj − j−1 2
P
2≤j≤i≤n

k=1 Ljk




 1 Pj−1

 Lij = (Aij − k=1 Lik Ljk )
Ljj





Méthode de CHOLESKY S. EL AREM ENSAM 104 / 179


Méthodes directes Méthode de CHOLESKY

Méthode de CHOLESKY

Méthode de CHOLESKY S. EL AREM ENSAM 105 / 179


Méthodes itératives

Méthodes itératives: Jacobi et Gauss-Seidel

Nous avons vu que la résolution du système linéaire par


méthodes directes comme l’élimination de Gauss avec ou sans
pivot , LU , la décomposition LU ou LLt si A est symétrique
définie positive. Lorsque la matrice A est pleine, le nombre
d’opérations nécessaires à la mise en oeuvre de ces
algorithmes est de l’ordre de N 3 ce qui peut être énorme
lorsque N est grand.

S. EL AREM ENSAM 106 / 179


Méthodes itératives Méthode de Jacobi

Implémentation de la méthode de Jacobi

La méthode de Jacobi converge quelque soit x0 pour les


systèmes linéaires dont la matrice est à diagonale domi-
nante.

Méthode de Jacobi S. EL AREM ENSAM 107 / 179


Méthodes itératives Méthode de Gauss-Seidel

Implémentation de la méthode de Gauss-Seidel


La méthode de Gauss-Seidel est une méthode itérative dont l’idée est de construire une suite
de vecteurs x(k) qui converge vers le vecteur x, solution du système linéaire A x = b lorsque k
tend vers +∞. La démarche consiste à décomposer la matrice A sous la forme A = P − N , où
P et N sont des matrices à déterminer avec P non singulière. La matrice P est appelée
matrice de préconditionnement. x(0) étant donné, on écrit :

(k+1) (k)
Px =Nx +b

ce qui conduit à :

(k+1) −1 (k) −1 (k)


x =P (N x + b) = (D − E) (N x + b) (A)

avec :
A=D−E−N
D: Diagonale de A
−E La triangulaire inférieure avec des 0 sur la diagonale
−N La triangulaire supérieure avec des 0 sur la diagonale
Le travail de programmation de cette méthode est décomposé en 4 fonctions à écrire:
1 une fonction qui retourne D pour A donnée
2 une fonction qui retourne E pour A donnée
3 une fonction qui retourne N pour A donnée
4 une fonction qui retourne la solution recherchée x en exploitant la relation (A)

Méthode de Gauss-Seidel S. EL AREM ENSAM 108 / 179


Méthodes itératives Méthode de Gauss-Seidel

Implémentation de la méthode de Jacobi

La méthode de Jacobi converge quelque soit x0 pour les


systèmes linéaires dont la matrice est à diagonale domi-
nante.

Méthode de Gauss-Seidel S. EL AREM ENSAM 109 / 179


Méthodes itératives Méthode de Gauss-Seidel

Implémentation de la méthode de Jacobi

Méthode de Gauss-Seidel S. EL AREM ENSAM 110 / 179


Méthodes itératives Méthode de Gauss-Seidel

Implémentation de la méthode de Gauss Seidel

Méthode de Gauss-Seidel S. EL AREM ENSAM 111 / 179


Méthodes itératives Exercice

import numpy as np
2 import scipy as sci
from scipy . optimize import newton_krylov , root , fsolve
4 n = 10
A =200* np . random . rand (n , n )
6 b =100.0* np . random . rand ( n )
print ( ’\ n R é solution par np . linalg . solve \ n ’)
8 sol1 = np . linalg . solve (A , b )
print ( " solution solve : A x = b \ n " , sol1 )
10
def Func0 ( x ) :
12 y = np . dot (A , x ) -b
return y
14
x0 = np . random . rand ( n )
16 sol2 = fsolve ( Func0 , x0 )
print ( " \ n solution F ( X ) =0 avec fsolve \ n " , sol2 )
18 sol3 = root ( Func0 , x0 ) . x
print ( " \ n solution F ( X ) =0 avec root \ n " , sol3 )
20 x = newton_krylov ( Func0 , x0 )
print ( " \ n Norme de Erreur \ n " )
22 print ( ’ || x - x0 || = ’ , np . linalg . norm ( sol1 - sol2 ) )
print ( " \ n Erreur variable par variable \ n " )
24 print ( ’ || x - x0 || = ’ , np . allclose ( sol1 , sol2 ) )

Exercice S. EL AREM ENSAM 112 / 179


Matrices creuses

Matrices creuses (Sparse)

Equation sets arising from physical problems are often very


large, consuming a lot of com- putational resources. It usually
possible to reduce the storage requirements and the run time
by exploiting special properties of the coefficient matrix, such
as sparseness (most elements of a sparse matrix are zero).
Hence there are many algorithms dedi- cated to the solution
of large sets of equations, each one being tailored to a
particular form of the coefficient matrix (symmetric, banded,
sparse, and so on). A well-known collection of these routines
is LAPACK—Linear Algebra PACKage, originally written in
Fortran77. 1 We cannot possibly discuss all the special
algorithms in the limited space avail- able. The best we can
do is to present the basic methods of solution, supplemented
by a few useful algorithms for banded coefficient matrices.

S. EL AREM ENSAM 113 / 179


Matrices creuses Exemple: Matrice tridiagonale

Tridiagonal Matrix

Exemple: Matrice tridiagonale S. EL AREM ENSAM 114 / 179


Matrices creuses Exemple: Matrice tridiagonale

Example: A tridiagonal Matrix

Exemple: Matrice tridiagonale S. EL AREM ENSAM 115 / 179


Matrices creuses Exemple: Matrice tridiagonale

Matrices creuses, tridiagonales

Exemple: Matrice tridiagonale S. EL AREM ENSAM 116 / 179


Matrices creuses Exemple: Matrice tridiagonale

Matrices tridiagonales: Implémentation

Exemple: Matrice tridiagonale S. EL AREM ENSAM 117 / 179


Matrices creuses Matrices pentadiagonales

Exercice: Matrices pentadiagonales

Appliquer la démarche qu’on vient de voir avec les matrices


tridiagonales pour en déduire un algorithme permettant de
traiter les matrices pentadiagonales:Aij = 0 si |i − j| > 2

Matrices pentadiagonales S. EL AREM ENSAM 118 / 179


Part V

Intégration Numérique

S. EL AREM ENSAM 119 / 179


Intégration Numérique: Principes

Intégration numérique: Principes

S. EL AREM ENSAM 120 / 179


Intégration Numérique: Principes

Intégration numérique: Principes

Soit f une fonction réelle intégrable sur l’intervalle [a, b]. Le


Rb
calcul explicite de l’intégrale définie par : I(f ) = a f (t) dt peut
être difficile, voire impossible. On appelle formule de
quadrature ou formule d’intégration numérique toute formule
permettant de calculer une approximation de I(f ).

S. EL AREM ENSAM 121 / 179


Méthode des rectangles

Intégration numérique: Méthode des rectangles

1 def rectangles (f ,a ,b , n ) :
’’’ Integration numerique
3 par methode des rectangles O ( h ) ’’’
h =( b - a ) / n
5 integrale =0
# for i in range (1 , n +1) :# droite
7 for i in range (0 , n ) : # gauche
integrale = integrale + f ( a + i * h )
9 return h * integrale

11 if __name__ == ’ __main__ ’:
f = lambda x : x **3
13 valTheorique = 0.25
print ( ’ valeur th é orique de I \ n = ’ , valTheorique )
15 for i in range (1 ,5) :
h = 1/10** i
17 n = int (1/ h )
print ( ’ Erreur = ’ , ’h = ’ ,h , rectangles (f ,0 ,1 , n ) - valTheorique )

S. EL AREM ENSAM 122 / 179


Méthode du point milieu

Intégration numérique: Méthode du point milieu

1 def point_milieu (f ,a ,b , n ) :
’’’ Integration numerique
3 par methode du point milieu : O ( h ^2) ’’’
h =( b - a ) / n
5 integrale =0
for i in range (0 , n ) :
7 integrale = integrale + f ( a +0.5*( i * h +( i +1) * h ) )
return h * integrale
9

11
if __name__ == ’ __main__ ’:
13 f = lambda x : x **2
print ( ’ valeur th é orique de I \ n = ’ ,1/3.0)
15 for i in range (1 ,5) :
h = 1/10** i
17 n = int (1/ h )
print ( ’ Erreur pour ’ , ’h = ’ ,h , point_milieu (f ,0 ,1 , n ) -1.0/3.0)

S. EL AREM ENSAM 123 / 179


Méthode des trapèzes

Intégration numérique: Méthode des trapèzes

sur [xi , xi+1 ] on a :

h
Ii = [f (xi ) + f (xi+1 )]
2
Ainsi :
n−1
X h
In = Ii = [f (x0 ) + 2f (x1 ) + 2f (x2 ) · · · + 2f (xn−1 ) + f (xn )]
2
i=0

S. EL AREM ENSAM 124 / 179


Méthode des trapèzes

Intégration numérique: Méthode des trapèzes


def trapezes (f ,a ,b , n ) :
2 ’’’ Integration numerique
par methode des trapezes ’’’
4 h =( b - a ) / n
integrale =0.5*( f ( a ) + f ( b ) )
6 for i in range (1 , n ) :
integrale = integrale + f ( a + i * h )
8 return h * integrale

10 if __name__ == ’ __main__ ’:
f = lambda x : x **2
12 print ( ’ valeur th é orique de I \ n = ’ ,1/3.0)
for i in range (1 ,5) :
14 h = 1/10** i
n = int (1/ h )
16 print ( ’I = ’ , trapezes (f ,0 ,1 , n ) )
print ( ’ Erreur = ’ , ’h = ’ ,h , trapezes (f ,0 ,1 , n ) -1.0/3.0)

sur [xi , xi+1 ] on a :


h
Ii = [f (xi ) + f (xi+1 )]
2
Ainsi :
S. EL AREM ENSAM 125 / 179
Méthode de Simpson

Intégration numérique: Méthode de Simpson


Dans la formule de SIMPSON (Thomas Simpson
(1710 − 1761), mathématicien anglais) le nombre d’intervalles
est pair: n = 2 m. On a ainsi: h = b−a 2m La méthode de
SIMPSON consiste à remplacer la fonction à intégrer par une
fonction d’interpolation continue définie par morceaux : sur
chaque morceau défini par trois points consécutifs, c’est un
polynôme de degré 2. on approche l’intégrale de la fonction f
sur l’intervalle [a, b] par:
Z b
b−a a+b
f (t) ≈ (f (a) + 4 f ( ) + f (b))
a 6 2
En découpant [a, b] en n = 2m intervalles on obtient:
 
Z b m−1
h X X
f (t) ≈ f (x0 ) + 2 f (x2j ) + 4 mf (x2j−1 ) + f (x2m )
a 6
j=1 j=1

S. EL AREM ENSAM 126 / 179


Méthode de Simpson

Intégration numérique: Méthode de Simpson

def Simpson (f ,a ,b , n ) :
2 ’’’ Integration Num é rique Par
la m é thode de Simpson O ( h ^4) ’’’
4 h =( b - a ) / n
integrale =( f ( a ) + f ( b ) ) /6
6 for i in range (1 , n ) :
integrale = integrale + f ( a + i * h ) /3
8 for i in range ( n ) :
integrale = integrale + f ( a +(2* i +1) * h /2.0) *2/3
10 return h * integrale

12 if __name__ == ’ __main__ ’:
f = lambda x : x **2
14 print ( ’ valeur th é orique de I \ n = ’ ,1/3.0)
for i in range (1 ,5) :
16 h = 1/10** i
n = int (1/ h )
18 print ( ’I = ’ , Simpson (f ,0 ,1 , n ) )
print ( ’ Erreur = ’ , ’h = ’ ,h , Simpson (f ,0 ,1 , n ) -1.0/3.0)

S. EL AREM ENSAM 127 / 179


Exercice: méthode de Monte-Carlo

Intégration numérique: Monte-Carlo 1


Les méthodes de simulation Monte-Carlo permettent de
calculer une valeur numérique en utilisant des procédés
aléatoires. Elles sont particulièrement utilisées pour le calcul
d’intégrales en dimension 2 et 3. Par exemple, le calcul
approché d’une intégrale d’une fonction à une variable par
cette méthode repose sur l’approximation:

b n−1
b−aX
Z
f (t)dt ≈ f (xi )
a n
i=0
où i → xi désigne une variable aléatoire suivant la loi uniforme
sur [a, b]. On utilisera la fonction uniform(a,b) du module
random pour tirer aléatoirement un flottant entre a et b.
1 Écrire une fonction renvoyant une approximation du
nombre: Z 1p
π=4 1 − t2 dt
0
en utilisant la méthode Monte-Carlo
S. EL AREM ENSAM 128 / 179
Exercice: méthode de Monte-Carlo

1 Écrire une fonction renvoyant une approximation du nombre:


Z 1p
π=4 1 − t2 dt
0

en utilisant la méthode Monte-Carlo


2 Écrire une fonction permettant un calcul formel de π utilisant
la fonction integrate du module sympy.
3 En utilisant les formules de Gauss−Legendre, donner une
approximation de π avec 3 points de Gauss.
4 Calcul de surface: On souhaite maintenant calculer la surface
du disque D de rayon 1 en exploitant l’approximation:
b d n−1
(b − a)(d − c) X
Z Z
f (x, y)dxdy ≈ f (xi , yi )
a c n i=0

Souvent, pour un échantillonnage (choix du couple (xi , yi )), on


considère le domaine rectangulaire Ω le plus petit contenant le
disque D. Il suffit par la suite de prendre f (xi , yi ) = 0 en dehors
de D. Dans notre exemple, on prendra Ω = [−1, 1]X[−1, 1].
5 Écrire une fonction Python f (x, y) qui retourne 1 si le point de
coordonnées (x, y) est dans le disque D et 0 sinon.
6 Écrire, en Python, une fonction integration2d(f ) qui retourne
l’aire du disque D en utilisant la méthode de Monte-Carlo.
S. EL AREM ENSAM 129 / 179
Exercice: méthode de Monte-Carlo

Intégration numérique: Monte-Carlo 1

1 import numpy , math


import random
3 import sympy
a = 0
5 b= 1
f0 = lambda x :4* sympy . sqrt (1 - x **2)
7
# Calcul Formel avec sympy ( Symbolic Python )
9
x = sympy . symbols ( ’x ’)
11
Ithe = sympy . integrate ( f0 ( x ) , (x , a , b ) )
13
print ( ’ Integration avec sympy :=\ n ’ , Ithe )
15
def montecarlo (f , a , b , n =1000) :
17 somme = 0
for i in range ( n ) :
19 x = random . uniform (a , b )
somme += f ( x )
21 return somme * (b - a ) / n

23 print ( ’ Integration avec montecarlo :=\ n ’ , montecarlo ( f0 ,a ,b ,20000) )

S. EL AREM ENSAM 130 / 179


Quadrature de Gauss-Légendre

Quadrature de Gauss-Legendre 1

Se référer au polycopié pour les notions théoriques vues


en cours

Exemple 1
En utilisant les formules de Gauss−Legendre calculer:
Z 1
3 x4 dx
0

en considérant un, deux et enfin trois points de Gauss.


Conclure quant à la précision de la méthode.

S. EL AREM ENSAM 131 / 179


Quadrature de Gauss-Légendre

Quadrature de Gauss-Legendre 2

Se référer au polycopié pour les notions théoriques vues


en cours

Exemple 2
Soit P (x) un polynôme de degré n > 0 et x un réel.
1 Combien de points
R 1 de Gauss sont nécessaires pour un
calcul exacte de −1 P (x)dx
2 En utilisant les formules de Gauss−Legendre calculer:
Z 1
(3 x3 − 2)dx
0

en considérant un, puis deux points de Gauss. Conclure


quand à la précision de la méthode.

S. EL AREM ENSAM 132 / 179


Quadrature de Gauss-Légendre

Calculs des noeuds et poids


from scipy . optimize import *
2 import numpy as np
# 1 point de gauss - legendre
4 # { x0 , w0 } à d é terminer
# k points de Gauss_legen dre
6 def points1 ( x ) : # x ={ x0 , w0 } = { x [0] , x [1]} # polynomes = {1 , x }
f = np . zeros ( len ( x ) )
8 f [0] = x [1]*1 -2.0 # integration de f ( x ) = 1 sur [ -1 ,1]
f [1] = x [1]* x [0] # integration de f ( x ) = x sur [ -1 ,1]
10 return f
# 2 points de gauss - legendre
12 # { x0 , w0 , x1 , w1 } à d é terminer
# k points de Gauss_legen dre
14 def points2 ( x ) : # x ={ x0 , w0 , x1 , w1 } = { x [0] , x [1] , x [2] , x [3]} #
polynomes = {1 , x , x ^2 , x ^3 , ..... , x ^(2 k -1) }
f = np . zeros ( len ( x ) )
16 f [0] = x [1]*1+ x [3]*1 -2.0 # integration de f ( x ) = 1 sur
[ -1 ,1]
f [1] = x [1]* x [0]+ x [3]* x [2] # integration de f ( x ) = x sur
[ -1 ,1]
18 f [2] = x [1]* x [0]**2+ x [3]* x [2]**2 -2/3.0 # integration de f ( x )
= x **2 sur [ -1 ,1]
f [3] = x [1]* x [0]**3+ x [3]* x [2]**3 # integration de f ( x ) = x
**3 sur [ -1 ,1]
20 return f
print ( ’1 point de Gauss - Legendre ’)
22 sol = fsolve ( points1 ,[0.0 ,1.0])
print ( ’ sol = ’ , sol )
24 print ( ’2 points de Gauss - Legendre ’)
sol = fsolve ( points2 ,[0.0 ,1.0 ,1.0 ,0.0])
26 print ( ’ sol = ’ , sol )

28 ’’’
1 point de Gauss - Legendre
30 sol = [0. 2.]
2 points de Gauss - Legendre
32 sol = [ -0.57735027 1. 0.57735027 1. ]
’’’

S. EL AREM ENSAM 133 / 179


Quadrature de Gauss-Légendre

Intégration numérique: Synthèse


from math import cos , sin , pi , exp
2 a = 1
b= 2
4 # Calcul Formel avec sympy ( Symbolic Python )
from sympy import *
6 f = lambda x : 1 + exp ( x )
x = symbols ( ’x ’)
8 Ithe = integrate ( f ( x ) , (x , a , b ) )
print ( ’ Theory := ’ , Ithe )
10 # Calcul num é rique Gauss - Legendre
g = lambda x :( b - a ) /2*( f (( b - a ) /2.0* x +( a + b ) /2.0) )
12 # 1 point de gauss
I1 = 2* g (0)
14 print ( ’ I1 = ’ , I1 )
# 2 points de gauss
16 I2 = g ( -(3**0.5/3) ) + g ((3**0.5/3) )
print ( ’ I2 = ’ , I2 )
18 # 3 points de gauss
I3 = 5.0/9.0*( g ( -(3.0/5.0) **0.5) + g ((3.0/5.0) **0.5) ) +8.0/9.0* g (0)
20 print ( ’ I3 = ’ , I3 )
# 4 points de gauss
22 I4 = (18. 0+30.0**0.5) /36.0*( g ( -0.339981) + g (0.339981) )
+(18 -30.0**0.5) /36.0*( g ( -0.861136) + g (0.861136) )
print ( ’ I4 = ’ , I4 )

S. EL AREM ENSAM 134 / 179


Part VI

Equations différentielles Ordinaires:


problème de Cauchy

S. EL AREM ENSAM 135 / 179


Problème avec condition initiale Introduction

La résolution numérique des équations différentielles est


probablement le domaine de l’analyse numérique où les
applications sont les plus nombreuses. Que ce soit en
mécanique des fluides, en transfert de chaleur ou en analyse
de structures, on aboutit souvent à la résolution d’équations
différentielles, de systèmes d’équations différentielles ou plus
généralement d’équations aux dérivées partielles.

Introduction S. EL AREM ENSAM 136 / 179


Problème avec condition initiale Introduction

Parmi leurs avantages, les méthodes numériques permettent


d’étudier des problèmes complexes pour lesquels on ne connaı̂t pas
de solution analytique, mais qui sont d’un grand intérêt pratique.

Introduction S. EL AREM ENSAM 137 / 179


Problème avec condition initiale Introduction

Nous considérons principalement les équations différentielles


avec conditions initiales:
 0
y (t) = f (y(t), t)
(7)
y(t0 ) = y0

La variable indépendante t représente très souvent (mais pas


toujours) le temps.
on cherche y en fonction de t. Il s’agit d’obtenir y(t) pour
t ≥ t0 , si l’on cherche une solution analytique, ou une
approximation de y(t) si on utilise une méthode
numérique.
La fonction f est pour le moment une fonction
quelconque de deux variables que nous supposons
suffisamment différentiable
La condition y(t0 ) = y0 est la condition initiale et en
quelque sorte l’état de la solution au moment où l’on
commence à s’y intéresser.
Introduction S. EL AREM ENSAM 138 / 179
Problème avec condition initiale Introduction

y 0 (t) = f (y(t), t)


y(t0 ) = y0

Définition
L’équation différentielle 7 est dite d’ordre 1, car seule la
dérivée d’ordre 1 de y(t) est présente. Si des dérivées de y(t)
d’ordre n apparaissaient dans l’équation différentielle 7, on
aurait une équation d’ordre n.

Introduction S. EL AREM ENSAM 139 / 179


Problème avec condition initiale Introduction

Équation différentielle ordinaire (wikipédia)

En mathématiques, une équation différentielle ordinaire (


EDO) est une équation différentielle dont la ou les fonctions
inconnues ne dépendent que d’une seule variable; elle se
présente sous la forme d’une relation entre ces fonctions
inconnues et leurs dérivées successives.
Le terme ordinaire est utilisé par opposition au terme
équation différentielle partielle (plus communément équation
aux dérivées partielles, ou EDP) où la ou les fonctions
inconnues peuvent dépendre de plusieurs variables.
L’ordre d’une équation différentielle correspond au degré
maximal de dérivation auquel l’une des fonctions inconnues a
été soumise. Il existe une forme de référence à laquelle on
essaie de ramener les équations différentielles ordinaire par
divers procédés mathématiques :

Introduction S. EL AREM ENSAM 140 / 179


Problème avec condition initiale Introduction

L’ordre d’une équation différentielle correspond au degré


maximal de dérivation auquel l’une des fonctions inconnues a
été soumise. Il existe une forme de référence à laquelle on
essaie de ramener les équations différentielles ordinaire par
divers procédés mathématiques :

X 0 (t) = F (X(t), t)
équation d’ordre 1 où X est la fonction inconnue, et t sa
variable.

Introduction S. EL AREM ENSAM 141 / 179


Problème avec condition initiale Introduction

Problème de Cauchy
Soit f : (x, t) ∈ RxR+ −→ f (x, t) ∈ R une fonction donnée à deux
variables x et t. Dans les application x est souvent une
variable physique et t une variable temporelle. Nous
supposons que f est assez régulière, par exemple continue, et
nous voulons résoudre le problème suivant.

Etant donnée une valeur u0 ∈ R (u0 est dite valeur


initiale), trouver une fonction une fois continûement
dérivable:
u : t ∈ R+ −→ u(t) ∈ R
qui vérifie:

d u(t)
= u̇(t) = f (u(t), t) si t > 0
dt
u(0) = u0

Introduction S. EL AREM ENSAM 142 / 179


Problème avec condition initiale Introduction

Exemple 1

f (x, t) = 3 x − 3 t et u0 = α
Le problème de Cauchy devient :

u̇(t) = 3u(t) − 3 t si t > 0

u(0) = α
Sa solution est donnée par :
1 1
u(t) = (α − )e3t + t +
3 3
une fonction donnée à deux variables x et t. Dans les
application x est souvent une variable physique et t une
variable temporelle. Nous supposons que f est assez
régulière, par exemple continue, et nous voulons résoudre le
problème suivant.
Introduction S. EL AREM ENSAM 143 / 179
Problème avec condition initiale Introduction

Exemple 2

3
f (x, t) = x et u0 = 0
devient : p
3
u̇(t) = u(t) si t > 0
u(0) = 0
On vérifie
r que les fonctions u définies par u(t) = 0 et
8 t3
u(t) ± pour tout t > 0, sont toutes trois des solutions du
27
problème. Cet exemple nous montre que le problème de
Cauchy n’a pas nécessairement une solution unique.

Introduction S. EL AREM ENSAM 144 / 179


Problème avec condition initiale Introduction

Exemple 3

f (x, t) = x3 et u0 = 1
devient :
u̇(t) = u3 (t) si t > 0
u(0) = 1
1
On vérifie que la solution u est donnée pour t ∈ [0, [ par :
2
1
u(t) = √
1 − 2t
Cet exemple nous montre que le problème n’a pas toujours
une solution sur [0, ∞[ puisque ici la solution explose lorsque
1
t −→
2

Introduction S. EL AREM ENSAM 145 / 179


Problème avec condition initiale Introduction

Problème de Cauchy

Les trois exemples ci-dessus montrent que l’étude


mathématique de l’existence et de l’unicité de solutions
du problème de Cauchy peut être une affaire délicate.

Dans ce chapitre, nous nous contentons de donner, sans


démonstration, un résultat d’existence et d’unicité au sens où
on peut intégrer le problème de Cauchy jusqu’à t = ∞.

Introduction S. EL AREM ENSAM 146 / 179


Problème avec condition initiale Introduction

Théorème de Cauchy-Lipschitz
La fonction f : (X, t) ∈ Rm x[a, b] −→ f (X, t) ∈ R est dite
lipschitzienne en Y uniformément en t s’il existe une
constante L > 0 telle que:

∀t ∈ [a, b], ∀Y1 , Y2 ∈ Rm

||f (Y1 , t) − f (Y2 , t)|| ≤ L||Y1 − Y2 ||

Théorème de Cauchy-Lipschitz: On suppose que la fonc-


tion f est continue sur Rm xR+ et qu’il existe un réel L tel
que:

∀ Y1 , Y2 ∈ Rm , ||f (Y1 , t) − f (Y2 , t)|| ≤ L|Y1 − Y2 |

alors le problème de Cauchy admet une solution unique.

Introduction S. EL AREM ENSAM 147 / 179


Problème avec condition initiale Introduction

Problème de Cauchy

Soit f : (X, t) ∈ Rp xR+ → f (X(t), t) ∈ R


une fonction donnée à deux variables X et t. Nous supposons
que f est assez régulière, par exemple continue, et nous
voulons résoudre le problème suivant.

Etant donnée une valeur X0 ∈ Rp (X0 est dite valeur


initiale), trouver une fonction une fois continûement
dérivable:
X : t ∈ R+ −→ X(t) ∈ Rp
qui vérifie:

d X(t)
= Ẋ(t) = f (X(t), t) si t > t0
dt
X(t = t0 ) = X0

Introduction S. EL AREM ENSAM 148 / 179


Problème avec condition initiale Introduction

Problème de Cauchy

Propriété: Toute équation différentielle d’ordre p se ramène à


un système différentiel d’ordre 1

Théorème de Cauchy-Lipschitz: Si f est continue et lo-


calement lipschitzienne par rapport à X alors le problème
de Cauchy admet une unique solution

Introduction S. EL AREM ENSAM 149 / 179


Résolution numérique Méthodes de Runge Kutta: introduction

Techniques de Runge-Kutta

Les techniques de Runge-Kutta sont des schémas


numériques à un pas qui permettent de résoudre les
équations différentielles ordinaires. Elles font parties des
méthodes les plus populaires de part leur facilité de mise
en œuvre et leur précision. C’est Carle Runge et Mar-
tin Kutta qui, au début du XXe siècle, ont inventé ces
méthodes. Nous décrivons ici deux algorithmes assez
utilisés : celles de Runge-Kutta d’ordre 2 et 4.

Méthodes de Runge Kutta: introduction S. EL AREM ENSAM 150 / 179


Résolution numérique Méthodes de Runge Kutta: introduction

Techniques de Runge-Kutta

Dans de nombreux cas, les systèmes d’équations différentielles


que l’on rencontre en science peuvent se mettre sous la forme
d’une équation différentielle ordinaire du premier ordre du
type :

 dy(t)
= f (t, y(t))
dt (8)
 y(0) = y0

où y(t) est la fonction que l’on recherche, y0 sa valeur initiale


et f une fonction connue suffisamment régulière pour que
l’existence et l’unicité de la solution ne pose pas de problème.
Notez que y(t) peut être un scalaire ou un vecteur.

Méthodes de Runge Kutta: introduction S. EL AREM ENSAM 151 / 179


Résolution numérique Méthode d’Euler

Retour sur la méthode d’Euler

La méthode d’Euler explicite est de loin la méthode la plus


simple de résolution numérique d’équations différentielles
ordinaires. Elle possède une belle interprétation géométrique
et son emploi est facile. Toutefois, elle est relativement peu
utilisée en raison de sa faible précision. On la qualifie
d’explicite car car elle ne nécessite pas de résolution
d’équation non linéaire contrairement à la méthode d’Euler
dite implicite que nous verrons plus loin.

Méthode d’Euler S. EL AREM ENSAM 152 / 179


Résolution numérique Méthode d’Euler

Retour sur la méthode d’Euler

À l’instar de la méthode d’Euler, celles de Runge-Kutta sont


des schémas numériques à un pas basés sur la discrétisation
de la variable t. On note h ce pas et yn la valeur approchée de
y(tn ) pour les différents instants tn = n h.
En intégrant l’équation différentielle entre tn et tn+1 on a la
relation :
Z tn+1
y(tn+1 ) − y(tn ) = f (t, y(t)) dt (9)
tn

L’idée consiste à approcher cette intégrale en exploitant les


méthodes d’intégration numériques vues dans les chapitres
précédents.

Méthode d’Euler S. EL AREM ENSAM 153 / 179


Résolution numérique Méthode d’Euler

Euler Explicite
Revenons sur la méthode d’Euler. L’intégrale 9 peut être
approchée par la méthode du rectangle à gauche:
Z tn+1
y(tn+1 ) − y(tn ) = f (t, y(t)) dt ≈ h × f (tn , y(tn ))
tn

D’où le schéma itératif suivant :



yn+1 = yn + h f (tn , yn )
(10)
y(0) = y0

Il s’agit de la fameuse méthode d’Euler explicite.


Graphiquement, on voit immédiatement que cette méthode
sous-estime(sur-estime) l’aire quand la fonction f
croı̂t(décroı̂t) au cours du temps. L’erreur produite
correspond à l’aire (Erreur sur la figure) quasi triangulaire et
de dimension h × ph où p est la pente de f à l’instant tn .
L’erreur vaut donc à peu près
Méthode d’Euler S. EL AREM ENSAM 154 / 179
Résolution numérique Méthode d’Euler

Euler Explicite: Erreur

L’erreur produite correspond à l’aire (Erreur sur la figure)


quasi triangulaire et de dimension h × ph où p est la pente de
f à l’instant tn . L’erreur vaut donc à peu près:
1
eEuler = p h2 (11)
2
Après N itérations, on commet une erreur globale de l’ordre
1 1
de N p h2 = T p h où T = N h est la durée totale. Aussi, pour
2 2
une durée donnée, l’erreur globale augmente linéairement
avec le pas h : on dit que la méthode d’Euler est d’ordre un.

Méthode d’Euler S. EL AREM ENSAM 155 / 179


Résolution numérique Méthode d’Euler

Euler Explicite

Méthode d’Euler S. EL AREM ENSAM 156 / 179


Résolution numérique Euler Implicite

Méthode d’Euler implicite


L’intégrale 9 peut être approchée par la méthode du
rectangle à droite:
Z tn+1
y(tn+1 ) − y(tn ) = f (t, y(t)) dt ≈ h × f (tn+1 , y(tn+1 ))
tn
D’où le schéma itératif suivant :

yn+1 = yn + h f (tn+1 , y(tn+1 ))
(12)
y(0) = y0
Il s’agit de la méthode d’Euler implicite.
Notez que dans ce cas, yn+1 est présent dans le terme de
gauche et celui de droite. Contrairement à la méthode
d’Euler explicite, la grandeur recherchée yn+1 est reliée à une
fonction qui dépend de cette même grandeur. Autrement dit,
yn+1 est défini implicitement d’où le nom de la méthode. Il
faut donc résoudre l’équation implicite à chaque étape (
algorithme de Newton-Raphson,. . . ).
Euler Implicite S. EL AREM ENSAM 157 / 179
Résolution numérique Euler Implicite

Euler implicite: Erreur

Cette méthode, comme on le voit graphiquement, pro-


duit une erreur opposée à celle de la méthode d’Euler
explicite ; elle est donc aussi d’ordre un. De surcroı̂t, elle
apporte une complication dans la résolution de l’équation
(8). Cependant, cet inconvénient est compensé par le
fait, qu’en général, les méthodes implicites sont plus sta-
bles que les méthodes explicites.

Euler Implicite S. EL AREM ENSAM 158 / 179


Résolution numérique Euler Implicite

Euler implicite

Euler Implicite S. EL AREM ENSAM 159 / 179


Résolution numérique Runge-Kutta d’ordre 2

Runge-Kutta d’ordre 2: méthode des trapèzes

Runge-Kutta d’ordre 2 S. EL AREM ENSAM 160 / 179


Résolution numérique Runge-Kutta d’ordre 2

Runge-Kutta d’ordre 2

On voit immédiatement que l’on peut améliorer l’estimation


de l’intégrale en utilisant la méthode des trapèzes vue en
intégration numérique.
La méthode du trapèze consiste en l’approximation suivante:
Z tn+1
h
y(tn+1 ) − y(tn ) = f (t, y(t)) dt ≈ {f (tn , y(tn ) + f (tn+1 , y(tn+1 )}
tn 2

Ici, l’intégrale dépend des valeurs de yn et yn+1 ce qui, si on en


restait là, donnerait lieu à une méthode implicite. Pour éviter
ces complications, on utilise la méthode d’Euler (explicite)
afin d’estimer la valeur yn+1 qui intervient dans f (tn+1 , y(tn+1 )

Runge-Kutta d’ordre 2 S. EL AREM ENSAM 161 / 179


Résolution numérique Runge-Kutta d’ordre 2

Runge-Kutta d’ordre 2

On obtient le schéma itératif suivant :


 y0 = y(0)


 k1 = f (tn , yn )
k2 = f (tn + h, yn + h k1 ) (13)
h



 y
n+1 = (k1 + k2 )
2
Cette méthode présente l’avantage d’être précise et assez
simple à programmer. L’erreur globale, pour une durée T
fixée, se comporte comme h2 . Il s’agit donc bien d’une
méthode d’ordre deux comme son nom l’indique.

Runge-Kutta d’ordre 2 S. EL AREM ENSAM 162 / 179


Résolution numérique Runge-Kutta d’ordre 2

Runge-Kutta d’ordre 2: Algorithme

[A] Initialisation de h, de la durée T .


[B] Initialisation des conditions initiales: t = 0 et
y0 = y(0)
[C] Définition de la fonction F (t, y(t))
[D] Tant que t ≤ T faire:
(i) Calcul de k1 = F (t, yn )
(ii) Calcul de k2 = F (t + h, yn + h ∗ k1 )
h
(iii) yn+1 = yn + (k1 + k2 )
2
(iv) t = t + h

Runge-Kutta d’ordre 2 S. EL AREM ENSAM 163 / 179


Résolution numérique Runge-Kutta d’ordre 4

Runge-Kutta 4
La méthode de Runge−Kutta d’ordre 4 est une étape
supplémentaire dans le raffinement du calcul de l’intégrale.
Au lieu d’utiliser la méthode des trapèzes, on utilise la
méthode de Simpson. Celle-ci consiste à remplacer la fonction
intégrée par une parabole passant par les points extrêmes et
le point milieu. On a:

Rt
y(tn+1 ) − y(tn ) = tnn+1 f (t, y(t)) dt
= h6 {f (tn , yn ) + 4 f (tn+1/2 , yn+1/2 ) + f (tn+1 , yn+1 )}

Ici, une difficulté apparaı̂t car l’équation présente deux


inconnues: yn+1/2 et yn+1 . Pour rendre le schéma explicite, il
faut estimer 4 f (tn+1/2 , yn+1/2 ) et f (tn+1 , yn+1 ) à partir de yn , tn
et h.

Runge-Kutta d’ordre 4 S. EL AREM ENSAM 164 / 179


Résolution numérique Runge-Kutta d’ordre 4

Commençons par le terme 4 f (tn+1/2 , yn+1/2 ) que l’on


décompose en deux termes identiques:
2 f (tn+1/2 , yn+1/2 ) + 2 f (tn+1/2 , yn+1/2 ) dans le premier, on
remplace yn+1/2 par sa valeur déduite de la méthode d’Euler
explicite; à savoir

a h
yn+1/2 = yn + f (tn , yn )
2
Dans le deuxième terme, on remplace yn+1/2 par sa valeur
déduite de la méthode d’Euler implicite:
b
yn+1/2 = yn + h2 f (tn+1/2 , yn+1/2 ) que l’on va approcher par:

b h
yn+1/2 = yn + f (t , ya )
2 n+1/2 n+1/2
Les méthodes d’Euler implicite et explicite produisant des
erreurs quasi opposées, on a ainsi l’espoir de minimiser
l’erreur sur le calcul de

4 f (tn+1/2 , yn+1/2 )

Runge-Kutta d’ordre 4 S. EL AREM ENSAM 165 / 179


Résolution numérique Runge-Kutta d’ordre 4

Runge-Kutta 4: Algorithme

[A] Initialisation de h, de la durée T .


[B] Initialisation des conditions initiales: t = 0 et Y0 = Y (0)
[C] Définition de la fonction f (t, y(t))
[D] Tant que t ≤ T faire:
(i) Calcul de k1
= f (tn , yn )
(ii) Calcul = f (t + h2 , yn + h2 ∗ k1 )
de k2
(iii) Calcul = f (t + h2 , yn + h2 ∗ k2 )
de k3
(iv) Calcul = f (t + h, Yn + h ∗ k3 )
de k4
h
(v) yn+1 = yn + (k1 + 2 k2 + 2 k3 + k4 )
6
(vi) t = t + h
L’erreur globale est O(h4 ). Il s’agit donc d’une méthode d’ordre
quatre.

Runge-Kutta d’ordre 4 S. EL AREM ENSAM 166 / 179


Résolution numérique Runge-Kutta d’ordre 4

x00 (t) + x(t) = 0,x(t = 0) et x0 (t = 0)données

Runge-Kutta d’ordre 4 S. EL AREM ENSAM 167 / 179


Résolution numérique Runge-Kutta d’ordre 4

Objectifs de l’exercice

Il est proposé dans cette séance de résoudre le problème


non linéaire de Van Der Pol en mettant en œuvre trois
schémas numériques différents. Les résultats obtenus
grâce à ces schémas seront comparés à la solution
numérique de référence obtenue dans un premier temps.

Runge-Kutta d’ordre 4 S. EL AREM ENSAM 168 / 179


Exemples de problèmes VDP

Oscillateur de Van der Pol :

Résolution numérique d’équations


différentielles à conditions initiales

Exemple 1: Oscillateur de Van Der Pol S. EL AREM ENSAM 169 / 179


Exemples de problèmes VDP

Oscillateur de Van der Pol


L’oscillateur de Van der Pol est un circuit électrique qui a été
imaginé par le physicien néerlandais Balthasar van der Pol.
Lorsque cet oscillateur est excité par un terme harmonique à
la pulsation ω , son équation différentielle devient :

d2 x(t)  dx(t)
− ω0 (1 − x2 (t)) + ω02 x(t) = B0 cos(ω t) (14)
dt2 2 dt
ω0 étant la pulsation propre de l’oscillateur et  son coefficient
de non linéarité. B0 , ω, ω0 et  sont des données du problème
à résoudre.
On souhaite trouver des solutions à l’équation différentielle
(18) pour t dans I = [0, 1] en utilisant N pas d’intégration. Les
dx(0)
conditions initiales sont: x(0) = 0.50 et = ẋ(0) = 0.
dt
1 Schéma d’Euler explicite: Écrire l’équation (18) sous la
forme d’un système d’équations du type:

dY (t)
= Ẏ (t) = F (Y (t), t) (15)
dt
Expliciter Y (t) et F (Y (t), t)
2 En utilisant la fonction odeint du module
scipy.integrate, déterminer la solution numérique de
référence sur l’intervalle [t0 = 0, tf = 10]
w0
 = 1.0e−4 , w0 = 1, w = , B0 = 1.0
2

Exemple 1: Oscillateur de Van Der Pol S. EL AREM ENSAM 170 / 179


Exemples de problèmes VDP

3 En utilisant la méthode d’intégration numérique des


rectangles à gauche, expliquer l’algorithme du schéma
d’intégration d’Euler explicite utilisé pour résoudre un
problème de Cauchy.

4 Écrire, en Python, une fonction EulerExplicite qui


retourne les valeurs de x(t) et ẋ(t) pour tout instant ti ∈ I,
0 ≤ i ≤ N.

5 Écrire, en Python, les lignes de code nécessaires pour


tracer le portrait de phase (ẋ(t) en fonction de x(t)).
6 Résoudre le problème en utilisant la méthode de
Runge-Kutta d’ordre 2 conduisant à une meilleure
approximation de la solution recherchée. L’erreur globale
est O(h2 ). Il s’agit donc d’une méthode d’ordre deux.

Exemple 1: Oscillateur de Van Der Pol S. EL AREM ENSAM 171 / 179


Exemples de problèmes VDP

Résultats

Exemple 1: Oscillateur de Van Der Pol S. EL AREM ENSAM 172 / 179


Exemples de problèmes Exemple 2: Oscillateur de Duffing

Oscillateur de Duffing
L’oscillateur de Duffing du nom de Georg Duffing
(1861 − 1944), est une équation différentielle nonlinéaire du
second ordre utilisée pour modéliser certains oscillateurs
amortis et forcés.
d2 x(t) dx(t)
2
+δ + α x(t) + β x3 (t) = γ cos(ω t) (16)
dt dt
C’est un exemple de système dynamique simple pouvant
présenter un comportement chaotique, comme l’oscillateur de
Van der Pol.
δ contrôle le taux d’amortissement,
α contrôle la raideur linéaire,
β contrôle le taux de non-linéarité dans la force
restauratrice ; le cas β = 0 correspondant à un oscillateur
harmonique amorti et forcé simple,
γ est l’amplitude de la force conductrice périodique,
ω est la fréquence angulaire de cette force.
Exemple 2: Oscillateur de Duffing S. EL AREM ENSAM 173 / 179
Exemples de problèmes Exemple 2: Oscillateur de Duffing

Oscillateur de Duffing
Dans ce qui suit, on considère les valeurs numériques
suivantes:

δ = 0.01, α = γ = 1, β = 0.04, ω = 2.0

On souhaite trouver des solutions à l’équation différentielle


(18) pour t dans I = [0, 1] en utilisant N pas d’intégration. Les
dx(0)
conditions initiales sont: x(0) = 1 et = ẋ(0) = 0.
dt
1 Écrire l’équation (18) sous la forme d’un système
d’équations du type:

dY (t)
= Ẏ (t) = F (Y (t), t) (17)
dt
Expliciter Y (t) et F (Y (t), t)

Exemple 2: Oscillateur de Duffing S. EL AREM ENSAM 174 / 179


Exemples de problèmes Exemple 2: Oscillateur de Duffing

Oscillateur de Duffing

d2 x(t) dx(t)
+δ + α x(t) + β x3 (t) = γ cos(ω t)
dt2 dt
Dans ce qui suit, on considère les valeurs numériques
suivantes:

δ = 0.01, α = γ = 1, β = 0.04, ω = 2.0

On souhaite trouver des solutions à l’équation différentielle


(18) pour t dans I = [0, 1] en utilisant N pas d’intégration. Les
dx(0)
conditions initiales sont: x(0) = 1 et = ẋ(0) = 0.
dt
1 Écrire l’équation (18) sous la forme d’un système
d’équations du type:

dY (t)
= Ẏ (t) = F (Y (t), t)
dt
Expliciter Y (t) et F (Y (t), t)
2 En utilisant la fonction odeint du module
scipy.integrate, déterminer la solution numérique de
référence sur l’intervalle I.
3 Expliquer (avec un graphique) l’algorithme du schéma
d’intégration de Runge-Kutta d’ordre 2. Écrire, en
Python, une fonction RK2 qui retourne les valeurs de x et
ẋ pour tout instant ti ∈ I, 0 ≤ i ≤ N .
Exemple 2: Oscillateur de Duffing S. EL AREM ENSAM 175 / 179
Exemples de problèmes Exemple 2: Oscillateur de Duffing

Oscillateur de Duffing

d2 x(t) dx(t)
+δ + α x(t) + β x3 (t) = γ cos(ω t) (18)
dt2 dt
Dans ce qui suit, on considère les valeurs numériques
suivantes:

δ = 0.01, α = γ = 1, β = 0.04, ω = 2.0

On souhaite trouver des solutions à l’équation différentielle


(18) pour t dans I = [0, 1] en utilisant N pas d’intégration. Les
dx(0)
conditions initiales sont: x(0) = 1 et = ẋ(0) = 0.
dt
4 Expliquer (avec un graphique) l’algorithme du schéma
d’intégration de Runge-Kutta d’ordre 4. Montrer qu’il
permet d’obtenir une meilleure approximation de la
solution recherchée. Écrire, en Python, une fonction RK4
qui retourne les valeurs de x et ẋ pour tout instant ti ∈ I,
0 ≤ i ≤ N.
5 Écrire, en Python, les lignes de code nécessaires pour
tracer et comparer les portraits de phase (ẋ(t) en fonction
de x(t)) obtenus en utilisant odeint et RK4.
Exemple 2: Oscillateur de Duffing S. EL AREM ENSAM 176 / 179
Exemple 3: Attracteur de Lorenz Équations et résolution

Attracteur de Lorenz
En 1963, le météorologue Edward Lorenz est le premier à
mettre en évidence le caractère vraisemblablement chaotique
de la météorologie. En simplifiant les équations de
Navier-Stokes de la mécanique des fluides, il aboutit à un
système dynamique différentiel possédant seulement trois
degrés de liberté, beaucoup plus simple à intégrer
numériquement que les équations de départ. Ce système est
décrit par :

dx(t)


 = σ[y(t) − x(t)]



 dt



dy(t)

= ρx(t) − y(t) − x(t)z(t) (19)


 dt



 dz(t) = x(t)y(t) − βz(t)



dt
Équations et résolution S. EL AREM ENSAM 177 / 179
Exemple 3: Attracteur de Lorenz Équations et résolution

Dans ces équations, σ (nombre de Prandtl), ρ (rapport du


nombre de Rayleigh au nombre de Rayleigh critique) et β
sont trois paramètres réels positifs. Lorsque les paramètres
σ = 10, ρ = 28 et β = 83 , le système dynamique de Lorenz
présente un attracteur étrange en forme d’ailes de papillon.
Dans ce qui suit, on considère les valeurs numériques
suivantes:
σ = 10 ρ = 28 β = 83
On souhaite trouver des solutions à l’équation différentielle
(19) pour t dans I = [0, 100] en utilisant N pas d’intégration.
Les conditions initiales sont: x(0) = 0.0, y(0) = 1.0 et z(0) = 1.05.

Équations et résolution S. EL AREM ENSAM 178 / 179


Équations aux Dérivées Partielles (EDP)

Chapitre 6:

Équations aux Dérivées Partielles (EDP)

Support disponible sur Savoir

S. EL AREM ENSAM 179 / 179