API
#
LsqFit.curve_fit
— Function
curve_fit(model, xdata, ydata, p0) -> fit
curve_fit(model, xdata, ydata, wt, p0) -> fit
Подгоняет данные к нелинейной модели model
. p0
— это начальное предположение для параметра модели (см. пример), а wt
— необязательный массив весов. Возвращаемый объект имеет составной тип LsqFitResult
с рядом любопытных значений:
-
fit.resid
: остатки (вектор остатков) -
fit.jacobian
: оцененный якобиан для решения
Кроме того, можно запросить количество степеней свободы:
-
dof(fit)
-
coef(fit)
Пример
# экспоненциальная модель с двумя параметрами
# x: массив независимых переменных
# p: массив параметров модели
model(x, p) = p[1]*exp.(-x.*p[2])
# данные для примера
# xdata: независимые переменные
# ydata: зависимая переменная
xdata = range(0, stop=10, length=20)
ydata = model(xdata, [1.0 2.0]) + 0.01*randn(length(xdata))
p0 = [0.5, 0.5]
fit = curve_fit(model, xdata, ydata, p0)