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 ajuste de curvas no lineales (ajuste de datos) en el sentido de mínimos cuadrados
El solucionador de mínimos cuadrados no lineales
Encuentre los coeficientes que resuelven el problemax
datos de entrada dados, y la salida observada, donde y son matrices o vectores, y (,) es una función con valores de matriz o con valores vectoriales del mismo tamaño que.xdataydataxdataydataF xxdataydata
Opcionalmente, los componentes de pueden tener límites inferiores y superiores, y.xlbub Los argumentos, y pueden ser vectores o matrices; Ver.xlbubArgumentos de matriz
La función utiliza el mismo algoritmo que. simplemente proporciona una interfaz conveniente para los problemas de ajuste de datos.lsqcurvefit
lsqnonlin
lsqcurvefit
En lugar de calcular la suma de los cuadrados, requiere que la función definida por el usuario calcule la función con valoreslsqcurvefit
vector
comienza y encuentra los coeficientes que mejor se ajustan a la función no lineal a los datos (en el sentido de mínimos cuadrados). debe tener el mismo tamaño que el vector (o matriz) devuelto por.x
= lsqcurvefit(fun
,x0
,xdata
,ydata
)x0
x
fun(x,xdata)
ydata
ydata
F
fun
Nota
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
= lsqcurvefit(fun
,x0
,xdata
,ydata
,lb
,ub
)x
lb
x
ub
Puede corregir el componente de la solución especificando.x(i)
lb(i) = ub(i)
Nota
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
= lsqcurvefit(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.lsqcurvefit
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.lsqcurvefit
puede resolver problemas de valor complejo directamente con el algoritmo.lsqcurvefit
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.xlsqcurvefit
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.