У меня есть вопрос, похожий на Python, нелинейный метод наименьших квадратов , за исключением того, что я хочу оптимизировать вектор И некоторые свободные параметры.
Я привык к функции-обертке scipy.optimize.curve_fit, но у меня нет функциональной формы для оптимизируемого вектора.Мне нужно минимизировать сумму квадратов этого остатка (используя латексную нотацию, извините, это не супер-читабельно):
\ sum_n [f_n - \ sum_N (a_N + b_N + DATA (n, N))]
Прямо сейчас мой код просто оптимизируется по f_n:
def residuals(fn, a, b, DATA):
return fn - function(a, b, DATA)
def function(aN, bN, DATA):
stuff = np.zeros(max_n)
for N in range(len(DATA)):
stuff += aN[N] + bN[N]*np.array(range(max_n)) + DATA[N]
return stuff
bestfit_f_n = sp.optimize.leastsq(residuals,INITIAL_GUESS_FOR_f_n,args=(aN,bN, DATA), full_output=1)
, но я хочу, чтобы a_N и b_N были свободными параметрами, которые также должны быть оптимизированы и возвращены.
Если есть лучшая функция для использования, я был бы рад услышать.Прямо сейчас это может быть линейно оптимизировано, но я мог бы работать с очень большими наборами данных в будущем и предпочел бы нелинейную оптимизацию.