Académique Documents
Professionnel Documents
Culture Documents
Chapitre I : Introduction
1. Un peu d’histoire
2. Application
1. Définition
2. Conditionnement de l’algorithme
3. Conditionnement d’une matrice
1. Algorithme
2. Méthode de Gauss
3. Méthode de LU
4. Méthode de Jordan
5. Méthode de Cholesky
1. Définition
2. Exemple
3. Exercice : la confection
4. Solution Excel
1. Principe
2. Décomposition de la matrice A
3. Méthode de Jacobi
4. Méthode de Gauss-Seidel
5. Méthode de relaxation
Chapitre VII : Optimisation monodimensionnelle, Méthode
dichotomique
1. Méthode dichotomique
2. Méthode du nombre d’or
2. Un peu d’histoire
Nous devons, en grande partie, l’existence de l’optimisation par Taylor, Newton,
Lagrange et Cauchy qui ont élaboré les bases des développements limités. Les
méthodes d’optimisation des équations différentielles ont été réalisées par les
contributions de Newton et Leibnitz. Cauchy fut le premier à mettre en uvre une
méthode d’optimisation, méthode du pas de descente, pour la résolution de
problème sans contrainte. Depuis ces considérables contributions, il y a eu de peu
d’avancé. Il faut dire qu’à l’époque les mathématiciens et les ingénieurs
calculaient à la main.
3. Application
Les applications sont nombreuses et multiples. Les ingénieurs ont même su faire
des émules au sein de la communauté économique. Nous pouvons toutefois citer
quelques exemples où sont employés les techniques d’optimisation :
Viens ensuite le domaine de la programmation non linéaire qui estime des systèmes
d’équations non linaires définies continues et dérivables. D’énormes progrès sont
encore à faire dans la programmation non linéaire. En effet, nous n’estimons que les
systèmes d’environ une dizaine de variables. Les algorithmes convergent vers un
optima local et non vers des optimums globaux.
2. Définition
L’optimisation est l’étude des méthodes qui permet d’estimer numériquement des
variables d’une équation ou d’un système d’équation. Un problème d’optimisation sous
contrainte peut être résumé de la façon suivante :
En résumé :
3. Conditionnement de l’algorithme
L’analyse numérique d’un problème passe obligatoirement vers un conditionnement de
l’algorithme afin de minimiser les erreurs d’arrondi pratiquées par le calculateur. Un
algorithme pour un problème d’approximation de valeurs discrètes ou formulé en
dimension fini, peut être écrit pour obtenir une solution de manière directe ou de
manière itérative. Un algorithme direct donne la solution du problème en nombre de
séquence de calcul fini. Il n’y a donc pas d’erreur de méthode, par contre les erreurs
d’arrondi sont présentes. Un algorithme itératif estime une solution par une suite
d’approximations successives qui convergent vers la solution. Les différentes sources
d’erreur possible sont les suivantes :
Les calculs subissent des erreurs d’arrondi d’une part à cause du conditionnement de
l’algorithme et d’autre part à cause de l’ordinateur. Les erreurs d’arrondi relatives,
comme dans le cas d’une multiplication ou d’une division, s’additionnent. Par contre,
dans une addition ou une soustraction se sont les erreurs d’arrondi absolues qui
s’ajoutent.
Un algorithme mal choisi ou mal conditionné finit par donné un résultat loin de la
solution à cause des accumulations d’erreurs.
Opter pour l’écriture de fonction arithmétique et algébrique peut s’avérer positif dans
l’obtention du résultat estimé. Par exemple la multiplication et la division scolaire
produit moins d’erreurs d’arrondi que celles de la machine. De même les racine carré
peuvent être réécrite sous la forme taylorienne.
Par contre si on introduit une perturbation dans la matrice nous obtenons alors :
La qualité des données issues d’une acquisition est tributaire des différentes
perturbations que peuvent subir les relevés. Ainsi on opte généralement vers une
démarche statistique (plusieurs série de mesures) pour corroborer une estimation.
L’exemple précèdent, nous montre effectivement que de faibles variations sur les
données conduisent à de fortes variations sur le résultat.
Chapitre III
1. Méthodes directes des systèmes linéaires sans contrainte
Dans cette partie nous ne détaillerons pas les méthodes classiques de résolution d’un
système linaire du type avec matrice carré et qui existe.
est inversible et
2. Algorithme
Pour de plus amples informations, nous invitons le lecteur à se référer aux ouvrages
mathématiques relatant les techniques suivantes :
3. Méthode de Gauss
La méthode de Gauss, communément appelé procédé d’élimination de Gauss, qui
consiste à transformer la matrice en une matrice triangulaire supérieure. Cette
méthode consiste à faire une composition linéaire des lignes. C’est une méthode qui
comporte certain inconvénient en terne de précision puisqu’il effectue à chaque
opération des divisions.
4. Méthode de LU
5. Méthode de Jordan
La méthode de Jordan qui est le même principe que la méthode de Gauss mais à une
étape donnée on effectue des combinaisons linéaire des lignes pour aboutir à une
matrice diagonale.
6. Méthode de Cholesky
et .
Algorithme de Cholesky
a) Calcul de la matrice :
, et
pour obtenir :
avec et
Dans nous définissons donc le produit scalaire des vecteurs et comme étant
et
avec :
et
bien entendu :
et
Remarque :
et
il existe :
et
Soit
D’où :
Comme cela doit être vrai , il faut alors que . Cette équation
est dite équation normale du problème d’approximation des moindres carrés.
donc et comme .
La question que nous sommes en droit de nous poser est : est-ce que le vecteur
estimé qui est la projection orthogonal de sur est la plus petite
approximation des moindres carrés ? Oui jusqu'à preuve du contraire. En conclusion
.
On retrouve l’Inégalité de Schwarz où donc :
et .
donc
Il va sans dire que les moindre carrés peuvent également résoudre tous types de
matrice puisque condition le système pour créer une matrice carré et
inversible. La matrice est définie dans la zone B13:L23 et la matrice est
définie dans la zone Q13 :Q23. Ensuite sélectionnez la zone L27:L38 pour y
PRODUITMAT(INVERSEMAT(PRODUITMAT(TRANSPOSE(B13:L23),B13:L23)),
PRODUITMAT(TRANSPOSE(B13:L23),Q13:Q23))
Validez par les touches CTRL SHIFT ENTER
Chapitre V
1. Optimisation des systèmes linéaires avec contraintes
Lorsque nous avons un système linéaire avec contraintes à optimiser bien souvent, et
de manière quasi immédiate, nous recourons à la méthode du simplexe. Cette
méthode a vu le jour durant la seconde guerre mondiale par Georges Dantzig au sein
de l’U.S Air Force, mais pour des raisons évidentes, il ne publia ses travaux qu’en
1947. Le point d’origine du simplexe est la méthode de Gauss, où Dantzig y applique
une stratégie de pivot assez particulière.
2. Définition
La première forme qu’on extrait d’un problème est la forme canonique, pratique pour
les résolution graphique, qui se présente :
De là en découle la forme standard, mieux adapté pour les algorithmes, comme suit :
L’algorithme du simplexe recherche les points extrêmes du polyèdre formé par les
contraintes. Le système à résoudre est composé de variables et de contraintes.
Nous supposons plus de contraintes que d’inconnues et la matrice n’a pas de
colonne nulle.
3. Exemple
Soit le système suivant représenté sous la forme canonique suivante :
1er étape :
En règle générale on choisit la variable entrante celle dont le coût marginale est la
plus élevée, dans notre exemple c’est .
2ième étape :
On choisit le plus petit des (pivot) qui est donc nous sortons
3ième étape :
Pour les autres lignes nous appliquons le formule suivante appelée pivotage :
Le gain Z-12 est obtenue en calculant le critère de maximisation par les valeurs
de la base
4ième étape :
C’est la dernière étape car il n’y a plus de coût marginaux positifs ainsi la solution
du problème est :
4. Exercice : la confection
Une entreprise de confection dispose de 4 ateliers, coupe, couture, broderie,
emballage et disposant respectivement de temps de disponibilité propre de
21000mn, 33000mn, 50000mn et 25000mn.
5. Solution Excel
Le solveur se trouve dans le menu Outils comme indiqué dans la figure ci-après :
Apparaît ensuite la boîte de dialogue du solveur, où nous nous devons de spécifier
la cellule cible munie de ses contraintes de coût (maximisation ou minimisation),
voire même tributaire d’une valeur.
Viens alors la définition des cellules variables le solveur y rangera ses résultats de
la solution optimale du problème. Les contraintes sont définies une par une selon
l’exigence du problème. Il suffit ensuite de reporter chaque champ dans les
paramètres du solveur.
Les options du solveur permettent d'affiner le processus itératif.
Chapitre VI
1. Méthodes itératives des systèmes linéaires sans contrainte
La résolution de système linéaire par des méthodes directes dépendant en particulier
de la capacité du calculateur. Au delà d’un certain nombre d’équation à un certain
nombre d’inconnues défini par exemple par un critère d’un système temps réel, les
méthodes directes deviennent inappropriées au processus en cours (dépassement de
capacité mémoire, temps de résolution élevé). Nous avons alors recours aux
méthodes itératives.
2. Principe
où et
Nous ne peut savoir si le vecteur estimé se dirige vers la solution optimale si un critère
de convergence n’est pas définie. Pour cela vecteur d’erreur est établie par la
relation :
donc :
Autrement dit la converge existe si l’erreur tend vers lorsqu’on se rapproche de la
solution optimale :
si
3. Décomposition de la matrice A
a. Méthode de Jacobi
où et
donc :
b. Méthode de Gauss-Seidel
où et
donc :
c. Méthode de relaxation
où et
donc :
4. Méthode de Jacobi
Principe
Il est inutile de rappeler que les pivots doivent être non nuls, dans le cas contraire
il suffit d’intervertir les lignes pour remplir la condition nécessaire.
Condition d arrêt
Ils existent plusieurs conditions pour arrêter l’itération. Elles sont toutes basées sur le
vecteur d’erreur qui doit atteindre un critère prédéfini et tendant vers une valeur
proche de zéro.
Une autre technique consiste à utiliser une autre test d’arrêt basé sur :
Convergence
La convergence est vrai lorsque le résidu ou la précision est toujours inférieur à
Algorithme de Jacobi
Créer avec .
Créer avec
Pour ;
Pour ;
Créer avec
Pour ;
Pour ;
Tant que ou ou et .
Calculer
Calculer
Fin de Tant que
5. Méthode de Gauss-Seidel
Principe
soit :
Même remarque : les pivots doivent être non nuls, dans le cas contraire il suffit
d’intervertir les lignes pour remplir la condition nécessaire.
Condition d arrêt
Nous les rappelons, les critères d’arrêt sont identiques à ceux utilisés dans la méthode
de Jacobi. On note un vecteur résidu tel que : de sorte que le critère
d’arrêt soit :
Une autre technique consiste à utiliser une autre test d’arrêt basé sur :
Algorithme de Gauss-Seidel
Créer avec .
Créer avec
Pour ;
Pour ;
Créer avec
Pour ;
Pour ;
Tant que ou ou et .
Calculer
Calculer
Fin de Tant que
// Initialisation
A=[-16 6 -2 -5;
3 10 -5 1;
-4 1 18 2;
1 2 2 -14];
B=[-19;
1;
12;
1];
X0=[0.1;
0.1;
0.1;
0.1];
Xk=X0;
iter=0;
max_it=500;
tol = 0.0000000000001;
// Conditionnement des matrices D, L et U
n=4;
for i=1:n,
for j=1:n,
I(i,i)=1;
D(i,i)=A(i,i);
if i>j then, L(i,j)=-A(i,j);,
else L(i,j)=0;, end,
if i<j then, U(i,j)=-A(i,j);,
else U(i,j)=0;, end ;
end ; end;
// première itération
// GAUSS-SEIDEL
Xkplus1 = (
inv(D-L)*U * Xk + inv(D-L)* B)
// itérations suivantes
while norm(Xkplus1 - Xk)/norm(Xk) > tol,
iter=iter+1;
Xk = Xkplus1;
// GAUSS-SEIDEL
Xkplus1 = ( inv(D-L) * U * Xk + inv(D-L)* B);
end;
// Solution obtenue
iter
Xkplus1
6. Méthode de relaxation
Principe
Même remarque : les pivots doivent être non nuls, dans le cas contraire il suffit
d’intervertir les lignes pour remplir la condition nécessaire.
Condition d arrêt
Nous les rappelons, les critères d’arrêt sont identiques à ceux utilisés dans la méthode
de Jacobi. On note un vecteur résidu tel que : de sorte que le critère
d’arrêt soit :
Une autre technique consiste à utiliser une autre test d’arrêt basé sur :
Lorsque l’optimum est voisin de 0, on se contante alors du critère d’arrêt suivant :
Convergence
Algorithme de relaxation
Créer avec .
Créer avec
Pour ;
Pour ;
Créer avec
Pour ;
Pour ;
Tant que ou ou et .
Calculer
Calculer
Calculer
Ou bien comme souvent présenté dans les littératures
Calculer
Fin de Tant que
// THEOREME
// Pour toute matrice A, une condition necessaire
// de convergence
// est que 0 < w < 2.
// première itération
// RELAXATION
w=1.1
Xkplus1 = ( inv(D-w*L) * ((1-w) * D + w*U) * Xk + inv(D-w*L)*
w*B);
// itérations suivantes
while norm(Xkplus1 - Xk)/norm(Xk) > tol,
iter=iter+1;
Xk = Xkplus1;
// RELAXATION
Xkplus1 = ( inv(D-w*L) * ((1-w) * D + w*U) * Xk + inv(D-w*L)*
w*B);
end;
// Solution obtenue
iter
Xkplus1
Chapitre VII
1. Optimisation monodimensionnelle, Méthode dichotomique
Le procédé rapide à implémenter et efficace pour l’estimation d’une racine d’une
fonction est la dichotomie. Dans un intervalle déterminé, la dichotomie trouve une
solution qui satisfait un critère initialement déterminé.
// itérations suivantes
while abs(xb - xa) > 2 * eps,
iter=iter+1;
xc = 0.5 * (xa + xb);
yc = f(xc);
if (yc*ya) < 0 then, xb = xc;,
else ya = yc; xa = xc;, end,
end;
// Solution obtenue
iter
xc
// itérations suivantes
while abs(xb - xa) > 2 * eps,
iter=iter+1;
xc = 0.5 * (xa + xb)- s;
xd = xc + 2 * s;
yc = f(xc);
yd = f(xd);
if yc <= yd then, xb = xd;,
else xa = xc;, end,
end;
// Solution obtenue
iter
xc
Le nombre d’or n’est pas issu d’une formule ésotérique mais bien d’une relation
géométrique permettant d’obtenir un rapport harmonieux dans les arts : peinture
sculpture musique, … Il a fait son apparition dans la construction des pyramides
en Egypte et Grèce où le Parthénon d’Athènes construit au cinquième siècle avant
l'an zéro est tel que la relation de ses dimensions est le nombre d’or. D’après
Euclide, prenons un segment de droite où nous positionnons un point situé
entre et de sorte que :
En remplaçant , on obtient :
dichotomique) en attribuant à si
si
Ainsi la relation qui lie les variables et symétrique par rapport au centre est :
et
nombre d’or .
Condition d arrêt
Efficacité de l algorithme
Hormis le fait que l algorithme puisse trouver une solution en peu d itérations
et également qu il ne soit pas tributaire du nombre d itérations, un
algorithme est robuste lorsqu il a une bonne convergence asymptotique, c est
à dire lorsque le vecteur estimé est proche du vecteur à près, que nous
écrivons également sous la forme suivante :
a) Méthode de Newton.
De façon plus condensé :
avec
ou
Algorithme de Newton.
Tant que .
Mettre à jour .
[y1,y2,y3] = f(Xk);
y =[y1;y2;y3];
// Calcul de la jacobienne
[dy1_x1,dy1_x2,dy2_x1,dy2_x2,dy3_x1,dy3_x2]= df(Xk);
J = [dy1_x1,dy1_x2;
dy2_x1,dy2_x2;
dy3_x1,dy3_x2];
// resolution du système J(x).delta(x) = -R(x)
deltax = - J \ y;
Xkplus1 = Xk + deltax;
end;
// Solution obtenue
iter
Xkplus1
b) Méthode de Quasi-Newton.
La méthode de Quasi-Newton apporte une légère modification à la méthode
de Newton en ne réévaluant que tous les itérations, où est déterminé
par le programmeur. Il y a certes une diminution de la quantité d opérations
par contre on perd la convergence quadratique. Nous avons constaté que par
rapport à la méthode de Newton, il fallait deux fois plus d itérations pour en
arriver au même résultat.
c) Méthode de Newton-Raphson.
Cette méthode exige que soit deux fois dérivable car elle utilise
Tant que .
Caculer
Mettre à jour .
satisfasse la condition .
avec
3. Méthode de Minimisation.
Le principe des méthodes de Minimisation est basé sur la recherche d’un minimum
absolu de la fonctionnelle , où , au vecteur estimé
qui est solution du système .
Figure 1 : Vecteur
On en déduit le gradient de R :
4. Méthode du Gradient.
Le pas de descente est calculé de telle sorte qu’il minimise la fonctionnelle, dans
le cas pratique, il est rarement calculer, on prend généralement un pas de
Tant que .
La direction est
Mettre à jour .
Remarque
// Solution obtenue
iter
Xkplus1
ou :
avec :
, et
a est une matrice carré et symétrique (propriété des coniques). Nous remarquons
quelques propriétés intéressantes des fonctions Quadratique :
Les axes de symétrie ont pour directions les vecteurs propres de la matrice a.
Mettre à jour .
Tant que
Calculer la descente , où
Mettre à jour .
La convergence est beaucoup plus rapide pour la méthode de Polak et Ribière que la
méthode de Fletcher et Reeves.