Analyse
Numérique 01
Travaux
Pratiques avec
MATLAB
KHELLAF AMMAR
Table des matières
Préface 3
1 Initiation à MATLAB 5
1.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Opération sur les Matrices . . . . . . . . . . . . . . . . . . . . 6
1.3 Manipulation des Matrices . . . . . . . . . . . . . . . . . . . . 9
1.4 Vitesse de Calcul . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Graphe d’une fonction . . . . . . . . . . . . . . . . . . . . . . 13
2 Résolution des Équations Non Linéaires 16
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.1 Brève Présentation des Équations Non Linéaires . . . . 16
2.1.2 Importance en Analyse Numérique . . . . . . . . . . . 17
2.2 Méthode de Dichotomie . . . . . . . . . . . . . . . . . . . . . 17
2.2.1 Théorie et Principe . . . . . . . . . . . . . . . . . . . . 17
2.2.2 Exemple Résolu . . . . . . . . . . . . . . . . . . . . . . 18
2.2.3 Programme MATLAB . . . . . . . . . . . . . . . . . . 18
2.2.4 Exercices avec Solutions . . . . . . . . . . . . . . . . . 19
2.3 Méthode du Point Fixe . . . . . . . . . . . . . . . . . . . . . . 19
2.3.1 Théorie et Principe . . . . . . . . . . . . . . . . . . . . 19
2.3.2 Exemple Résolu . . . . . . . . . . . . . . . . . . . . . . 20
2.3.3 Programme MATLAB . . . . . . . . . . . . . . . . . . 20
1
2.3.4 Exercices avec Solutions . . . . . . . . . . . . . . . . . 21
2.4 Méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.1 Théorie et Principe . . . . . . . . . . . . . . . . . . . . 21
2.4.2 Exemple Résolu . . . . . . . . . . . . . . . . . . . . . 22
2.4.3 Programme MATLAB . . . . . . . . . . . . . . . . . . 22
2.4.4 Exercices avec Solutions . . . . . . . . . . . . . . . . . 23
2.5 Méthode de la Sécante . . . . . . . . . . . . . . . . . . . . . . 23
2.5.1 Théorie et Principe . . . . . . . . . . . . . . . . . . . . 23
2.5.2 Exemple Résolu . . . . . . . . . . . . . . . . . . . . . 24
2.5.3 Programme MATLAB . . . . . . . . . . . . . . . . . . 24
2.5.4 Exercices avec Solutions . . . . . . . . . . . . . . . . . 25
3 Résolution des Systèmes Linéaires 26
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.1 Présentation des Systèmes Linéaires . . . . . . . . . . . 26
3.1.2 Leur Rôle en Analyse Numérique . . . . . . . . . . . . 27
3.2 Méthode d’Élimination de Gauss . . . . . . . . . . . . . . . . 27
3.2.1 Théorie et Principe . . . . . . . . . . . . . . . . . . . . 27
3.2.2 Exemple Résolu . . . . . . . . . . . . . . . . . . . . . . 28
3.2.3 Programme MATLAB . . . . . . . . . . . . . . . . . . 29
3.2.4 Exercices avec Solutions . . . . . . . . . . . . . . . . . 30
3.3 Factorisation LU . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1 Théorie et Principe . . . . . . . . . . . . . . . . . . . . 30
3.3.2 Exemple Résolu . . . . . . . . . . . . . . . . . . . . . . 31
3.3.3 Programme MATLAB . . . . . . . . . . . . . . . . . . 31
3.3.4 Exercices avec Solutions . . . . . . . . . . . . . . . . . 32
3.4 Méthode de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.1 Théorie et Principe . . . . . . . . . . . . . . . . . . . . 32
3.4.2 Exemple Résolu . . . . . . . . . . . . . . . . . . . . . . 33
3.4.3 Programme MATLAB . . . . . . . . . . . . . . . . . . 33
3.4.4 Exercices avec Solutions . . . . . . . . . . . . . . . . . 35
3.5 Méthode de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . 35
3.5.1 Théorie et Principe . . . . . . . . . . . . . . . . . . . . 35
3.5.2 Exemple Résolu . . . . . . . . . . . . . . . . . . . . . . 36
3.5.3 Programme MATLAB . . . . . . . . . . . . . . . . . . 36
3.5.4 Exercices avec Solutions . . . . . . . . . . . . . . . . . 38
Bibliographie 39
2
Préface
L’analyse numérique est une discipline qui consiste à développer, analyser
et appliquer des méthodes issues de divers domaines mathématiques tels que
l’analyse, l’algèbre linéaire, la géométrie, la théorie de l’approximation, les
équations fonctionnelles, l’optimisation et le calcul différentiel. Les méthodes
numériques ont des applications naturelles dans de nombreux problèmes de
physique, de sciences biologiques, de sciences de l’ingénieur, d’économie et
de finance.
Cette discipline est au carrefour de plusieurs domaines scientifiques et elle
ne cesse de creuser de nouveaux horizons et de trouver de nouveaux champs
d’application. Elle se développe aussi rapidement que l’outil phare de cette
discipline, qui est l’ordinateur.
Ce polycopie est destiné aux étudiants d’Ecole Nationale Polytechnique de
Constantine. Il constitué de trois chapitres. Le premier chapitre représente
une initiation à MATLAB. Le chapitre deux est consacré à la résolution
d’équation non linéaire. Le chapitre trois est la résolution de systèmes linéaires.
Nous avons choisi le logiciel MATLAB puisqu’il est l’un des plus faciles
à manipuler et à apprendre. Comme il est l’un des plus rapides et précis.
Ce polycopie est rédigé par Dr. KHELLAF Ammar, maitre de conférence
de classe A, département de classe préparatoire, Ecole Nationale Polytech-
3
niques de Constantine.
4
Initiation à MATLAB
1
1.1 Présentation
MATLAB (≪ matrix laboratory ≫) est un langage de programmation de
quatrième génération et un environnement de développement ; il est utilisé
à des fins de calcul numérique. Développé par la société The MathWorks,
MATLAB permet de manipuler des matrices, d’afficher des courbes et des
données, de mettre en oeuvre des algorithmes, de créer des interfaces utilisa-
teurs, et peut s’interfacer avec d’autres langages comme le C, C++, Java, et
Fortran. Les utilisateurs de MATLAB (environ un million en 2004) sont de
milieux très différents comme l’ingénierie, les sciences et l’économie dans un
contexte aussi bien industriel que pour la recherche. Matlab peut s’utiliser
seul ou bien avec des toolbox (≪ boı̂te à outils ≫).
Le langage MATLAB a été conçu par Cleve Moler à la fin des années
1970 à partir des bibliothèques Fortran, LINPACK et EISPACK. Alors pro-
fesseur de mathématiques à l’université du Nouveau-Mexique, il souhaitait
permettre à ses étudiants de pouvoir utiliser ces deux bibliothèques sans
connaitre le Fortran. Cleve Moler l’utilisa ensuite pour des cours donnés à
l’université Stanford où il reçut un accueil mitigé de la part des étudiants en
mathématiques (habitués au Fortran). Par contre, les étudiants en technolo-
gie, en particulier en traitement du signal, furent beaucoup plus intéressés.
Un ingénieur, Jack Little en comprend rapidement les capacités et entreprend
avec un collègue, Steve Bangert, de le recoder en langage C. Jack Little, Cleve
5
1.2. OPÉRATION SUR LES MATRICES
Moler et Steve Bangert créèrent la société The MathWorks en 1984 afin de
commercialiser la version 1.0 de MATLAB.
MATLAB a ensuite évolué, en intégrant par exemple la bibliothèque LA-
PACK en 20005, en se dotant de nombreuses boı̂tes à outils (Toolbox) et
en incluant les possibilités données par d’autres langages de programmation
comme C++ ou Java.
MATLAB est un logiciel scientifique qui peut être vu comme une ”super
calculette”. Aprés avoir démarré en cliquant sur l’icône ou en faisant appel
à MATLAB dans un terminal, on obtient la fenêtre principale du logiciel.
On donne ci-aprés quelques informations qui peuvent être complétées par la
commande help. Pour plus de détails voir [9].
1.2 Opération sur les Matrices
Cette partie doit être effectuée directement sur machine. Soient les trois
matrices :
1 2 0
1 2 3 0 −2 99
M1 = −1 0 1 , M2 = , M2 =
7 8 9 4.15 8 −1
3 2 0
1. Dans la fenètre MATLAB, créer manuellement ces trois matrices.
2. Testez ces opérations
(a) M1+M2
(b) M1+M3
(c) M2+M3
(d) M1-M2
(e) M1-M3
(f) M2-M3
(g) 1.+M1
(h) M3’
Pourquoi certaines opérations renvoient-elles un message d’erreur ?
6
1.2. OPÉRATION SUR LES MATRICES
3. Testez ces opérations
(a) M1*M2, pourquoi cette opération n’est-elle pas exécutée ?
(b) Comparer M2*M3 et M2.*M3
(c) Tester M1ˆ2 et M1.ˆ2. Analyser le résultat.
(d) Que donne l’opération M2ˆ2 ? Pourquoi ?
4. Analysez les réponses des commandes suivantes. Pouvez-vous reconnaı̂tre
l’opération matricielle qui est réalisée :
(a) M2./M2
(b) M1/M1
Si on permute entre les deux matrices, est ce qu’on réccupère les
mêmes résultats ?
Solution
1. >> M1=[1 2 0;-1 0 1;3 2 0]
M1 =
1 2 0
-1 0 1
3 2 0
>> M2=[1 , 2 , 3;7 , 8 , 9]
M2 =
1 2 3
7 8 9
>> M3=[0 -2 99;4.15 8 -1]
M3 =
0 -2.0000 99.0000
4.1500 8.0000 -1.0000
2. Certaines opérations renvoient des messages erreurs, puiqu’on n’a pas
la même dimension pour effectuer la somme.
7
1.2. OPÉRATION SUR LES MATRICES
(a) >> M1+M2
??? Error using ==> plus
Matrix dimensions must agree.
(b) >> M1+M3
??? Error using ==> plus
Matrix dimensions must agree.
(c) >> M2+M3
ans =
1.0000 0 102.0000
11.1500 16.0000 8.0000
(d) >> M1-M2
??? Error using ==> minus
Matrix dimensions must agree.
(e) >> M1-M3
??? Error using ==> minus
Matrix dimensions must agree.
(f) >> M2-M3
ans =
1.0000 4.0000 -96.0000
2.8500 0 10.0000
(g) >> 1.+M1
ans =
2 3 1
0 1 2
4 3 1
(h) >> M3’
ans =
8
1.3. MANIPULATION DES MATRICES
0 4.1500
-2.0000 8.0000
99.0000 -1.0000
MATLAB reprend les mêmes opérations mathématiques définies pour les
matrices, mais il a d’autres opérations dans sa pallette. L’opération .+ revient
à rajouter le scalaire à gauche aux composantes de la matrice une par une.
L’opération .∗ revient à multiplier deux matrices du même genre composante
par composante. L’opération ./ revient à diviser deux matrices du même
genre composante de la première diviser par composante de la deuxième.
1.3 Manipulation des Matrices
1. Récupérer le (2,2) de la matrice M1 et affectez le dans la variable x
2. Mettez le terme (2,1) de la matrice M2 à zéro.
3. Créer le vecteur ligne X par la commande X = 1 : 1 : 5
4. Faites en la transposée X = X’
5. Créér la matrice M : M = [X, 5.+X , 10.+X, 15.+X , 20.+X]
6. Utiliser les commandes Matlab permettant de trouver la taille finale
de cette matrice
7. Analysez le résultats des commandes suivantes pour comprendre leur
utilité :
(a) M( : , 5 )
(b) M( 5 , : )
(c) M( 2 : 3 , 3 : 4 )
Solution
1. >> x=M1(2,2)
x =
9
1.3. MANIPULATION DES MATRICES
2. >> M2(2,1)=0
M2 =
1 2 3
0 8 9
3. >> X = 1 : 1 : 5
X =
1 2 3 4 5
4. >> X = X’
X =
1
2
3
4
5
5. >> M = [X, 5.+X , 10.+X, 15.+X , 20.+X]
M =
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
6. >> size(M)
ans =
10
1.4. VITESSE DE CALCUL
5 5
7. (a) >> M( : , 5 )
ans =
21
22
23
24
25
Renvoie la 5 colonne de M .
(b) >> M( 5 , : )
ans =
5 10 15 20 25
Renvoie la 5 ligne de M .
(c) >> M( 2 : 3 , 3 : 4 )
ans =
12 17
13 18
Renvoie de la ligne 2 à 3 et de la colonne 3 à 4.
1.4 Vitesse de Calcul
MATLAB est performant (en termes de rapidité) sur les calculs matriciels.
On se propose de calculer 50 000 valeurs de sinus, de deux façons différentes
et de mesurer le temps d’exécution.
1. Créer une routine sin1.m et saisissez le code suivant :
clear;
i=0;
11
1.4. VITESSE DE CALCUL
for t=0:0.01:500
i=i+1;
y(i)=sin(t);
end
2. Dans la fenêtre de commande, on saisit les commandes suivantes :
tic,sin1,toc. Les fonctions tic et toc sont l’équivalent d’un déclenchement
et de l’arrêt d’un chronomètre. Comme la routine sin1.m n’affiche au-
cun résultat, le résultat fourni correspond à la durée d’exécution.
3. Créer maintenant la routine sin2.m qui contient le code suivant :
clear ;
t=0 :0.01 :500;
y=sin(t);
4. Calculer le temps d’excution de sin2.m. Comparer entre les deux rou-
tines.
>> tic,sin1,toc
Elapsed time is 2.250110 seconds.
>> tic,sin2,toc
Elapsed time is 0.008756 seconds.
5. Soient deux suites finies A = {sin(i)}10000 10000
i=1 , B = {cos(i)}i=1 .
(a) En utilisant la boucle f or, écrire une routine qui calcule la somme
10000
X
sin(i)cos(i).
i=1
(b) Sans utiliser la boucle f or, écrire une routine qui calcule la même
somme.
(c) Comparer.
Solution
La première routine est :
clear;
som =0;
for i=[Link]
som=som + sin(i)*cos(i);
end
La deuxième routine est :
12
1.5. GRAPHE D’UNE FONCTION
clear;
i=1:10000;
som=sin(i)’*cos(i);
1.5 Graphe d’une fonction
1. On sepropose de tracer les graphes de la fonction f : x 7−→ 1 +
1
x2 sin et de sa fonction dérivée sur un intervalle de la forme
x
[h, π], où h > 0 ”trés petit”.
(a) Créer la routine f.m qui contient le code suivant :
function y = f(x)
y=1.+ x.^2.*sin(1./x);
end
(b) Dans la fenêtre de commande créer un tableau t = [h : h : pi] après
avoir choisi h, puis tracer à l’aide de la commande plot le graphe
de la dite fonction sur l’intervalle [h, π].
(c) En s’inspirant du code de la fonction f , écrire une procédure qui
correspond à la fonction dérivée de f puis tracer les deux fonctions
sur une même figure.
Solution La procédure représentant la dérivé de f est :
function y = df(x)
y=2*x.*sin(1./x)-cos(1./x);
end
Voici la commande pour tracer f et sa dérivé :
>> h=10^-3;t=h:h:pi;x=f(t);y=df(t);plot(t,x,t,y,’--’)
Pour faire apparaı̂tre la grille, on utilise :
>> grid on
2. La fonction g est définie sur [0, 4] par
0 x ∈ [0, 1] ,
1−x x ∈ ]1, 2] ,
g(x) = 6
2− x x ∈ ]2, 3] ,
0 x ∈ ]3, 4] .
13
1.5. GRAPHE D’UNE FONCTION
Figure 1.1 – → : f , 99K : f ′
(a) Créer la routine g.m qui représente la fonction g.
(b) Tracer la fonction g sur [0, 4].
Solution
function y=g(x)
for i=1:size(x,2)
if x(1,i)>=0 && x(1,i)<=1
y(1,i)=0;
elseif x(1,i)>1 && x(1,i)<=2
y(1,i)=1-x(1,i);
elseif x(1,i)>2 && x(1,i)<=3
y(1,i)=2-6/x(1,i);
else y(1,i)=0;
end
end
end
14
1.5. GRAPHE D’UNE FONCTION
Figure 1.2 – g
15
2
Résolution des Équations Non Linéaires
2.1 Introduction
La résolution des équations non linéaires constitue un pilier fondamental
de l’analyse numérique, une branche des mathématiques appliquées dédiée à
l’étude des algorithmes permettant de résoudre des problèmes mathématiques
avec précision et efficacité. Les équations non linéaires, en particulier, présentent
des défis uniques en raison de leur complexité et de leur comportement
imprévisible, contrastant avec la simplicité relative des équations linéaires.
2.1.1 Brève Présentation des Équations Non Linéaires
Une équation non linéaire est une équation où le terme inconnu, ou la
variable, ne se présente pas uniquement au premier degré. Ces équations
peuvent prendre diverses formes, allant des polynômes de degré supérieur à
des fonctions exponentielles, logarithmiques ou trigonométriques. Par exemple,
une équation de la forme x2 +y 2 = 1 est non linéaire car les termes sont élevés
au carré.
Le comportement de ces équations est souvent complexe : elles peuvent
avoir plusieurs solutions, une solution unique ou parfois aucune solution. De
plus, contrairement aux équations linéaires, les solutions des équations non
linéaires ne sont pas toujours directement proportionnelles à leurs constantes,
et elles ne suivent pas le principe de superposition.
16
2.2. MÉTHODE DE DICHOTOMIE
2.1.2 Importance en Analyse Numérique
L’importance des équations non linéaires en analyse numérique est indéniable.
Elles apparaissent dans de nombreux domaines scientifiques et d’ingénierie,
comme la physique, la chimie, la biologie, l’économie et l’ingénierie. Par
exemple, dans la mécanique des fluides, les équations de Navier-Stokes, qui
sont non linéaires, jouent un rôle crucial dans la compréhension des mou-
vements des fluides. En économie, les modèles de croissance et les systèmes
d’équations différentielles non linéaires aident à comprendre les dynamiques
complexes des marchés.
Le traitement numérique de ces équations est donc essentiel pour modéliser
et résoudre des problèmes réels. Cela implique le développement de méthodes
numériques robustes et efficaces, capables de gérer la complexité et la diver-
sité des solutions possibles. Les algorithmes comme la méthode de New-
ton, la méthode de la sécante, ou les techniques d’optimisation globale sont
développés pour trouver des solutions approchées de ces équations, souvent
là où les méthodes analytiques échouent ou sont impraticables.
En somme, la résolution d’équations non linéaires en analyse numérique
n’est pas seulement un défi mathématique, mais elle est aussi cruciale pour
avancer dans la compréhension et la manipulation de nombreux phénomènes
naturels et sociaux complexes.
2.2 Méthode de Dichotomie
2.2.1 Théorie et Principe
La méthode de dichotomie, également connue sous le nom de méthode
de bissection, est une technique d’analyse numérique pour trouver les racines
d’une équation non linéaire. Elle est basée sur le principe du théorème des
valeurs intermédiaires, qui stipule que si une fonction continue f (x) change
de signe entre deux points a et b, alors elle doit avoir au moins une racine
dans l’intervalle [a, b].
La méthode procède par réduction successive de l’intervalle contenant la
racine. On commence par évaluer la fonction en son point milieu c = a+b 2
.
Si f (c) est suffisamment proche de zéro, c est accepté comme une racine ap-
17
2.2. MÉTHODE DE DICHOTOMIE
proximative. Sinon, on détermine dans quel sous-intervalle la fonction change
de signe (soit [a, c] ou [c, b]) et on répète le processus pour ce sous-intervalle.
2.2.2 Exemple Résolu
Supposons que nous cherchons la racine de la fonction f (x) = x3 − x − 2
dans l’intervalle [1, 2].
1. On calcule c = 1+2 2
= 1.5.
2. On évalue f (1.5), qui donne 1.53 − 1.5 − 2 = −0.125.
3. Puisque f (1) et f (1.5) ont des signes opposés, la racine se trouve dans
l’intervalle [1, 1.5].
4. On répète le processus pour ce nouvel intervalle jusqu’à obtenir une
approximation satisfaisante de la racine.
2.2.3 Programme MATLAB
1 function root = dichotomy (f , a , b , tol )
2 if f ( a ) * f ( b ) > 0
3 error ( ' La fonction doit changer de signe sur
l intervalle ')
4 end
5 while ( b - a ) / 2 > tol
6 c = ( a + b ) / 2;
7 if f ( c ) == 0
8 break ;
9 elseif f ( a ) * f ( c ) < 0
10 b = c;
11 else
12 a = c;
13 end
14 end
15 root = ( a + b ) / 2;
16 end
17 % Exemple d ' utilisation
18 f = @( x ) x ^3 - x - 2;
19 root = dichotomy (f , 1 , 2 , 1e -5) ;
20 disp ([ ' La racine est : ' , num2str ( root ) ]) ;
18
2.3. MÉTHODE DU POINT FIXE
21 function y = dic (f ,a ,b , nit )
22 for k =1: nit
23 x =( b + a ) /2;
24 if f ( a ) * f ( x ) <0
25 b=x;
26 end
27 if f ( b ) * f ( x ) <0
28 a=x;
29 end
30 end
31 a;
32 b;
33 y=x;
34 end
2.2.4 Exercices avec Solutions
Exercice 1 : Utilisez la méthode de dichotomie pour trouver la racine
de f (x) = x2 − 5 dans l’intervalle [2, 3].
Solution : La racine est approximativement 2.2361.
Exercice 2 : Trouvez la racine de f (x) = sin(x) − 0.5 dans l’intervalle
[0, π].
Solution : La racine est approximativement 0.5236.
2.3 Méthode du Point Fixe
2.3.1 Théorie et Principe
La méthode du point fixe est une autre technique d’analyse numérique
pour trouver les racines d’équations non linéaires. Elle est basée sur la trans-
formation de l’équation f (x) = 0 en une forme équivalente x = g(x), où
g(x) est une fonction continue. Un point fixe de g est un point x tel que
g(x) = x. Si g est définie et continue sur un intervalle et si g(x) reste dans
cet intervalle pour tout x de l’intervalle, alors la méthode peut être appliquée.
19
2.3. MÉTHODE DU POINT FIXE
Le processus itératif commence avec une estimation initiale x0 et cal-
cule les itérations successives selon la formule xn+1 = g(xn ). Si la suite {xn }
converge, alors sa limite est un point fixe de g, qui est une racine de f (x) = 0.
2.3.2 Exemple Résolu
Considérons
√ l’équation x3 − x − 2 = 0. Nous la transformons en x =
g(x) = 3 x + 2.
1. Supposons que l’estimation √ initiale √
soit x0 = 1.
2. On calcule x1 = g(x0 ) = 3 1 + 2 = 3 3.
3. On continue le processus pour obtenir x2 , x3 , . . . jusqu’à ce que la
différence entre deux itérations successives soit inférieure à une tolérance
donnée.
2.3.3 Programme MATLAB
35 function root = fixedPoint (g , x0 , tol ,
maxIter )
36 for i = 1: maxIter
37 x1 = g ( x0 ) ;
38 if abs ( x1 - x0 ) < tol
39 root = x1 ;
40 return ;
41 end
42 x0 = x1 ;
43 end
44 end
45 % Exemple d ' utilisation
46 g = @( x ) nthroot ( x + 2 , 3) ;
47 root = fixedPoint (g , 1 , 1e -5 , 100) ;
48 disp ([ ' La racine est : ' , num2str ( root ) ]) ;
49 function y = pff (g ,x , e )
50 it =1;
51 while abs (x - g ( x ) ) >e
52 x=g(x)
20
2.4. MÉTHODE DE NEWTON
53 it = it +1
54
55 end
56 y=x;
57 end
2.3.4 Exercices avec Solutions
Exercice 1 : Trouvez un point fixe de la fonction g(x) = cos(x) en
partant de x0 = 0.5.
Solution : Le point fixe est approximativement 0.7391.
Exercice 2 : Appliquez la méthode du point fixe à l’équation x = 12 (ex/3 −
x) avec x0 = 0.
Solution : Le point fixe est approximativement 0.5567.
2.4 Méthode de Newton
2.4.1 Théorie et Principe
La méthode de Newton, également connue sous le nom de méthode de
Newton-Raphson, est une approche puissante pour trouver numériquement
les racines d’une équation non linéaire de la forme f (x) = 0. Cette méthode
utilise la dérivée de la fonction pour rapidement converger vers une racine.
Le principe de la méthode de Newton repose sur l’approximation linéaire
de la fonction f (x) autour d’une estimation initiale x0 . À chaque itération, la
tangente à la courbe de la fonction au point courant est tracée, et le point où
cette tangente coupe l’axe des abscisses est utilisé comme la prochaine esti-
mation de la racine. Mathématiquement, la formule itérative est donnée par :
f (xn )
xn+1 = xn −
f ′ (xn )
où f ′ (xn ) est la dérivée de f au point xn .
21
2.4. MÉTHODE DE NEWTON
2.4.2 Exemple Résolu
Considérons l’équation f (x) = x2 − 4x + 3. La dérivée est f ′ (x) = 2x − 4.
1. Choisissons une valeur initiale, disons x0 = 2.
2. Appliquons la méthode de Newton :
(22 − 4 ∗ 2 + 3)
x1 = 2 − = 2.5
2∗2−4
3. Répétons le processus jusqu’à ce que la différence entre deux estima-
tions successives soit inférieure à une tolérance spécifiée.
2.4.3 Programme MATLAB
58 function root = newtonMethod (f , df , x0 , tol ,
maxIter )
59 x = x0 ;
60 for i = 1: maxIter
61 x_new = x - f ( x ) / df ( x ) ;
62 if abs ( x_new - x ) < tol
63 root = x_new ;
64 return ;
65 end
66 x = x_new ;
67 end
68 end
69
70 % Exemple d ' utilisation
71 f = @( x ) x ^2 - 4* x + 3;
72 df = @( x ) 2* x - 4;
73 root = newtonMethod (f , df , 2 , 1e -5 , 100) ;
74 disp ([ ' La racine est : ' , num2str ( root ) ]) ;
75 function y = newt (f , df ,x , tol )
76 it =0;
77 while ( abs ( f ( x ) / df ( x ) ) > tol ) && ( f ( x ) ~=0) && ( df ( x )
~=0)
78 x =x - f ( x ) / df ( x )
22
2.5. MÉTHODE DE LA SÉCANTE
79 it = it +1
80 end
81 y=x;
82 end
2.4.4 Exercices avec Solutions
Exercice 1 : Utilisez la méthode de Newton pour trouver une racine de
f (x) = sin(x) − x/2. Prenez x0 = 1.5 et utilisez f ′ (x) = cos(x) − 1/2.
Solution : La racine est approximativement 1.8955.
Exercice 2 : Trouvez une racine de f (x) = ex − x2 . Commencez avec
x0 = 0 et utilisez f ′ (x) = ex − 2x.
Solution : La racine est approximativement 0.7032.
2.5 Méthode de la Sécante
2.5.1 Théorie et Principe
La méthode de la sécante est une technique d’analyse numérique utilisée
pour trouver les racines d’une équation non linéaire. Elle est similaire à la
méthode de Newton, mais au lieu d’utiliser la dérivée de la fonction, elle
utilise deux estimations initiales pour approximer la dérivée. Cela la rend
particulièrement utile lorsque la dérivée de la fonction n’est pas facilement
accessible.
La formule itérative de la méthode de la sécante est :
xn − xn−1
xn+1 = xn − f (xn )
f (xn ) − f (xn−1 )
où xn et xn−1 sont deux approximations successives de la racine. La
méthode utilise ces deux points pour tracer une sécante à la courbe de la
fonction, et le point où cette sécante coupe l’axe des abscisses devient la
prochaine approximation.
23
2.5. MÉTHODE DE LA SÉCANTE
2.5.2 Exemple Résolu
Prenons l’équation f (x) = x3 − x − 2 avec des estimations initiales x0 = 1
et x1 = 2.
1. Appliquons la méthode de la sécante :
2−1
x2 = 2 − (23 − 2 − 2) = 1.3333
(23 − 2 − 2) − (13 − 1 − 2)
2. Continuons les itérations avec x2 et x1 pour obtenir x3 , puis avec x3
et x2 pour obtenir x4 , et ainsi de suite, jusqu’à atteindre une précision
souhaitée.
2.5.3 Programme MATLAB
83 function root = secantMethod (f , x0 , x1 , tol ,
maxIter )
84 for i = 1: maxIter
85 if abs ( f ( x1 ) ) < tol
86 root = x1 ;
87 return ;
88 end
89 x_temp = x1 - f ( x1 ) * ( x1 - x0 ) / ( f ( x1 ) - f
( x0 ) ) ;
90 x0 = x1 ;
91 x1 = x_temp ;
92 end
93 root = x1 ;
94 end
95
96 % Exemple d ' utilisation
97 f = @( x ) x ^3 - x - 2;
98 root = secantMethod (f , 1 , 2 , 1e -5 , 100) ;
99 disp ([ ' La racine est : ' , num2str ( root ) ]) ;
100 function yy = wxe (f , x0 , x1 , tol )
101 it =0;
102 while ( abs ( f ( x1 ) *( x0 - x1 ) /( f ( x0 ) -f ( x1 ) ) ) > tol )
24
2.5. MÉTHODE DE LA SÉCANTE
103 y = x1 - f ( x1 ) *( x0 - x1 ) /( f ( x0 ) -f ( x1 ) ) ;
104 x0 = x1 ;
105 x1 = y ;
106 it = it +1;
107 end
108 yy = x1 ;
109 end
2.5.4 Exercices avec Solutions
Exercice 1 : Utilisez la méthode de la sécante pour trouver une racine
de f (x) = cos(x) − x. Commencez avec x0 = 0 et x1 = 1.
Solution : La racine est approximativement 0.7391.
Exercice 2 : Trouvez une racine de f (x) = x5 − x − 1. Utilisez x0 = 1 et
x1 = 2 comme estimations initiales.
Solution : La racine est approximativement 1.1673.
25
Résolution des Systèmes Linéaires
3
3.1 Introduction
La résolution de systèmes linéaires est un domaine central en analyse
numérique, jouant un rôle crucial dans de nombreuses applications scienti-
fiques et d’ingénierie. Un système linéaire se compose d’un ensemble d’équations
linéaires, chacune représentant une relation linéaire entre certaines inconnues.
3.1.1 Présentation des Systèmes Linéaires
Un système d’équations linéaires peut être écrit sous la forme générale :
a11 x1 + a12 x2 + · · · + a1n xn = b1
a21 x1 + a22 x2 + · · · + a2n xn = b2
..
.
am1 x1 + am2 x2 + · · · + amn xn = bm
où aij sont les coefficients du système, xi sont les inconnues, et bi sont les
termes constants. Ce système peut être représenté de manière plus compacte
en utilisant la notation matricielle A⃗x = ⃗b, où A est une matrice de coeffi-
cients, ⃗x est un vecteur d’inconnues, et ⃗b est un vecteur de termes constants.
26
3.2. MÉTHODE D’ÉLIMINATION DE GAUSS
3.1.2 Leur Rôle en Analyse Numérique
Les systèmes linéaires apparaissent fréquemment dans de nombreux contextes,
tels que la résolution de problèmes d’ingénierie, la modélisation économique,
la biostatistique, la programmation informatique, et bien d’autres. Leur im-
portance réside dans le fait qu’ils offrent une représentation simplifiée, mais
puissante, de problèmes complexes, permettant une analyse et une résolution
systématiques.
En analyse numérique, résoudre un système linéaire implique trouver un
vecteur ⃗x qui satisfait toutes les équations simultanément. Selon les propriétés
du système, différentes méthodes peuvent être appliquées pour trouver une
solution, que ce soit une solution unique, aucune solution ou une infinité de
solutions. Les méthodes numériques pour résoudre ces systèmes incluent la
méthode d’élimination de Gauss, la factorisation LU, la méthode de Gauss-
Seidel, la méthode de Jacobi, et d’autres.
Comprendre et appliquer ces méthodes est essentiel pour les scientifiques
et les ingénieurs qui traitent régulièrement de systèmes complexes modélisés
par des équations linéaires. Ces techniques permettent de décomposer des
problèmes apparemment inextricables en composants gérables, ouvrant la
voie à des solutions efficaces et pratiques dans un large éventail de disciplines.
3.2 Méthode d’Élimination de Gauss
3.2.1 Théorie et Principe
La méthode d’élimination de Gauss, souvent appelée simplement élimination
gaussienne, est une technique fondamentale pour résoudre les systèmes d’équations
linéaires. Cette méthode transforme le système en une forme plus simple
(généralement une forme échelonnée supérieure) en utilisant une série d’opérations
élémentaires sur les lignes. Ces opérations comprennent l’échange de deux
lignes, la multiplication d’une ligne par un nombre non nul, et l’addition
d’un multiple d’une ligne à une autre ligne.
Le but est de simplifier le système de sorte que la dernière équation
contienne une seule inconnue, l’avant-dernière équation deux inconnues, et
ainsi de suite. Une fois cette forme obtenue, on peut résoudre chaque équation
27
3.2. MÉTHODE D’ÉLIMINATION DE GAUSS
en commençant par la dernière et en remontant (ce processus est appelé sub-
stitution arrière).
3.2.2 Exemple Résolu
Considérons le système d’équations suivant :
2x + 3y − z = 1
4x + y + 2z = 2
−2x + 4y − 3z = 3
1. Utilisons l’élimination de Gauss pour transformer ce système en forme
échelonnée supérieure.
2. Ensuite, effectuons une substitution arrière pour trouver les valeurs
de x, y, et z.
Pour résoudre le système d’équations donné en utilisant l’élimination de
Gauss et la substitution arrière, nous procédons étape par étape :
Étape 1 : Éliminer x de l’Équation 2 et 3
- Multiplions l’Équation 1 par 2 et soustrayons de l’Équation 2.
- Multiplions l’Équation 1 par -1 et ajoutons à l’Équation 3.
2x + 3y − z = 1 (inchangée)
0x − 5y + 4z = 0 (nouvelle Équation 2)
0x + y − 2z = 4 (nouvelle Équation 3)
Étape 2 : Éliminer y de l’Équation 3
1
- Multiplions la nouvelle Équation 2 par 5
et soustrayons de la nouvelle
Équation 3.
2x + 3y − z = 1 (inchangée)
0x − 5y + 4z = 0 (inchangée)
18
0x + 0y − z = 4 (nouvelle Équation 3)
5
Substitution Arrière pour Trouver x, y, et z. Trouver z en utilisant la
nouvelle Équation 3
28
3.2. MÉTHODE D’ÉLIMINATION DE GAUSS
18 4 10
− z = 4 =⇒ z = − 18 = −
5 5
9
Trouver y en utilisant la nouvelle Équation 2 et z
10 4 10 8
−5y + 4z = 0 =⇒ −5y + 4(− ) = 0 =⇒ y = (− ) = −
9 5 9 9
Trouver x en utilisant l’Équation 1, y, et z
8 10 1 + 14
9
− 10
9 5
2x + 3y − z = 1 =⇒ 2x + 3(− ) − (− ) = 1 =⇒ x = =
9 9 2 9
Le système d’équations a pour solution :
5 8 10
x= , y=− , z=−
9 9 9
3.2.3 Programme MATLAB
110 function x = gaussElimination (A , b )
111 n = length ( b ) ;
112 for k = 1: n -1
113 for i = k +1: n
114 factor = A (i , k ) / A (k , k ) ;
115 A (i , k : n ) = A (i , k : n ) - factor * A (k , k : n ) ;
116 b ( i ) = b ( i ) - factor * b ( k ) ;
117 end
118 end
119
120 x = zeros (n ,1) ;
121 for i = n : -1:1
122 x ( i ) = ( b ( i ) - A (i , i +1: n ) * x ( i +1: n ) ) / A (i , i )
;
123 end
124 end
125
126 % Exemple d ' utilisation
127 A = [2 , 3 , -1; 4 , 1 , 2; -2 , 4 , -3];
29
3.3. FACTORISATION LU
128 b = [1; 2; 3];
129 x = gaussElimination (A , b ) ;
130 disp ( ' Solution : ') ;
131 disp ( x ) ;
3.2.4 Exercices avec Solutions
Exercice 1 : Résolvez le système suivant en utilisant l’élimination de
Gauss :
x + 2y − z = 4
2x − y + 3z = −6
−3x + 4y + z = 10
Solution : x = −1, y = 3, z = −2.
Exercice 2 : Appliquez l’élimination de Gauss au système suivant :
3x − y + 2z = 5
4x + 5y − z = 3
−2x + 3y + 4z = −2
Solution : x = 1, y = −1, z = 2.
3.3 Factorisation LU
3.3.1 Théorie et Principe
La factorisation LU est une méthode de décomposition d’une matrice en
deux matrices triangulaires : une triangulaire inférieure (L) et une trian-
gulaire supérieure (U). Cette décomposition est particulièrement utile pour
résoudre des systèmes d’équations linéaires, calculer des inverses de matrices,
et déterminer des déterminants.
La matrice A est décomposée en A = LU où :
- L est une matrice triangulaire inférieure avec des 1 sur la diagonale.
- U est une matrice triangulaire supérieure.
30
3.3. FACTORISATION LU
Une fois que la décomposition LU est effectuée, résoudre Ax = b devient
un problème en deux étapes :
1. Résoudre Ly = b pour y en utilisant la substitution avant.
2. Résoudre U x = y pour x en utilisant la substitution arrière.
3.3.2 Exemple Résolu
Considérons le système d’équations représenté par la matrice A et le vec-
teur b suivants :
1 2 4 3
A = 3 8 14 , b = 13
2 6 13 4
Nous cherchons à résoudre Ax = b en utilisant la factorisation LU.
1. Décomposition LU : Décomposons la matrice A en L et U .
2. Résolution de Ly = b : Utilisons la substitution avant pour trouver
y.
3. Résolution de U x = y : Utilisons la substitution arrière pour trouver
x.
3.3.3 Programme MATLAB
132 function x = luFactorization (A , b )
133 [L , U ] = lu ( A ) ;
134 y = L\b;
135 x= U\y;
136 end
137 % Exemple d ' utilisation
138 A = [1 , 2 , 4; 3 , 8 , 14; 2 , 6 , 13];
139 b = [3; 13; 4];
140 x = luFactorization (A , b ) ;
141 disp ( ' Solution : ') ;
142 disp ( x ) ;
31
3.4. MÉTHODE DE JACOBI
3.3.4 Exercices avec Solutions
Exercice 1 : Utilisez la factorisation LU pour résoudre le système sui-
vant :
4 −2 1 11
A = 20 −7 12 , b = 70
−8 13 17 17
1
Solution : x ≈ −2.
3
Exercice 2 : Appliquez la factorisation LU au système suivant :
3 1 2 10
A = 4 1 7 , b = 19
2 1 5 14
1
Solution : x ≈ 2.
2
3.4 Méthode de Jacobi
3.4.1 Théorie et Principe
La méthode de Jacobi est une technique itérative utilisée pour résoudre
des systèmes d’équations linéaires. Elle est particulièrement adaptée aux ma-
trices diagonalement dominantes, où les éléments de la diagonale principale
sont supérieurs en valeur absolue à la somme des autres éléments de la même
ligne.
Pour un système Ax = b, où A est une matrice carrée, la méthode de
Jacobi décompose A en une matrice diagonale D et une matrice de reste
R = A − D. L’algorithme itère alors selon la formule :
x(k+1) = D−1 (b − Rx(k) )
où x(k) est l’estimation de la solution à l’itération k.
32
3.4. MÉTHODE DE JACOBI
3.4.2 Exemple Résolu
Considérons le système suivant :
10x1 − x2 + 2x3 =6
−x1 + 11x2 − x3 + 3x4 = 25
2x1 − x2 + 10x3 − x4 = −11
3x2 − x3 + 8x4 = 15
1. Séparons la matrice A en D et R, et appliquons l’itération de Jacobi.
2. Continuons les itérations jusqu’à obtenir une convergence satisfaisante.
3.4.3 Programme MATLAB
143 function x = jacobiMethod (A , b , tol , maxIter
)
144 D = diag ( diag ( A ) ) ;
145 R = A - D;
146 x = zeros ( size ( b ) ) ;
147
148 for k = 1: maxIter
149 x_new = D \ ( b - R * x ) ;
150 if norm ( x_new - x , inf ) < tol
151 x = x_new ;
152 return ;
153 end
154 x = x_new ;
155 end
156 end
157
158 % Exemple d ' utilisation
159 A = [10 , -1 , 2 , 0; -1 , 11 , -1 , 3; 2 , -1 , 10 ,
-1; 0 , 3 , -1 , 8];
160 b = [6; 25; -11; 15];
161 x = jacobiMethod (A , b , 1e -5 , 100) ;
162 disp ( ' Solution : ') ;
163 disp ( x ) ;
33
3.4. MÉTHODE DE JACOBI
164 function y = jc7 (A ,b ,x , tol )
165 D = diag ( diag ( A ) ) ;
166 L = tril (A , -1) ;
167 U = triu (A ,1) ;
168 T = inv ( D ) *( -L - U ) ;
169 c = inv ( D ) * b ;
170 it =0;
171 while norm (x - T *x -c , inf ) > tol
172 x=T*x+c;
173 it = it +1
174 end
175 y=x;
176 end
177 function y = jjc7 (A ,b ,x , tol )
178 n = size (A ,1) ;
179 it =0;
180 while norm ( A *x -b , inf ) > tol
181 x_old = x ;
182 for i =1: n
183 sum =0;
184 for j =1: n
185
186 sum = sum + A (i , j ) * x_old ( j ) ;
187
188 end
189 x ( i ) =1/( A (i , i ) ) *( b ( i ) - sum + A (i , i ) * x_old ( i ) ) ;
190 end
191 if norm (x - x_old , inf ) < tol
192 break
193 end
194 it = it +1;
195 end
196 y=x;
197 end
34
3.5. MÉTHODE DE GAUSS-SEIDEL
3.4.4 Exercices avec Solutions
Exercice 1 : Appliquez la méthode de Jacobi au système suivant :
5x1 − 2x2 = 12
−2x1 + 3x2 = −8
Solution : x1 ≈ 2.4, x2 ≈ −1.6.
Exercice 2 : Résolvez avec la méthode de Jacobi :
4x1 − x2 + x3 = 3
2x1 + 5x2 + 2x3 = 15
x1 + 2x2 + 3x3 = 10
Solution : x1 ≈ 1, x2 ≈ 2, x3 ≈ 3.
3.5 Méthode de Gauss-Seidel
3.5.1 Théorie et Principe
La méthode de Gauss-Seidel est une amélioration de la méthode de Ja-
cobi pour résoudre les systèmes d’équations linéaires. Comme la méthode de
Jacobi, elle est itérative et bien adaptée aux matrices diagonalement domi-
nantes. La différence principale réside dans le fait que la méthode de Gauss-
Seidel utilise les dernières valeurs mises à jour des inconnues dès qu’elles sont
disponibles, ce qui accélère souvent la convergence.
Pour un système Ax = b, la méthode de Gauss-Seidel réarrange chaque
équation pour isoler une inconnue et utilise les valeurs les plus récentes des
autres inconnues pour calculer la nouvelle valeur de l’inconnue isolée.
Le processus itératif se déroule comme suit :
1. Diviser A en D (partie diagonale), L (partie triangulaire inférieure) et U
(partie triangulaire supérieure).
2. Réarranger Ax = b en (L + D)x = b − U x.
3. À chaque itération k, résoudre x(k) en utilisant x(k−1) pour les termes de
U x et les valeurs déjà calculées de x(k) pour les termes de (L + D)x.
35
3.5. MÉTHODE DE GAUSS-SEIDEL
3.5.2 Exemple Résolu
Considérons le même système d’équations que pour la méthode de Jacobi :
10x + 2y − z = 6
3x + 8y + 2z = 25
−x + 4y + 10z = 26
On réarrange chaque équation pour isoler x, y, et z, et on utilise la
méthode de Gauss-Seidel pour itérer.
3.5.3 Programme MATLAB
198 function x = gaussSeidelMethod (A , b , x0 , tol
, maxIter )
199 n = length ( b ) ;
200 x = x0 ;
201 for k = 1: maxIter
202 x_old = x ;
203 for i = 1: n
204 sigma = 0;
205 for j = 1: n
206 if j ~= i
207 sigma = sigma + A (i , j ) * x ( j ) ;
208 end
209 end
210 x ( i ) = ( b ( i ) - sigma ) / A (i , i ) ;
211 end
212 if norm ( x - x_old , inf ) < tol
213 break ;
214 end
215 end
216 end
217
218 % Exemple d ' utilisation
219 A = [10 , 2 , -1; 3 , 8 , 2; -1 , 4 , 10];
220 b = [6; 25; 26];
36
3.5. MÉTHODE DE GAUSS-SEIDEL
221 x0 = [0; 0; 0];
222 x = gaussSeidelMethod (A , b , x0 , 1e -5 , 100) ;
223 disp ( ' Solution : ') ;
224 disp ( x ) ;
225 function y = jcc7 (A ,b ,x , tol )
226 D = diag ( diag ( A ) ) ;
227 L = tril (A , -1) ;
228 U = triu (A ,1) ;
229 T = inv ( D + L ) *( - U ) ;
230 c = inv ( D + L ) * b ;
231 it =0;
232 while norm (x - T *x -c , inf ) > tol
233 x=T*x+c;
234 it = it +1
235 end
236 y=x;
237 end
238 function y = gs7 (A ,b ,x , tol )
239 n = length ( b ) ;
240 it =0;
241 while norm ( A *x -b , inf ) > tol
242 x_old = x ;
243 for i =1: n
244 sum1 =0;
245 for j =1: i -1
246 sum1 = sum1 + A (i , j ) * x ( j ) ;
247 end
248 sum2 =0;
249 for j = i +1: n
250 sum2 = sum2 + A (i , j ) * x_old ( j ) ;
251 end
252 x ( i ) =( b ( i ) - sum1 - sum2 ) / A (i , i ) ;
253 end
254 if norm (x - x_old , inf ) < tol
37
3.5. MÉTHODE DE GAUSS-SEIDEL
255 break
256 end
257 it = it +1
258 end
259 y=x;
260 end
3.5.4 Exercices avec Solutions
Exercice 1 : Utilisez la méthode de Gauss-Seidel pour résoudre le système
suivant :
5x + 2y = 12
3x + 6y = 15
Solution attendue : x = 1.8, y = 2.1.
Exercice 2 : Appliquez la méthode de Gauss-Seidel au système suivant :
4x + y − z = 7
2x + 5y = 4
x + 3y + 4z = 10
Solution attendue : x = 1, y = 0, z = 3.
38
Bibliographie
[1] Mario Ahues, Alain Largillier, : Calcul Scientifique, Polycopié de
cours, Univ Jean Monnet St-Étienne.
[2] Walter Gautschi, : Numerical Analysis, Springer, New York, 2012.
[3] L. F. Shampine, R. C. Allen, Jr., S. Pruess, : Fundamentals of
Numerical Computing, JOHN WILEY and SONS, New York, 1997.
[4] A. Zygmund, Trigonometric Series, Vol.1, Second Edition, The Univer-
sity Press, Cambridge, 1959.
[5] Alfio Quarteroni, Fausto Saleri, Paola Gervasio : Calcul
Scientifique, Springer-Verlag, Italia, 2008.
[6] Serge Nicaise : Analyse Numérique et Equations aux Dérivées Par-
tielles, Dunod, Paris, 2000.
[7] J. C. Butcher : Numerical Methods for Ordinary Differential Equa-
tions, John Wiley and sons, Chichester, 2008.
[8] Germund Dahlquist, Ake Bjork : Numerical Methods, Dover pu-
blication, New york, 1974.
[9] [Link]/products/matlab/
39