In [1]:
# Необходмые команды импорта.
import sys
sys.path.append('../../physlearn/')
sys.path.append('../../source')
import numpy as np
from numpy import linalg as LA
import tensorflow as tf
from matplotlib import pylab as plt
import numpy.random as rand
from physlearn.NeuralNet.NeuralNet import NeuralNet
from physlearn.Optimizer.NelderMead.NelderMead import NelderMead
import d1_osc
import ann_constructor
import math_util
from lagaris_1d_ex_state import LagarisSolver_1d_ex_state
from lagarisTF import LagarisSolverTF
from visualiser import Visualiser

n_sig = 10
a = -5
b = 5
m = 60
train_x = np.linspace(a, b, m, endpoint = True).reshape(1, m) 

lagar = LagarisSolver_1d_ex_state()
lagar.define_psi(n_sig)
net_x = lagar.get_net_x()
dim = lagar.get_dim()
sess = lagar.get_sess()

potential = tf.square(net_x)
lagar.define_H_psi(potential, lagar.psi)
lagar.define_cost(train_x)

J = lagar.get_J()

opt_nm = NelderMead(-2.5,2.5)
opt_nm.set_epsilon_and_sd(0.3, 100)

def opt(J, dim, n_it, eps):
    optimisation_result = opt_nm.optimize(J, dim+1, n_it, eps)
    return optimisation_result

%matplotlib inline


D:\Anaconda\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-1-a3ee6bce6f47> in <module>()
     30 
     31 potential = tf.square(net_x)
---> 32 lagar.define_H_psi(potential)
     33 lagar.define_cost(train_x)
     34 

TypeError: define_H_psi() missing 1 required positional argument: 'psi'

In [ ]:
optimisation_result = opt(J, dim, int(4e3), 1e-6)
print("J after optimisation: ", J(optimisation_result.x))
print("Информация: ", optimisation_result)

In [ ]:
psi_list = np.abs(lagar.calc_psi(train_x, optimisation_result.x[-1]))

%matplotlib inline
H_psi_list = lagar.calc_H_psi(train_x, optimisation_result.x[-1])
plt.title('Difference between trial function and real:')
plt.plot(train_x[0], psi_list)
#plt.plot(train_xi[0], image_array)
#plt.plot(train_xi[0], d1_osc.wf(0, train_xi))
Visualiser.show_wf(0, train_x)
plt.plot(train_x[0], psi_list - d1_osc.wf(0, train_x), 'g--')