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
dtiene una longitud superior a 20,lsqlindebe ser más rápido quelsqnonneg. Cuandodtiene una longitud inferior a 20,lsqnonneg, generalmente, es más eficiente.Para convertir entre los solvers cuando
Ctiene 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