Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.
Resuelva problemas de mínimos cuadrados no lineales (ajuste de datos no lineales)
El solucionador de mínimos cuadrados no lineales
Resuelve problemas de ajuste de curva de mínimos cuadrados no lineales de la forma
con los límites inferior y superior opcionales y en los componentes de.lbubx
, y pueden ser vectores o matrices; Ver.xlbubArgumentos de matriz
En lugar de calcular el valor (la suma de los cuadrados), requiere la función definida por el usuario para calcular la función con valoreslsqnonlin
vector
comienza en el punto y encuentra un mínimo de la suma de cuadrados de las funciones descritas en.x
= lsqnonlin(fun
,x0
)x0
fun
La función debe devolver un vector (o array) de valores y no la suma de los cuadrados de los valores.fun
(El algoritmo calcula implícitamente la suma de los cuadrados de los componentes de.)fun(x)
explica cómo pasar parámetros adicionales a la función vectorial, si es necesario.Pasar parámetros adicionalesfun(x)
define un conjunto de límites inferior y superior en las variables de diseño, de modo que la solución esté siempre en el rango ≤ ≤.x
= lsqnonlin(fun
,x0
,lb
,ub
)x
lb
x
ub
Puede corregir el componente de la solución especificando.x(i)
lb(i) = ub(i)
Si los límites de entrada especificados para un problema son incoherentes, la salida es y las salidas y son.x
x0
resnorm
residual
[]
Los componentes que infringen los límites se restablecen al interior del cuadro definido por los límites.x0
lb ≤ x ≤ ub
Los componentes que respetan los límites no se modifican.
encuentra el mínimo para, donde se describe una estructura.x
= lsqnonlin(problem
)problem
problem
Argumentos de entrada Cree la estructura exportando un problema desde la aplicación de optimización, como se describe en.problem
Exportar su trabajo
El algoritmo Levenberg-Marquardt no controla las restricciones enlazadas.
El algoritmo de confianza-región-reflexivo no resuelve los sistemas subdeterminados; requiere que el número de ecuaciones, es decir, la dimensión de fila de, sea al menos tan grande como el número de variables.F En el caso subdeterminado, utiliza el algoritmo Levenberg-Marquardt.lsqnonlin
Dado que el algoritmo de confianza-región-reflexivo no maneja los sistemas subdeterminados y el Levenberg-Marquardt no maneja las restricciones enlazadas, los problemas que tienen ambas características no pueden ser resueltos por.lsqnonlin
lsqnonlin
puede resolver problemas de valor complejo directamente con el algoritmo.levenberg-marquardt
Sin embargo, este algoritmo no acepta restricciones enlazadas. Para un problema complejo con restricciones enlazadas, divida las variables en partes reales e imaginarias y utilice el algoritmo.trust-region-reflective
Ver.Ajuste un modelo a datos de valor complejo
El cálculo del preacondicionador utilizado en la parte de gradiente conjugada precondicionada del método de confianza-región-reflexión forma JTJ (donde está la matriz jacobiana) antes de computar el preacondicionador.J Por lo tanto, una fila de con muchos nonceros, lo que resulta en un producto casi densoJ JTJ, puede conducir a un proceso de solución costoso para problemas grandes.
Si los componentes de no tienen límites superiores (o inferiores), prefiere que los componentes correspondientes de (o) se establecen en (o para los límites inferiores) en contraposición a un arbitrario pero muy grande positivo (o negativo para los límites inferiores) número.xlsqnonlin
ub
lb
inf
-inf
Puede utilizar el algoritmo reflexivo de región de confianza en, y con problemas de pequeña a mediana escala sin calcular el jacobiano o proporcionar el patrón de dispersión jacobiana.lsqnonlin
lsqcurvefit
fsolve
fun
(Esto también se aplica al uso o sin la computación del hessian o el suministro del patrón de la dispersión de hessian.)fmincon
fminunc
¿Cuán pequeña es pequeña-a mediana escala? No hay respuesta absoluta está disponible, ya que depende de la cantidad de memoria virtual en la configuración del sistema informático.
Supongamos que su problema tiene ecuaciones y desconocidos.m
n
Si el comando provoca unJ = sparse(ones(m,n))
error en su máquina, entonces esto es ciertamente un problema demasiado grande.Out of memory
Si no se produce un error, el problema podría seguir siendo demasiado grande. Puede averiguarlo solo ejecutando y viendo si se ejecuta dentro de la cantidad de memoria virtual disponible en su sistema.MATLAB
Los métodos Levenberg-Marquardt y Trust-region-reflectantes se basan en los algoritmos de mínimos cuadrados no lineales que también se utilizan en.fsolve
El algoritmo de confianza-región-reflexión predeterminado es un método de región de confianza subespacial y se basa en el método de Newton interior-reflectante descrito en y.[1][2] Cada iteración implica la solución aproximada de un gran sistema lineal utilizando el método de gradientes conjugados preacondicionados (PCG). Ver.Trust-region-reflectivos mínimos cuadrados
El método Levenberg-Marquardt se describe en referencias y.[4][5][6] Ver.El método Levenberg-Marquardt
[1] Coleman, T.F. and Y. Li. “An Interior, Trust Region Approach for Nonlinear Minimization Subject to Bounds.” SIAM Journal on Optimization, Vol. 6, 1996, pp. 418–445.
[2] Coleman, T.F. and Y. Li. “On the Convergence of Reflective Newton Methods for Large-Scale Nonlinear Minimization Subject to Bounds.” Mathematical Programming, Vol. 67, Number 2, 1994, pp. 189–224.
[3] Dennis, J. E. Jr. “Nonlinear Least-Squares.” State of the Art in Numerical Analysis, ed. D. Jacobs, Academic Press, pp. 269–312.
[4] Levenberg, K. “A Method for the Solution of Certain Problems in Least-Squares.” Quarterly Applied Mathematics 2, 1944, pp. 164–168.
[5] Marquardt, D. “An Algorithm for Least-squares Estimation of Nonlinear Parameters.” SIAM Journal Applied Mathematics, Vol. 11, 1963, pp. 431–441.
[6] Moré, J. J. “The Levenberg-Marquardt Algorithm: Implementation and Theory.” Numerical Analysis, ed. G. A. Watson, Lecture Notes in Mathematics 630, Springer Verlag, 1977, pp. 105–116.
[7] Moré, J. J., B. S. Garbow, and K. E. Hillstrom. User Guide for MINPACK 1. Argonne National Laboratory, Rept. ANL–80–74, 1980.
[8] Powell, M. J. D. “A Fortran Subroutine for Solving Systems of Nonlinear Algebraic Equations.” Numerical Methods for Nonlinear Algebraic Equations, P. Rabinowitz, ed., Ch.7, 1970.