scipy.optimize, IndexError: недопустимая переменная индекса в скалярной переменной

Один из способов загрузки локальных файлов - использовать их в папке проекта вместо внешней папки проекта. Создайте одну папку в файлах вашего проекта, аналогичную тому, как мы создаем для изображений, и заменим раздел, где используется полный локальный путь, отличный от пути к проекту, и используйте относительный URL-файл файла в папке проекта. Это сработало для меня

0
задан Alex Eisner 4 March 2019 в 06:52
поделиться

1 ответ

Это потому, что x_ представляет собой список списков:

>>> x_
[[1.0, 1.0, 1.0], [1.0, 1.0, 1.0]]

Таким образом, замените строку x_=[c_,d_] на:

>>> x_ = c_ + d_

Вам также придется изменить свой hamiltonian для списка 1xN или Nx1 / массива.

Самый простой взлом, который я могу придумать:

def hamiltonian(x_):
    N=len(c_)
    if type(x_[0]) == np.array:
        x_ = np.concatenate((x_[0:N], x_[N:]), axis=0)
    return np.sum([(1/n**3.0)*(n-i)*i*(x_[0][(n-i)]*x_[0][i]+x_[1][(n-i)]*x_[1][i])-(1/n**3.0/alpha**2.0)*np.sum([x_[0][(n-i-j)]*x_[0][i]*x_[1][j] for j in range(0,(n-i+1))])  for n in range(1,N) for i in range(0,(n+1))])
0
ответ дан newkid 4 March 2019 в 06:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: