TP : algorithme de dichotomie.
méthode de dichotomie. Partie PYTHON : • Après avoir chargé le fichier on interprète le fichier avec le symbole. • Pour définir la fonction
Lalgorithme de dichotomie
Programmation de la deuxième méthode. Programmation sur TI 82. Programmation en Python 2.6. :1?A. :100?B. :2?R. :While R=0. :PartEnt((A+B)/2)?C.
Informatique en CPGE (2018-2019) Résolution dune équation
méthodes de dichotomie et de Newton L'algorithme de recherche dichotomique ("bisection search" en anglais) consiste à ... Un programme en Python :.
Méthodes Numériques : Optimisation
En pratique on pourra utiliser la fonction semilogy de Python
RÉSOLUTION NUMÉRIQUE DE LÉQUATION f(x)=0
La méthode de la dichotomie et la méthode de Newton sont deux techniques permettant de Dans Python
Recherche de zéro
Ces règles définissent la méthode de dichotomie. représentation des flottantes en Python) la suite doit alors converger en moins de 10 itérations.
Analyse numérique en Python Résolution numérique déquations
Bien évidemment la méthode de recherche de racine par dichotomie est disponible dans l'un des modules de Python
Informatique en CPGE (2018-2019) Résolution dune équation
méthodes de dichotomie et de Newton. S. B.. Lycée des EK L'algorithme de recherche dichotomique ("bisection search" en ... Une programme en Python :.
Analyse Numérique
2.2.4.1 Méthode de dichotomie. Avantages : la convergence est assurée on a un encadrement de la solution un seul calcul de fonction à chaque itération.
Zéros de fonctions
La méthode de dichotomie a l'énorme avantage de fournir un encadrement d'une solution l Voici comment implémenter la dichotomie dans le langage Python.
TP : algorithme de dichotomie
méthode de dichotomie Partie PYTHON : • Après avoir chargé le fichier on interprète le fichier avec le symbole • (Pour définir la fonction : ????)=????²?4????+1 • On tape dans l’éditeur On utilise la syntaxe suivante : Attention à la syntaxe : x**2 signifie x² et 4*x signifie 4????
Résolution numérique d’équations - cpge paradise
Bien évidemment la méthode de recherche de racine par dichotomie est disponible dans l’un des modules de Python le module scipy optimize qui regroupe notamment 5 les premières itérations peuvant ne fournir que des 0 non signi?catifs cependant
Méthodes Numériques : Optimisation
Cours de L3, 2020-2021
Université Paris-Dauphine
David Gontier
(version du 7 mai 2021).Méthodes Numériques : OptimisationdeDavid Gontierest mis à disposition selon les termes de lalicence
Creative Commons Attribution- Pas dUtilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.
TABLE DES MATIÈRES
1 Généralités7
1.1 Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
1.2 Calcul de dérivées par différences finies. . . . . . . . . . . . . . . . . . . . . . . . . . .7
1.3 Algorithmes itératifs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
1.4 Vitesse de convergence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
1.4.1 Convergence linéaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
1.4.2 Convergence quadratique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
1.5 Efficacité d"un algorithme itératif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
I Optimisation sans contraintes13
2 Méthodes en une dimension14
2.1 Méthodes par dichotomie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.1.1 Résoudref(x) = 0par dichotomie. . . . . . . . . . . . . . . . . . . . . . . . .14
2.1.2 TrouverargminFpar la méthode de la "section dorée". . . . . . . . . . . . . .15
2.2 Résoudref(x) = 0avec des algorithmes de type Newton. . . . . . . . . . . . . . . . .18
2.2.1 L"algorithme de Newton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
2.2.2 Méthode de la sécante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
2.3 Exercices supplémentaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
3 Méthodes de type descente de gradient24
3.1 Introduction.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
3.1.1 Nombre de variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
3.1.2 Surfaces de niveau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
3.1.3 Algorithme de descente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
3.2 Méthode de gradient à pas constant. . . . . . . . . . . . . . . . . . . . . . . . . . . .27
3.2.1 Algorithme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
3.2.2 Étude de la convergence pour une fonction quadratique. . . . . . . . . . . . .28
3.2.3 Multiplication matrice/vecteur. . . . . . . . . . . . . . . . . . . . . . . . . . .30
3.2.4 Étude de la convergence dans le cas général. . . . . . . . . . . . . . . . . . . .30
3.3 Descente de gradient à pas (quasi-) optimal. . . . . . . . . . . . . . . . . . . . . . . .32
3.3.1 Pas optimal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
3.3.2 Pas quasi-optimal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
3.3.3 Convergence des méthodes de descente. . . . . . . . . . . . . . . . . . . . . . .36
3.4 Exercices supplémentaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
TABLE DES MATIÈRES4
4 Le gradient conjugué40
4.1 Rappels sur les espaces hilbertiens. . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
4.2 Principe des méthodes conjuguées. . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
4.3 Le gradient conjugué. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
4.3.1 Algorithme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
4.3.2 Etude théorique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
4.4 Extensions non-linéaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
5 Retour sur l"algorithme de Newton48
5.1 La méthode de Newton en plusieurs dimensions. . . . . . . . . . . . . . . . . . . . . .48
5.1.1 Newton classique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
5.1.2 Méthode de Newton + gradient conjugué. . . . . . . . . . . . . . . . . . . . .50
5.2 La méthode BFGS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
5.2.1 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
5.2.2 BFGS dans le cas quadratique. . . . . . . . . . . . . . . . . . . . . . . . . . .52
II Optimisation avec contraintes54
6 Introduction à l"optimisation sous contraintes55
6.1 Exemples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
6.2 Contraintes d"inégalités linéaires, et représentation graphique. . . . . . . . . . . . . .57
7 Méthodes par projection59
7.1 Projection sur un ensemble convexe fermé. . . . . . . . . . . . . . . . . . . . . . . . .59
7.1.1 Premières propriétés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
7.2 Méthode du gradient projeté. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
7.2.1 Algorithme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
7.2.2 Analyse dans le cas quadratique. . . . . . . . . . . . . . . . . . . . . . . . . .61
7.3 Calcul de projections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
7.3.1 Optimisation quadratique sous contraintes d"égalités linéaires. . . . . . . . . .62
7.3.2 Optimisation quadratique sous contraintes d"inégalités linéaires. . . . . . . . .64
8 Pénalisation des contraintes68
8.1 Pénalisation extérieure pour les contraintes d"égalité. . . . . . . . . . . . . . . . . . .68
8.2 Pénalisation intérieure pour les contraintes d"inégalités. . . . . . . . . . . . . . . . . .69
8.3 Algorithmes par pénalisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
9 Suppléments71
9.1 Réseaux de neurones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
9.1.1 Notations et définitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
9.1.2 Entraînement d"un réseau de neurones, et rétro-propagation. . . . . . . . . . .72
9.1.3 Calcul des gradients. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
9.2 "Bonnes pratiques» numériques.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
9.2.1 Astuces de code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
A Formulaires77
A.1 Rappel d"algèbre linéaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
A.2 Formules de Taylor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78 A.3 Calcul spectral. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78INTRODUCTION
Dans ce cours1, nous étudions des algorithmes pour résoudre deux types de problèmes : des pro-
blèmesd"optimisationet des problèmesde résolution. Un problème d"optimisation est un problème de
la forme x= argmin nF(x);x2Rdo
oùFest une fonction deRddansR, et les problèmesde résolutionsont de la formeTrouverx2Rdsolution def(x) =0;
oùfest une fonction deRddansRd(c"est à diredéquations àdinconnues). Notre but n"est pas de trouver dessolutions analytiquesà ces problèmes (de typex= p2 3+ ln(2)), mais de trouver des solutionsnumériques(de typex= 1:16455170135:::). Dans la plupart des applications, c"est la connaissance d"une solution numérique qui est intéressante2.Nous présentons différentsalgorithmes de résolution itératifs. Un tel algorithme génère une suite
(xn)qui converge versx, ce qui permet de trouver une solution numérique avec une précision arbi-
traire. Nous prouverons la convergence de ces algorithmes, et étudierons leurvitesse de convergence.
Ce cours sera illustré par de nombreux exemple enPython3.La première et principale partie du cours concerne les problèmes d"optimisationsans contraintes.
Nous abordons les algorithmes de type descente de gradient, la méthode du gradient conjugué, et les
méthodes de type Newton ou BFGS. Dans la seconde partie du cours, nous exposons certains algorithmes pour des problèmes d"optimi-sationavec contraintes. Nous introduisons les méthodes de pénalisation et de gradient projeté.
1. Page web du coursici.
2. Il existe des équations sans solution analytique. Par exemple, comme le montre la théorie d"Abel-Galois, l"équation
x53x1 = 0n"admet pas de solutions par radicales (s"écrivant avec les opérations élémentaires).
TABLE DES MATIÈRES6
Jupyter
Installation
Les exemples et les TPs de ce cours se feront sur l"interface3Jupyter, qui est un outil qui permet d"écrire duPythonsur un navigateur Web. Pour installer Jupyter, il faut d"abord installerPython3, puis lancer dans un Terminal la commande1> pip3 install jupyter
Cette commande permet d"installer l"environnementJupyter. Il faut aussi charger la librairie de calculs
numériques et la librairie graphique, avec1> pip3 install numpy , matplotlib
Une fois l"installation terminée, on peut lancer directement unnotebookavec la commande41> cd DossierOuEstLeNotebook/
2> jupyter notebook
Plusieurs lignes s"affichent dans le Terminal, dont une ligne de la forme1Copy/paste this URL into your browser when you connect for the first time,
2to login with a token:
Si le navigateur Web ne se lance pas directement, lancez en un (Firefox, Safari, Chrome,...), et copier
l"adresse précédente comme url.Premier fichier
Pour créer un nouveau fichier, cliquer sur "New" (en haut à droite), et sélectionnerPython3. Une
page s"ouvre. Cette page, appeléenotebook, sera structurée encellules. Dans la première cellule, on
écriratoujours
1%pylab inline
Cette ligne permet de charger les librairiesnumpy(fonctions mathématiques) etmatplotlib(affichagegraphique). On exécute la cellule avecshift+enter. Pour vérifier que tout marche bien, on peut écrire
dans la deuxième cellule1tt = linspace(0,1,100)
2deff(x) :returnsin(2*pi*x)
3plot(tt, f(tt))
puis valider avecshift+enter. Une sinusoïde devrait apparaître.Loin de mon ordinateur? Projet à plusieurs?
Il existe maintenant des serveurs Jupyter en ligne. On peut citercolab.research.google.comsi vous avez un compte Google, etnotebooks.azure.comsi vous avez un compte Microsoft. Il y a aussi cocalc.com, qui permet de faire du LATEX(voir documentationici).3. Le nom "Jupyter» est une concaténation de Julia-Python-R.
4. En lançant la commandejupyter notebook, on créée unserveursur l"ordinateur (localhost). Vous pouvez ensuite
dialoguez avec ce serveur grâce à votre navigateur Web. Si vous fermez le Terminal, vous fermez le serveur, et votre
notebook ne marche plus!CHAPITRE1
GÉNÉRALITÉS
1.1 Conventions
Dans ce manuscrit, nous emploierons systématiquement les lettresx;y;z;:::2Rlorsqu"il s"agit de variables réelles, etx;y;z;:::2Rdlorsqu"il s"agit de vecteurs deRd. Les composantes dex2Rd sont notéesx= (x1;:::;xd). Nous étudions dans ce cours deux types de problèmes : desproblèmes d"optimisationde type argminfF(x);x2Rdg;(1.1) auquel cas nous utiliserons la lettre majusculeF, etFsera une fonction deRddansR, toujours à valeurs réelles (que signifieoptimiserFsinon?), et desproblèmes de résolutionsde type f(x) =0;(1.2) auquel cas nous utiliserons la lettre minusculef, qui sera une fonction deRddansRd(autant de variables que d"équations). Dans les deux cas, nous noteronsx2Rdla solution, ou solution locale, de (1.1)-(1.2).1.2 Calcul de dérivées par différences finies
Dans tout ce cours, il sera important de calculer des dérivées de fonctions, comme le montre l"exemple suivant.Supposons que nous avons déjà construit un algorithme efficace pour résoudre des problèmes de
type (1.2). On pourrait alors utiliser cet algorithme pour résoudre des problèmes de type (1.1) avec1
f=rF. Autrement dit, si on sait résoudref=0, on sait optimiser. Cela nécessite cependant de savoir calculer le gradient (donc les dérivées partielle) deF. LorsquerFest donnée par des formules explicites, on peut directement entrer cette formule dansl"ordinateur. Malheureusement, il arrive souvent que les dérivées deFne soit pas explicites. Cela
arrive par exemple lorsqueFest déjà le résultat d"un calcul complexe. On peut cependant approcher
les dérivées numériquement par desdifférences finies.1. On rappelle que siF:Rd!Rest de classeC1, alors, pour toutx2Rd,F0(x)est une application linéaire deRd
dansR. Le gradient deFest l"unique élément(rF)(x)deRdtel que, pour touth2Rd,F0(x)h=hrF(x);hi(produit
scalaire deRd). L"applicationx7! rFest continue deRddansRd, et on arF(x) = (@x1F;;@xdF)T.1.2. Calcul de dérivées par différences finies8
Définition 1.1.SoitF:Rn!Rde classeC1. L"approximation def:=rFpardifférence finie (resp.différence finie centrée) d"ordre" >0est la fonctionef"(resp.f") deRndansRndont la i-ème composante est définie par (on noteeilei-ème vecteur canonique deRn) ef" i(x) :=F(x+"ei)F(x) "resp.(f")i(x) :=F(x+"ei)F(x"ei) 2":Exercice 1.2
Montrer que siF: [a;b]!Rest de classeC1, alors pour tout" >0, et pour toutx2(a+";b"),F(x+")F(x)
"F0(x) 1 2sup [a;b]jF00j etF(x+")F(x")
2"F0(x)
"2 1 6sup [a;b]jF000jEn pratique, les calculs numériques sont effectués avec une certaine précision: un ordinateur ne
peut retenir qu"un nombre fini de chiffres significatifs. Dans la norme IEEE 754 par exemple (celle qu"utilisePython3), un réel en double précision est codé sous la forme x= (1)sJ2(1)pN; oùs2 f0;1gest le signe dex,Jest un entier codé en base binaire avec52bits (donc0J2521), p2 f0;1g, etNest un entier codé en base binaire avec10bits (donc0N2101). Au total,x est codé sur1 + 52 + 1 + 10 = 64bits.Exercice 1.3
Dans la norme IEEE 754,
a/ Quelles sont les valeurs de(s;J;p;N)pour les nombres0et1? b/ Quelle la valeur numérique strictement plus grande que0? et que1? Ainsi, poursuffisamment petit2, un ordinateur ne fait pas la différence entre1+et1, mais faitla différence entre0et. Une première conséquence de ce phénomène est que l"addition+numérique
est commutative (on a toujoursa+b=b+a), mais n"est pas associative. On a par exemple :1 +(1 +) =1 +1 = 0;mais((1) +1) += 0 +=:
Une autre conséquence est que les nombres réels ne sont calculés qu"approximativement. Ainsi, la
fonction mathématiqueFest approchée numériquement par une fonctionFtelle que8x2Rn;jF(x)F(x)j :
En particulier, la différenceF(x+")F(x)est d"ordresi".Exercice 1.4
a/ Avec les mêmes hypothèses que l"Exercice1.2, montrer qu"on aF(x+")F(x)
"F0(x) 1 2sup [a;b]jF00j + 2 ";(différence finie numérique);F(x+")F(x")
2"F0(x)
"2 1 6sup [a;b]jF000j "(différence finie centrée numérique): b/ Soitc1;c2>0. Calculer en fonction dele minimiseur et le minimum des fonctions e1(") :=c1"+c2 "ete1(") :=c1"2+c2c/ En déduire qu"il faut choisir"=O(p)pour les différences finies, et"=O(1=3)pour les différences
finis centrées.2. Un rapide calcul montre que2522:21016. Un ordinateur ne peut retenir que 16 chiffres significatifs au
maximum.1.3. Algorithmes itératifs9
En pratique, on a1016. On retiendra qu"on pourra approcherrFpar des différences finies centrées en choisissant"= 105, et qu"on aura une erreur numérique de l"ordre de1010.1.3 Algorithmes itératifs
Nous étudions dans ce cours exclusivement des algorithmesitératifs. Ces algorithmes construisent
une suite(xn)n2Nqui converge versx. Ils sont construits selon le modèle suivant :Code 1.1 - Structure d"un algorithme itératif
1defalgo(F, x0, ..., tol=1e-6, Niter=1000):
2#Initialisation
3xn = x0#premierélémentdelasuite
4L = []#laliste[x_0,...x_{n-1}],pourlemomentvide
56#Boucleprincipale
8if... < tol:#Silecritèredeconvergenceestatteint,
9returnxn, L#onrenvoiexnetlaliste[x_0,...x_{n-1}].
11xn = ...#puisonmetàjourxnaveclaformuled"itération
12print("Erreur,l"algorithmen"apasconvergéaprès", Niter ,"itérations")
Faisons quelques commentaires sur ce code.
-l.1 : le codealgoprend en entrée la fonctionF, un point d"initialisationx0, éventuellementd"autres paramètres, et enfin deux paramètres d"arrêt : une tolérancetol(dont la valeur par
défaut est ici106), et un nombre d"itérations maximalNiter(dont la valeur par défaut est ici1000). -l.2 : le code initialise le pointxnavecxn=0=x0, et la listeL= [x0;:::xn1]avecLn=0= [] (pour le moment vide). -l.7 : dans la boucle principale,nvarie entre dansrange(Niter)= [0;1;:::;Niter1]. À l"itérationn, on calcule len-ème élément de la suite(xn). Attention : On n"utilisera jamais de boucleswhiledans ce cours.-l.8-9 : on commence par vérifier si lecritère d"arrêtest atteint, auquel cas on peut sortir
de la boucle en renvoyantxn(le dernier élément calculé), etL= [x0;:::xn1]. Nous verronsplusieurs types de critère d"arrêt. Dans ce cours, nous renvoyons systématiquement les itérations
précédentes (la listeL). Cela nous permet d"étudier la qualité de l"algorithme (=sa vitesse de
convergence, cf. chapitre suivant).-l.10-11 : si le critère n"est pas vérifié, on met à jour la listeL, et on calculexn+1avec une
formule d"itération, qui dépend de l"algorithme. On nomme toujours ce nombrexn(au lieu de xn+1) : implicitement, on passe au rangn+ 1entre la ligne10et11. -l.12 : si l"algorithme sort de la boucle, cela signifie quen=Niter: on a atteint le nombre maximal d"itérations autorisées. On dit dans ce cas que l"algorithmen"a pas convergé.1.4 Vitesse de convergence
Lavitesse de convergenced"un algorithme itératif est la vitesse de convergence de la suite(xn)vers
x. Cette vitesse peut-être très différente de la vitesse réelle de l"algorithme, qui prend aussi en compte
le temps que met l"ordinateur à évaluer la fonctionFpar exemple. Cependant, le temps physique de
l"algorithme est évidemment proportionnel à son nombre d"itérations. Nous parlerons de l"efficacité
réelle d"un algorithme dans la section suivante.1.4. Vitesse de convergence10
1.4.1 Convergence linéaire
Définition 1.5 : Convergence linéaire
On dit qu"une suite(xn)convergelinéairement à taux au plus0< <1versxs"il existeC2R+tel que
8n2N;jxnxj Cn:(1.3)
La borne inférieure des0< <1vérifiant cette propriété est appeléetaux de convergence de la suite. Si (1.3) est vérifiée pour tout >0, on dit que la convergence estsuper-linéaire.Par exemple, siC= 1et=1
10, on ajxnxj 10n. Cela signifie qu"on gagne une bonne
décimale par itérations. On retiendra qu"un algorithme qui converge linéairement gagne un nombre
fixe de bonnes décimales par itération. Si(xn)converge linéairement versxà taux, alors on a ln(jxnxj)nln(): Ainsi, pour mettre en évidence une convergence linéaire d"un algorithme, on traceraln(xnx) en fonction den. On observe une droite, dont le coefficient directeur estln()(donc négatif, car0< <1). En pratique, on pourra utiliser la fonctionsemilogydePython, par exemple avec le
code suivant :Code 1.2 - Illustrer une convergence linéaire
1xstar , L = algo(F, ...)
2N =len(L)#nombred"itérations
3nn =range(N)#laliste[0,1,...N-1]
4errors = [abs(xn - xstar)forxninL]#laliste|xn-x*|
5semilogy(nn, errors)
67#Ontrouveletauxaveclafonctionpolyfit
8p = polyfit(nn, log(errors), 1)
Un exemple de figure donné par ce code est donné plus loin, en Figure2.1. Quelques remarques sur le code précédent. -l.5. La fonctionsemilogy(x,y)trace la même courbe queplot(x,log(y))(graphe de(x;ln(y))), mais a l"avantage de changer l"échelle desypour qu"elle soit plus lisible (voir Figure2.1). -l.8. La fonctionpolyfit(x,y,k)cherche lameilleure approximation polynomiale de degrék qui interpole le graphe(x;y). Ici, on veut une approcher la courbe par une droite, d"où l"ap- proximation polynomiale de degré1. Le coefficient dominant estp[0]. Pour démontrer une convergence linéaire, on utilise souvent le critère suivant. Lemme 1.6 : Condition pour la convergence linéaire Soit(xn)une suite deRd. On suppose qu"il existe0< <1tel que, pour toutn2N, on a kxn+1xnk kxnxn1k. Alors il existex2Rdtel que la suite(xn)converge versx, et on a8n2N;kxnxk n
1kx1x0k:(1.4)
En particulier, la suite(xn)converge linéairement versxà un taux inférieur ou égale à.
Démonstration.On commence par remarquer qu"on a, par une récurrence immédiate, l"inégalité
8n2N;kxn+1xnk kxnxn1k nkx1x0k:
1.4. Vitesse de convergence11
De plus, pour toutn;p2N, on a
kxn+pxnk kxn+pxn+p1k+kxn+p1xn+p2k++kxn+1xnk (n+p+n+p1++n)kx1x0k=np+p1++ 1kx1x0k n 1X k=0 k kx1x0k=n1kx1x0k:(1.5)
On en déduit quekxn+pxnkconverge vers0lorsquen! 1, uniformément enp2N. Ainsi, la suite (xn)est de Cauchy. L"espaceRnétant complet, elle converge vers une certaine limitex2Rn. En faisant tendrepvers l"infini dans (1.5), on obtient (1.4).1.4.2 Convergence quadratique
Définition 1.7 : Convergence quadratique
On dit qu"une suite(xn)convergeà l"ordre au moins >1versxs"il existeC2R+et0< <1tel que
8n2N;jxnxj Cn:
Le plus grandvérifiant cette propriété est appeléordre de convergencede la suite. Si = 2, on parle deconvergence quadratique. Par exemple, si(xn)converge quadratiquement versxavecC= 1et=110, on ajxnxj
102n. Autrement dit, on double le nombre de bonnes décimales à chaque itération. Plus généralement,
on retiendra qu"une convergence à l"ordremultiplie parle nombre de bonnes décimales à chaque
itération.Si(xn)converge à l"ordreversx, on a cette fois
ln(jln(jxnxj)j)nln:Contrairement au cas de la convergence linéaire, on ne trace pas cette fois la fonctionln(jln(jxnxj)j)
(on ne verra presque jamais une belle droite). Ainsi, en pratique, on montrera numériquement que les
convergences sont super-linéaires en montrant qu"elle décroissent plus vite que des droites en échelle
semilog. On peut aussi vérifier que le nombre de bonnes décimales est multiplié par un certain facteur
à chaque itération (voir Figure2.3).
Le critère suivant permet de démontrer une convergence à l"ordre. Lemme 1.8 : Condition pour la convergence quadratique Soit(xn)une suite deRd. On suppose qu"il existeC0et >1tel que8n2N;kxn+1xnk Ckxnxn1k;et:=C
11kx1x0k<1:
Alors il existex2Rdtel que(xn)converge à l"ordreversx. Plus spécifiquement, kxnxk eCn;aveceC:=1 11 1 C 1 1: Démonstration.Par récurrence, on obtient que pour toutn2N, kxn+1xnk Ckxnxn1kCCkxn1xn2k=C1+kxn1xn2k2
C1+++n1kx1x0kn=C n11kx1x0kn=C
1 1n:1.5. Efficacité d"un algorithme itératif12
Montrons que la suite(xn)est de Cauchy. On a
kxn+pxnk kxn+pxn+p1k+kxn+p1xn+p2k++kxn+1xnk C 1 1 n+p1+n+p2++n Ainsi, pour montrer que(xn)est de Cauchy, il suffit de montrer que la série(n+k)est convergente. Pour toutm2N, la fonctionx7!(1 +x)m1mxest positive surR+(elle s"annule enx= 0, et sa dérivée est positive surR+). En particulier, avecx=1, on ak1 +k(1), et donc n+k=nkn(1+k(1))=n+n(1)kn+(1)k=n(1)k: En remplaçant dans l"inégalité précédente, on obtient kxn+pxnk C 1 1n 1X k=0 (1)k =C 1 1n1 1(1): Commenconverge vers0, ceci montre que(xn)est une suite de Cauchy, et converge vers une limite x2Rd. De plus, en faisant tendrepvers l"infini, on obtient l"inégalité souhaitée.Exercice 1.9
Soit :R!Rde classeC2, et soitxune solution du problème de point fixe(x) =x. On suppose qu"il existe0< <1tel quej0(x)j< . a/ Montrer qu"il existe" >0tel que pour toutx2(x";x+"), on aj0(x)j . b/ Soitx02(x";x+"), et soit(xn)la suite définie par récurrence parxn+1= (xn). Montrer que la suite(xn)converge linéairement à taux au plusversx. c/ On suppose que0(x) = 0. Montrer que six0est suffisamment proche dex, alors la suite(xn) converge versxà l"ordre au moins2.1.5 Efficacité d"un algorithme itératif
En pratique, l"opération qui prend le plus de temps à calculer numériquement est l"évaluation de
F(ouf) en un pointx2Rd. Cette opération peut prendre quelques microsecondes (siFa une formule explicite par exemple), ou bien plusieurs minutes/heures (siF(x)est elle même la solutiond"un problème complexe). Ainsi, pour comparer l"efficacité de deux algorithmes, on préfère comparer
leurtaux effectif(ici définit pour des convergences linéaires). Définition 1.10 : Taux effectif de convergence linéaire SoitAun algorithme itératif ayant une structure similaire au Code1.1. On suppose queA génère une suite(xn)telle que(xn)converge linéairement versxà taux2(0;1). On suppose de plus que l"algorithme appellekfois la fonctionFà chaque itération de sa boucle principale.Lataux effectifde l"algorithme est(A) :=1=k.
Par exemple, siAest un algorithme qui génère une suite(xn)de typexn+1= (xn), oùest une fonction qui appellekfois la fonctionF, et si(xn)converge linéairement versxà taux2(0;1), alors la vitesse effective deAest(A) =1=k. Soit maintenantA0l"algorithme qui génère la suite(yn)avecyn+1= ((yn)), alors, par une récurrence immédiate, on ayn=x2n, et donc kynxk=kx2nxk C2nC(2)n; et on en déduit que la suite(yn)converge versxà taux2. Comme2< , l"algorithmeA0génèreune suite qui converge plus rapidement (au sens des suites) versxque la suite(xn)générée par
l"algorithmeA. Cependant, le taux effectif des deux algorithmes est la même, carA0évalue2kfois la
fonctionFpar itération, et la vitesse effective est(A0) = (2)1=(2k)=1=k=(A).quotesdbs_dbs27.pdfusesText_33[PDF] résolution équation différentielle matlab ode45
[PDF] le message andrée chedid genre
[PDF] algorithme méthode d'euler implicite matlab
[PDF] méthode de tir équation différentielle
[PDF] le message andrée chedid quiz
[PDF] le message andrée chedid extrait
[PDF] méthode euler implicite matlab
[PDF] le message andrée chedid texte intégral
[PDF] fonction ode45 matlab
[PDF] memoire de fin detude en telecommunication
[PDF] grille évaluation projet
[PDF] comment bien faire l amour ? son mari pdf
[PDF] le roman de renart fiche de lecture
[PDF] évaluer un projet d'animation