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