X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Foptim-1.2.0%2F__bracket_min.m;fp=octave_packages%2Foptim-1.2.0%2F__bracket_min.m;h=0393447e3d98817182720679c8b2b98cb58ed684;hp=0000000000000000000000000000000000000000;hb=f5f7a74bd8a4900f0b797da6783be80e11a68d86;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/optim-1.2.0/__bracket_min.m b/octave_packages/optim-1.2.0/__bracket_min.m new file mode 100644 index 0000000..0393447 --- /dev/null +++ b/octave_packages/optim-1.2.0/__bracket_min.m @@ -0,0 +1,42 @@ +## Copyright (C) 2002 Etienne Grossmann +## Copyright (C) 2009 Levente Torok +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . + +## [a, b, ga, gb, nev] = semi_bracket (f, dx, a, narg, args) +## +## Find an interval containing a local minimum of the function +## g : h in reals ---> f (x+h*dx) where x = args{narg} +## +## a < b. +## nev is the number of function evaluations + +function [a, b, ga, gb, n] = __bracket_min (f, dx, narg, args) + + [a,b, ga,gb, n] = __semi_bracket (f, dx, 0, narg, args); + + if a != 0, return; end + + [a2,b2, ga2,gb2, n2] = __semi_bracket (f, -dx, 0, narg, args); + + n += n2; + + if a2 == 0, + a = -b2; ga = gb2; + else + a = -b2; + b = -a2; + ga = gb2; + gb = ga2; +end