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 lagarisTF import LagarisSolverTF
from visualiser import Visualiser
n_sig = 7
a = -5
b = 5
m = 200
train_x = np.linspace(a, b, m, endpoint = True).reshape(1, m)
lagar = LagarisSolverTF()
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.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
In [2]:
optimisation_result = opt(J, dim, int(4e3), 1e-6)
print("J after optimisation: ", J(optimisation_result.x))
print("Информация: ", optimisation_result)
In [3]:
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--')
Out[3]: