Решите нелинейный подбор кривых (подбор кривой данных) проблемы в смысле наименьших квадратов
Решатель нелинейного метода наименьших квадратов
Найдите коэффициенты x, которые решают задачу
учитывая входные данные xdata и наблюдаемый выход ydata, где xdata и ydata являются матрицами или векторами, и F (x, xdata) являются функцией с векторным знаком или с матричным знаком одного размера с ydata.
Опционально, компоненты x могут иметь нижние и верхние границы lb и ub. Аргументы x, lb и ub могут быть векторами или матрицами; смотрите Матричные аргументы.
lsqcurvefit
функционируйте использует тот же алгоритм в качестве lsqnonlin
. lsqcurvefit
просто обеспечивает удобный интерфейс для соответствующих данным проблем.
Вместо того, чтобы вычислять сумму квадратов, lsqcurvefit
требует, чтобы пользовательская функция вычислила функцию с векторным знаком
запускается в x
= lsqcurvefit(fun
,x0
,xdata
,ydata
)x0
и находит коэффициенты x
лучше всего соответствовать нелинейному функциональному fun(x,xdata)
к данным ydata
(в смысле наименьших квадратов). ydata
должен быть одного размера с вектором (или матрица) F
возвращенный fun
.
Передача Дополнительных Параметров объясняет, как передать дополнительные параметры вектор-функции fun(x)
, при необходимости.
задает набор нижних и верхних границ на переменных проекта в x
= lsqcurvefit(fun
,x0
,xdata
,ydata
,lb
,ub
)x
, так, чтобы решением всегда был в области значений lb
≤ x
≤ ub
. Можно зафиксировать компонент решения x(i)
путем определения lb(i) = ub(i)
.
Если заданные входные границы для проблемы противоречивы, выход x
x0
и выходные параметры resnorm
и residual
[]
.
Компоненты x0
это нарушает границы lb ≤ x ≤ ub
сбрасываются к внутренней части поля, заданного границами. Компоненты, которые уважают границы, не изменяются.
находит минимум для x
= lsqcurvefit(problem
)problem
, где problem
структура, описанная во Входных параметрах. Создайте problem
структура путем экспорта проблемы из приложения Оптимизации, как описано в Экспорте работы.
Алгоритм Levenberg-Marquardt не обрабатывает связанные ограничения.
Доверительная область отражающий алгоритм не решает недоопределенные системы; это требует, чтобы количество уравнений, т.е. размерность строки F, было, по крайней мере, столь же большим как количество переменных. В недоопределенном случае, lsqcurvefit
использует алгоритм Levenberg-Marquardt.
Поскольку доверительная область, отражающий алгоритм не обрабатывает недоопределенные системы и Levenberg-Marquardt, не обрабатывает связанные ограничения, задачи, которые имеют обе из этих характеристик, не могут быть решены lsqcurvefit
.
lsqcurvefit
может решить задачи с комплексным знаком непосредственно с levenberg-marquardt
алгоритм. Однако этот алгоритм не принимает связанные ограничения. Для комплексной проблемы со связанными ограничениями, разделение переменные в действительные и мнимые части и использование trust-region-reflective
алгоритм. Сочтите целесообразным Модель к Данным с комплексным знаком.
Расчет перед формирователем использовал в предобусловленной части метода сопряженных градиентов доверительной области, отражающий метод формирует JTJ (где J является якобиевской матрицей) прежде, чем вычислить предварительный формирователь. Поэтому строка J со многими ненулями, который приводит к почти плотному продукту JTJ, может привести к процессу дорогостоящего решения для больших проблем.
Если компоненты x имеют не верхний (или ниже) границы, lsqcurvefit
предпочитает что соответствующие компоненты 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.