Q:

Почему выдается ошибка "ValueError: setting an array element with a sequence"

Почему возникает ошибка:

ValueError: setting an array element with a sequence

и как её исправить?
import math
import numpy 
import matplotlib.pyplot as plt
from scipy.optimize import minimize

def f(x):
    return math.sin(x / 5) * math.exp(x / 10) + 5 * math.exp(-x / 2) 
f2 = numpy.vectorize(f)

x0 = [14., 16., 13., 15., 17.]
res = minimize(f2, x0)
print res

A:

Из документации:

x0 : ndarray, shape (n,)
Initial guess. Array of real elements of size (n,), where ‘n’ is the number of independent variables.

Т.к. f(x) функция одной переменной, то и x0 должен состоять из одного элемента.
Пример:
In [255]: minimize(f, [14.])
Out[255]:
      fun: -11.898894665981317
 hess_inv: array([[18.83373626]])
      jac: array([0.])
  message: 'Optimization terminated successfully.'
     nfev: 24
      nit: 2
     njev: 8
   status: 0
  success: True
        x: array([25.88019315])

