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.
resnorm
norm(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

Veja também

lscov mldivide lsqminnorm fminsearch