#least-squares #scipy-optimize
#наименьшие квадраты #scipy-оптимизировать
Вопрос:
Я столкнулся с проблемой, которую не могу решить сам… Я пытаюсь итеративно решить систему из пяти нелинейных уравнений только с одним неизвестным параметром, но продолжаю получать следующее сообщение об ошибке, показанное ниже. Однако эта ошибка не возникает, когда вместо этого я решаю для 3 неизвестных параметров (используя тот же код, но заменяя некоторые числа оцениваемыми параметрами). Мой код следующий:
def equations (L):
f1 = 5.519 - ((1.343876648526599/0.4)*(log(18/3.2441500954852724) - (-5*(148/L))))
f2 = 8.940 - ((1.343876648526599/0.4)*(log(56/3.2441500954852724) - (-5*(148/L))))
f3 = 11.658 - ((1.343876648526599/0.4)*(log(98/3.2441500954852724) - (-5*(148/L))))
f4 = 12.590 - ((1.343876648526599/0.4)*(log(123/3.2441500954852724) - (-5*(148/L))))
f5 = 12.983 - ((1.343876648526599/0.4)*(log(148/3.2441500954852724) - (-5*(148/L))))
return (f1, f2, f3, f4, f5)
x0 = 300
root = spo.least_squares(equations, x0, bounds = ((10), (500)), max_nfev = 100).x
Сообщение об ошибке:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-34-7315f1f7ce27> in <module>()
---> 27 root = spo.least_squares(equations, x0, bounds = ((10), (500)), max_nfev = 100).x
/usr/local/lib/python3.6/dist-packages/scipy/optimize/_lsq/least_squares.py in least_squares(fun, x0, jac, bounds, method, ftol, xtol, gtol, x_scale, loss, f_scale, diff_step, tr_solver, tr_options, jac_sparsity, max_nfev, verbose, args, kwargs)
809 if f0.ndim != 1:
810 raise ValueError("`fun` must return at most 1-d array_like. "
--> 811 "f0.shape: {0}".format(f0.shape))
812
813 if not np.all(np.isfinite(f0)):
ValueError: `fun` must return at most 1-d array_like. f0.shape: (5, 1)