В этом случае упрощение - это как раз мой уровень. Еще раз спасибо.

опытке создать пример сscipy.optimize curve_fit Я обнаружил, что Сципи кажется несовместимым с Pythonmath модуль. Пока функцияf1 работает отлично,f2 выдает сообщение об ошибке.

from scipy.optimize import curve_fit
from math import sin, pi, log, exp, floor, fabs, pow

x_axis = np.asarray([pi * i / 6 for i in range(-6, 7)])  
y_axis = np.asarray([sin(i) for i in x_axis])

def f1(x, m, n):
    return m * x + n

coeff1, mat = curve_fit(f1, x_axis, y_axis)    
print(coeff1)

def f2(x, m, n):
    return m * sin(x) + n 

coeff2, mat = curve_fit(f2, x_axis, y_axis)  
print(coeff2)

Полный возврат

Traceback (most recent call last):
  File "/Documents/Programming/Eclipse/PythonDevFiles/so_test.py", line 49, in <module>
    coeff2, mat = curve_fit(f2, x_axis, y_axis)
  File "/usr/local/lib/python3.5/dist-packages/scipy/optimize/minpack.py", line 742, in curve_fit
    res = leastsq(func, p0, Dfun=jac, full_output=1, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/scipy/optimize/minpack.py", line 377, in leastsq
    shape, dtype = _check_func('leastsq', 'func', func, x0, args, n)
  File "/usr/local/lib/python3.5/dist-packages/scipy/optimize/minpack.py", line 26, in _check_func
    res = atleast_1d(thefunc(*((x0[:numinputs],) + args)))
  File "/usr/local/lib/python3.5/dist-packages/scipy/optimize/minpack.py", line 454, in func_wrapped
    return func(xdata, *params) - ydata
  File "/Documents/Programming/Eclipse/PythonDevFiles/so_test.py", line 47, in f2
    return m * sin(x) + n 
TypeError: only length-1 arrays can be converted to Python scalars

Сообщение об ошибке появляется со списками иnumpy массивы в качестве входных данных. Это влияет на всеmath функции, которые я тестировал (см. функции в импорте) и должен иметь какое-то отношение к тому, как математический модуль управляет входными данными. Это наиболее очевидно сpow() функция - если я не импортирую эту функцию изmath, curve_fit правильно работает сpow().

Очевидный вопрос - почему это происходит и как можноmath функции будут использоваться сcurve_fit?

П.С .: Пожалуйста, не обсуждайте, чтобы данные выборки не подходили линейно. Это было выбрано для иллюстрации проблемы.

Ответы на вопрос(1)

Ваш ответ на вопрос