Fix bug #1848: taytorat leaks internal gensyms from multivar expansions
[maxima.git] / doc / info / es / lbfgs.texi
blob9445950a07e58be396de3dc9b4783f33382fdddd
1 @c English version: 2013-07-27
2 @menu
3 * Introducción a lbfgs::
4 * Funciones y variables para lbfgs::
5 @end menu
7 @node Introducción a lbfgs, Funciones y variables para lbfgs, Top, Top
8 @section Introducción a lbfgs
10 La función @code{lbfgs} implementa el llamado algoritmo L-BFGS [1]
11 para resolver problemas de minimización sin restricciones mediante una
12 técnica @i{cuasi-Newton con memoria limitada} (BFGS). El término
13 memoria limitada procede del hecho de que se almacena una aproximación
14 de rango bajo de la inversa de la matriz hessiana, en lugar de la matriz
15 completa. El programa fue originalmente escrito en Fortran [2] por
16 Jorge Nocedal, incorporando algunas funciones escritas originalmente
17 por Jorge J. Mor@'{e} y David J. Thuente, traducidas posteriormente a Lisp
18 automáticamente con el programa @code{f2cl}. El paquete @code{lbfgs}
19 contiene el código traducido, junto con una función interfaz que para
20 controlar ciertos detalles.
23 Referencias:
25 [1] D. Liu and J. Nocedal. "On the limited memory BFGS method for large
26 scale optimization". @i{Mathematical Programming B} 45:503--528 (1989)
28 [2] @url{http://netlib.org/opt/lbfgs_um.shar}
30 @node Funciones y variables para lbfgs, , Introducción a lbfgs, Top
31 @section Funciones y variables para lbfgs
33 @deffn {Función} lbfgs (@var{FOM}, @var{X}, @var{X0}, @var{epsilon}, @var{iprint})
34 @deffnx {Function} lbfgs ([@var{FOM}, @var{grad}] @var{X}, @var{X0}, @var{epsilon}, @var{iprint})
36 Encuentra una solución aproximada para el problema de minimización
37 sin restricciones de la función objetivo @var{FOM} para la lista de 
38 variables @var{X}, partiendo de los estimadores iniciales @var{X0},
39 de tal manera que @math{norm(grad(FOM)) < epsilon*max(1, norm(X))}.
41 Si el argumento @var{grad} está presente, debe ser el gradiente de @var{FOM} respecto
42 de las variables @var{X}. @var{grad} puede ser una lista o una función 
43 que devuelva una lista con igual número de elementos que @var{X}. 
44 Si el argumento no está presente, el gradiente se calcula automáticamente mediante derivación
45 simbólica. Si @var{FOM} es una función, el gradiente @var{grad} debe ser suministrado
46 por el usuario.
48 El algoritmo utilizado es una técnica @i{cuasi-Newton con memoria limitada}
49 (BFGS) [1]. El término @i{memoria limitada} procede del hecho de que se almacena
50 una aproximación de rango bajo de la inversa de la matriz hessiana, en lugar
51 de la matriz completa.
52 Cada iteración del algoritmo es una búsqueda a lo largo de una recta,
53 cuya dirección se calcula a partir de la matriz inversa aproximada del
54 hessiano. La función objetivo decrece siempre tras cada búsqueda
55 exitosa a lo largo de la recta; además, casi siempre decrece también
56 el módulo del gradiente de la función.
58 El argumento @var{iprint} controla los mensajes de progreso que envía
59 la función @code{lbfgs}.
62 @table @code
63 @item iprint[1]
64 @code{@var{iprint}[1]} controla la frecuencia con la que se emiten los mensajes.
65 @table @code
66 @item iprint[1] < 0
67 No se envían mensajes.
68 @item iprint[1] = 0
69 Mensajes únicamente en la primera y última iteraciones.
70 @item iprint[1] > 0
71 Imprime un mensaje cada @code{@var{iprint}[1]} iteraciones.
72 @end table
73 @item iprint[2]
74 @code{@var{iprint}[2]} controla la cantidad de información contenida en los mensajes.
75 @table @code
76 @item iprint[2] = 0
77 Imprime contador de iteraciones, número de evaluaciones de @var{FOM}, valor de @var{FOM},
78 módulo del gradiente de @var{FOM} y amplitud del paso.
79 @item iprint[2] = 1
80 Igual que @code{@var{iprint}[2] = 0}, incluyendo @var{X0} y el gradiente de @var{FOM} evaluado en @var{X0}.
81 @item iprint[2] = 2
82 Igual que @code{@var{iprint}[2] = 1}, incluyendo los valores de @var{X} en cada iteración.
83 @item iprint[2] = 3
84 Igual que @code{@var{iprint}[2] = 2}, incluyendo el gradiente de @var{FOM} en cada iteración.
85 @end table
86 @end table
88 Las columnas devueltas por @code{lbfgs} son las siguientes:
90 @table @code
91 @item I
92 Número de iteraciones. Se incremente tras cada búsqueda a lo
93 largo de una recta.
94 @item NFN
95 Número de evaluaciones de la función objetivo.
96 @item FUNC
97 Valor de la función objetivo al final de cada iteración.
98 @item GNORM
99 Módulo del gradiente de la función objetivo al final de
100 cada iteración.
101 @item STEPLENGTH
102 Un parámetro interno del algoritmo de búsqueda.
103 @end table
105 Para más información sobre el algoritmo se puede acudir a los
106 comentarios en el código original en Fortran [2].
108 Véanse también @code{lbfgs_nfeval_max} y @code{lbfgs_ncorrections}.
110 Referencias:
112 [1] D. Liu and J. Nocedal. "On the limited memory BFGS method for large
113 scale optimization". @i{Mathematical Programming B} 45:503--528 (1989)
115 [2] @url{http://netlib.org/opt/lbfgs_um.shar}
117 Ejemplos:
119 La misma función objetivo utilizada por FGCOMPUTE en el programa 
120 sdrive.f del paquete LBFGS de Netlib. Nótese que las variables en
121 cuestión están subindicadas. La función objetivo tiene un
122 mínimo exacto igual a cero en @math{u[k] = 1}, para
123 @math{k = 1, ..., 8}.
124 @c ===beg===
125 @c load (lbfgs)$
126 @c t1[j] := 1 - u[j];
127 @c t2[j] := 10*(u[j + 1] - u[j]^2);
128 @c n : 8;
129 @c FOM : sum (t1[2*j - 1]^2 + t2[2*j - 1]^2, j, 1, n/2);
130 @c lbfgs (FOM, '[u[1], u[2], u[3], u[4], u[5], u[6], u[7], u[8]],
131 @c        [-1.2, 1, -1.2, 1, -1.2, 1, -1.2, 1], 1e-3, [1, 0]);
132 @c ===end===
134 @example
135 (%i1) load (lbfgs)$
136 (%i2) t1[j] := 1 - u[j];
137 (%o2)                     t1  := 1 - u
138                             j         j
139 (%i3) t2[j] := 10*(u[j + 1] - u[j]^2);
140                                           2
141 (%o3)                t2  := 10 (u      - u )
142                        j         j + 1    j
143 (%i4) n : 8;
144 (%o4)                           8
145 (%i5) FOM : sum (t1[2*j - 1]^2 + t2[2*j - 1]^2, j, 1, n/2);
146                  2 2           2              2 2           2
147 (%o5) 100 (u  - u )  + (1 - u )  + 100 (u  - u )  + (1 - u )
148             8    7           7           6    5           5
149                      2 2           2              2 2           2
150         + 100 (u  - u )  + (1 - u )  + 100 (u  - u )  + (1 - u )
151                 4    3           3           2    1           1
152 (%i6) lbfgs (FOM, '[u[1],u[2],u[3],u[4],u[5],u[6],u[7],u[8]],
153        [-1.2, 1, -1.2, 1, -1.2, 1, -1.2, 1], 1e-3, [1, 0]);
154 *************************************************
155   N=    8   NUMBER OF CORRECTIONS=25
156        INITIAL VALUES
157  F=  9.680000000000000D+01   GNORM=  4.657353755084533D+02
158 *************************************************
159 @end example
160 @ifnottex
161 @example
162  I NFN   FUNC                    GNORM                   STEPLENGTH
164  1   3   1.651479526340304D+01   4.324359291335977D+00   7.926153934390631D-04
165  2   4   1.650209316638371D+01   3.575788161060007D+00   1.000000000000000D+00
166  3   5   1.645461701312851D+01   6.230869903601577D+00   1.000000000000000D+00
167  4   6   1.636867301275588D+01   1.177589920974980D+01   1.000000000000000D+00
168  5   7   1.612153014409201D+01   2.292797147151288D+01   1.000000000000000D+00
169  6   8   1.569118407390628D+01   3.687447158775571D+01   1.000000000000000D+00
170  7   9   1.510361958398942D+01   4.501931728123679D+01   1.000000000000000D+00
171  8  10   1.391077875774293D+01   4.526061463810630D+01   1.000000000000000D+00
172  9  11   1.165625686278198D+01   2.748348965356907D+01   1.000000000000000D+00
173 10  12   9.859422687859144D+00   2.111494974231706D+01   1.000000000000000D+00
174 11  13   7.815442521732282D+00   6.110762325764183D+00   1.000000000000000D+00
175 12  15   7.346380905773044D+00   2.165281166715009D+01   1.285316401779678D-01
176 13  16   6.330460634066464D+00   1.401220851761508D+01   1.000000000000000D+00
177 14  17   5.238763939854303D+00   1.702473787619218D+01   1.000000000000000D+00
178 15  18   3.754016790406625D+00   7.981845727632704D+00   1.000000000000000D+00
179 16  20   3.001238402313225D+00   3.925482944745832D+00   2.333129631316462D-01
180 17  22   2.794390709722064D+00   8.243329982586480D+00   2.503577283802312D-01
181 18  23   2.563783562920545D+00   1.035413426522664D+01   1.000000000000000D+00
182 19  24   2.019429976373283D+00   1.065187312340952D+01   1.000000000000000D+00
183 20  25   1.428003167668592D+00   2.475962450735100D+00   1.000000000000000D+00
184 21  27   1.197874264859232D+00   8.441707983339661D+00   4.303451060697367D-01
185 22  28   9.023848942003913D-01   1.113189216665625D+01   1.000000000000000D+00
186 23  29   5.508226405855795D-01   2.380830599637816D+00   1.000000000000000D+00
187 24  31   3.902893258879521D-01   5.625595817143044D+00   4.834988416747262D-01
188 25  32   3.207542206881058D-01   1.149444645298493D+01   1.000000000000000D+00
189 26  33   1.874468266118200D-01   3.632482152347445D+00   1.000000000000000D+00
190 27  34   9.575763380282112D-02   4.816497449000391D+00   1.000000000000000D+00
191 28  35   4.085145106760390D-02   2.087009347116811D+00   1.000000000000000D+00
192 29  36   1.931106005512628D-02   3.886818624052740D+00   1.000000000000000D+00
193 30  37   6.894000636920714D-03   3.198505769992936D+00   1.000000000000000D+00
194 31  38   1.443296008850287D-03   1.590265460381961D+00   1.000000000000000D+00
195 32  39   1.571766574930155D-04   3.098257002223532D-01   1.000000000000000D+00
196 33  40   1.288011779655132D-05   1.207784334505595D-02   1.000000000000000D+00
197 34  41   1.806140190993455D-06   4.587890258846915D-02   1.000000000000000D+00
198 35  42   1.769004612050548D-07   1.790537363138099D-02   1.000000000000000D+00
199 36  43   3.312164244118216D-10   6.782068546986653D-04   1.000000000000000D+00
200 @end example
201 @end ifnottex
202 @tex
203 \halign{\hfil\tt#&\quad\hfil\tt#\quad&\tt#\hfil\quad&\tt#\hfil\quad&\tt#\hfil\cr
204 I& NFN&   FUNC&                    GNORM&                   STEPLENGTH\cr
205 &&&&\cr
206  1& 3& 1.651479526340304D+01& 4.324359291335977D+00& 7.926153934390631D-04\cr
207  2& 4& 1.650209316638371D+01& 3.575788161060007D+00& 1.000000000000000D+00\cr
208  3& 5& 1.645461701312851D+01& 6.230869903601577D+00& 1.000000000000000D+00\cr
209  4& 6& 1.636867301275588D+01& 1.177589920974980D+01& 1.000000000000000D+00\cr
210  5& 7& 1.612153014409201D+01& 2.292797147151288D+01& 1.000000000000000D+00\cr
211  6& 8& 1.569118407390628D+01& 3.687447158775571D+01& 1.000000000000000D+00\cr
212  7& 9& 1.510361958398942D+01& 4.501931728123680D+01& 1.000000000000000D+00\cr
213  8&10& 1.391077875774294D+01& 4.526061463810632D+01& 1.000000000000000D+00\cr
214  9&11& 1.165625686278198D+01& 2.748348965356917D+01& 1.000000000000000D+00\cr
215 10&12& 9.859422687859137D+00& 2.111494974231644D+01& 1.000000000000000D+00\cr
216 11&13& 7.815442521732281D+00& 6.110762325766556D+00& 1.000000000000000D+00\cr
217 12&15& 7.346380905773160D+00& 2.165281166714631D+01& 1.285316401779533D-01\cr
218 13&16& 6.330460634066370D+00& 1.401220851762050D+01& 1.000000000000000D+00\cr
219 14&17& 5.238763939851439D+00& 1.702473787613255D+01& 1.000000000000000D+00\cr
220 15&18& 3.754016790406701D+00& 7.981845727704576D+00& 1.000000000000000D+00\cr
221 16&20& 3.001238402309352D+00& 3.925482944716691D+00& 2.333129631296807D-01\cr
222 17&22& 2.794390709718290D+00& 8.243329982546473D+00& 2.503577283782332D-01\cr
223 18&23& 2.563783562918759D+00& 1.035413426521790D+01& 1.000000000000000D+00\cr
224 19&24& 2.019429976377856D+00& 1.065187312346769D+01& 1.000000000000000D+00\cr
225 20&25& 1.428003167670903D+00& 2.475962450826961D+00& 1.000000000000000D+00\cr
226 21&27& 1.197874264861340D+00& 8.441707983493810D+00& 4.303451060808756D-01\cr
227 22&28& 9.023848941942773D-01& 1.113189216635162D+01& 1.000000000000000D+00\cr
228 23&29& 5.508226405863770D-01& 2.380830600326308D+00& 1.000000000000000D+00\cr
229 24&31& 3.902893258815567D-01& 5.625595816584421D+00& 4.834988416524465D-01\cr
230 25&32& 3.207542206990315D-01& 1.149444645416472D+01& 1.000000000000000D+00\cr
231 26&33& 1.874468266362791D-01& 3.632482152880997D+00& 1.000000000000000D+00\cr
232 27&34& 9.575763380706598D-02& 4.816497446154354D+00& 1.000000000000000D+00\cr
233 28&35& 4.085145107543406D-02& 2.087009350166495D+00& 1.000000000000000D+00\cr
234 29&36& 1.931106001379290D-02& 3.886818608498966D+00& 1.000000000000000D+00\cr
235 30&37& 6.894000721499670D-03& 3.198505796342214D+00& 1.000000000000000D+00\cr
236 31&38& 1.443296033051864D-03& 1.590265471025043D+00& 1.000000000000000D+00\cr
237 32&39& 1.571766603154336D-04& 3.098257063980634D-01& 1.000000000000000D+00\cr
238 33&40& 1.288011776581970D-05& 1.207784183577257D-02& 1.000000000000000D+00\cr
239 34&41& 1.806140173752971D-06& 4.587890233385193D-02& 1.000000000000000D+00\cr
240 35&42& 1.769004645459358D-07& 1.790537375052208D-02& 1.000000000000000D+00\cr
241 36&43& 3.312164100763217D-10& 6.782068426119681D-04& 1.000000000000000D+00\cr
243 @end tex
244 @example
246  THE MINIMIZATION TERMINATED WITHOUT DETECTING ERRORS.
247  IFLAG = 0
248 (%o6) [u  = 1.000005339816132, u  = 1.000009942840108, 
249         1                       2
250 u  = 1.000005339816132, u  = 1.000009942840108, 
251  3                       4
252 u  = 1.000005339816132, u  = 1.000009942840108, 
253  5                       6
254 u  = 1.000005339816132, u  = 1.000009942840108]
255  7                       8
256 @end example
258 Un problema de regresión. La función objetivo es el cuadrado medio
259 de la diferencia entre la predicción @math{F(X[i])} y el valor observado
260 @math{Y[i]}. La función @math{F} es monótona y acotada (llamada en ocasiones
261 "sigmoidal"). En este ejemplo, @code{lbfgs} calcula valores aproximados para los
262 parámetros de @math{F} y @code{plot2d} hace una representación gráfica
263 comparativa de @math{F} junto con los datos observados.
265 @c ===beg===
266 @c load (lbfgs)$
267 @c FOM : '((1/length(X))*sum((F(X[i]) - Y[i])^2, i, 1, 
268 @c                                                 length(X)));
269 @c X : [1, 2, 3, 4, 5];
270 @c Y : [0, 0.5, 1, 1.25, 1.5];
271 @c F(x) := A/(1 + exp(-B*(x - C)));
272 @c ''FOM;
273 @c estimates : lbfgs (FOM, '[A, B, C], [1, 1, 1], 1e-4, [1, 0]);
274 @c plot2d ([F(x), [discrete, X, Y]], [x, -1, 6]), ''estimates;
275 @c ===end===
277 @example
278 (%i1) load (lbfgs)$
279 (%i2) FOM : '((1/length(X))*sum((F(X[i]) - Y[i])^2, i, 1,
280                                                 length(X)));
281                                2
282                sum((F(X ) - Y ) , i, 1, length(X))
283                        i     i
284 (%o2)          -----------------------------------
285                             length(X)
286 (%i3) X : [1, 2, 3, 4, 5];
287 (%o3)                    [1, 2, 3, 4, 5]
288 (%i4) Y : [0, 0.5, 1, 1.25, 1.5];
289 (%o4)                [0, 0.5, 1, 1.25, 1.5]
290 (%i5) F(x) := A/(1 + exp(-B*(x - C)));
291                                    A
292 (%o5)            F(x) := ----------------------
293                          1 + exp((- B) (x - C))
294 (%i6) ''FOM;
295                 A               2            A                2
296 (%o6) ((----------------- - 1.5)  + (----------------- - 1.25)
297           - B (5 - C)                  - B (4 - C)
298         %e            + 1            %e            + 1
299             A             2            A               2
300  + (----------------- - 1)  + (----------------- - 0.5)
301       - B (3 - C)                - B (2 - C)
302     %e            + 1          %e            + 1
303              2
304             A
305  + --------------------)/5
306       - B (1 - C)     2
307    (%e            + 1)
308 (%i7) estimates : lbfgs (FOM, '[A, B, C], [1, 1, 1], 1e-4, [1, 0]);
309 *************************************************
310   N=    3   NUMBER OF CORRECTIONS=25
311        INITIAL VALUES
312  F=  1.348738534246918D-01   GNORM=  2.000215531936760D-01
313 *************************************************
315 @end example
316 @ifnottex
317 @example
318 I  NFN  FUNC                    GNORM                   STEPLENGTH
319 1    3  1.177820636622582D-01   9.893138394953992D-02   8.554435968992371D-01  
320 2    6  2.302653892214013D-02   1.180098521565904D-01   2.100000000000000D+01  
321 3    8  1.496348495303004D-02   9.611201567691624D-02   5.257340567840710D-01  
322 4    9  7.900460841091138D-03   1.325041647391314D-02   1.000000000000000D+00  
323 5   10  7.314495451266914D-03   1.510670810312226D-02   1.000000000000000D+00  
324 6   11  6.750147275936668D-03   1.914964958023037D-02   1.000000000000000D+00  
325 7   12  5.850716021108202D-03   1.028089194579382D-02   1.000000000000000D+00  
326 8   13  5.778664230657800D-03   3.676866074532179D-04   1.000000000000000D+00  
327 9   14  5.777818823650780D-03   3.010740179797108D-04   1.000000000000000D+00  
328 @end example
329 @end ifnottex
330 @tex
331 \halign{\hfil\tt#&\quad\hfil\tt#\quad&\tt#\hfil\quad&\tt#\hfil\quad&\tt#\hfil\cr
332 I& NFN&   FUNC&                    GNORM&                   STEPLENGTH\cr
333 &&&&\cr
334 1&  3&1.177820636622582D-01& 9.893138394953992D-02& 8.554435968992371D-01\cr
335 2&  6&2.302653892214013D-02& 1.180098521565904D-01& 2.100000000000000D+01\cr
336 3&  8&1.496348495303004D-02& 9.611201567691624D-02& 5.257340567840710D-01\cr
337 4&  9&7.900460841091138D-03& 1.325041647391314D-02& 1.000000000000000D+00\cr
338 5& 10&7.314495451266914D-03& 1.510670810312226D-02& 1.000000000000000D+00\cr
339 6& 11&6.750147275936668D-03& 1.914964958023037D-02& 1.000000000000000D+00\cr
340 7& 12&5.850716021108202D-03& 1.028089194579382D-02& 1.000000000000000D+00\cr
341 8& 13&5.778664230657800D-03& 3.676866074532179D-04& 1.000000000000000D+00\cr
342 9& 14&5.777818823650780D-03& 3.010740179797108D-04& 1.000000000000000D+00\cr
344 @end tex
345 @example
347  THE MINIMIZATION TERMINATED WITHOUT DETECTING ERRORS.
348  IFLAG = 0
349 (%o7) [A = 1.461933911464101, B = 1.601593973254801, 
350                                            C = 2.528933072164855]
351 (%i8) plot2d ([F(x), [discrete, X, Y]], [x, -1, 6]), ''estimates;
352 (%o8) 
353 @end example
355 Especificando el gradiente de la función objetivo en lugar de calcularlo
356 simbólicamente.
358 @c ===beg===
359 @c load (lbfgs)$
360 @c F(a, b, c) := (a - 5)^2 + (b - 3)^4 + (c - 2)^6;
361 @c define(F_grad(a, b, c),
362 @c        map (lambda ([x], diff (F(a, b, c), x)), [a, b, c]));
363 @c estimates : lbfgs ([F, F_grad],
364 @c                    [a, b, c], [0, 0, 0], 1e-4, [1, 0]);
365 @c ===end===
366 @example
367 (%i1) load (lbfgs)$
368 (%i2) F(a, b, c) := (a - 5)^2 + (b - 3)^4 + (c - 2)^6$
369 (%i3) define(F_grad(a, b, c),
370              map (lambda ([x], diff (F(a, b, c), x)), [a, b, c]))$
371 (%i4) estimates : lbfgs ([F, F_grad],
372                    [a, b, c], [0, 0, 0], 1e-4, [1, 0]);
373 *************************************************
374   N=    3   NUMBER OF CORRECTIONS=25
375        INITIAL VALUES
376  F=  1.700000000000000D+02   GNORM=  2.205175729958953D+02
377 *************************************************
379 @end example
380 @ifnottex
381 @example
382    I  NFN     FUNC                    GNORM                   STEPLENGTH
384    1    2     6.632967565917637D+01   6.498411132518770D+01   4.534785987412505D-03  
385    2    3     4.368890936228036D+01   3.784147651974131D+01   1.000000000000000D+00  
386    3    4     2.685298972775191D+01   1.640262125898520D+01   1.000000000000000D+00  
387    4    5     1.909064767659852D+01   9.733664001790506D+00   1.000000000000000D+00  
388    5    6     1.006493272061515D+01   6.344808151880209D+00   1.000000000000000D+00  
389    6    7     1.215263596054292D+00   2.204727876126877D+00   1.000000000000000D+00  
390    7    8     1.080252896385329D-02   1.431637116951845D-01   1.000000000000000D+00  
391    8    9     8.407195124830860D-03   1.126344579730008D-01   1.000000000000000D+00  
392    9   10     5.022091686198525D-03   7.750731829225275D-02   1.000000000000000D+00  
393   10   11     2.277152808939775D-03   5.032810859286796D-02   1.000000000000000D+00  
394   11   12     6.489384688303218D-04   1.932007150271009D-02   1.000000000000000D+00  
395   12   13     2.075791943844547D-04   6.964319310814365D-03   1.000000000000000D+00  
396   13   14     7.349472666162258D-05   4.017449067849554D-03   1.000000000000000D+00  
397   14   15     2.293617477985238D-05   1.334590390856715D-03   1.000000000000000D+00  
398   15   16     7.683645404048675D-06   6.011057038099202D-04   1.000000000000000D+00  
399 @end example
400 @end ifnottex
401 @tex
402 \halign{\hfil\tt#&\quad\hfil\tt#\quad&\tt#\hfil\quad&\tt#\hfil\quad&\tt#\hfil\cr
403 I& NFN&   FUNC&                    GNORM&                   STEPLENGTH\cr
404 &&&&\cr
405    1&   2&    6.632967565917637D+01&  6.498411132518770D+01&  4.534785987412505D-03\cr
406    2&   3&    4.368890936228036D+01&  3.784147651974131D+01&  1.000000000000000D+00\cr
407    3&   4&    2.685298972775191D+01&  1.640262125898520D+01&  1.000000000000000D+00\cr
408    4&   5&    1.909064767659852D+01&  9.733664001790506D+00&  1.000000000000000D+00\cr
409    5&   6&    1.006493272061515D+01&  6.344808151880209D+00&  1.000000000000000D+00\cr
410    6&   7&    1.215263596054292D+00&  2.204727876126877D+00&  1.000000000000000D+00\cr
411    7&   8&    1.080252896385329D-02&  1.431637116951845D-01&  1.000000000000000D+00\cr
412    8&   9&    8.407195124830860D-03&  1.126344579730008D-01&  1.000000000000000D+00\cr
413    9&  10&    5.022091686198525D-03&  7.750731829225275D-02&  1.000000000000000D+00\cr
414   10&  11&    2.277152808939775D-03&  5.032810859286796D-02&  1.000000000000000D+00\cr
415   11&  12&    6.489384688303218D-04&  1.932007150271009D-02&  1.000000000000000D+00\cr
416   12&  13&    2.075791943844547D-04&  6.964319310814365D-03&  1.000000000000000D+00\cr
417   13&  14&    7.349472666162258D-05&  4.017449067849554D-03&  1.000000000000000D+00\cr
418   14&  15&    2.293617477985238D-05&  1.334590390856715D-03&  1.000000000000000D+00\cr
419   15&  16&    7.683645404048675D-06&  6.011057038099202D-04&  1.000000000000000D+00\cr
421 @end tex
422 @example
424  THE MINIMIZATION TERMINATED WITHOUT DETECTING ERRORS.
425  IFLAG = 0
426 (%o4) [a = 5.000086823042934, b = 3.052395429705181, 
427                                            c = 1.927980629919583]
428 @end example
430 @end deffn
433 @defvr {Variable} lbfgs_nfeval_max
434 Valor por defecto: 100
436 La variable @code{lbfgs_nfeval_max} almacena el número máximo de
437 evaluaciones de la función objetivo en @code{lbfgs}. Cuando se
438 alcanza el valor @code{lbfgs_nfeval_max}, @code{lbfgs} devuelve
439 el resultado logrado en la última iteración exitosa.
441 @end defvr
443 @defvr {Variable} lbfgs_ncorrections
444 Valor por defecto: 25
446 La variable @code{lbfgs_ncorrections} almacena el número de correcciones
447 aplicadas a la matriz inversa aproximada del hessiano, la cual es gestionada
448 por @code{lbfgs}.
450 @end defvr