Решите неотрицательную линейную задачу наименьших квадратов
Решите неотрицательные проблемы аппроксимирования кривыми наименьших квадратов формы
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.