Esta página es para la versión anterior. La página correspondiente en inglés ha sido eliminada en la versión actual.
lsqnonneg
Resolver problemas de mínimos cuadrados lineales no negativos
Sintaxis
Descripción
Resuelva problemas de ajuste de curvas de mínimos cuadrados no negativos con el formato
Nota
lsqnonneg
se aplica únicamente al enfoque basado en solvers. Para ver una exposición sobre los dos enfoques de optimización, consulte En primer lugar, elija el enfoque basado en problemas o el enfoque basado en solvers.
Ejemplos
Argumentos de entrada
Argumentos de salida
Sugerencias
En el caso de problemas en los que
d
tiene una longitud superior a 20,lsqlin
debe ser más rápido quelsqnonneg
. Cuandod
tiene una longitud inferior a 20,lsqnonneg
, generalmente, es más eficiente.Para convertir entre los solvers cuando
C
tiene más filas que columnas (lo que significa que el sistema está sobredeterminado),[x,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d)
es equivalente a
[m,n] = size(C); [x,resnorm,residual,exitflag,output,lambda_lsqlin] = ... lsqlin(C,d,-eye(n,n),zeros(n,1));
La única diferencia es que los multiplicadores de Lagrange correspondientes tienen signos opuestos:
lambda = -lambda_lsqlin.ineqlin
.
Algoritmos
lsqnonneg
usa el algoritmo descrito en [1]. El algoritmo empieza con un conjunto de posibles vectores base y calcula el vector dual asociado lambda
. A continuación, selecciona el vector base correspondiente al valor máximo en lambda
para intercambiarlo fuera de la base a cambio de otro posible candidato. Este proceso continúa hasta que lambda ≤ 0
.
Funcionalidad alternativa
App
La tarea Optimize de Live Editor proporciona una interfaz visual para lsqnonneg
.
Referencias
[1] Lawson, C. L. and R. J. Hanson. Solving Least-Squares Problems. Upper Saddle River, NJ: Prentice Hall. 1974. Chapter 23, p. 161.
Capacidades ampliadas
Historial de versiones
Introducido antes de R2006a