Решите нелинейный метод наименьших квадратов (нелинейный подбор кривой данных) проблемы
Решатель нелинейного метода наименьших квадратов
Решает задачи аппроксимирования кривыми нелинейного метода наименьших квадратов формы
с дополнительными нижними и верхними границами lb и ub на компонентах x.
x, lb и ub могут быть векторами или матрицами; смотрите Матричные аргументы.
Вместо того, чтобы вычислять значение (сумма квадратов), lsqnonlin
требует, чтобы пользовательская функция вычислила функцию с векторным знаком
запускает в точке 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
сбрасываются к внутренней части поля, заданного границами. Компоненты, которые уважают границы, не изменяются.
находит минимум для x
= lsqnonlin(problem
)problem
, где problem
структура, описанная во Входных параметрах. Создайте problem
структура путем экспорта проблемы из приложения Оптимизации, как описано в Экспорте работы.
Алгоритм Levenberg-Marquardt не обрабатывает связанные ограничения.
Доверительная область отражающий алгоритм не решает недоопределенные системы; это требует, чтобы количество уравнений, т.е. размерность строки F, было, по крайней мере, столь же большим как количество переменных. В недоопределенном случае, lsqnonlin
использует алгоритм Levenberg-Marquardt.
Поскольку доверительная область, отражающий алгоритм не обрабатывает недоопределенные системы и Levenberg-Marquardt, не обрабатывает связанные ограничения, задачи, которые имеют обе из этих характеристик, не могут быть решены lsqnonlin
.
lsqnonlin
может решить задачи с комплексным знаком непосредственно с levenberg-marquardt
алгоритм. Однако этот алгоритм не принимает связанные ограничения. Для комплексной проблемы со связанными ограничениями, разделение переменные в действительные и мнимые части и использование trust-region-reflective
алгоритм. Сочтите целесообразным Модель к Данным с комплексным знаком.
Расчет перед формирователем использовал в предобусловленной части метода сопряженных градиентов доверительной области, отражающий метод формирует JTJ (где J является якобиевской матрицей) прежде, чем вычислить предварительный формирователь. Поэтому строка J со многими ненулями, который приводит к почти плотному продукту JTJ, может привести к процессу дорогостоящего решения для больших проблем.
Если компоненты x имеют не верхний (или ниже) границы, lsqnonlin
предпочитает что соответствующие компоненты ub
(или lb
) будьте установлены в inf
(или -inf
для нижних границ) в противоположность произвольному, но положительному очень большому (или отрицательный для нижних границ) номер.
Можно использовать доверительную область отражающий алгоритм в lsqnonlin
, lsqcurvefit
, и fsolve
с маленьким - к проблемам средней шкалы, не вычисляя якобиан в fun
или обеспечение якобиевского шаблона разреженности. (Это также применяется к использованию fmincon
или fminunc
не вычисляя Гессиан или предоставляя шаблон разреженности Гессиана.), Как маленький мал - к средней шкале? Никакой абсолютный ответ не доступен, когда это зависит от суммы виртуальной памяти в вашей настройке компьютерной системы.
Предположим, что ваша проблема имеет m
уравнения и n
неизвестные. Если команда J = sparse(ones(m,n))
вызывает Out of memory
ошибка на вашей машине, затем это - конечно, слишком большая проблема. Если это не приводит к ошибке, проблема может все еще быть слишком большой. Можно узнать только путем выполнения его и наблюдения, запускается ли MATLAB в сумме виртуальной памяти, доступной в системе.
Levenberg-Marquardt и доверительная область отражающие методы основаны на алгоритмах нелинейного метода наименьших квадратов, также используемых в fsolve
.
Доверительная область по умолчанию отражающий алгоритм является методом доверительной области подпространства и основан на внутреннем отражающем методе Ньютона, описанном в [1] и [2]. Каждая итерация включает приближенное решение большой линейной системы с помощью метода предобусловленных методов сопряженных градиентов (PCG). Смотрите Доверительную область Отражающие Наименьшие квадраты.
Метод Levenberg-Marquardt описан в ссылках [4], [5], и [6]. См. Метод Levenberg-Marquardt.
[1] Коулман, Т.Ф. и И. Ли. “Внутренний, Доверительный Подход области для Нелинейной Минимизации Согласно Границам”. SIAM Journal на Оптимизации, Издании 6, 1996, стр 418–445.
[2] Коулман, Т.Ф. и И. Ли. “На Сходимости Отражающих Методов Ньютона для Крупномасштабной Нелинейной Минимизации Согласно Границам”. Математическое программирование, Издание 67, Номер 2, 1994, стр 189–224.
[3] Деннис, J. E. “Нелинейный метод наименьших квадратов” младший. Состояние в Числовом Анализе, редакторе Д. Джейкобсе, Academic Press, стр 269–312.
[4] Levenberg, K. “Метод для Решения Определенных проблем в Наименьших квадратах”. Ежеквартальная Прикладная математика 2, 1944, стр 164–168.
[5] Marquardt, D. “Алгоритм для Оценки Наименьших квадратов Нелинейных Параметров”. Прикладная математика SIAM Journal, Издание 11, 1963, стр 431–441.
[6] Moré, J. J. “Алгоритм Levenberg-Marquardt: Реализация и Теория”. Числовой Анализ, редактор Г. А. Уотсон, Примечания Лекции в Математике 630, Springer Verlag, 1977, стр 105–116.
[7] Moré, J. J. бакалавр наук Гарбоу и К. Э. Хиллстром. Руководство пользователя для MINPACK 1. Национальная лаборатория Аргонна, Rept. ANL–80–74, 1980.
[8] Пауэлл, M. J. D. “Стандартная подпрограмма Фортрана для Решения Систем Нелинейных Алгебраических уравнений”. Численные методы для Нелинейных Алгебраических уравнений, П. Рабиновица, редактора, Ch.7, 1970.