lsqnonneg
Mínimos quadrados com restrições de não negatividade.
Categoria: Mathematics > Linear Algebra
Sintaxe
x = lsqnonneg(C, d)
Minimiza norm(C*x - d) sujeito a x >= 0.
[x, resnorm] = lsqnonneg(C, d)
Retorna também a norma do resíduo ao quadrado.
Descrição
Mínimos quadrados sem restrição podem dar coeficientes negativos, que não fazem sentido para grandezas como concentrações ou quantidades. lsqnonneg usa um método de conjunto ativo: mantém um conjunto de variáveis livres e as demais em zero, movendo variáveis entre os conjuntos até as condições de otimalidade valerem.
A solução é única quando C tem posto completo nas colunas.
Argumentos de entrada
C- Matriz do sistema.
d- Vetor alvo.
Argumentos de saída
x- Vetor solução não negativo.
resnormnorm(C*x - d)^2.
Exemplo
Um coeficiente travado em zero
C = [1 0; 0 1; 1 1];
d = [1; -1; 0.5];
[x, r] = lsqnonneg(C, d)
Saída
x = 2×1
0.7500
0
r = 1.1250