Решите нелинейные задачи аппроксимирования кривыми (подгонка данных) в смысле наименьших квадратов
Нелинейный метод наименьших квадратов
Найдите коэффициенты 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
сбрасываются во внутреннюю часть рамки, заданные границами. Компоненты, которые соответствуют границам, не изменяются.
Алгоритм, отражающий доверительную область, не решает недоопределенные системы; это требует, чтобы количество уравнений, т.е. размерность строки F, было, по крайней мере, таким же большим, как и количество переменных. В недоопределенном случае, lsqcurvefit
использует алгоритм Левенберга-Марквардта.
lsqcurvefit
может решить сложные задачи непосредственно. Noe, что связанные ограничения не имеют смысла для комплексных чисел. Для комплексной задачи со связанными ограничениями разделите переменные на вещественные и мнимые части. Смотрите Подгонку модели к комплексно-оцененным данным.
Расчет предкондиционера, используемое в предварительно обусловленной сопряженной градиентной части метода отражения доверительной области, формирует 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 в пределах объема виртуальной памяти, доступной в вашей системе.
Методы, отражающие Левенберг-Марквардт и доверительную область, основаны на нелинейном методе наименьших квадратов алгоритмах, также используемых в fsolve
.
Алгоритм, отражающий доверительную область по умолчанию, является методом подпространственной доверительной области и основан на интерьерно-отражающем методе Ньютона, описанном в [1] и [2]. Каждая итерация включает приблизительное решение большой линейной системы с использованием метода предварительно обусловленных сопряженных градиентов (PCG). См. Trust- Области Reflective наименьшие квадраты.
Метод Левенберга-Марквардта описан в ссылках [4], [5] и [6]. См. Метод Левенберга-Марквардта.
Задача Optimize Live Editor обеспечивает визуальный интерфейс для lsqcurvefit
.
[1] Коулман, Т. Ф. и Я. Ли. Подход внутренней доверительной области для нелинейной минимизации с учетом границ. SIAM Journal on Optimization, Vol. 6, 1996, pp. 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] Moré, J. J. «The Levenberg-Marquardt Algorithm: Implementation and Theory». Численный анализ, ред. Г. А. Ватсон, Лекции по математике 630, Springer Verlag, 1977, с. 105-116.
[7] Море, Дж. Дж., Б. С. Мусор и К. Э. Хилстром. Руководство пользователя для MINPACK 1. Argonne National Laboratory, Rept. ANL-80-74, 1980.
[8] Пауэлл, М. Дж. Д. Стандартная подпрограмма Фортрана для решения систем нелинейных алгебраических уравнений. Численные методы для нелинейных алгебраических уравнений, П. Рабиновиц, изд., Ch.7, 1970.