0% ont trouvé ce document utile (0 vote)
44 vues39 pages

Exercices d'Analyse Numérique et Optimisation

Transféré par

gabriel.falcoz
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
44 vues39 pages

Exercices d'Analyse Numérique et Optimisation

Transféré par

gabriel.falcoz
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ecole des Mines de Nancy

Livret d’exercices, formulaires


Analyse Numérique et Optimisation

Cours Tronc Commun Scientifique TCSS5AA


Année universitaire 2024-2025 - Semestre S5

Cours dispensé par Yannick PRIVAT & Dominik STANTEJSKY

Dép. Génie Industriel et Mathématiques Appliquées


Ecole des Mines de Nancy - Campus Artem
54 042 Nancy Cedex
email : [Link]@[Link]
Table des matières

– ii –
Table des matières

Formulaire Matlab 1

Séance d’initiation au logiciel Matlab 5

I. Résolution d’équations et systèmes non linéaires 7


I.1 Quelques algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
I.2 Exercices du chapitre I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
I.3 TD1 : recherche de zéros de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

II. Optimisation sans contrainte et application à la méthode des moindres carrés 11


II.1 Exercices du chapitre II. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
II.2 TD2 : optimisation en dimension un, moindres carrés . . . . . . . . . . . . . . . . . . . . . . . 13

III. Interpolation et approximation polynomiale 15


III.1 Exercices du chapitre III. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
III.2 TD3 : interpolation et moindres carrés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

IV. Dérivation et intégration numérique 19


IV.1 Exercices du chapitre IV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
IV.2 TD4 : intégration numérique, méthode des différences finies . . . . . . . . . . . . . . . . . . 20

V. Équations différentielles - Aspects théoriques 21


V.1 Exercices du chapitre V. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
V.2 TD5 : résolution d’EDO en utilisant des boîtes noires . . . . . . . . . . . . . . . . . . . . . . . 22

VI. Équations différentielles - Aspects numériques 23


VI.1 Exercices du chapitre VI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
VI.2 TD6 : résolution numérique d’équations différentielles . . . . . . . . . . . . . . . . . . . . . . 25

VII. Résolution numérique de systèmes linéaires 27


VII.1 Exercices du chapitre VII. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
VII.2 TD7 : résolution des systèmes linéaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

VIII. Optimisation sous contraintes et optimisation numérique sans contrainte 31


VIII.1 Exercices du chapitre VIII. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
VIII.2 TD8 : optimisation sans contrainte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

IX. Algorithmes d’optimisation en toute dimension 33


IX.1 Exercices du chapitre IX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
IX.2 TD9 : optimisation numérique en dimension N . . . . . . . . . . . . . . . . . . . . . . . . . . 34

– iii –
Formulaire Matlab

Aide x=-1:0.05:1;
y1=exp(x);
– help fonction : Fournit des détails sur une fonction spé-
y2=exp(-x);
cifique.
plot(x,y1,’+-r’,x,y2,’:b’)
– helpwin : Ouvre une fenêtre avec des fonctions triées par
thème. – plot(x, y) : Crée un graphique en 2D
– helpdesk : Aide au format HTML avec exemples et algo- – figure : Ouverture d’une nouvelle fenêtre graphique
rithmes. – clf : Efface la figure courante,
– lookfor mot_clé : Liste les fonctions liées à un mot clé. – close all : Fermeture de toute les fenêtres graphiques,
– doc nom_fonction : Ouvre la documentation pour une – scatter(x, y) : Crée un nuage de points
fonction. – bar(x, y) : Crée un graphique à barres
– hist(data) : Crée un histogramme
– pie(data) : Crée un graphique en secteurs
Constantes Numériques
– subplot(rows, cols, index) : Crée un tracé de plu-
– i, j : Nombre complexe (i 2 = j 2 = −1) sieurs graphiques
– pi : Valeur de π – axis : Contrôle des axes
– eps : Précision relative en virgule flottante – xlabel(’texte’) : Ajoute une étiquette à l’axe des abs-
– realmin : Plus petit réel strictement positif cisses
– realmax : Plus grand réel codable – ylabel(’texte’) : Ajoute une étiquette à l’axe des ordon-
– Inf : Infinity (par exemple, résultat de 1/0) nées
– NaN : Not a Number (résultat de formes indéterminées – title(’texte’) : Ajoute un titre au graphique
comme 0/0, Inf − Inf, etc.) – legend(’legende1’, ’legende2’) : Ajoute une légende
au graphique
– grid on/off : Active/désactive la grille du graphique
Manipulation de Fichiers et Espace Mémoire
– hold on/off : Active/désactive la superposition de gra-
– cd chemin : Change le répertoire courant phiques
– pwd : Affiche le répertoire courant – saveas(fig, ’nom_fichier’, ’format’) : Sauvegarde
– ls ou dir : Liste les fichiers du répertoire courant un graphique dans un fichier
– delete fichier : Supprime un fichier – plot3 : Courbe en 3D
– mkdir nouveau_répertoire : Crée un nouveau réper- – polar : Courbe en polaire
toire – help matlab\graph2d : Liste des fonctions sur les graphes
– who, whos : Liste les variables en mémoire 2D
– clear variable : Supprime une variable et libère de la
mémoire Exemple de surface : [X,Y]=meshgrid(-8:0.5:8);
– clear : Efface toutes les variables Z=X.ˆ2+Y.ˆ2;
mesh(X,Y,−Z)
Commandes de Base – mesh : Maillage.
– surf : Surface colorée.
– clc : Efface la fenêtre de commande
– surfc : Idem avec contour dans le plan z = 0.
– clear : Efface les variables de l’espace de travail
– colorbar : Échelle des couleurs.
– load nom_fichier : Charge des données à partir d’un fi-
– colormap : Palette de couleurs.
chier
– shading interp : Interpolation (surface plus lisse).
– save nom_fichier : Sauvegarde les variables dans un fi-
– help matlab\graph3d : Liste des fonctions sur les graphes
chier
3D.
– disp(expression) : Affiche une expression dans la fenêtre
de commande Il existe aussi de nombreux autres types de graphiques, voir
– fprintf(format, variables) : Affiche du texte formaté help matlab\specgraph.
avec des variables
Traitement de Données
Création de Graphiques
– load nom_fichier : Charge des données à partir d’un fi-
Exemple de courbe : chier

–1–
Formulaire Matlab

– save nom_fichier : Sauvegarde les variables dans un fi- – Indexation logique : cet outil est très puissant, il permet de
chier désigner des éléments d’un tableau à partir d’un autre ta-
– length(data) : Retourne la longueur d’un vecteur bleau logique de même taille : si A et B sont deux matrices
– size(data) : Retourne la taille d’une matrice de même taille, A(B>0 désigne les éléments a i j de A tels
– mean(data) : Calcule la moyenne des éléments que b i j soit positif.
– std(data) : Calcule l’écart-type des éléments A(B>0) = 0 remplace ces éléments par zéro.
– max(data) : Trouve la valeur maximale V(∼ isfinite (V)) = [] supprime les éléments non fi-
– min(data) : Trouve la valeur minimale nis du vecteur V .
– sum(data) : Calcule la somme des éléments
; Opérations sur les lignes et les colonnes
Opérateurs Relationnels et Logiques – A(i, :) = [] : Suppression de la iième ligne de A.
– A = [A, C] : Ajout de la colonne C à droite de A.
– > : Supérieur – size(A) : Taille de A sous forme d’un vecteur [n m].
– >= : Supérieur ou égal – length(V) : Longueur d’un vecteur ligne ou colonne.
– < : Inférieur – A(:) : Transformation de A en un vecteur obtenu en juxta-
– <= : Inférieur ou égal posant ses colonnes.
– == : Égal – reshape(A, k, l) : Transforme une matrice de taille n ×
– ∼= : Différent
m en matrice de taille k × l .
– & : ET logique – triu, tril : Partie triangulaire supérieure, inférieure.
– | : OU logique
– ∼ : NON logique
– isinf(x) : Vrai si x est Inf ; Opérations sur les matrices
– isnan(x) : Vrai si x est NaN – A’ : Matrice adjointe.
– isfinite(x) : Faux si x est Inf ou NaN – A.’ : Matrice transposée.
– isempty(matrice) : Vrai pour les matrices vides – * : Multiplication matricielle.
– isprime(n) : Vrai pour les entiers premiers – ˆ : Puissance matricielle.
– isequal(A, B) : Vrai si les matrices A et B sont égales – expm : Exponentielle de matrice.
– any(V>0) : Vrai si au moins un élément de V est positif – x = A\y : Résolution du système linéaire Ax = y. NE PAS
– all(V>0) : Vrai si tous les éléments de V sont positifs utiliser l’inverse !
– logical(tableau) : Convertit un tableau numérique en
tableau logique
; Opérations sur les tableaux Les matrices peuvent
aussi être considérées comme un tableau de nombre et il
Matrices existe une liste d’opérations terme à terme :
– .* : Multiplication terme à terme.
; Définition d’une matrice - d’un vecteur
– ./ : Division terme à terme.
– A = [3 5 6; 1 2 8; 7 4 6] : Définition éléments par – .ˆ : Puissance terme à terme.
éléments. – exp : Exponentielle terme à terme.
– zeros(n, m) : Matrice nulle de taille n × m.
– eye(n) : Matrice identité de taille n.
; Matrices creuses Il existe une méthode spécifique
– ones(n, m) : Matrice de 1 de taille n × m.
pour le stockage des matrices contenant beaucoup d’élé-
– [A, B; C, D] : Matrice définie par blocs.
ments nuls (dites creuses), qui permet de gagner beaucoup
– repmat(A, n, m) : Matrice possédant n × m blocs A.
en temps de calcul et place mémoire ; voir help matlab
– diag(V, k) : Matrice carrée dont la kième diagonale est
sparfun.
égale au vecteur V .
– X = Xmin:pas:Xmax : Vecteur ligne à pas constant.
Chaîne de caractères
; Les indices Une chaîne de caractères se forme en insérant du texte
entre deux quotes : texte =’Ceci est du texte’. On ob-
– A(i,j) : Élément de ligne i et de colonne j .
tient la concaténation de deux chaînes de caractères à l’aide
– A(k) : Kième élément de A en les comptant par colonne.
de la fonction strcat 1
– sub2ind, ind2sub : Passage de l’indexation classique à
l’indexation par colonnes et réciproquement. – int2str(i) : Conversion d’un entier i en texte.
– A(:,j) : Jième colonne de A. – num2str(x, n) : Conversion d’un réel x en texte avec n
– A(:,[j1, j2]) : Colonnes j 1 et j 2 de A. chiffres.
– A(i,:) : Iième ligne de A. – disp(texte) : Affiche la chaîne de caractères texte dans
– A(i*ones(1, p), :) : p fois la i -ème ligne de A. l’espace de travail.
– A(i1:i2,j1:j2) : Bloc (a i j ) avec i 1 ≤ i ≤ i 2 et j 1 ≤ j ≤ j 2. – error(texte) : Affiche la chaîne texte et stoppe l’exécution
– V(end-3:end) : 4 derniers éléments du vecteur V . de la fonction en cours.

1. ‘str1 = ’Bonjour, ’; str2 = ’comment ça va ?’; concatenated_str = strcat(str1, str2);


2. function est un mot clé obligatoire, x et y sont les variables de sorties, r et theta sont les variables d’entrée, % est le
symbole pour une ligne de commentaires et ; permet d’éviter l’affichage des résultats intermédiaires. cartesien est le nom
de la fonction, il faut alors nommer le fichier cartesien.m

–2–
– while : Boucle répétée tant qu’une condition est vraie.
Programmation – end : Fin d’une boucle ou d’une instruction conditionnelle.
– break : Sortie prématurée d’une boucle.
– edit : lance l’éditeur de texte Matlab
– [Ctrl]+C : pour stopper l’exécution d’un programme, Attention : Il est bien plus rapide d’utiliser une écriture ma-
tricielle ou vectorielle plutôt que des boucles. Quand les boucles
Exemple : Fichier 2 cartesien.m sont inévitables, penser à allouer dès le début de l’espace mé-
function [x,y]=cartesien(r,theta); moire aux variables matricielles pour éviter la ré-allocation.
% Passage en coordonnées cartésiennes
x=r.*cos(theta); ; Fonctions utiles
y=r.*sin(theta);
Attention : L’un des avantages de Matlab est que la plupart de – tic, toc, cputime : Mesure du temps machine utilisé.
ses fonctions peuvent opérer directement sur les tableaux, il est – pause : Pause dans l’exécution d’une fonction.
fortement conseillé - quand c’est possible - de faire de même – input : Demande à l’utilisateur de rentrer la valeur d’une
pour ses propres fonctions (d’où l’emploi du .* plutôt que du variable.
*). – feval : Évalue une fonction dont le nom est une variable
L’appel de cette fonction est alors : d’entrée.
»[x0,y0]=cartesien(2,pi/4) – global : Définition de variable globale.
– nargin : Nombre de variables d’entrée lors de l’appel d’une
fonction.
; Boucles et tests – profile : Permet une étude fine de l’utilisation du temps
– if, elseif, else : Instructions conditionnelles. CPU et donc l’amélioration de ses fonctions.
– switch : Idem utilisé dans les situations où il y a beaucoup – flops : Compte le nombre d’opérations élémentaires effec-
de cas différents. tuées.
– for : Boucle répétée un nombre connu de fois. – ... : Pour couper les lignes trop longues.

L’un des avantages de Matlab est que les principales fonctions mathématiques et d’analyse numérique sont déjà program-
mées, il est donc impossible d’en donner une liste exhaustive ici.
help matlab/elfun : liste des fonctions usuelles,
help matlab/elmat : liste des fonctions matricielles élémentaires,
help matlab/matfun : liste des fonctions d’analyse linéaire,
help matlab/datafun : liste des fonctions d’analyse de données et de transformée de Fourier,
help matlab/polyfun : liste des fonctions polynomiales et d’interpolation,
help matlab/funfun : liste des fonctions de recherche de zéros et de minimum, de résolution d’équations différentielles
et d’intégration. . .

–3–
Formulaire Matlab

–4–
Séance d’initiation au logiciel Matlab

1. Découverte de l’espace de travail


Tapez quelques opérations dans la fenêtre de commande. N’hésitez pas à utiliser l’aide-mémoire
bleu ou l’aide en ligne de Matlab.

2. Aide
(i) Que fait la fonction Matlab fminbnd ?
(ii) Comment résoudre une équation différentielle à l’aide de Matlab ?
(iii) Comment calculer numériquement une intégrale avec Matlab ? Une intégrale double ?

3. Les matrices
8 1 6
 

(i) Définir la matrice A suivante : A = 3 5 7.


4 9 2
(ii) Extraire l’élément a 22 , la première ligne, la deuxième colonne.
1
 
¡ ¢
(iii) Définir les vecteurs suivants : V 1 = 0 et V 2 = 1 2 3 .
1
Que vaut le produit de A avec V 1 ? Avec V 2 ?
(iv) Que fait Matlab avec les expressions V1*V2, V2*V1, V1.*V2 ?
(v) Définir la matrice 8 × 8 suivante, en utilisant la fonction diag :
 
2 1
1 2 . . .
 

 
B =

 . .
.. .. .. . 
.

..
 
. 2 1
 

1 2

Résoudre le système B x = y où y > = 9 9 · · · 9 .


¡ ¢

4. Les fonctions et graphiques


(i) Tracer la courbe représentative de la fonction f : x 7→ arcsin(cos x) pour −4π ≤ x ≤ 4π.
Indication : on pourra définir la fonction par la commande f=@(x)asin(cos(x)) et utiliser soit plot,
soit fplot.
(ii) Tracer la courbe d’équations paramétriques :
½
x(t ) = cos(t ) + t sin(t )
avec − 15 ≤ t ≤ 15.
y(t ) = sin(t ) − t cos(t )

Modifier l’aspect de la figure pour que l’axe des abscisses et l’axe des ordonnées aient la
même échelle.

–5–
Séance d’initiation au logiciel Matlab

(iii) Tracer la surface d’équation z = sin(x + sin y) avec −3 ≤ x ≤ 3 et −3 ≤ y ≤ 3.


(iv) Une autre façon de représenter la surface précédente : tracer dans le carré [−3,3]2 les lignes
de niveau ainsi que le champ de vecteurs du gradient de cette fonction.
Fonctions utiles : gradient, contour, quiver

Règles importantes à observer pour la question à venir. Lorsque vous créez des fonctions Matlab
(commande edit dans la fenêtre principale), assurez-vous de respecter les règles suivantes :
• Spécifiez le bon chemin d’accès au dossier contenant vos fonctions.
• Chaque fichier *.m doit contenir une seule fonction.
• Le nom du fichier doit correspondre exactement au nom de la fonction. Par exemple, si votre
fonction s’appelle toto, le fichier doit être nommé toto.m.

5. Programmation
(i) Écrire une fonction triangle.m qui, étant donné trois nombres a, b et c, renvoie le périmètre
et l’aire du triangle dont la longueur des cotés est égale à a, b et c. Quelle condition doivent
satisfaire a, b, c ?
Indication : on rappelle que si P est le périmètre du triangle, alors sa surface est donné par :

1p
S= P (P − 2a)(P − 2b)(P − 2c). (formule de Héron)
4

(ii) Modifier cette fonction en une fonction triangle2.m pour la rendre "vectorielle", c’est-à-
dire qu’elle puisse prendre non pas trois réels en entrée mais trois vecteurs de réels de même
dimension A, B et C et calculer l’aire et le périmètre de tous les triangles A(i )B (i )C (i ).
(iii) Que calcule Matlab avec les deux fonctions suivantes ?

1 function [ a1 , t1 ]= s u i t e 1 (n)
2 tic ; 1 function [ a2 , t2 ]= s u i t e 2 (n)
3 a=zeros ( 1 ,n) ; a ( 1 ) =1; a ( 2 ) =1; 2 tic ;
4 f o r k =3:n 3 A=[1 1;1 0 ] ;
5 a ( k ) =a ( k −1)+a ( k −2) ; 4 X=A^(n−2) * [ 1 ; 1 ] ;
6 end 5 a2=X( 1 ) ;
7 a1=a (n) ; 6 t2=toc ;
8 t1=toc ;

Comparer les temps de calcul.

6. Fonction Matlab
(i) (fonction fminsearch) Quel est le minimum de la fonction p : x 7→ 21 x 2 − 14 ln x ?
(ii) (fonction quad) Donner une valeur approchée de l’intégrale suivante :
1 e −x
Z
I= . d x.
0 1 + x2
£π π
¤
(iii) (fonction fzero) Cherchez la solution de l’équation suivante dans 4,2 :

cos x = e −x .

–6–
I.
Résolution d’équations et systèmes non linéaires

I.1 Quelques algorithmes


Méthode de dichotomie (bisection algorithm)
:::::::::::::::::::::::::::::::::::::::::::::::::::

1 function [ s u i t e _ v a l ] = bisectio n ( f , a , b , eps )


2 % f e s t l a fonction dont on cherche un zero entre a et b ,
3 % eps e s t l a precision voulue
4 f a = f ( a ) ; fb = f (b) ;
5 c = ( b+a ) / 2 ;
6 n =1;
7 while abs ( a−b) > eps ,
8 c = ( b+a ) / 2 ;
9 fc = f ( c ) ;
10 i f sign ( f c ) ~= sign ( fb )
11 a=c ;
12 fa = fc ;
13 else
14 b=c ;
15 fb = f c ;
16 end
17 s u i t e _ v a l (n) = c ;
18 n = n+1;
19 end

Pour résoudre numériquement l’équation x − 0.2 sin x − 0.5 = 0, on écrira dans la fenêtre de commande :

1 >> [ s u i t e _ v a l ] = bisecti on (@( x ) x −0.2 * sin ( x ) −0.5 ,0 , pi , 1 E−6)

Méthode de la sécante
::::::::::::::::::::::::::

1 function [ x ] = secant ( f , x0 , x1 , eps , n_max_iter )


2 f0 = f ( x0 ) ;
3 d i f f = x1−x0 ;
4 n = 1;
5 x (n) =x1 ;
6 while ( ( abs ( d i f f / x1 ) > eps ) & (n <= n_max_iter ) )
7 f1 = f ( x1 ) ;
8 d i f f = ( x1−x0 ) * f1 / ( f1 − f0 ) ;
9 x0 = x1 ;
10 f0 = f1 ;
11 x1 = x1 − d i f f ;
12 n = n+1;
13 x (n) = x1 ;
14 end

–7–
CHAPITRE I. RÉSOLUTION D’ÉQUATIONS ET SYSTÈMES NON LINÉAIRES

I.2 Exercices du chapitre I


p
Ex. I.1 On cherche à approcher 2. Étudier la convergence des méthodes de point fixe suivantes :
µ ¶ µ ¶
2 1 2 2 1 2
x n+1 = , x n+1 = xn + , x n+1 = 2x n − , x n+1 = 2x n + .
xn 2 xn xn 3 xn

Appliquer des méthodes d’accélération de la convergence pour rendre ces algorithmes conver-
gents quand ils ne convergent pas ou plus rapides quand ils convergent.
Ex. I.2 Pour les fonctions suivantes, trouver un algorithme de point fixe, autre que la méthode de Newton,
qui converge vers le plus petit zéro positif de
(i) x 3 − x − 1 = 0
(ii) x − tan x = 0
(iii) e −x − cos x = 0.
Ex. I.3 Trouver, grâce à la fonction roots de Matlab les racines des polynômes

P A = x 7 − 28x 6 + 322x 5 − 1960x 4 + 6769x 3 − Ax 2 + 13068x − 5040

d’abord avec A = 13132, puis A = 13133. Que constate-t-on ?


Ex. I.4 En utilisant la formule de Taylor, imaginer un algorithme modifiant la méthode de Newton et as-
surant une convergence quadratique dans le cas d’une racine multiple de f .
Indication : on pourra chercher une formule analogue à la formule de Newton, mais qui s’écrirait

f (x n )
x n+1 = x n − α (I.1)
f 0 (x n )

avec un α à déterminer.
Ex. I.5 (En lien avec la section I.2.2) Vérifier que la suite de matrices B i définies par

(δF i − B i .δX i ) δX i
N
B i +1 = B i + (I.2)
δX i · δX i

vérifie bien la condition


B i (X i − X i −1 ) = F (X i ) − F (X i −1 ) . (I.3)

–8–
I.3. TD1 : RECHERCHE DE ZÉROS DE FONCTIONS

I.3 TD1 : recherche de zéros de fonctions


Partie corrigée

TD I.1 Convergence de méthodes de points fixes. On cherche à résoudre l’équation

x 3 − 3x 2 + x + 2 = 0.

On envisage deux méthodes numériques : x n+1 = f 1 (x n ) et x n+1 = f 2 (x n ) avec


µ ¶
3 2 1 2 2
f 1 (x) = −x + 3x − 2 et f 2 (x) = x +1+ .
3 x

(i) t Montrer que x = 2 est un point fixe de ces méthodes puis étudier la convergence de chaque
méthode.
(ii) t Si la méthode est convergente, déterminer l’ordre de convergence.
(iii) m Retrouver numériquement l’ordre de convergence de la méthode.

TD I.2 Recherche d’un zéro d’une fonction d’une variable. On souhaite résoudre l’équation non linéaire
f (x) = 0 sur ]0; +∞], où f est définie par

f (x) := x 2 − sin x. (I.4)

(i) t Déterminer une approximation du zéro strictement positif de f à 10−1 près.


(ii) m et t Imaginer et programmer une méthode de point fixe. Converge-t-elle ? En combien
d’itérations ?
(iii) m Maintenant, programmez la méthode de Newton. Que remarquez-vous au niveau de la
convergence ? Jouez avec la valeur de x 0 , initialisation de Newton. Converge-t-elle toujours ?
(iv) m Programmer maintenant la méthode de la sécante. Comparer son comportement aux
deux précédentes méthodes. Quelle conclusion tirez-vous de cela ?

Partie non corrigée

TD I.3 Recherche d’un zéro d’une fonction de plusieurs variables. Soit F : R3 → R3 la fonction suivante :

x 40x 3 − 12xz 2 − 16x y + 50x − 4y + 2z


   

F : IR3 3  y −7 →  −8x 2 − 4x + 50y − 4z − 10 


3 2
z 4z − 12x z + 2x − 4y − 8z − 24

Le but de cet exercice est de trouver un zéro de F , par trois méthodes.


(i) m Soit φ définie par :

φ(x,y,z) = f 1 (x,y,z)2 + f 2 (x,y,z)2 + f 3 (x,y,z)2 ,

où f 1 , f 2 , f 3 sont les fonctions composantes de F . Rechercher à l’aide de la fonction Matlab


fminsearch un minimum de φ. Est-ce un zéro de F ?
(ii) m Programmer la méthode de Newton pour F (il faudra calculer la matrice jacobienne de
f ).
(iii) m Utiliser la fonction fsolve de Matlab.

–9–
CHAPITRE I. RÉSOLUTION D’ÉQUATIONS ET SYSTÈMES NON LINÉAIRES

– 10 –
II.
Optimisation sans contrainte et application à la
méthode des moindres carrés

II.1 Exercices du chapitre II.


Ex. II.1 Soit f : IR2 → IR, une fonction différentiable. Soit x 0 ∈ IR2 . On note ∇ f (x 0 ) le gradient de f en x 0 .
(i) Soit d ∈ IR2 , une direction non nulle telle que k∇ f (x 0 ) + d k ≤ k∇ f (x 0 )k.
Montrer que d est une direction de descente 1 de f en x 0 . Trouver alors le pas optimal ρ ∈ IR
minimisant la fonction IR 3 ρ 7→ k∇ f (x 0 ) + ρd k. Exhiber une direction de descente qui n’ap-
partient pas à vect(−∇ f (x 0 )) lorsque ∇ f (x 0 ) 6= 0.
(ii) Soit c ∈ IR et L c = {x ∈ IR2 | f (x) = c}, la ligne de niveau c de f . On suppose qu’une représen-
tation paramétrique de L c est donnée par x = γ(t ) avec t ∈ IR où γ : IR → IR2 est une fonction
différentiable telle que γ(0) = x 0 .
Montrer que ∇ f (x 0 ) est orthogonal au vecteur tangent à L c en x 0 .
Ex. II.2 Dans le théorème II.1.3, montrer par des contre-exemples, que si les hypothèses “J continue” ou
“C fermé” ne sont pas satisfaites, alors la conclusion peut tomber en défaut.
Ex. II.3 Soit N une norme sur un espace vectoriel E .
(i) Montrer que N (et plus généralement N α où α ≥ 1) est une fonction convexe.
(ii) N est-elle strictement convexe ?
Ex. II.4 Soit λ ≥ 0. On considère le problème

inf f λ (x,y), avec f λ (x,y) = λ(x 4 + y 4 ) + x 2 + y 2 − 2x y − 2x − 2y. ( Pλ )


(x,y)∈IR2

(i) Cas λ = 0. Le problème (Pλ ) possède-t-il une solution ?


(ii) Cas λ > 0. Démontrer qu’il existe ϕ : IR+ → IR telle que

lim ϕ(t ) = +∞ et f λ (x,y) ≥ ϕ(k(x,y)k2 )


t →+∞

pour tout (x,y) ∈ IR2 . Que peut-on en déduire pour le problème (Pλ ) ?
(iii) Caractériser les solutions dans le cas λ > 0. On démontrera de prime abord que toute solution
est nécessairement de la forme (x,x).
Ex. II.5 Soient n et N deux entiers non nuls tels que n < N . On considère le problème de la régression
polynomiale au sens des moindres carrés. Étant donné un nuage de points (x i ,y i )1≤i ≤N dont tous
les x i sont deux à deux distincts, on recherche un polynôme p n de degré inférieur ou égal à n qui
l’approche au mieux au sens suivant :

