Я пытаюсь вычислить энергию основного состояния, связанную с нелинейным уравнением Шредингера, без члена взаимодействия и с внешним потенциалом, заданным потенциалом 1-D гармоники c. Выражение для энергии включает в себя квадрат абсолютного значения градиента волновой функции, и вот где я застрял.
Проведя некоторое исследование по inte rnet, я обнаружил (по крайней мере, я полагаю), что np.gradient может выполнить эту работу. Тем не менее, для моей текущей проблемы, она не показала ничего в том смысле, что когда я планирую свой вклад, он возвращает мне постоянную функцию, равную нулю. Таким образом, я думаю, что я делаю что-то не так.
Мой код выглядит следующим образом:
import matplotlib.pyplot as plt
import numpy as np
import h5py as h5
from scipy import integrate
data = h5.File('groundstate.h5', 'r')
phireal = data['3']['phireal']
phiimag = data['3']['phiimag']
lattice = data['3']['y']
time = data['3']['t']
distr = np.power(phireal[:,:],2) + np.power(phiimag[:,:],2)
egradi = np.gradient(phiimag, axis = 0)
egradr = np.gradient(phireal, axis = 0)
V = (1/2) * np.power(lattice,2)
intergy = (1/2) * np.power(egradr,2) + V * distr
energy = integrate.simps(intergy, lattice, 0.1171875)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(time, energy)
plt.ylabel('E')
plt.xlabel('t')
ax.set_ylim(0, 3)
ax.set_xlim(0, 10)
plt.show()
Данные, хранящиеся в файле groundstate.h5, в основном относятся к сложной и реальной части Полученная волновая функция развивается в воображаемом времени.
Здесь я предоставляю ссылку для входного файла h5: https://drive.google.com/open?id=1FPM_sdpfQSOxeEikGuQyO4kfwH88wpcZ
В графике энергии, я ожидаю найти для более высоких значений t (время) значение 1/2, которое является энергией основного состояния 1-D генератора квантовых гармоник c. Тем не менее, я получаю другое значение, 1/4, и поэтому я считаю, что это из-за члена kineti c, в данном случае, заданного градиентом волновой функции.
введите описание изображения здесь
Может кто-нибудь сказать мне, если это правильный способ вычисления градиента? Заранее спасибо.