Решение нелинейных задач наименьших квадратов (нелинейная подгонка данных)
Нелинейный решатель наименьших квадратов
Решает нелинейные задачи аппроксимации кривой наименьших квадратов формы
+... + fn (x) 2)
с необязательными нижней и верхней границами 1b и ub на компонентах x.
x, lb и ub могут быть векторами или матрицами; см. Аргументы матрицы.
Вместо вычисления значения ‖ 22 (сумма квадратов),lsqnonlin требуется определяемая пользователем функция для вычисления функции с векторными значениями
⋮fn (x)].
начинается в точке x = lsqnonlin(fun,x0)x0 и находит минимум суммы квадратов функций, описанных в fun. Функция fun возвращает вектор (или массив) значений, а не сумму квадратов значений. (Алгоритм неявно вычисляет сумму квадратов компонентов fun(x).)
Примечание
Передача дополнительных параметров объясняет, как передать дополнительные параметры векторной функции fun(x), при необходимости.
определяет набор нижних и верхних границ для конструктивных переменных в x = lsqnonlin(fun,x0,lb,ub)x, чтобы решение всегда находилось в диапазоне lb ≤ x ≤ ub. Можно исправить компонент решения x(i) путем указания lb(i) = ub(i).
Примечание
Если указанные входные границы для проблемы противоречивы, вывод x является x0 и выходные данные resnorm и residual являются [].
Компоненты x0 которые нарушают границы lb ≤ x ≤ ub возвращаются к внутренней части поля, определяемой границами. Компоненты, соответствующие границам, не изменяются.
Алгоритм, отражающий область доверия, не решает неопределенные системы; он требует, чтобы число уравнений, то есть размерность строки F, было по меньшей мере таким же большим, как число переменных. В случае с неопределенностью, lsqnonlin использует алгоритм Левенберга - Марквардта.
lsqnonlin может решать сложные задачи напрямую. Нет, что связанные ограничения не имеют смысла для сложных значений. Для сложной проблемы с ограничивающими ограничениями разбейте переменные на вещественные и мнимые части. См. раздел Подгонка модели к данным со сложным значением.
Вычисление устройства предварительного кондиционирования, используемое в предварительно кондиционированной сопряженной градиентной части метода отражения области доверия, формирует JTJ (где J - матрица Якобиана) перед вычислением устройства предварительного кондиционирования. Поэтому ряд J со многими ненулевыми значениями, что приводит к получению почти плотного продукта JTJ, может привести к дорогостоящему процессу решения больших проблем.
Если компоненты x не имеют верхних (или нижних) границ, lsqnonlin предпочитает, чтобы соответствующие компоненты ub (или lb) иметь значение inf (или -inf для нижних границ) в отличие от произвольного, но очень большого положительного (или отрицательного для нижних границ) числа.
Алгоритм отражения области доверия можно использовать в lsqnonlin, lsqcurvefit, и fsolve с малыми и средними проблемами без вычисления Jacobian в fun или предоставление якобианской модели разреженности. (Это также относится к использованию fmincon или fminunc без вычисления гессенского или предоставления гессенского шаблона разреженности.) Насколько малыми являются малые и средние размеры? Абсолютный ответ недоступен, так как зависит от объема виртуальной памяти в конфигурации компьютера.
Предположим, что у вашей проблемы m уравнения и n неизвестные. Если команда J = sparse(ones(m,n)) вызывает Out of memory ошибка на вашем компьютере, то это, безусловно, слишком большая проблема. Если это не приведет к ошибке, проблема может быть слишком большой. Вы можете узнать, только запустив его и увидев, работает ли MATLAB в пределах объема виртуальной памяти, доступной в вашей системе.
Методы Левенберга-Марквардта и отражения области доверия основаны на нелинейных алгоритмах наименьших квадратов, также используемых в fsolve.
Алгоритм отражения области доверия по умолчанию является методом области доверия подпространства и основан на способе Ньютона с внутренним отражением, описанном в [1] и [2]. Каждая итерация включает в себя приблизительное решение большой линейной системы методом предварительно кондиционированных сопряженных градиентов (PCG). См. Доверие - Область - Отражающие наименьшие квадраты.
Метод Левенберга-Марквардта описан в ссылках [4], [5] и [6]. См. Метод Левенберга-Марквардта.
Задача «Оптимизировать интерактивный редактор» обеспечивает визуальный интерфейс для lsqnonlin.
[1] Коулман, Т. Ф. и Я. Ли. «Подход» Внутренняя область, область доверия «для нелинейной минимизации с учетом ограничений». Журнал СИАМ по оптимизации, том 6, 1996, стр. 418-445.
[2] Коулман, Т. Ф. и Я. Ли. «О сходимости отражающих методов Ньютона для масштабной нелинейной минимизации, зависящей от границ». Математическое программирование, том 67, номер 2, 1994, стр. 189-224.
[3] Деннис, Дж. Э. младший «Нелинейные наименьшие квадраты». Состояние искусства в численном анализе, ред. Д. Джейкобс, Академическая пресса, стр. 269-312.
[4] Левенберг, К. «Метод решения некоторых проблем в наименьших квадратах». Ежеквартальная прикладная математика 2, 1944, с. 164-168.
[5] Марквардт, Д. «Алгоритм оценки нелинейных параметров методом наименьших квадратов». SIAM Journal Applied Mathematics, Vol. 11, 1963, pp. 431-441.
[6] Море, Дж. Дж. «Алгоритм Левенберга-Марквардта: реализация и теория». Численный анализ, ред. Г. А. Уотсон, лекционные записки по математике 630, Springer Verlag, 1977, с. 105-116.
[7] Море, Дж. Дж., Б. С. Гарбоу и К. Э. Хиллстрем. Руководство пользователя для MINPACK 1. Аргоннская национальная лаборатория, Репт. ANL-80-74, 1980.
[8] Пауэлл, М. Дж. Д. «Подпрограмма Фортрана для решения систем нелинейных алгебраических уравнений». Численные методы нелинейных алгебраических уравнений, П. Рабиновиц, изд., Ch.7, 1970.