N
|y i − p(x i )|2 .
X
inf F (p) où F (p) =
p∈IRn [X ] i =1
1. autrement dit qu’il existe ε0 > 0 tel que f (x 0 + εd ) < f (x 0 ) pour tout ε ∈]0,ε0 ]

– 11 –
CHAPITRE II. OPTIMISATION SANS CONTRAINTE ET APPLICATION À LA MÉTHODE DES MOINDRES
CARRÉS

(i) Si l’on recherche p n sous la forme p n = a 0 + a 1 X + · · · + a n X n , montrer que le problème de


minimisation se récrit sous la forme

inf kV a − yk22 , (II.1)


a∈IRn+1

où V ∈ MN ,n+1 (IR) et y ∈ IRN seront précisés. Montrer alors que le problème résultant possède
une solution.
(ii) Montrer que F̂ : a 7→ kV a − yk22 est strictement convexe. Que peut-on en déduire ?
(iii) Les conditions d’optimalité associées au problème (II.1) sont-elles nécessaires ? suffisantes ?
Résoudre le problème (II.1).

– 12 –
II.2. TD2 : OPTIMISATION EN DIMENSION UN, MOINDRES CARRÉS

II.2 TD2 : optimisation en dimension un, moindres carrés

Partie corrigée

TD II.1 Recherche du pas optimal dans une méthode de gradient.


(i) t Soit A ∈ S n++ (IR) 2 et x 0 ∈ IRn . On considère la fonction quadratique J : x 7→ 21 〈Ax,x〉, la
fonction d’une variable réelle φ : IR 3 t 7→ J (x 0 − t ∇J (x 0 )) et le problème

inf φ(t ). (P)


t ∈IR

À l’aide d’une analyse théorique, esquisser le graphe de la fonction φ sur IR, puis résoudre le
problème (P).
Indication : on demande de justifier le tracé et de le discuter en fonction des choix de matrice A et
vecteur x 0 .
(ii) m On souhaite utiliser la méthode de dichotomie pour résoudre le problème (P) avec la
fonction J définie par J (x 1 ,x 2 ) = x 14 + x 24 − 3x 12 − x 1 + x 2 à partir du point X 0 = [1,1].
(a) Représenter la fonction φ : [0,1/2] 3 t 7→ J (X 0 − t ∇J (X 0 )). Que constate-t-on ?
(b) Implémenter la méthode de dichotomie sur [0,1/2] et déterminer le minimum de ϕ sur
cet intervalle.

TD II.2 On demande de mettre en œuvre et de comparer deux méthodes d’optimisation 1D : la méthode


de dichotomie et la méthode de Newton.
Une île (désignée par le point I sur la figure ci-dessous) est située à 2 km des terres, au nord de
son point le plus proche. Un visiteur est logé dans un chalet (désigné par le point C sur la figure
ci-dessous) sur la rive qui est à 6 km à l’ouest de ce point. Le visiteur prévoit se rendre du chalet à
l’île. Supposons que le visiteur court à un rythme de 8 km/h et qu’il nage à un rythme de 3 km/h.
Quelle distance le visiteur devrait-il courir avant de nager pour minimiser le temps qu’il lui faudra
pour atteindre l’île ?

Piste d’étude :
• m on pourra comparer l’efficacité des deux méthodes numériques (robustesse à l’initialisa-
tion, nombre d’itérations).
p
• t démontrer que la solution optimale est obtenue pour x = 6 − 6/ 55 ' 5.19.

Partie non corrigée

2. On rappelle que S n+ (IR) désigne l’ensemble des matrices M semi-définie positives, c’est-à-dire telles que 〈M x,x〉 ≥ 0
pour tout x ∈ IRn .

– 13 –
CHAPITRE II. OPTIMISATION SANS CONTRAINTE ET APPLICATION À LA MÉTHODE DES MOINDRES
CARRÉS

TD II.3 L’énergie rayonnante d’un corps noir dans l’intervalle d’émission [λ, λ + d λ], par unité de surface
et de temps, est appelée émittance monochromatique maximale du corps noir et est notée M (λ).
Sa valeur, exprimée en W b/m 2 est donnée par la loi de Planck

2πhC 02 1
M (λ) = . .
n 2 λ5 exp hC 0 − 1
³ ´
nkT λ

Les constantes intervenant dans cette loi sont


• C 0 ' 2,997.108 m/s : vitesse de la lumière dans le vide.
• h ' 6,625.10−34 J .s : constante de Planck.
• k ' 1,380.10−23 J /K : constante de Boltzmann.
• λ : longueur d’onde (m).
• T : température absolue de la surface du corps noir (K).
• n = 1 : indice de réfraction du milieu (ici le vide).

(i) m Tracer sur un même graphique la fonction λ 7→ M (λ) pour les valeurs suivantes de T (K) :
300, 350, 400, 450, 500, 550, 600, 650, 700, 750, 800. Associer chaque courbe tracée à la valeur
de T correspondante. On prendra λ ∈ [10−7 ,2.10−5 ].
Fonctions Matlab utiles : hold on, hold off.
(ii) m On souhaite trouver la valeur λ∗ de λ qui maximise l’émittance monochromatique pour
une température de surface T donnée. À quelle contrainte est-on soumis si l’on souhaite
utiliser la méthode de la section dorée ?
Programmer alors cette méthode pour déterminer λ∗ suivant les différentes valeurs de T .
(iii) m Vérifier les lois de Wien :

λ∗ T = A et M (λ∗ ) = BT 5 , où A et B désignent des constantes.

(iv) m Reprendre la question 2 en utilisant cette fois la fonction préprogrammée de Matlab


fminsearch. Cette fonction est-elle sensible à l’initialisation ?

– 14 –
III.
Interpolation et approximation polynomiale

III.1 Exercices du chapitre III.


Ex. III.1 On veut éditer une table de cosinus pour laquelle l’utilisateur cherchera la valeur d’un cosinus
donné par interpolation linéaire entre les valeurs tabulées qu’on supposera équidistantes. Sachant
qu’on veut obtenir des valeurs avec une erreur inférieure à 10−6 , combien d’entrées dans la table
sont-elles nécessaires ?
Ex. III.2 Déterminer la meilleure approximation linéaire sur [0,1] de f : x 7→ x 5 + x 3 au sens des moindres
carrés. On travaillera dans L 2 ([0,1]), l’espace des fonctions de carré intégrable sur [0,1], muni du
produit scalaire défini par :
Z 1
( f ,g ) = f (x)g (x)d x.
0

Ex. III.3 Le tableau suivant donne les valeurs d’une fonction f en trois points.

x f (x)
p
x 1 = 17 − 4 0.3771784
p
x 2 = 10 − 3 0.4880117
p
x3 = 5 − 2 0.6754903

x 2 +x 3
(i) Déterminer une valeur approchée de f en x 0 = 2 , par interpolation en x 2 et x 3 , puis par
interpolation en x 1 , x 2 et x 3 .
(ii) Donner dans les deux cas un majorant de l’erreur en fonction des dérivées de f .
(iii) On constate que les deux fonctions f 1 (x) = sin πx et f 2 (x) = sin(π/x) vérifient toutes deux le
tableau de valeurs ci-dessus. Calculer f 1 (x 0 ) et f 2 (x 0 ). Expliquer et vérifier la cohérence avec
les résultats numériques des questions précédentes.
Ex. III.4 On donne les points (0,2) ; (1,1) ; (2, 32 ) ; (3, 12 ) ; (4, 13 ); (10,0.1).
a b
Chercher des fonctions de la forme x 7→ x+ 12
+ x+1 approchant au mieux ces points au sens des
moindres carrés.

– 15 –
CHAPITRE III. INTERPOLATION ET APPROXIMATION POLYNOMIALE

III.2 TD3 : interpolation et moindres carrés


Partie corrigée

TD III.1 On souhaite déterminer le polynôme Q 2 de degré 2 approchant le mieux la fonction f définie par
p
x
f (x) = e −x
³R ´1/2
20
au sens des moindres carrés pour la norme k · k définie par k f k = 1 f (x)2 d x .

(i) t Expliquer pourquoi cette question se ramène à un problème de projection orthogonale


sur un sous-espace vectoriel de dimension finie puis formuler très explicitement le problème
d’optimisation à résoudre (quel est le critère, quelles sont les variables ?).
(ii) t Écrire les conditions nécessaires d’optimalité pour ce problème (équations normales).
(iii) m Résoudre numériquement dans une fonction le problème formé puis tracer sur un même
graphique les courbes de f et Q 2 sur le segment [1,20]. On pourra par exemple calculer les
intégrales à l’aide de la fonction Matlab integral.

TD III.2 (i) m Ecrire deux fonctions qui, étant donné un intervalle [a,b], et un entier n génèrent respec-
tivement :
• les n + 1 points équidistants : x i = a + b−a
n (i − 1) avec 1 ≤ i ≤ n + 1.
³ ´
(2i −1)π
• les n + 1 points de Chebyshev : x i = a+b2 + b−a
2 cos 2n+2 avec 1 ≤ i ≤ n + 1.
(ii) m Soient
¡ ¢
• X = x 1 x 2 · · · x n un vecteur contenant n points d’interpolation ;
¡ ¢
• Y = f (x 1 ) f (x 2 ) · · · f (x n ) , un vecteur contenant les valeurs d’une fonction f en ces
points.
On veut calculer le polynôme d’interpolation de f en les points x i à l’aide de la formule de
Newton qu’on écrit ici aux points x n , x n−1 , . . ., x 1 soit
n
X n
Y
P n (x) = f [x i ,...,x n ] (x − x k ).
i =1 k=i +1

