| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 65.1 Introducción a minpack | ||
| 65.2 Funciones y variables para minpack |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Minpack es una traducción a Common Lisp (via f2cl) de la
librería MINPACK escrita en Fortran, tal como se puede
obtener de Netlib.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Calcula el punto x que minimiza la suma de los cuadrados de las
funciones de la lista flist. Las variables se escriben en
la lista varlist. El argumento guess debe guardar una
estimación inicial del punto óptimo.
Los argumentos opcionales tolerance y jacobian permiten
mantener cierto control sobre el algoritmo; tolerance es el
error relativo estimado que se desea en la suma de cuadrados,
mientras que jacobian puede utilizarse para especificar el
jacobiano. Si jacobian no se suministra, o se le da el valor
true, el que ya tiene por defecto, el jacobiano se calcula
a partir de flist. Si jacobian vale false, se
utilizará una aproximación numérica.
minpack_lsquares devuelve una lista, siendo su primer
elemento la solución estimada, el segundo la suma de cuadrados y
el tercero indica la bondad del algoritmo, siendo sus posibles valores
los siguientes:
0Número incorrecto de parámetros.
1El algoritmo estima que el error relativo de la suma de cuadrados
es, como mucho, igual a tolerance.
2El algoritmo estima que el error relativo entre x y la solución es,
como mucho, igual a tolerance.
3Las dos condiciones anteriores se cumplen.
4El vector formado por las funciones evaluadas en el punto x es ortogonal a las columnas del jacobiano dentro de la precisión de la máquina.
5El número de llamadas a las funciones ha alcanzado 100*(n+1), siendo n el número de variables.
6La tolerancia es demasiado pequeña, no siendo posible reducir más la suma de cuadrados.
7La tolerancia es demasiado pequeña, no siendo posible mejorar la solución aproximada x.
/* Problem 6: Powell singular function */
(%i1) powell(x1,x2,x3,x4) :=
[x1+10*x2, sqrt(5)*(x3-x4), (x2-2*x3)^2,
sqrt(10)*(x1-x4)^2]$
(%i2) minpack_lsquares(powell(x1,x2,x3,x4), [x1,x2,x3,x4],
[3,-1,0,1]);
(%o2) [[1.652117596168394e-17, - 1.652117596168393e-18,
2.643388153869468e-18, 2.643388153869468e-18],
6.109327859207777e-34, 4]
/* Same problem but use numerical approximation to Jacobian */
(%i3) minpack_lsquares(powell(x1,x2,x3,x4), [x1,x2,x3,x4],
[3,-1,0,1], jacobian = false);
(%o3) [[5.060282149485331e-11, - 5.060282149491206e-12,
2.179447843547218e-11, 2.179447843547218e-11],
3.534491794847031e-21, 5]
Resuelve un sistema de n ecuaciones con n incógnitas.
Las n ecuaciones forman la lista flist, estando la
lista varlist formada por las incógnitas. El argumento
guess es una estimación inicial de la solución.
Los argumentos opcionales tolerance y jacobian permiten
mantener cierto control sobre el algoritmo; tolerance es el
error relativo estimado que se desea en la suma de cuadrados,
mientras que jacobian puede utilizarse para especificar el
jacobiano. Si jacobian no se suministra, o se le da el valor
true, el que ya tiene por defecto, el jacobiano se calcula
a partir de flist. Si jacobian vale false, se
utilizará una aproximación numérica.
minpack_solve devuelve una lista, siendo su primer
elemento la solución estimada, el segundo la suma de cuadrados y
el tercero indica la bondad del algoritmo, siendo sus posibles valores
los siguientes:
0Número incorrecto de parámetros.
1El algoritmo estima que el error relativo de la suma de cuadrados
es, como mucho, igual a tolerance.
2El número de llamadas a las funciones ha alcanzado 100*(n+1), siendo n el número de incógnitas.
3La tolerancia es demasiado pequeña, no siendo posible reducir más la suma de cuadrados.
4El algoritmo no progresa adecuadamente.
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Robert Dodier on abril, 9 2015 using texi2html 1.76.