Решите неотрицательную линейную задачу наименьших квадратов
Решите неотрицательные проблемы аппроксимирования кривыми наименьших квадратов формы
x = lsqnonneg(C,d)
x = lsqnonneg(C,d,options)
x = lsqnonneg(problem)
[x,resnorm,residual] = lsqnonneg(___)
[x,resnorm,residual,exitflag,output] = lsqnonneg(___)
[x,resnorm,residual,exitflag,output,lambda] = lsqnonneg(___)
возвращает векторный x = lsqnonneg(C,d)
x
, который минимизирует norm(C*x-d)
, подвергающийся x ≥ 0
. Аргументы C
и d
должны быть действительными.
минимизирует с опциями оптимизации, заданными в структуре x = lsqnonneg(C,d,options)
options
. Используйте optimset
, чтобы установить эти опции.
находит минимум для x = lsqnonneg(problem)
problem
, где problem
является структурой.
, для любого предыдущего синтаксиса, дополнительно возвращает значение в квадрате с 2 нормами из невязки, [x,resnorm,residual] = lsqnonneg(___)
norm(C*x-d)^2
, и возвращает остаточный d-C*x
.
дополнительно возвращает значение [x,resnorm,residual,exitflag,output] = lsqnonneg(___)
exitflag
, который описывает выходное условие lsqnonneg
и структуру output
с информацией о процессе оптимизации.
дополнительно возвращает Лагранжев вектор множителя [x,resnorm,residual,exitflag,output,lambda] = lsqnonneg(___)
lambda
.
lsqnonneg
использует алгоритм, описанный в [1]. Алгоритм запускается с набора возможных базисных векторов и вычисляет связанный двойной векторный lambda
. Это затем выбирает базисный вектор, соответствующий максимальному значению в lambda
, чтобы подкачать его из основания в обмен на другого возможного кандидата. Это продолжается до lambda ≤ 0
.
[1] Лоусон, C. L. и Р. J. Хэнсон. Решение задач наименьших квадратов. Верхний Сэддл-Ривер, NJ: Prentice Hall. 1974. Глава 23, p. 161.