Écrire une fonction Matlab qui calcule P n (x) en utilisant l’algorithme suivant

Algorithme 1 : on suppose les valeurs f (x i ) mises en mémoire dans d i .

pour k ∈ ‚1, n − 1ƒ
 
  · pour i ∈ ‚1,n − kƒ
on obtient ici petit à petit les

différences divisées d i = f [x i ,...,x n ] ←−

  d i := (d i +1 − d i )/(x i +k − x i )
p := d 1


  ·
algorithme de Hörner pour 
 pour i ∈ ‚2, nƒ
évaluer le polynôme au point x ←−  p := d i + (x − x i ) × p
P n (x) := p.

1
(iii) m Soit f la fonction définie sur [−5,5] par f (x) = 1+x 2
.
Tracer sur un même graphique les graphes de f , du polynôme d’interpolation associé à n + 1
points équidistants et du polynôme d’interpolation associé à n + 1 points de Chebyshev. Que
constate-t-on lorsque n varie ?

– 16 –
III.2. TD3 : INTERPOLATION ET MOINDRES CARRÉS

Partie non corrigée

TD III.3 Le tableau suivant donne les résultats de mesure de la viscosité µ de l’éthylène pour différentes
températures (exprimées en degrés Fahrenheit) :

T 0 50 100 150 200


µ 242 82.1 30.5 12.6 5.57

(i) m On souhaite modéliser la dépendance de la viscosité en fonction de la température par


une loi du type µ = A exp(αT ).
Remarquer que ν = log(µ) suit alors une loi linéaire et en déduire les valeurs A 1 et α1 qui mi-
nimisent l’erreur E ν = Σ| log(µi )−(αTi +log(A))|2 . On utilisera directement la fonction Matlab
d’ajustement polyfit.
(ii) m A partir de ces valeurs, déterminez les valeurs A 2 et α2 qui minimisent l’erreur : E µ =
Σ|µi − A exp(αTi )|2 . On utilisera pour cela la fonction Matlab de minimisation fminsearch.

– 17 –
CHAPITRE III. INTERPOLATION ET APPROXIMATION POLYNOMIALE

– 18 –
IV.
Dérivation et intégration numérique

IV.1 Exercices du chapitre IV.


R 3 (sin x)2
Ex. IV.1 Calculer 1 x d x en utilisant successivement
(i) la méthode des rectangles sur 5 sous-intervalles,
(ii) la méthode des trapèzes sur 5 sous-intervalles,
(iii) la méthode de Simpson sur 5 sous-intervalles,
(iv) la méthode de Gauss à 5 points
Comparer les résultats et le nombre d’évaluations de fonctions nécessaires par chaque méthode.
R1
Ex. IV.2 Déterminer le nombre de points nécessaires pour évaluer l’intégrale 0 cos(x 2 ) d x avec une pré-
cision de 10−8 par la méthode des rectangles à gauche, la méthode des trapèzes, la méthode de
Simpson et la méthode de Gauss composite à 2 points.
Ex. IV.3 Imaginer une méthode de Gauss pour calculer les intégrales
Z 1 ½
1 3 5
¾
α
(cos x) log x d x pour α ∈ ,1, ,2, .
0 2 2 2

Déterminer les premiers polynômes orthogonaux et leurs racines et mettre en œuvre la méthode
de Gauss.
Ex. IV.4 Soit K le carré unité de R2 . Imaginer une formule d’intégration numérique sur K qui soit exacte
pour les polynômes de degré inférieur ou égal à 3 en x et en y.
Ex. IV.5 Déterminer les 4 premiers polynômes orthogonaux pour le produit scalaire
Z +∞
( f ,g ) 7→ f (t )g (t )e −t d t .
1
R +∞
En déduire une formule d’intégration numérique pour calculer des intégrales du type 1 f (t )e −t d t
qui soit exacte pour les polynômes de degré inférieur ou égal à 7. Tester cette formule avec f (t ) =
t 5 , f (t ) = t 6 et f (t ) = e t /2 .
Z +∞
3
Ex. IV.6 Calculer e −t d t avec 4 décimales exactes.
0.5

– 19 –
CHAPITRE IV. DÉRIVATION ET INTÉGRATION NUMÉRIQUE

IV.2 TD4 : intégration numérique, méthode des différences finies


Partie corrigée

R1
TD IV.1 On propose d’approcher l’intégrale I ( f ) = 0 f (t ) d t par la formule J ( f ) = f (0) + 21 f 0 (c) où c ∈]0,1[
est donné.
(i) t Montrer que J est exacte pour les polynômes de degré inférieur ou égal à 1.
(ii) t Déterminer c pour que l’approximation J ( f ) soit exacte pour les polynômes de degré au
plus égal à deux. Quel est l’ordre de la méthode ?
(iii) m Comparer cette méthode avec la méthode des rectangles à 50 points pour le calcul de
I (exp). Quels sont ses avantages et inconvénients ?

R1
TD IV.2 On veut calculer l’intégrale 0 cos(x 2 ) d x avec une précision de 10−8 .
(i) t Déterminer le nombre de points nécessaires pour l’évaluer avec cette précision par la mé-
thode des trapèzes et par la méthode de Simpson.
(ii) m Écrire une fonction Matlab pour faire ce calcul avec n points, puis la tester avec les valeurs
de n trouvées précedemment. Vérifier avec la fonction integral de Matlab.

Partie non corrigée

TD IV.3 Soit l’équation différentielle, avec conditions aux bords de Dirichlet homogènes, suivante :

−y 00 (x) + p(x)y 0 (x) + q(x)y(x) = f (x)


½
x ∈ [0,1]
y(0) = y(1) = 0.

On discrétise l’intervalle [0,1] en n + 2 points équidistants :

k
xk = = kh pour k ∈ ‚0, n + 1ƒ.
n +1
On note y k , p k , q k et f k les valeurs respectives des fonctions y, p, q et f au point x k , avec k ∈
‚0, n + 1ƒ. On approche alors les dérivées premières et secondes de y par les formules centrées :

y k+1 − y k−1 y k+1 − 2y k + y k−1


y 0 (x k ) ' et y 00 (x k ) '
2h h2
pour k ∈ ‚1, nƒ, ce qui permet d’obtenir un système de n équations à n inconnues y 1 , y 2 , . . ., y n .
(i) t Ecrire la matrice de ce système. Ecrire ensuite une fonction Matlab qui permette de construire
cette matrice (on suppose que les fonctions p, q, f sont définies dans des fichiers Matlab à
part), puis de résoudre le système associé à l’équation différentielle.
Fonction Matlab utile : diag
(ii) m Visualiser la solution approchée.
(iii) t et m Choisir des fonctions p,q et f permettant de connaitre théoriquement la solution
de l’équation différentielle. On mesure l’erreur entre la solution théorique ŷ et la solution
approchée y par :
e = max |y k − ŷ(x k )|
0≤k≤n+1

Tracer la variation de e en fonction du pas h.

– 20 –
V.
Équations différentielles - Aspects théoriques

V.1 Exercices du chapitre V.


α − 1/2
µ ¶
1/2
Ex. V.1 Pour quelles valeurs de α ∈ IR toutes les solutions 1 du système X 0 = AX avec A =
−1/2 α + 1/2
convergent-elles vers 0 quand t → +∞ ? [On parle alors de stabilité asymptotique de ce système diffé-
rentiel]
Ex. V.2 Est-ce que les équations différentielles suivantes
( 1
y 0 = −y 2 y 0 = −y 3
½
et
y (0) = y 0 > 0 y (0) = y 0 > 0

ont une solution unique sur [0, + ∞[ ?


Ex. V.3 Soit θ : I 7→ IR, la solution maximale du problème de Cauchy :

x 00 = 1 − 3x 2
½
.
x(0) = x 0 (0) = 0.

(i) Expliquer soigneusement pourquoi le système ci-dessus possède une unique solution maxi-
male.
(ii) Démontrer que
2
∀t ∈ I , θ 0 (t ) = 2θ(t )(1 − θ 2 (t )).

(iii) Montrer que θ(I ) ⊂ [0,1] et en déduire que I = IR.


2
/2
Ex. V.4 Soit y, la solution de l’équation y 0 − y = e −t et y(0) = 1. Sans chercher à résoudre cette équation,
prouver que y(t ) ≥ e t pour tout t ∈ IR.
Ex. V.5 Soit q, une fonction continue sur IR. On considère z, solution de l’équation de Sturm-Liouville

z 00 (t ) + q(t )z(t ) = 0,
½
t >0
z(0) = 1, z 0 (0) = 0

Montrer que les zéros de z sont nécessairement isolés 2 .


Ex. V.6 On considère l’équation différentielle

y 0 (t ) = e −t y(t )
½

y(0) = 0 .

(i) Montrer l’existence et l’unicité locale, puis globale sur R+ de la solution.


(ii) Montrer qu’elle est impaire, puis qu’elle admet une limite quand t → +∞.
1. Dit autrement, toute solution associée à une condition initiale quelconque.
2. Autrement dit, si ξ est un zéro de z, alors il existe ε > 0 tel que ]ξ − ε,ξ + ε[\{ξ} ne contient pas de zéro de z.

– 21 –
CHAPITRE V. ÉQUATIONS DIFFÉRENTIELLES - I

V.2 TD5 : résolution d’EDO en utilisant des boîtes noires


Ce TD est fort simple. Il est à réaliser en autonomie.

Matlab dispose de plusieurs solveurs d’équations différentielles :


• ode23 et ode45 qui codent des méthodes classiques de Runge-Kutta (cf section VI.2 dans le cha-
pitre 5).
• ode113 qui utilise une méthode multi-pas dite d’Adams-Bashforth.
• ode15s, ode23s qui sont à utiliser lorsque l’équation différentielle à résoudre est particulièrement
raide 3 (stiff en anglais) ce qui peut arriver notamment en cinétique chimique.
Lorsqu’il n’y a pas lieu de croire que l’équation est problématique, on peut commencer par ode45 ou
ode23 . Ils s’utilisent comme ceci :
; L’équation différentielle doit être ramenée à une équation, eventuellement vectorielle, du premier
00 0
ordre en temps ; par exemple l’équation x + 2x − t x = 0, s’écrit
µ ¶ µ ¶
0 0 1 x(t )
y = y où on a posé y(t ) = 0 .
t −2 x (t )

0
; Le système est codé sous forme d’un fichier qui étant donné y et t renvoie y (t ) ; créons ici le fichier
essai.m suivant :

1 function dy = e s s a i ( t , y ) ;
2 dy = [ y ( 2 ) ; t * y ( 1 ) −2 * y ( 2 ) ] ;

Dans le cas où l’équation est vectorielle, la dérivée doit obligatoirement être un vecteur colonne et
non un vecteur ligne. Dans le cas des équations à coefficients constants, il est nécessaire de taper
la ligne function dy = essai(t,y) même si d y ne dépend pas du temps t .
; On peut ensuite utiliser un solveur Matlab avec la commande :

1 [ t , y ]= ode23 ( ’ e s s a i ’ , [ t i n i t i a l , t f i n a l ] , y0 )

où tinitial et tfinal sont les instants entre lesquels on cherche à approcher la solution et où y0
est la condition initiale.
Les algorithmes sont à pas adaptatifs le vecteur t contient les instants pour lesquels une valeur appro-
chée de la solution y a été calculée ; si l’on souhaite connaitre la solution à des instants bien particulier,
par exemple pour un pas de temps régulier, il suffit de remplacer le vecteur [tinitial, tfinal] par le
vecteur temps souhaité.

; Entraînez-vous à utiliser ces commandes pour résoudre des équations différentielles. On pourra pourra
reproduire l’exemple ci-dessus puis considérer par exemple :

z 0 (t ) + z(t ) = e −2t , y 00 (t ) + cos(t )y(t ) = 0, θ 00 + cos θ = 0.

Notez que l’on sait résoudre explicitement l’équation sur z. Il sera utilise de comparer les soluitons théo-
riques et numériques.

3. Une équation différentielle raide est une équation différentielle dont la sensibilité aux paramètres va rendre difficile la
résolution par des méthodes numériques explicites.

– 22 –
VI.
Équations différentielles - Aspects numériques

VI.1 Exercices du chapitre VI.


Ex. VI.1 Soit y 0 (t ) = −Ay (t ) où A est une matrice carrée N ×N à coefficients réels, diagonalisable de valeurs
propres 0 < λ1 ≤ λ2 ≤ · · · ≤ λN . Montrer que si λN h < 2, la méthode d’Euler avec le pas constant h
est stable au sens où la suite (y n )n∈IN est bornée.
Ex. VI.2 Pour résoudre numériquement y 0 = −λy, on décide d’approcher y 0 (t n ) par les différences finies
centrées
y (t n+1 ) − y (t n−1 )
y 0 (t n ) ' , h = t n+1 − t n , ∀n ∈ IN.
2h
Ceci conduit au schéma
y n+1 = y n−1 − 2λh y n .
Montrer que ce schéma est toujours instable.
Ex. VI.3 Soient a, c, b 1 , b 2 des réels avec 0 ≤ b 1 ≤ b 2 ≤ 1. Pour résoudre y 0 = f (t ,y), on introduit un schéma
de type Runge-Kutta par les formules
n n
 ¡ ¢

 y n+1 = y n + h n b 1 k 1 + b 2 k 2

k 1n = f t n ,y n
¡ ¢


 n
k 2 = f t n + ch n ,y n + ah n k 1n
¡ ¢

(i) Que doit on choisir comme valeurs pour les coefficients a, c, b 1 , b 2 si on souhaite que ce
schéma numérique soit d’ordre deux ?
(ii) Dans ce cas, retrouve-t-on nécessairement la méthode de Runge-Kutta d’ordre deux (VI.30) ?
Ex. VI.4 Soit β un nombre réel strictement positif donné. On considère l’équation différentielle

y 0 (t ) = −βy(t )
½
t >0
(VI.1)
y(0) = y 0

où y 0 est également donné. Soit h > 0 le pas (fixe) de la subdivision, pour les méthodes de Runge-
Kutta 2 (VI.30) et Runge-Kutta 4 (VI.32). On note y n la valeur approchée de y(nh).
(i) Quelle est la solution exacte de (VI.1) ? Est-il vrai que limt →+∞ y(t ) = 0 ?
(ii) Pour chacune des méthodes, à quelle condition sur h a-t-on limn→+∞ y n = 0 ?
Ex. VI.5 Un exemple de méthode à deux pas. [D’après un exercice posé par Alexandre Ern, ENPC] On consid‘ere
la méthode à deux pas suivante dans le cas d’un champ de vecteurs autonome f et d’un pas de
temps h > 0 fixé :
y n+1 = y n−1 + 2h f (y n ) (méthode de Nyström)

permettant d’approcher numériquement les solutions de y 0 = f (y), avec la condition initiale y 0


fixée et la valeur y 1 obtenue par une méthode à un pas, par exemple un schéma de Runge-Kutta
d’ordre 2 :

y n+1 = y n +
¢
f (t n ,y n ) + f (t n+1 ,y n + h f (t n ,y n )) . (méthode de Heun)
2

– 23 –
CHAPITRE VI. ÉQUATIONS DIFFÉRENTIELLES - II

(i) Calculer l’erreur locale de consistance εn et déterminer l’ordre de la méthode.


(ii) On s’intéresse à la stabilité de la méthode sur un cas concret. On considère l’équation dif-
férentielle y 0 (t ) = −y(t ) et y 0 = 1. Donner l’expression analytique de y n en fonction de h et
montrer que la solution numérique est la somme de deux termes : un qui approche bien la
solution analytique et un terme qui diverge en temps long. Conclure

– 24 –
VI.2. TD6 : RÉSOLUTION NUMÉRIQUE D’ÉQUATIONS DIFFÉRENTIELLES

VI.2 TD6 : résolution numérique d’équations différentielles


Partie corrigée

TD VI.1 Stabilité théorique et stabilité numérique.


t Résoudre théoriquement l’équation différentielle suivante :

y 0 (t ) = 3y(t ) − 3t
½

y(0) = 13

Ce problème risque-t-il d’être instable ?


m Résoudre ce problème à l’aide des solveurs ode23 et ode45 entre 0 et t max pour 5 ≤ t max ≤ 20.
Que constate-t-on ? Comparer les 3 solutions en les traçant sur un même graphique. Expliquer ce
que vous observez.

TD VI.2 Soit l’équation différentielle suivante :

y 0 (t ) = exp y(t )
½ ¡ ¢

y(0) = y 0 = 1

(i) m Résoudre de façon approchée cette équation à l’aide d’un solveur Matlab.
Qu’observe-t-on ?
(ii) t Retrouver cette propriété en résolvant théoriquement l’équation différentielle.

On se propose de mettre en place les deux méthodes d’Euler à pas fixe pour proposer une valeur
approchée du temps maximun d’existence.

(iii) m Méthode d’Euler explicite. Programmer la méthode d’Euler explicite à pas constant. Quel
test d’arrêt proposez-vous ? Quelle est, en fonction du pas de temps h, la précision dont on
dispose sur le temps maximum d’existence ?
(iv) m Méthode d’Euler implicite. Programmer maintenant la méthode d’Euler implicite à pas
constant. Vous effectuerez la résolution de l’équation non linéaire, à chaque pas, grâce à la
fonction Matlab fzero.

Partie non corrigée

TD VI.3 Résolution de l’équation du pendule. On considère l’équation :


g
θ 00 (t ) = − ` sin(θ(t )),
½

θ(0) = π4 , θ 0 (0) = 0.

avec les paramètres suivants : g = 9.81 m.s-2 et ` = 1 m. le nombre θ(t ) représente l’angle au temps
t du pendule par rapport à la verticale. On introduit la fonction H : IR2 → IR définie par :

1 g dθ
H (θ,p) = p 2 − cos θ où p= .
2 ` dt

(i) t Démontrer l’existence d’une solution locale à l’EDO considérée, puis démontrer que le
Hamiltonien H est constant le long des trajectoires solutions.
[En utilisant le théorème de majoration a priori V.2.8, on pourrait démontrer l’existence d’une solution

– 25 –
CHAPITRE VI. ÉQUATIONS DIFFÉRENTIELLES - II

globale, ce qu’on admettra dorénavant.]

m Tracer alors des lignes de niveau de H . Quel est le lien entre ces lignes de niveau et les
trajectoires solutions ?

Pour résoudre numériquement ce problème nous considérons la méthode d’Euler symplec-


tique. Pour une équation différentielle du type

∂H ∂H
µ ¶
0 0
(q (t ),p (t )) = (q,p), − (q,p) ,
∂p ∂q

avec H : R2 → R une fonction régulière donnée (appelée Hamiltonien du système), elle s’écrit

∂H n+1 n
q n+1 = q n + h n (q ,p )
∂p
∂H n+1 n
p n+1 = p n − h n (q ,p ).
∂q

(ii) t et m Appliquer la méthode d’Euler symplectique pour la résolution de l’équation du pen-


dule, en utilisant le hamiltonien H . Commencer par montrer que dans ce cas, la méthode
d’Euler symplectique devient explicite.
(iii) m Sur un même graphique, représenter les solutions approchées obtenues par le schéma
d’Euler symplectique et par la fonction Matlab ode45, codant une méthode de Runge-Kutta.
(iv) m Afficher l’évolution du Hamiltonien t 7→ H (θ(t ), θ̇(t )) pour les différentes solutions (Runge-
Kutta et Euler symplectique). Que constatez-vous ?

– 26 –
VII.
Résolution numérique de systèmes linéaires

VII.1 Exercices du chapitre VII.


Ex. VII.1 Donner une CNS sur les réels r , t et s pour que la matrice
µ ¶
r s
A=
s t

soit définie positive.


Ex. VII.2 Montrer que MN (IR) 3 A = (a i j )1≤i , j ≤N 7→ max1≤i , j ≤N ¯a i j ¯ n’est pas une norme matricielle, mais
¯ ¯
³P ´1/2
que MN (IR) 3 A = (a i j )1≤i , j ≤N 7→ i , j a i2j en est une.

Ex. VII.3 Soit A ∈ MN (IR). Montrer que ρ A A = ρ A A .


¡ > ¢ ¡ >¢

Ex. VII.4 Montrer que ρ (J ) < 1 < ρ (L 1 ) lorsque

1 2 −2
 

A = 1 1 1  ,
2 2 1

où J et L 1 désignent respectivement le choix de “matrice B ” dans les méthodes de Jacobi et Gauss-


Seidel (voir la section VII.5.1).
Ex. VII.5 On considère la matrice
µ p ¶
2 2 2
A= p .
2 2 9
Quel est son conditionnement pour les normes matricielles usuelles ? On multiplie la première
ligne par un coefficient α, comment choisir α pour que le conditionnement soit minimum ?

– 27 –
CHAPITRE VII. RÉSOLUTION NUMÉRIQUE DE SYSTÈMES LINÉAIRES

VII.2 TD7 : résolution des systèmes linéaires

Partie corrigée

TD VII.1 Instabilités.
On considère la matrice de Hilbert H de taille n dont les éléments sont donnés par

1
Hi j = , pour 1 ≤ i , j ≤ n.
i + j −1

Soit x ref le vecteur dont toutes les composantes sont égales à 1 et définissons un vecteur second
membre b = H x ref . On définit x num comme la solution numérique par la méthode de Gauss du
système : H x num = b.
R1
(i) t Exprimer 〈H X ,X 〉 à l’aide d’une intégrale (on pourra remarquer que i + 1j −1 = 0 x i + j −2 d x).
En déduire que la matrice H est définie positive.
(ii) m Tracer l’erreur relative (en norme euclidienne) entre x ref et x num en fonction de n. Que se
passe-t-il ? Comment expliquez-vous ce comportement ?
On pourra calculer le conditionnement de la matrice grâce à la fonction cond de Matlab.

TD VII.2 On souhaite résoudre un système linéaire Ax = b de manière itérative en considérant une méthode
de Jacobi ou de Gauss-Seidel. Notons J et L 1 les matrices respectives d’itérations. Soit A la matrice
donnée par
µ ¶
1 −1
A= .
2 4

(i) t Donner les matrices J et L 1 (en détaillant leur obtention) correspondant à A.


(ii) t Ces deux méthodes itératives convergent-elles ? (Conseil : étudier le rayon spectral de J et
L 1 .)
(iii) m Programmer la méthode de Gauss-Seidel et étudier numériquement la vitesse de conver-
gence.

Partie non corrigée

TD VII.3 Résolution d’une EDP par différences finies.


Le but de cet exercice est la comparaison de différentes méthodes pour la résolution d’un système
linéaire obtenu par discrétisation d’un problème de Dirichlet.
Soit Ω =]0,1[×]0,1[ le carré unité, considérons le problème suivant :

dans Ω
½
−∆v = f (x,y)
avec f (x,y) = 13π2 sin(3πx) sin(2πy).
v =0 sur ∂Ω

Pour résoudre ce problème


³ par ´différences finies, utilisons le maillage formé des n 2 points P k de
i j
coordonnées (x i ,y j ) = n+1 , n+1 avec 1 ≤ i ≤ n et 1 ≤ j ≤ n (Les points sont numérotés de gauche
à droite puis de bas en haut). La discrétisation consiste à remplacer le laplacien par la formule
centrée points équidistants d’ordre 2 :

1
−∆v(x,y) ≈ (4u(x,y) − u(x + h,y) − u(x − h,y) − u(x,y + h) − u(x,y − h))
h2

– 28 –
VII.2. TD7 : RÉSOLUTION DES SYSTÈMES LINÉAIRES

L’inconnue du problème est alors le vecteur u = (u k )1≤k≤n 2 , à n 2 composantes qui sont les valeurs
approchées de v(P k ), la solution aux points P k . On montre en utilisant la technique développée
dans le chapitre IV., que u vérifie le système linéaire suivant :

Au = h 2 b

avec h > 0, le pas du maillage, A la matrice de discrétisation, qui s’écrit par blocs :
 
Dn − Idn 0  
  4 −1 0
 − Idn Dn − Idn  −1 4 −1 
   

A= .. .. .. 
, avec Dn

= .. .. .. 
,
 . . .   . . . 
   
 − Idn Dn − Idn   −1 4 −1
 
−1 4
0 − Idn Dn

où D n ∈ Mn (IR), − Idn est l’opposé de la matrice identité de taille n et b le second membre de


l’équation, soit b = (b k ) avec b k = f (P k ) pour tout k.
(i) m Ecrire une fonction qui, étant donné un entier n, renvoie la matrice A correspondante.
Fonctions Matlab utiles : diag, repmat
(ii) m Ecrire une fonction qui, étant donné un entier n, renvoie les deux vecteurs X et Y res-
pectivement abscisses et ordonnées des points (P k )1≤k≤n 2 . Définir alors le vecteur b second
membre de l’équation.
(iii) m Résoudre le système linéaire par les trois méthodes suivantes : pivot de Gauss, facto-
risation LU, factorisation de Cholesky. On comparera notamment l’erreur entre la solution
obtenue et la solution exacte u th du problème, donnée par :

u t h (x,y) = sin(3πx) sin(2πy),

ainsi que le temps de calcul nécessaire et ceci pour différentes valeurs de n.


L’erreur relative est définie par :
P 2
k |u(P k ) − u t h (P k )|
erreur = P 2
.
k |u t h (P k )|

Fontions Matlab utiles : \, lu, chol, tic et toc


(iv) m Programmer simplement la méthode de Gauss-Seidel. Étudier alors la convergence de la
méthode en regardant notamment l’évolution du résidu kAu − bk/kbk.
Fonctions Matlab utiles : tril, triu

– 29 –
CHAPITRE VII. RÉSOLUTION NUMÉRIQUE DE SYSTÈMES LINÉAIRES

– 30 –
VIII.
Optimisation sous contraintes et optimisation
numérique sans contrainte

VIII.1 Exercices du chapitre VIII.


Ex. VIII.1 Déterminer les points les plus proches et les plus éloignés de l’origine (s’ils existent) de la courbe
d’équation x 6 + y 6 = 1. On illustrera la réponse à l’aide d’un dessin.
Ex. VIII.2 Un fil métallique de longueur ` > 0 est coupé en trois parties pour former un carré, un cercle et un
triangle équilatéral. Quelle est la découpe qui rendra minimale l’aire totale des trois figures ainsi
formées ?
Ex. VIII.3 Rechercher le rectangle de périmètre fixé P d’aire maximale. Même question pour un triangle.
Ex. VIII.4 Soit la fonction F : IR2 3 (x,y) 7→ 52 x 2 + y 2 − 4x y et l’ensemble E = {(x,y) ∈ R2 , y 2 ≤ x, x ≤ 1}.
(i) Dessiner l’ensemble E et montrer que F possède un minimum sur E .
(ii) Déterminer ce minimum en utilisant les conditions de Karush-Kuhn-Tucker.
Ex. VIII.5 On souhaite rechercher le parallélépipède de surface fixée S qui a le volume maximal. En admet-
tant l’existence, déterminer le parallélépipède optimal.

Question bonus. Saurez-vous démontrer l’existence d’un parallélépipède optimal ? Si vous trouvez
un joli argument, n’hésitez pas à le rédiger au propre et me l’envoyer. Le premier étudiant à fournir
un argument convaincant obtiendra un bonus de points pour le test.

– 31 –
CHAPITRE VIII. OPTIMISATION SOUS CONTRAINTES ET OPTIMISATION NUMÉRIQUE SANS
CONTRAINTE

VIII.2 TD8 : optimisation sans contrainte


Partie corrigée

TD VIII.1 Soit la fonction F : IR2 3 (x,y) 7→ 3x y 2 − 2x 3 et l’ensemble

E = {(x,y) ∈ R2 , x 2 ≤ y, y ≤ x}.

(i) t Dessiner l’ensemble E et montrer que F possède un minimum sur E .


(ii) t Déterminer le minimum en utilisant les conditions d’optimalité de Kuhn-Tucker.

TD VIII.2 Soit ε > 0. On définit la fonction f ε sur IR2 par

1
f ε (x) = (x + 1)2 + (y − 2)2 + (y − x + 1)2 .
ε

(i) t Justifier que la fonction f ε possède un minimum sur IR2 et que le minimiseur est unique.
(ii) m En utilisant la méthode du gradient à pas fixe, minimiser f ε sur IR2 pour ε ∈ {0.1, 0.01, 0.001}.
On choisira un pas ρ = 10−4 . Tracer dans le carré [−5,5]2 :
• les lignes de niveau de f ε pour ε ∈ {0.1,0.01,0.001},
• le champ de vecteur du gradient,
• les itérés de la méthode du gradient.
Que remarque-t-on ?
Fonctions Matlab utiles : quiver, contour

Partie non corrigée

TD VIII.3 Dans cet exercice, on cherche à déterminer numériquement la plus courte distance entre un point
x 0 ∈ IRn et un hyperplan (H ) d’équation Ax = b, où A est un vecteur ligne non nul et b, un vecteur
colonne de taille n.
(i) t Justifier que ce problème peut s’écrire comme un problème de programmation quadra-
tique :
1
inf (x − x 0 )> (x − x 0 ).
Ax=b 2

(ii) t Résoudre théoriquement ce problème.


(iii) m En s’inspirant de la méthode mise en œuvre dans l’exercice TD VIII.2 , faites-vous confir-
mer les résultats précédents à l’aide d’une étude numérique.

– 32 –
IX.
Algorithmes d’optimisation en toute dimension

IX.1 Exercices du chapitre IX.


Ex. IX.1 Soit A une matrice n × n à coefficients réels, symétrique, définie, positive et b ∈ IRn . On veut mini-
miser J : X 7→ 12 〈AX ,X 〉 − 〈b, X 〉 par la méthode du gradient à pas constant η > 0.

(i) Démontrer que pour tout X ∈ IRn , 〈AX ,X 〉 ≥ λ1 kX k2 , où λ1 est la plus petit valeur propre de
A. En déduire que le problème infIRn J possède une unique solution X ∗ .

On note X ∗ le minimum, aussi solution de ∇J (X ∗ ) = 0 soit AX ∗ = b.

(ii) Écrire l’algorithme permettant de calculer les itérés successifs X k .


(iii) Posons E k = X k − X ∗ (l’erreur à l’étape k). Donner une relation entre E k et E 0 .
2
(iv) Montrer que l’algorithme converge si et seulement si 0 < η < λn où λn est la plus grande
valeur propre de A.
(v) Quel est le meilleur choix possible pour η (en fonction des valeurs propres de A) ?

Ex. IX.2 On souhaite minimiser la fonction J définie sur IR2 par J (x,y) = x 2 − 2x − y sur l’ensemble K défini
par
K = {(x,y) ∈ IR2 , x + y ≤ 1, x y ≥ 0}.
(i) Dessiner l’ensemble K . Montrer l’existence d’un minimum pour J sur K .
(ii) Faire tout d’abord une résolution graphique en cherchant à tracer les lignes de niveau J (x,y) =
t pour différentes valeurs de t .
(iii) Résoudre le problème en écrivant les conditions de Kuhn-Tucker.
(iv) Écrire et faire tourner un algorithme de gradient à pas fixe avec projection.
Ex. IX.3 Soit J : IRn → IR une fonction continue, strictement convexe et coercive. Soit ϕ : IRn → IR une fonc-
tion convexe et C l’ensemble de contraintes défini par C = {X ∈ IRn , ϕ(X ) ≤ 0}. On rappelle qu’une
fonction convexe sur un ouvert de IRN est nécessairement continue.
(i) Montrer que C est convexe et que J possède un unique minimum sur C , on le notera X ∗ .

On suppose maintenant que C est borné et on note C˚ son intérieur défini par C˚ = {X ∈
IRn |ϕ(X ) < 0}. Pour ε > 0 on introduit la fonctionnelle pénalisée J ε définie par
ε
J ε (X ) = J (X ) − X ∈ C˚ .
ϕ(X )

(ii) Montrer que J ε possède sur C˚ un unique minimum, on le notera x ε .


(iii) Montrer que (quitte à extraire) x ε → X ∗ .

– 33 –
CHAPITRE IX. ALGORITHMES D’OPTIMISATION EN TOUTE DIMENSION

IX.2 TD9 : optimisation numérique en dimension N


Partie corrigée

TD IX.1 m Écrire une méthode de pénalisation pour résoudre le problème de l’exercice Ex. IX.2 .
Rechercher le minimum grâce à la fonction Matlab fminsearch appliquée à cet algorithme de
pénalisation. Tester également la fonction Matlab fmincon.

TD IX.2 Soit n ∈ IN∗ . On considère la matrice A n ∈ Mn (IR) et le vecteur b n ∈ IRn définis par :
 
4 −2 0 . . . 0  

 −2 4 −2 ..  1
. 

1 
  
An = 
 .. .. .. 
 0 . . . 0   et b n =  ..  .
 
 .  .
 .
 . −2 4 −2 

1
0 . . . 0 −2 4

On va noter 〈x,y〉 le produit scalaire euclidien des deux vecteurs x et y. On cherche à minimiser
dans IRn , par différentes méthodes, la fonction :
1
J n : x 7→ 〈A n x,x〉 − 〈b n ,x〉.
2
On introduit donc le problème :
inf J n (x). (P n )
x∈IRn

Remarque : il est important d’exploiter, dans les questions qui suivent, le format creux de la matrice
A afin de diminuer les temps de calcul. On utilisera la fonction Matlab spdiags.
(i) t On considère le cas n = 2. Montrer que J 2 est coercive sur IR2 (c’est à dire J 2 (x) → +∞
quand kxk → +∞) et résoudre le problème (P 2 ) .
(ii) Nous allons étudier deux méthodes de minimisation. Pour chacune de ces études, on de-
mande , lorsque n prend les valeurs 10, 20, 30, 50, 100,
; de tester chacune des deux méthodes
; de comparer à l’aide d’un graphique ou d’un tableau, la rapidité de convergence de cha-
cune de ces méthodes, ainsi que le temps de calcul par Matlab, suivant les différentes
valeurs prises par n.
(a) m La méthode du gradient à pas fixe.
Écrire une fonction Matlab prenant en argument ρ > 0, un pas fixe et x 0 ∈ IRn , un vec-
teur d’initialisation, afin de mettre en œuvre l’algorithme du gradient à pas fixe, puis la
tester sur J n dans chacun des cas ci-dessus. Répondre aux questions initiales. Expliquer
brièvement pourquoi il est important de choisir le pas fixe, ni trop grand, ni trop petit.
(b) m La méthode du gradient conjugué dans le cas d’une fonction polynomiale de degré 2.
Soit f : IRn 3 x 7→ 12 〈Ax,x〉−〈b,x〉, où A ∈ Mn (IR) est une matrice symétrique réelle définie
positive et b est un vecteur de IRn . Alors, dans ce cas, l’algorithme du gradient conjugué
s’écrit :  0
x est donné, r 0 = Ax 0 − b et d 0 = −r 0 .
 n+1 〈r n ,d n 〉
 x = x n + ρn d n , ρn = −

 n+1 〈Ad n ,d n 〉
 r n+1
 = Ax − b
 kr n+1 k2
d n+1 = −r n+1 + βn d n , βn := .
kr n k2
Programmer cet algorithme et répondre aux questions initiales.

– 34 –
IX.2. TD9 : OPTIMISATION NUMÉRIQUE EN DIMENSION N

Partie non corrigée

TD IX.3 m Implémenter un modèle de régression linéaire avec gradient stochastique pour prédire les
scores d’un examen en fonction du nombre d’heures étudiées. On expliquera soigneusement com-
ment la méthode est mise en œuvre. On suggère de s’inspirer de l’exemple IX.1.13.

Nombre d’heures Score


1.0 1.9
2.0 4.1
3.0 5.9
4.0 8.3
5.0 10.2
6.0 11.9
7.0 14.0
8.0 16.4
9.0 18.1
10.0 20.3
11.0 22.1
12.0 24.5
13.0 26.4
14.0 28.3
15.0 30.1
16.0 32.0
17.0 33.9
18.0 35.8
19.0 37.6
20.0 40.0

; Exécuter plusieurs fois le programme construit. Que remarque-t-on ?


; Comparer les résultats obtenus en mettant en œuvre une méthode déterministe (par exemple
de gradient à pas constant, ou une fonction “boîte noire” du logiciel Matlab).
; Les résultats fournis par ces deux algorithmes diffèrent beaucoup. Qui a raison ? Pouvez-vous
proposer une explication ?

– 35 –
CHAPITRE IX. ALGORITHMES D’OPTIMISATION EN TOUTE DIMENSION

– 36 –

Vous aimerez peut-être aussi