Документация Engee

API

# LsqFit.curve_fitFunction

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)