modification des tests d'arret

This commit is contained in:
gergaud 2020-11-07 09:42:19 +01:00
parent d60bd49a1b
commit b81813328d
2 changed files with 21 additions and 23 deletions

View file

@ -13,8 +13,8 @@ xk,f_min,flag,nb_iters = Algorithme_de_Newton(f,gradf,hessf,x0,option)
* **x0** : (Array{Float,1}) première approximation de la solution cherchée * **x0** : (Array{Float,1}) première approximation de la solution cherchée
* **options** : (Array{Float,1}) * **options** : (Array{Float,1})
* **max_iter** : le nombre maximal d'iterations * **max_iter** : le nombre maximal d'iterations
* **tolCN1** : la tolérence pour la condition nécessaire d'ordre 1 * **Tol_abs** : la tolérence absolue
* **tol** : la tolérence pour les autres critères d'arrêt * **Tol_rel** : la tolérence relative
# Sorties: # Sorties:
* **xmin** : (Array{Float,1}) une approximation de la solution du problème : ``\min_{x \in \mathbb{R}^{n}} f(x)`` * **xmin** : (Array{Float,1}) une approximation de la solution du problème : ``\min_{x \in \mathbb{R}^{n}} f(x)``
@ -42,14 +42,13 @@ function Algorithme_De_Newton(f::Function,gradf::Function,hessf::Function,x0,opt
"# Si options == [] on prends les paramètres par défaut" "# Si options == [] on prends les paramètres par défaut"
if options == [] if options == []
max_iter = 100 max_iter = 100
tolCN1 = 1e-15 Tol_abs = sqrt(eps())
tol = 1e-15 Tol_rel = 1e-15
else else
max_iter = options[1] max_iter = options[1]
tolCN1 = options[2] Tol_abs = options[2]
tol = options[3] Tol_rel = options[3]
end end
eps = 1e-8
n = length(x0) n = length(x0)
xmin = zeros(n) xmin = zeros(n)

View file

@ -25,8 +25,8 @@ xk, nb_iters, f(xk), flag = Regions_De_Confiance(algo,f,gradf,hessf,x0,option)
* **eta1,eta2** : ``0 < \eta_{1} < \eta_{2} < 1`` pour les m-à-j de ``R_{k}`` * **eta1,eta2** : ``0 < \eta_{1} < \eta_{2} < 1`` pour les m-à-j de ``R_{k}``
* **delta0** : le rayon de départ de la région de confiance * **delta0** : le rayon de départ de la région de confiance
* **max_iter** : le nombre maximale d'iterations * **max_iter** : le nombre maximale d'iterations
* **tolCN1** : la tolérence pour la condition nécessaire d'ordre 1 * **Tol_abs** : la tolérence absolue
* **tol** : la tolérence pour les autres critères d'arrêt * **Tol_rel** : la tolérence relative
# Sorties: # Sorties:
@ -60,8 +60,8 @@ function Regions_De_Confiance(algo,f::Function,gradf::Function,hessf::Function,x
eta2 = 0.75 eta2 = 0.75
delta0 = 2 delta0 = 2
max_iter = 1000 max_iter = 1000
tolCN1 = 1e-15 Tol_abs = sqrt(eps())
tol = 1e-15 Tol_rel = 1e-15
else else
deltaMax = options[1] deltaMax = options[1]
gamma1 = options[2] gamma1 = options[2]
@ -70,11 +70,10 @@ function Regions_De_Confiance(algo,f::Function,gradf::Function,hessf::Function,x
eta2 = options[5] eta2 = options[5]
delta0 = options[6] delta0 = options[6]
max_iter = options[7] max_iter = options[7]
tolCN1 = options[8] Tol_abs = options[8]
tol = options[9] Tol_rel = options[9]
end end
# eps = sqrt(epsilon_machine) à utiliser pour compenser les éventuelles erreurs de la machine lors de l'évaluation des critères d'arrêt
eps = 1e-8
n = length(x0) n = length(x0)
xmin = zeros(n) xmin = zeros(n)
fxmin = f(xmin) fxmin = f(xmin)