From b81813328d7b8daadaafbda09876677c67d9d67d Mon Sep 17 00:00:00 2001 From: gergaud Date: Sat, 7 Nov 2020 09:42:19 +0100 Subject: [PATCH] modification des tests d'arret --- src/Algorithme_De_Newton.jl | 25 ++++++++++++------------- src/Regions_De_Confiance.jl | 19 +++++++++---------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/src/Algorithme_De_Newton.jl b/src/Algorithme_De_Newton.jl index 909f8bf..60c7f9e 100644 --- a/src/Algorithme_De_Newton.jl +++ b/src/Algorithme_De_Newton.jl @@ -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 * **options** : (Array{Float,1}) * **max_iter** : le nombre maximal d'iterations - * **tolCN1** : la tolérence pour la condition nécessaire d'ordre 1 - * **tol** : la tolérence pour les autres critères d'arrêt + * **Tol_abs** : la tolérence absolue + * **Tol_rel** : la tolérence relative # Sorties: * **xmin** : (Array{Float,1}) une approximation de la solution du problème : ``\min_{x \in \mathbb{R}^{n}} f(x)`` @@ -39,17 +39,16 @@ xmin,f_min,flag,nb_iters = Algorithme_De_Newton(f,gradf,hessf,x0,options) """ function Algorithme_De_Newton(f::Function,gradf::Function,hessf::Function,x0,options) - "# Si options == [] on prends les paramètres par défaut" - if options == [] - max_iter = 100 - tolCN1 = 1e-15 - tol = 1e-15 - else - max_iter = options[1] - tolCN1 = options[2] - tol = options[3] - end - eps = 1e-8 + "# Si options == [] on prends les paramètres par défaut" + if options == [] + max_iter = 100 + Tol_abs = sqrt(eps()) + Tol_rel = 1e-15 + else + max_iter = options[1] + Tol_abs = options[2] + Tol_rel = options[3] + end n = length(x0) xmin = zeros(n) diff --git a/src/Regions_De_Confiance.jl b/src/Regions_De_Confiance.jl index e40f007..c3e5fc8 100644 --- a/src/Regions_De_Confiance.jl +++ b/src/Regions_De_Confiance.jl @@ -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}`` * **delta0** : le rayon de départ de la région de confiance * **max_iter** : le nombre maximale d'iterations - * **tolCN1** : la tolérence pour la condition nécessaire d'ordre 1 - * **tol** : la tolérence pour les autres critères d'arrêt + * **Tol_abs** : la tolérence absolue + * **Tol_rel** : la tolérence relative # Sorties: @@ -60,8 +60,8 @@ function Regions_De_Confiance(algo,f::Function,gradf::Function,hessf::Function,x eta2 = 0.75 delta0 = 2 max_iter = 1000 - tolCN1 = 1e-15 - tol = 1e-15 + Tol_abs = sqrt(eps()) + Tol_rel = 1e-15 else deltaMax = options[1] gamma1 = options[2] @@ -70,16 +70,15 @@ function Regions_De_Confiance(algo,f::Function,gradf::Function,hessf::Function,x eta2 = options[5] delta0 = options[6] max_iter = options[7] - tolCN1 = options[8] - tol = options[9] + Tol_abs = options[8] + Tol_rel = options[9] 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) xmin = zeros(n) fxmin = f(xmin) flag = 0 nb_iters = 0 - + return xmin, fxmin, flag, nb_iters -end \ No newline at end of file +end