maj documentation
This commit is contained in:
parent
52362a78ec
commit
d60bd49a1b
|
@ -327,7 +327,7 @@ uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
|
||||||
deps = ["Markdown", "Test"]
|
deps = ["Markdown", "Test"]
|
||||||
git-tree-sha1 = "0f55172039cb2a8d64c8e001a040a7b53209ac67"
|
git-tree-sha1 = "0f55172039cb2a8d64c8e001a040a7b53209ac67"
|
||||||
repo-rev = "master"
|
repo-rev = "master"
|
||||||
repo-url = "https://github.com/mathn7/TestOptinum.git"
|
repo-url = "https://github.com/mathn7/TestOptinum"
|
||||||
uuid = "a6016688-b6f6-4950-8384-ab0954b6af15"
|
uuid = "a6016688-b6f6-4950-8384-ab0954b6af15"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,6 @@ makedocs(
|
||||||
],
|
],
|
||||||
"Index des fonctions" =>"fct_index.md",
|
"Index des fonctions" =>"fct_index.md",
|
||||||
"Travail à réaliser" => [
|
"Travail à réaliser" => [
|
||||||
"Pour l'algorithme de Newton" => "Questions_Newton.md",
|
|
||||||
"Pour les régions de confiance avec le pas de Cauchy" => "Questions_Pas_De_Cauchy.md",
|
"Pour les régions de confiance avec le pas de Cauchy" => "Questions_Pas_De_Cauchy.md",
|
||||||
"Pour les régions de confiance avec le gradient conjugué tronqué" => "Questions_GCT.md",
|
"Pour les régions de confiance avec le gradient conjugué tronqué" => "Questions_GCT.md",
|
||||||
"Pour Lagrangien augmenté" => "Questions_Lagrangien_Augmente.md"
|
"Pour Lagrangien augmenté" => "Questions_Lagrangien_Augmente.md"
|
||||||
|
|
|
@ -46,3 +46,20 @@ une approximation de la solution du problème ``\min _{x \in \mathbb{R}^{n}} f(x
|
||||||
b. Mise à jour : ``x_{k+1} = x_{k}+ d_{k} , k = k + 1``
|
b. Mise à jour : ``x_{k+1} = x_{k}+ d_{k} , k = k + 1``
|
||||||
#### 2.Retourner : ``x_{k}``.
|
#### 2.Retourner : ``x_{k}``.
|
||||||
|
|
||||||
|
## Travail à réaliser Pour l'algorithme de Newton
|
||||||
|
|
||||||
|
#### Implémentation
|
||||||
|
|
||||||
|
1. Coder l’algorithme de Newton local tel que décrit dans la séction *Algorithme de Newton*
|
||||||
|
|
||||||
|
2. Tester l’algorithme sur les fonctions ``f_{1}`` , ``f_{2}`` avec les points initiaux ``x_{011}`` , ``x_{012}`` (pour ``f_{1}`` ) et ``x_{021}`` , ``x_{022}`` , ``x_{023}`` (pour ``f_{2}`` ) donnés en [Annexe A](Annexes.md).
|
||||||
|
|
||||||
|
#### Interprétation
|
||||||
|
|
||||||
|
justifier que
|
||||||
|
|
||||||
|
1. l’algorithme implémenté converge en une itération pour ``f_{1}``;
|
||||||
|
|
||||||
|
2. l’algorithme puisse ne pas converger pour ``f_{2}`` avec certains points initiaux.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
###### Implémentation
|
###### Implémentation
|
||||||
|
|
||||||
1. Coder l’algorithme de Newton local tel que décrit dans la séction *Algorithme de Newton*
|
1. Coder l’algorithme de Newton local tel que décrit dans la section *Algorithme de Newton*
|
||||||
|
|
||||||
2. Tester l’algorithme sur les fonctions ``f_{1}`` , ``f_{2}`` avec les points initiaux ``x_{011}`` , ``x_{012}`` (pour ``f_{1}`` ) et ``x_{021}`` , ``x_{022}`` , ``x_{023}`` (pour ``f_{2}`` ) donnés en Annexe A.
|
2. Tester l’algorithme sur les fonctions ``f_{1}`` , ``f_{2}`` avec les points initiaux ``x_{011}`` , ``x_{012}`` (pour ``f_{1}`` ) et ``x_{021}`` , ``x_{022}`` , ``x_{023}`` (pour ``f_{2}`` ) donnés en Annexe A.
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
justifier que
|
justifier que
|
||||||
|
|
||||||
1. l’algorithme implémenté converge en une itération pour ``f_{1}`` ,
|
1. l’algorithme implémenté converge en une itération pour ``f_{1}``;
|
||||||
|
|
||||||
2. l’algorithme puisse ne pas converger pour ``f_{2}`` avec certains points initiaux.
|
2. l’algorithme puisse ne pas converger pour ``f_{2}`` avec certains points initiaux.
|
||||||
|
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
# Régions de confiance
|
# Régions de confiance partie 1
|
||||||
|
|
||||||
L’introduction d’une région de confiance dans la méthode de Newton permet de garantir
|
L’introduction d’une *région de confiance* dans la méthode de Newton permet de garantir
|
||||||
la convergence globale de celle-ci, i.e. la convergence vers un optimum local quel que soit
|
la convergence globale de celle-ci, i.e. la convergence vers un optimum local quel que soit
|
||||||
le point de départ. Cela suppose certaines conditions sur la résolution locale des sous-
|
le point de départ. Cela suppose certaines conditions sur la résolution locale des sous-
|
||||||
problèmes issus de la méthode, qui sont aisément imposables.
|
problèmes issus de la méthode, qui sont aisément imposables.
|
||||||
|
|
||||||
## Principe
|
## Principe
|
||||||
L’idée de la méthode des régions de confiance est d’approcher f par une fonction
|
L’idée de la méthode des régions de confiance est d’approcher ``f`` par une fonction
|
||||||
modèle plus simple ``m_{k}`` dans une région ``R_{k}=\left\{x_{k}+s ;\|s\| \leq \Delta_{k}\right\}`` pour un ``\Delta_{k}`` fixé.
|
modèle plus simple ``m_{k}`` dans une région ``R_{k}=\left\{x_{k}+s ;\|s\| \leq \Delta_{k}\right\}`` pour un ``\Delta_{k}`` fixé.
|
||||||
Cette région dite “de confiance” doit être suffisament petite pour que
|
Cette région dite “de confiance” doit être suffisament petite pour que
|
||||||
|
|
||||||
``\hspace*{2.5cm}`` ``m_{k}\left(x_{k}+s\right) \sim f\left(x_{k}+s\right)``
|
``\hspace*{2.5cm}`` ``m_{k}\left(x_{k}+s\right) \sim f\left(x_{k}+s\right).``
|
||||||
|
|
||||||
Le principe est que, au lieu de résoudre l’équation : ``f\left(x_{k+1}\right)=\min _{\|x\| \leq \Delta_{k}} f\left(x_{k}+s\right)``
|
Le principe est que, au lieu de résoudre : ``f\left(x_{k+1}\right)=\min _{\|x\| \leq \Delta_{k}} f\left(x_{k}+s\right)``
|
||||||
on résout :
|
on résout :
|
||||||
|
|
||||||
``\hspace*{2.5cm}`` ``m_{k}\left(x_{k+1}\right)=\min _{\|x\| \leq \Delta_{k}} m_{k}\left(x_{k}+s\right)`` ``\hspace*{2.5cm}``(2.1)
|
``\hspace*{2.5cm}`` ``m_{k}\left(x_{k+1}\right)=\min _{\|x\| \leq \Delta_{k}} m_{k}\left(x_{k}+s\right)`` ``\hspace*{2.5cm}.``(2.1)
|
||||||
|
|
||||||
Si la différence entre ``f(x_{k+1})`` et ``m_{k} (x_{k+1} )`` est trop grande, on diminue le ``∆_{k}`` (et
|
Si la différence entre ``f(x_{k+1})`` et ``m_{k} (x_{k+1} )`` est trop grande, on diminue le ``∆_{k}`` (et
|
||||||
donc la région de confiance) et on résout le modèle (2.1) à nouveau. Un avantage de cette
|
donc la région de confiance) et on résout le modèle (2.1) à nouveau. Un avantage de cette
|
||||||
|
@ -25,29 +25,29 @@ sur une région proche de ``x_{k}`` .
|
||||||
|
|
||||||
Exemple de modèle : l’approximation de Taylor à l’ordre 2 (modèle quadratique) :
|
Exemple de modèle : l’approximation de Taylor à l’ordre 2 (modèle quadratique) :
|
||||||
|
|
||||||
``\hspace*{1.5cm}`` ``m_{k}\left(x_{k}+s\right)=q_{k}(s)=f\left(x_{k}\right)+g_{k}^{\top} s+\frac{1}{2} s^{\top} H_{k} s`` ``\hspace*{1.5cm}``(2.2)
|
``\hspace*{1.5cm}`` ``m_{k}\left(x_{k}+s\right)=q_{k}(s)=f\left(x_{k}\right)+g_{k}^{\top} s+\frac{1}{2} s^{\top} H_{k} s`` ``\hspace*{1.5cm},``(2.2)
|
||||||
|
|
||||||
avec ``g_{k}=\nabla f\left(x_{k}\right) \text { et } H_{k}=\nabla^{2} f\left(x_{k}\right)``
|
avec ``g_{k}=\nabla f\left(x_{k}\right) \text { et } H_{k}=\nabla^{2} f\left(x_{k}\right).``
|
||||||
|
|
||||||
## Algorithme
|
## Algorithme
|
||||||
|
|
||||||
###### Algorithme 2
|
#### Algorithme 2
|
||||||
|
|
||||||
*Méthode des régions de confiance (algo général)*
|
*Méthode des régions de confiance (algo général)*
|
||||||
|
|
||||||
###### Données:
|
##### Données:
|
||||||
|
|
||||||
``\Delta_{\max } > 0, \Delta_{0} \in(0, \Delta_{\max}), 0 < \gamma_{1} < 1 < \gamma_{2} , 0 < \eta_{1} < \eta_{2} < 1``
|
``\Delta_{\max } > 0, \Delta_{0} \in(0, \Delta_{\max}), 0 < \gamma_{1} < 1 < \gamma_{2} , 0 < \eta_{1} < \eta_{2} < 1.``
|
||||||
|
|
||||||
###### Sorties:
|
##### Sorties:
|
||||||
une approximation de la solution du problème : ``\min _{x \in \mathbb{R}^{n}} f(x)``
|
une approximation de la solution du problème : ``\min _{x \in \mathbb{R}^{n}} f(x).``
|
||||||
|
|
||||||
|
|
||||||
###### 1.Tant que le test de convergence est non satisfait:
|
##### 1.Tant que le test de convergence est non satisfait :
|
||||||
|
|
||||||
``\hspace*{1.5cm}`` a.Calculer approximativement ``s_{k}`` solution du sous-problème (2.1);
|
``\hspace*{1.5cm}`` a.Calculer approximativement ``s_{k}`` solution du sous-problème (2.1).
|
||||||
|
|
||||||
``\hspace*{1.5cm}`` b.Evaluer ``f\left(x_{k}+s_{k}\right)`` et ``\rho_{k}=\frac{f\left(x_{k}\right)-f\left(x_{k}+s_{k}\right)}{m_{k}\left(x_{k}\right)-m_{k}\left(x_{k}+s_{k}\right)}``
|
``\hspace*{1.5cm}`` b.Evaluer ``f\left(x_{k}+s_{k}\right)`` et ``\rho_{k}=\frac{f\left(x_{k}\right)-f\left(x_{k}+s_{k}\right)}{m_{k}\left(x_{k}\right)-m_{k}\left(x_{k}+s_{k}\right)}.``
|
||||||
|
|
||||||
``\hspace*{1.5cm}`` c. Mettre à jour l’itéré courant :
|
``\hspace*{1.5cm}`` c. Mettre à jour l’itéré courant :
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ une approximation de la solution du problème : ``\min _{x \in \mathbb{R}^{n}} f
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###### 2.Retourner ``x_{k}``.
|
##### 2.Retourner ``x_{k}``.
|
||||||
|
|
||||||
Cet algorithme est un cadre générique. On va s’intéresser à deux raffinages possibles de l’étape a.
|
Cet algorithme est un cadre générique. On va s’intéresser à deux raffinages possibles de l’étape a.
|
||||||
|
|
||||||
|
|
|
@ -12,22 +12,22 @@ include("../src/Regions_De_Confiance.jl")
|
||||||
|
|
||||||
TestOptinum.cacher_stacktrace()
|
TestOptinum.cacher_stacktrace()
|
||||||
|
|
||||||
|
affiche = false
|
||||||
|
println("affiche = ",affiche)
|
||||||
# Tester l'ensemble des algorithmes
|
# Tester l'ensemble des algorithmes
|
||||||
|
|
||||||
@testset "Test SujetOptinum" begin
|
@testset "Test SujetOptinum" begin
|
||||||
# Tester l'algorithme de Newton
|
# Tester l'algorithme de Newton
|
||||||
tester_algo_newton(false,Algorithme_De_Newton)
|
tester_algo_newton(affiche,Algorithme_De_Newton)
|
||||||
|
|
||||||
# Tester l'algorithme du pas de Cauchy
|
# Tester l'algorithme du pas de Cauchy
|
||||||
tester_pas_de_cauchy(false,Pas_De_Cauchy)
|
tester_pas_de_cauchy(affiche,Pas_De_Cauchy)
|
||||||
|
|
||||||
# Tester l'algorithme du gradient conjugué tronqué
|
# Tester l'algorithme du gradient conjugué tronqué
|
||||||
tester_gct(false,Gradient_Conjugue_Tronque)
|
tester_gct(affiche,Gradient_Conjugue_Tronque)
|
||||||
|
|
||||||
# Tester l'algorithme des Régions de confiance avec PasdeCauchy | GCT
|
# Tester l'algorithme des Régions de confiance avec PasdeCauchy | GCT
|
||||||
tester_regions_de_confiance(false,Regions_De_Confiance)
|
tester_regions_de_confiance(affiche,Regions_De_Confiance)
|
||||||
|
|
||||||
# Tester l'algorithme du Lagrangien Augmenté
|
# Tester l'algorithme du Lagrangien Augmenté
|
||||||
tester_lagrangien_augmente(false,Lagrangien_Augmente)
|
tester_lagrangien_augmente(affiche,Lagrangien_Augmente)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue