Merge branch 'master' into bug-4403-remove-polyfill
[maxima.git] / doc / info / es / minpack.texi
blob8e5b62767d596cb9dde21bba16de69e7da138c2d
1 @c English version: 2010-10-10
2 @menu
3 * Introducción a minpack::
4 * Funciones y variables para minpack::
5 @end menu
7 @node Introducción a minpack, Funciones y variables para minpack, , 
8 @section Introducción a minpack
10 @code{Minpack} es una traducción a Common Lisp (via @code{f2cl}) de la
11 librería MINPACK escrita en Fortran, tal como se puede
12 obtener de Netlib.
15 @node Funciones y variables para minpack, , Introducción a minpack,
16 @section Funciones y variables para minpack
20 @deffn {Función} minpack_lsquares @
21 @fname{minpack_lsquares} (@var{flist}, @var{varlist}, @var{guess}) @
22 @fname{minpack_lsquares} (..., 'tolerance = @var{tolerance}) @
23 @fname{minpack_lsquares} (..., 'jacobian = @var{jacobian})
25 Calcula el punto @code{x} que minimiza la suma de los cuadrados de las
26 funciones de la lista @var{flist}. Las variables se escriben en
27 la lista @code{varlist}. El argumento @var{guess} debe guardar una
28 estimación inicial del punto óptimo.
30 Los argumentos opcionales @var{tolerance} y @var{jacobian} permiten
31 mantener cierto control sobre el algoritmo; @var{tolerance} es el
32 error relativo estimado que se desea en la suma de cuadrados,
33 mientras que @var{jacobian} puede utilizarse para especificar el
34 jacobiano. Si @var{jacobian} no se suministra, o se le da el valor
35 @code{true}, el que ya tiene por defecto, el jacobiano se calcula
36 a partir de @var{flist}. Si @var{jacobian} vale @code{false}, se
37 utilizará una aproximación numérica.
39 @code{minpack_lsquares} devuelve una lista, siendo su primer 
40 elemento la solución estimada, el segundo la suma de cuadrados y
41 el tercero indica la bondad del algoritmo, siendo sus posibles valores
42 los siguientes:
44 @table @code
45 @item 0
46 Número incorrecto de parámetros.
47 @item 1
48 El algoritmo estima que el error relativo de la suma de cuadrados
49 es, como mucho, igual a @code{tolerance}.
50 @item 2
51 El algoritmo estima que el error relativo entre @var{x} y la solución es,
52 como mucho, igual a @code{tolerance}.
53 @item 3
54 Las dos condiciones anteriores se cumplen.
55 @item 4
56 El vector formado por las funciones evaluadas en el punto @var{x} es
57 ortogonal a las columnas del jacobiano dentro de la precisión de la
58 máquina. 
59 @item 5
60 El número de llamadas a las funciones ha alcanzado 100*(n+1), siendo
61 n el número de variables.
62 @item 6
63 La tolerancia es demasiado pequeña, no siendo posible reducir más la
64 suma de cuadrados.
65 @item 7
66 La tolerancia es demasiado pequeña, no siendo posible mejorar la
67 solución aproximada @var{x}.
68 @end table
70 @example
71 /* Problem 6: Powell singular function */
72 (%i1) powell(x1,x2,x3,x4) := 
73          [x1+10*x2, sqrt(5)*(x3-x4), (x2-2*x3)^2, 
74               sqrt(10)*(x1-x4)^2]$
75 (%i2) minpack_lsquares(powell(x1,x2,x3,x4), [x1,x2,x3,x4], 
76                        [3,-1,0,1]);
77 (%o2) [[1.652117596168394e-17, - 1.652117596168393e-18, 
78         2.643388153869468e-18, 2.643388153869468e-18], 
79        6.109327859207777e-34, 4] 
80 @end example
82 @example
83 /* Same problem but use numerical approximation to Jacobian */
84 (%i3) minpack_lsquares(powell(x1,x2,x3,x4), [x1,x2,x3,x4], 
85                        [3,-1,0,1], jacobian = false);
86 (%o3) [[5.060282149485331e-11, - 5.060282149491206e-12, 
87         2.179447843547218e-11, 2.179447843547218e-11], 
88        3.534491794847031e-21, 5]
89 @end example
90 @end deffn
95 @deffn {Función} minpack_solve @
96 @fname{minpack_solve} (@var{flist}, @var{varlist}, @var{guess}) @
97 @fname{minpack_solve} (..., 'tolerance = @var{tolerance}) @
98 @fname{minpack_solve} (..., 'jacobian = @var{jacobian})
100 Resuelve un sistema de @code{n} ecuaciones con @code{n} incógnitas.
101 Las @code{n} ecuaciones forman la lista @var{flist}, estando la
102 lista @var{varlist} formada por las incógnitas. El argumento
103 @var{guess} es una estimación inicial de la solución.
105 Los argumentos opcionales @var{tolerance} y @var{jacobian} permiten
106 mantener cierto control sobre el algoritmo; @var{tolerance} es el
107 error relativo estimado que se desea en la suma de cuadrados,
108 mientras que @var{jacobian} puede utilizarse para especificar el
109 jacobiano. Si @var{jacobian} no se suministra, o se le da el valor
110 @code{true}, el que ya tiene por defecto, el jacobiano se calcula
111 a partir de @var{flist}. Si @var{jacobian} vale @code{false}, se
112 utilizará una aproximación numérica.
114 @code{minpack_solve} devuelve una lista, siendo su primer 
115 elemento la solución estimada, el segundo la suma de cuadrados y
116 el tercero indica la bondad del algoritmo, siendo sus posibles valores
117 los siguientes:
119 @table @code
120 @item 0
121 Número incorrecto de parámetros.
122 @item 1
123 El algoritmo estima que el error relativo de la suma de cuadrados
124 es, como mucho, igual a @code{tolerance}.
125 @item 2
126 El número de llamadas a las funciones ha alcanzado 100*(n+1), siendo
127 n el número de incógnitas.
128 @item 3
129 La tolerancia es demasiado pequeña, no siendo posible reducir más la
130 suma de cuadrados.
131 @item 4
132 El algoritmo no progresa adecuadamente.
133 @end table
134 @end deffn