First push, taken from the previous Spintrum software model

This commit is contained in:
2017-01-10 11:14:51 +01:00
commit 7852c4d1d9
36 changed files with 168893 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
#!/usr/bin/python3
import spintrum
import math
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
def run(dirs):
gammas = [10] #Hz/T
jCouplings = [[0]]
BThermal = 10e0
T2 = 10
sampleRate = 1e4
T= 1/sampleRate
B0=10.
B1=0.3e0
points = 1650
f = B0*gammas[0]
bx = np.array([np.sin(2*math.pi*f*t/sampleRate)*B1 for t in range(points)])
by = np.array([np.cos(2*math.pi*f*t/sampleRate)*B1 for t in range(points)])
spinOp = spintrum.SpinOperations()
spinOp.add_operation(spintrum.SpinOperations.OPERATION__THERMAL_POPULATE,
{'Bx': 0, 'By': 0, 'Bz': BThermal, 'T': 293.778})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__SET_HAMILTONIAN,
{'Bx': 0, 'By': 0, 'Bz': B0})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__EVOLVE_TIME_DEPENDENT,
{'threads': 4, 'samplingRate': sampleRate, 'store': dirs,
'input': {'Bx': bx, 'By': by}})
signal = spintrum.simulate(gyromagneticRatios=gammas,
jCouplings=jCouplings,
spinOperations=spinOp)
return signal
#this will result in points in the form xyzxyzxyz (order doesn't make a difference)
data = run('xyz')
mpl.rcParams['legend.fontsize'] = 10
fig = plt.figure()
ax = fig.gca(projection='3d')
datanp = np.transpose(np.split(np.array(data),len(data)/3))
ax.plot(datanp[0], datanp[1], datanp[2], label='parametric curve')
ax.legend()
plt.show()

View File

@@ -0,0 +1,61 @@
#!/usr/bin/python3
import spintrum
import math
import matplotlib.pyplot as plt
import numpy as np
import time
gammas = [4257.7e4,4257.7e4,4257.7e4,1070.8e4,1070.8e4,-431.6e4]
multips = [2,2,2,2,2,2]
jCouplings = \
[
[0,0,0,136.25,-9.94,-2.03],
[0,0,0,136.25,-9.94,-2.03],
[0,0,0,136.25,-9.94,-2.03],
[0,0,0,0,56.94,2.9],
[0,0,0,0,0,-17.53],
[0,0,0,0,0,0],
]
BThermal = 1.8e0
T2 = 10
sampleRate = 2e3
T= 1/sampleRate
points = 80000
gammah = 2*math.pi*4257.7
spinOp = spintrum.SpinOperations()
spinOp.add_operation(spintrum.SpinOperations.OPERATION__THERMAL_POPULATE,
{'Bx': 0, 'By': 0, 'Bz': BThermal, 'T': 293.778})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__TIP_SPINS,
{'direction': 'y', 'BVsTArea': 4*math.pi/gammah})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__SET_HAMILTONIAN,
{'Bx': 0, 'By': 0, 'Bz': 0})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__INIT_TIME_INDEPENDENT_EVOLUTION,
{'samplingRate': sampleRate, 'measurementDirection': 'z'})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__EVOLVE_TIME_INDEPENDENT,
{'points': points, 'threads': 4})
start_time = time.time()
signal = spintrum.simulate(gyromagneticRatios=gammas,
jCouplings=jCouplings,
spinMultiplicities=multips,
spinOperations=spinOp)
signal = signal - np.mean(signal)
signal = [signal[i]*math.exp(-i/sampleRate/T2) for i in range(len(signal))]
print("Simulation lastet: " + repr(time.time()-start_time) + "s")
plt.plot(signal)
plt.show()
fft = spintrum.FFTSpectralDensity(signal, sampleRate)
plt.plot(fft['x'], fft['y'])
plt.show()

62
examples/ZULF/benzene.py Normal file
View File

@@ -0,0 +1,62 @@
#!/usr/bin/python3
import spintrum
import math
import matplotlib.pyplot as plt
import numpy as np
import time
gammas = [4257.7e4,4257.7e4,4257.7e4,4257.7e4,4257.7e4,4257.7e4,1070.8e4]
multips = [2,2,2,2,2,2,2]
jCouplings = \
[
[0,7.54,1.38,0.661,1.38,7.54,158.354],
[0,0,7.543,1.377,0.658,1.373,1.133],
[0,0,0,7.535,1.382,0.658,7.607],
[0,0,0,0,7.535,1.377,-1.296],
[0,0,0,0,0,7.543,7.607],
[0,0,0,0,0,0,1.133],
[0,0,0,0,0,0,0]
]
BThermal = 1.8e0
T2 = 10
sampleRate = 1e3
T= 1/sampleRate
points = 80000
gammah = 2*math.pi*4257.7
spinOp = spintrum.SpinOperations()
spinOp.add_operation(spintrum.SpinOperations.OPERATION__THERMAL_POPULATE,
{'Bx': 0, 'By': 0, 'Bz': BThermal, 'T': 293.778})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__TIP_SPINS,
{'direction': 'y', 'BVsTArea': 4*math.pi/gammah})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__SET_HAMILTONIAN,
{'Bx': 0, 'By': 0, 'Bz': 0})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__INIT_TIME_INDEPENDENT_EVOLUTION,
{'samplingRate': sampleRate, 'measurementDirection': 'z'})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__EVOLVE_TIME_INDEPENDENT,
{'points': points, 'threads': 4})
start_time = time.time()
signal = spintrum.simulate(gyromagneticRatios=gammas,
jCouplings=jCouplings,
spinMultiplicities=multips,
spinOperations=spinOp)
signal = signal - np.mean(signal)
signal = [signal[i]*math.exp(-i/sampleRate/T2) for i in range(len(signal))]
print("Simulation lastet: " + repr(time.time()-start_time) + "s")
plt.plot(signal)
plt.show()
fft = spintrum.FFTSpectralDensity(signal, sampleRate)
plt.plot(fft['x'], fft['y'])
plt.show()

View File

@@ -0,0 +1,155 @@
#!/usr/bin/python3
import spintrum
import math
import matplotlib.pyplot as plt
import numpy as np
import scipy.optimize
import multiprocessing
import mpmath
mpmath.mp.dps = 25
def filter_spectrum(spec, freq_lim):
x_axis = np.array([])
y_axis = np.array([])
for i in range(len(freq_lim)):
for j in range(len(spec["x"])):
if freq_lim[i][0] <= spec["x"][j] <= freq_lim[i][1]:
x_axis = np.append(x_axis,spec["x"][j])
y_axis = np.append(y_axis,spec["y"][j])
return {"x": x_axis, "y": y_axis}
with open("../data/benzeneSignal.txt") as f:
data = f.readlines()
data = np.array(list(map(np.double,data)))
data = data - np.mean(data)
#defining initial parameters
gammas = [4257.7e4,4257.7e4,4257.7e4,4257.7e4,4257.7e4,4257.7e4,1070.8e4]
multiplicities = [2, 2, 2, 2, 2, 2, 2]
gammah = 2*math.pi*4257.7e4
BThermal = 1.8e0
T2 = 1
points = len(data)
sample_rate = 2000
spectrum_range = [[5, 50], [80, 119], [121, 179], [181, 239], [241, 299]]
jCouplings = \
[
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
]
experimental_spectrum = filter_spectrum(spintrum.FFTSpectralDensity(data, sample_rate), spectrum_range)
gen = spintrum.SpinSimulator(gyromagneticRatios=gammas,
jCouplings=jCouplings,
spinMultiplicities=multiplicities,
doPrint=False)
spinOp = spintrum.SpinOperations()
spinOp.add_operation(spintrum.SpinOperations.OPERATION__THERMAL_POPULATE,
{'Bx': 0, 'By': 0, 'Bz': BThermal, 'T': 293.778})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__TIP_SPINS,
{'direction': 'y', 'BVsTArea': 4*math.pi/gammah})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__SET_HAMILTONIAN,
{'Bx': 0, 'By': 0, 'Bz': 0})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__INIT_TIME_INDEPENDENT_EVOLUTION,
{'samplingRate': sample_rate, 'measurementDirection': 'z'})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__EVOLVE_TIME_INDEPENDENT,
{'points': points, 'threads': multiprocessing.cpu_count()})
gen.update_parameters(spinOperations=spinOp, jCouplings=jCouplings, gyromagneticRatios=gammas)
def generate_spectrum(params):
amplitude = params[13]
T2 = params[14]
jCouplings = \
[
[0, params[0], params[1], params[2],params[1],params[0],params[3]],
[0, 0, params[4], params[5], params[6], params[7], params[8]],
[0, 0, 0, params[9], params[10], params[6], params[11]],
[0, 0, 0, 0, params[9], params[5], params[12]],
[0, 0, 0, 0, 0, params[4], params[11]],
[0, 0, 0, 0, 0, 0, params[8]],
[0, 0, 0, 0, 0, 0, 0],
]
gen.update_parameters(jCouplings=jCouplings)
signal = amplitude*gen.simulate()
signal = signal - np.mean(signal)
signal = [signal[i] * math.exp(-i / sample_rate / T2) for i in range(len(signal))]
fft = filter_spectrum(spintrum.FFTSpectralDensity(signal, sample_rate), spectrum_range)
# plt.plot(fft['x'],fft['y'],realSpectrum['x'],realSpectrum['y'])
# plt.show()
return fft
def objective_func(params):
print(params)
spect = generate_spectrum(params)
func_value = np.sqrt(np.sum((spect['y'] - experimental_spectrum['y']) ** 2))
print('Objective function value:', func_value)
return func_value
pars = np.array([7.54,1.38,0.661,158.354,7.543,1.377,0.658,1.373,1.133,7.535,1.382,7.607,-1.296,0.00002,6])
#pars = np.array([-1.06785235e+00,2.26791767e+02,4.26684847e+00,4.53620118e-05,2.73284204e+00])
# get_objective_func(pars)
optimum_params = scipy.optimize.fmin(objective_func, pars, ftol = 5.0e-13, maxfun = 1)
opt_j_couplings = mpmath.matrix([
[0, optimum_params[0], optimum_params[1], optimum_params[2], optimum_params[1], optimum_params[0], optimum_params[3]],
[0, 0, optimum_params[4], optimum_params[5], optimum_params[6], optimum_params[7], optimum_params[8]],
[0, 0, 0, optimum_params[9], optimum_params[10], optimum_params[6], optimum_params[11]],
[0, 0, 0, 0, optimum_params[9], optimum_params[5], optimum_params[12]],
[0, 0, 0, 0, 0, optimum_params[4], optimum_params[11]],
[0, 0, 0, 0, 0, 0, optimum_params[8]],
[0, 0, 0, 0, 0, 0, 0],
])
CorrelationMatrix = spintrum.get_correlation_matrix(optimum_params, generate_spectrum, objective_func)
print('Correlation matrix: ', '\n', CorrelationMatrix)
print('Parameters at minimum: ','\n', optimum_params)
errorbars = spintrum.get_errorbars(CorrelationMatrix)
print('Standard deviations of parameters: ','\n',errorbars)
#writout to file
np.set_printoptions(suppress=True, precision=20)
fr = open("../data/benzeneFitResult.txt","w")
fr.write('Minimum at J-couplings:\n')
fr.write(str(opt_j_couplings) + '\n')
fr.write('Minimum at paramters:\n')
fr.write(str(optimum_params) + '\n')
fr.write('Parameters standard deviations:\n')
fr.write(str(errorbars)+'\n')
fr.write('Parameters correlation matrix:\n')
fr.write(str(CorrelationMatrix)+'\n')
fr.write('Minimum objective function value: ' + str(objective_func(optimum_params)))
fr.close()
fft_final = generate_spectrum(optimum_params)
plt.plot(fft_final['x'], fft_final['y'], experimental_spectrum['x'], experimental_spectrum['y'])
plt.show()

View File

@@ -0,0 +1,155 @@
#!/usr/bin/python3
import spintrum
import math
import matplotlib.pyplot as plt
import numpy as np
import scipy.optimize
import multiprocessing
import mpmath as mp
mp.mp.dps = 25
def filter_spectrum(spec, freq_lim):
x_axis = np.array([])
y_axis = np.array([])
for i in range(len(freq_lim)):
for j in range(len(spec["x"])):
if freq_lim[i][0] <= spec["x"][j] <= freq_lim[i][1]:
x_axis = np.append(x_axis,spec["x"][j])
y_axis = np.append(y_axis,spec["y"][j])
return {"x": x_axis, "y": y_axis}
#defining initial parameters
with open("../data/ethanolSignal.txt") as f:
data = f.readlines()
data = np.array(list(map(np.double,data)))
data = data - np.mean(data)
gammas = [4257.7e4,4257.7e4,4257.7e4,4257.7e4,4257.7e4,1070.8e4]
multips = [2,2,2,2,2,2]
gammah = 2*math.pi*4257.7e4
BThermal = 1.8e0
T2 = 1
points = len(data)
sampleRate = 2000
spectrumRange = [[0,299]]
jCouplings = \
[
[0,0,0,0,0,0],
[0,0,0,0,0,0],
[0,0,0,0,0,0],
[0,0,0,0,0,0],
[0,0,0,0,0,0],
[0,0,0,0,0,0],
]
experimental_spectrum = filter_spectrum(spintrum.FFTSpectralDensity(data, 2000), spectrumRange)
gen = spintrum.SpinSimulator(gyromagneticRatios=gammas,
jCouplings=jCouplings,
spinMultiplicities=multips,
doPrint=False)
spinOp = spintrum.SpinOperations()
spinOp.add_operation(spintrum.SpinOperations.OPERATION__THERMAL_POPULATE,
{'Bx': 0, 'By': 0, 'Bz': BThermal, 'T': 293.778})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__TIP_SPINS,
{'direction': 'y', 'BVsTArea': 4*math.pi/gammah})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__SET_HAMILTONIAN,
{'Bx': 0, 'By': 0, 'Bz': 0})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__INIT_TIME_INDEPENDENT_EVOLUTION,
{'samplingRate': sampleRate, 'measurementDirection': 'z'})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__EVOLVE_TIME_INDEPENDENT,
{'points': points, 'threads': multiprocessing.cpu_count()})
gen.update_parameters(spinOperations=spinOp, jCouplings=jCouplings, gyromagneticRatios=gammas)
def generate_spectrum(params):
amplitude = params[3]
T2 = params[4]
jCouplings = \
[
[0, 0, 0, params[0],params[1],params[1]],
[0, 0, 0, params[0],params[1],params[1]],
[0, 0, 0, params[0],params[1],params[1]],
[0, 0, 0, 0, 0, params[2]],
[0, 0, 0, 0, 0, params[2]],
[0, 0, 0, 0, 0, 0],
]
gen.update_parameters(jCouplings=jCouplings)
signal = amplitude*gen.simulate()
signal = signal - np.mean(signal)
signal = [signal[i]*math.exp(-i/sampleRate/T2) for i in range(len(signal))]
fft = filter_spectrum(spintrum.FFTSpectralDensity(signal, 2000), spectrumRange)
# plt.plot(fft['x'],fft['y'],realSpectrum['x'],realSpectrum['y'])
# plt.show()
return fft
def objective_func(params):
print(params)
spect = generate_spectrum(params)
funcValue = np.sqrt(np.sum((spect['y'] - experimental_spectrum['y']) ** 2))
print('Objective function value: ',funcValue)
return funcValue
pars = np.array([7.1,141.0,-4.65,0.00002,6])
#pars = np.array([-1.06785235e+00,2.26791767e+02,4.26684847e+00,l4.53620118e-05,2.73284204e+00])
# get_objective_func(pars)
optimum_params = scipy.optimize.fmin(objective_func, pars, ftol = 5.0e-13, maxfun = 1)
opt_j_couplings = mp.matrix([
[0, 0, 0, optimum_params[0], optimum_params[1], optimum_params[1]],
[0, 0, 0, optimum_params[0], optimum_params[1], optimum_params[1]],
[0, 0, 0, optimum_params[0], optimum_params[1], optimum_params[1]],
[0, 0, 0, 0, 0, optimum_params[2]],
[0, 0, 0, 0, 0, optimum_params[2]],
[0, 0, 0, 0, 0, 0],
])
CorrelationMatrix = spintrum.get_correlation_matrix(optimum_params, generate_spectrum, objective_func)
print('Correlation matrix: ','\n',CorrelationMatrix)
print('Parameters at minimum: ','\n', optimum_params)
errorbars = spintrum.get_errorbars(CorrelationMatrix)
print('Standard deviations of parameters: ','\n',errorbars)
#writout to file
np.set_printoptions(suppress=True,precision=20)
fr = open("../data/ethanolFitResult.txt","w")
fr.write('Minimum at J-couplings:\n')
fr.write(str(opt_j_couplings) + '\n')
fr.write('Minimum at paramters:\n')
fr.write(str(optimum_params) + '\n')
fr.write('Parameters standard deviations:\n')
fr.write(str(errorbars)+'\n')
fr.write('Parameters correlation matrix:\n')
fr.write(str(CorrelationMatrix)+'\n')
fr.write('Minimum objective function value: ' + str(objective_func(optimum_params)))
fr.close()
fft_final = generate_spectrum(optimum_params)
plt.plot(fft_final['x'], fft_final['y'], experimental_spectrum['x'], experimental_spectrum['y'])
plt.show()

View File

@@ -0,0 +1,80 @@
#!/usr/bin/python3
import spintrum
import math
import matplotlib.pyplot as plt
import numpy as np
import time
gammas = [-431.6e4,4257.7e4,4257.7e4,4257.7e4]
multips = [2,2,2,2]
jCouplings = \
[
[0,-89.3,-89.3,-13.5],
[0,0,0,8],
[0,0,0,8],
[0,0,0,0],
]
BThermal = 1.8e0
T2 = 5
sampleRate = 2e3
T= 1/sampleRate
points = 80000
specRange = [[0,50],[100,200]]
gammah = 2*math.pi*4257.7e4
spinOp = spintrum.SpinOperations()
spinOp.add_operation(spintrum.SpinOperations.OPERATION__THERMAL_POPULATE,
{'Bx': 0, 'By': 0, 'Bz': BThermal, 'T': 293.778})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__TIP_SPINS,
{'direction': 'y', 'BVsTArea': 4*math.pi/gammah})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__SET_HAMILTONIAN,
{'Bx': 0, 'By': 0, 'Bz': 0})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__INIT_TIME_INDEPENDENT_EVOLUTION,
{'samplingRate': sampleRate, 'measurementDirection': 'z'})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__EVOLVE_TIME_INDEPENDENT,
{'points': points, 'threads': 4})
def filterSpectrum(spec, freqLim):
xAxis = np.array([])
yAxis = np.array([])
for i in range(len(freqLim)):
for j in range(len(spec["x"])):
if spec["x"][j] >= freqLim[i][0] and spec["x"][j] <= freqLim[i][1]:
xAxis = np.insert(xAxis,-0,spec["x"][j])
yAxis = np.insert(yAxis,-0,spec["y"][j])
return {"x": xAxis, "y": yAxis}
start_time = time.time()
signal = spintrum.simulate(gyromagneticRatios=gammas,
jCouplings=jCouplings,
spinMultiplicities=multips,
spinOperations=spinOp)
print("Simulation lastet: " + repr(time.time()-start_time) + "s")
signal = signal - np.mean(signal)
signal = [signal[i]*math.exp(-i/sampleRate/T2) for i in range(len(signal))]
plt.plot(signal)
plt.show()
FFT = spintrum.FFTSpectralDensity(signal, sampleRate)
fft = filterSpectrum(FFT,specRange)
plt.plot(fft['x'], fft['y'])
plt.show()

View File

@@ -0,0 +1,142 @@
#!/usr/bin/python3
import spintrum
import math
import matplotlib.pyplot as plt
import numpy as np
import scipy.optimize
import multiprocessing
import mpmath as mp
def filter_spectrum(spec, freq_lim):
x_axis = np.array([])
y_axis = np.array([])
for i in range(len(freq_lim)):
for j in range(len(spec["x"])):
if freq_lim[i][0] <= spec["x"][j] <= freq_lim[i][1]:
x_axis = np.append(x_axis,spec["x"][j])
y_axis = np.append(y_axis,spec["y"][j])
return {"x": x_axis, "y": y_axis}
with open("../data/formicacidSignal.txt") as f:
data = f.readlines()
data = np.array(list(map(np.double,data)))
data = data - np.mean(data)
gammas = [4257.7e4,1070.8e4]
multips = [2,2]
gammah = 2*math.pi*4257.7e4
BThermal = 1.8e0
T2 = 1
points = len(data)
sampleRate = 2000
spectrumRange = [[210,230]]
jCouplings = \
[
[0,0],
[0,0],
]
realSpectrum = filter_spectrum(spintrum.FFTSpectralDensity(data, 2000), spectrumRange)
gen = spintrum.SpinSimulator(gyromagneticRatios=gammas,
jCouplings=jCouplings,
spinMultiplicities=multips,
doPrint=False)
spinOp = spintrum.SpinOperations()
spinOp.add_operation(spintrum.SpinOperations.OPERATION__THERMAL_POPULATE,
{'Bx': 0, 'By': 0, 'Bz': BThermal, 'T': 293.778})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__TIP_SPINS,
{'direction': 'y', 'BVsTArea': 4*math.pi/gammah})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__SET_HAMILTONIAN,
{'Bx': 0, 'By': 0, 'Bz': 0})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__INIT_TIME_INDEPENDENT_EVOLUTION,
{'samplingRate': sampleRate, 'measurementDirection': 'z'})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__EVOLVE_TIME_INDEPENDENT,
{'points': points, 'threads': multiprocessing.cpu_count()})
gen.update_parameters(spinOperations=spinOp, jCouplings=jCouplings, gyromagneticRatios=gammas)
def generate_spectrum(params):
amplitude = params[1]
T2 = params[2]
jCouplings = \
[
[0, params[0]],
[0, 0],
]
gen.update_parameters(jCouplings=jCouplings)
signal = amplitude*gen.simulate()
signal = signal - np.mean(signal)
signal = [signal[i]*math.exp(-i/sampleRate/T2) for i in range(len(signal))]
fft = filter_spectrum(spintrum.FFTSpectralDensity(signal, 2000), spectrumRange)
# plt.plot(fft['x'],fft['y'],realSpectrum['x'],realSpectrum['y'])
# plt.show()
return fft
def objective_func(params):
print(params)
spect = generate_spectrum(params)
funcValue = np.sqrt(np.sum((spect['y'] - realSpectrum['y'])**2))
print('Objective function value: ',funcValue)
return funcValue
pars = np.array([222.5,0.000003,6])
#pars = np.array([-1.06785235e+00,2.26791767e+02,4.26684847e+00,4.53620118e-05,2.73284204e+00])
# get_objective_func(pars)
optimum_params = scipy.optimize.fmin(objective_func, pars, ftol = 5.0e-13, maxfun = 1e6)
optjCouplings = mp.matrix([
[0, optimum_params[0]],
[0, 0],
])
CorrelationMatrix = spintrum.get_correlation_matrix(optimum_params, generate_spectrum, objective_func)
print('Correlation matrix: ','\n',CorrelationMatrix)
print('Parameters at minimum: ','\n', optimum_params)
errorbars = spintrum.get_errorbars(CorrelationMatrix)
print('Standard deviations of parameters: ','\n',errorbars)
#writout to file
np.set_printoptions(suppress=True,precision=20)
fr = open("../data/formicacidFitResult.txt","w")
fr.write('Minimum at J-couplings:\n')
fr.write(str(optjCouplings)+'\n')
fr.write('Minimum at paramters:\n')
fr.write(str(optimum_params) + '\n')
fr.write('Parameters standard deviations:\n')
fr.write(str(errorbars)+'\n')
fr.write('Parameters correlation matrix:\n')
fr.write(str(CorrelationMatrix)+'\n')
fr.write('Minimum objective function value: ' + str(objective_func(optimum_params)))
fr.close()
fft_final = generate_spectrum(optimum_params)
plt.plot(fft_final['x'],fft_final['y'],realSpectrum['x'],realSpectrum['y'])
plt.show()

View File

@@ -0,0 +1,60 @@
#!/usr/bin/python3
import spintrum
import math
import matplotlib.pyplot as plt
import numpy as np
import time
gammas = [4257.7e4,4257.7e4,4257.7e4,4257.7e4,1070.8e4]
multips = [2,2,2,2,2]
jCouplings = \
[
[0,-0.8,-0.8,-0.8,226.8],
[0,0,0,0,4.0],
[0,0,0,0,4.0],
[0,0,0,0,4.0],
[0,0,0,0,0],
]
BThermal = 1.8e0
T2 = 10
sampleRate = 2e3
T= 1/sampleRate
points = 80000
gammah = 2*math.pi*4257.7
spinOp = spintrum.SpinOperations()
spinOp.add_operation(spintrum.SpinOperations.OPERATION__THERMAL_POPULATE,
{'Bx': 0, 'By': 0, 'Bz': BThermal, 'T': 293.778})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__TIP_SPINS,
{'direction': 'y', 'BVsTArea': 4*math.pi/gammah})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__SET_HAMILTONIAN,
{'Bx': 0, 'By': 0, 'Bz': 0})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__INIT_TIME_INDEPENDENT_EVOLUTION,
{'samplingRate': sampleRate, 'measurementDirection': 'z'})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__EVOLVE_TIME_INDEPENDENT,
{'points': points, 'threads': 4})
start_time = time.time()
signal = spintrum.simulate(gyromagneticRatios=gammas,
jCouplings=jCouplings,
spinMultiplicities=multips,
spinOperations=spinOp)
signal = signal - np.mean(signal)
signal = [signal[i]*math.exp(-i/sampleRate/T2) for i in range(len(signal))]
print("Simulation lastet: " + repr(time.time()-start_time) + "s")
plt.plot(signal)
plt.show()
fft = spintrum.FFTSpectralDensity(signal, sampleRate)
plt.plot(fft['x'], fft['y'])
plt.show()

View File

@@ -0,0 +1,156 @@
#!/usr/bin/python3
import spintrum
import math
import matplotlib.pyplot as plt
import numpy as np
import scipy.optimize
import multiprocessing
import mpmath as mp
def filter_spectrum(spec, freq_lim):
x_axis = np.array([])
y_axis = np.array([])
for i in range(len(freq_lim)):
for j in range(len(spec["x"])):
if freq_lim[i][0] <= spec["x"][j] <= freq_lim[i][1]:
x_axis = np.append(x_axis,spec["x"][j])
y_axis = np.append(y_axis,spec["y"][j])
return {"x": x_axis, "y": y_axis}
#defining initial parameters
with open("../data/methylformateSignal.txt") as f:
data = f.readlines()
data = np.array(list(map(np.double,data)))
data = data - np.mean(data)
gammas = [4257.7e4,4257.7e4,4257.7e4,4257.7e4,1070.8e4]
multips = [2,2,2,2,2]
gammah = 2*math.pi*4257.7e4
BThermal = 1.8e0
T2 = 1
points = len(data)
sampleRate = 2000
spectrumRange = [[70,119],[121,179],[181,239],[241,299]]
jCouplings = \
[
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
]
experimental_spectrum = filter_spectrum(spintrum.FFTSpectralDensity(data, 2000), spectrumRange)
gen = spintrum.SpinSimulator(gyromagneticRatios=gammas,
jCouplings=jCouplings,
spinMultiplicities=multips,
doPrint=False)
spinOp = spintrum.SpinOperations()
spinOp.add_operation(spintrum.SpinOperations.OPERATION__THERMAL_POPULATE,
{'Bx': 0, 'By': 0, 'Bz': BThermal, 'T': 293.778})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__TIP_SPINS,
{'direction': 'y', 'BVsTArea': 4*math.pi/gammah})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__SET_HAMILTONIAN,
{'Bx': 0, 'By': 0, 'Bz': 0})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__INIT_TIME_INDEPENDENT_EVOLUTION,
{'samplingRate': sampleRate, 'measurementDirection': 'z'})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__EVOLVE_TIME_INDEPENDENT,
{'points': points, 'threads': multiprocessing.cpu_count()})
gen.update_parameters(spinOperations=spinOp, jCouplings=jCouplings, gyromagneticRatios=gammas)
def generate_spectrum(params):
amplitude = params[3]
T2 = params[4]
jCouplings = \
[
[0, params[0], params[0], params[0],params[1]],
[0, 0, 0, 0, params[2]],
[0, 0, 0, 0, params[2]],
[0, 0, 0, 0, params[2]],
[0, 0, 0, 0, 0],
]
spinOp = spintrum.SpinOperations()
spinOp.add_operation(spintrum.SpinOperations.OPERATION__THERMAL_POPULATE,
{'Bx': 0, 'By': 0, 'Bz': BThermal, 'T': 293.778})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__TIP_SPINS,
{'direction': 'y', 'BVsTArea': 4 * math.pi / gammah})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__SET_HAMILTONIAN,
{'Bx': np.float(params[5]), 'By': 0, 'Bz': np.float(params[6])})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__INIT_TIME_INDEPENDENT_EVOLUTION,
{'samplingRate': sampleRate, 'measurementDirection': 'z'})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__EVOLVE_TIME_INDEPENDENT,
{'points': points, 'threads': multiprocessing.cpu_count()})
gen.update_parameters(jCouplings=jCouplings, spinOperations=spinOp)
signal = amplitude*gen.simulate()
signal = signal - np.mean(signal)
signal = [signal[i]*math.exp(-i/sampleRate/T2) for i in range(len(signal))]
fft = filter_spectrum(spintrum.FFTSpectralDensity(signal, 2000), spectrumRange)
# plt.plot(fft['x'],fft['y'],realSpectrum['x'],realSpectrum['y'])
# plt.show()
return fft
def objective_func(params):
print(params)
spect = generate_spectrum(params)
funcValue = np.sqrt(np.sum((spect['y'] - experimental_spectrum['y']) ** 2))
print('Objective function value: ',funcValue)
return funcValue
pars = np.array([-1.06785235e+00,2.26791767e+02,4.26684847e+00,4.53620118e-05,2.73284204e+00,3.11541220e-09,2.80718054e-09])
#pars = np.array([-1.06785235e+00,2.26791767e+02,4.26684847e+00,4.53620118e-05,2.73284204e+00])
# get_objective_func(pars)
optimum_params = scipy.optimize.fmin(objective_func, pars, ftol = 5.0e-13, maxfun = 1)
optjCouplings = mp.matrix([[0, optimum_params[0], optimum_params[0], optimum_params[0], optimum_params[1]], [0, 0, 0, 0, optimum_params[2]], [0, 0, 0, 0, optimum_params[2]], [0, 0, 0, 0, optimum_params[2]], [0, 0, 0, 0, 0]])
CorrelationMatrix = spintrum.get_correlation_matrix(optimum_params, generate_spectrum, objective_func)
print('Correlation matrix: ','\n',CorrelationMatrix)
print('Parameters at minimum: ','\n', optimum_params)
errorbars = spintrum.get_errorbars(CorrelationMatrix)
print('Standard deviations of parameters: ','\n',errorbars)
#writout to file
np.set_printoptions(suppress=True,precision=20)
fr = open("../data/methylformateFitResult.txt","w")
fr.write('Minimum at J-couplings:\n')
fr.write(str(optjCouplings)+'\n')
fr.write('Minimum at paramters:\n')
fr.write(str(optimum_params) + '\n')
fr.write('Parameters standard deviations:\n')
fr.write(str(errorbars)+'\n')
fr.write('Parameters correlation matrix:\n')
fr.write(str(CorrelationMatrix)+'\n')
fr.write('Minimum objective function value: ' + str(objective_func(optimum_params)))
fr.close()
fft_final = generate_spectrum(optimum_params)
plt.plot(fft_final['x'], fft_final['y'], experimental_spectrum['x'], experimental_spectrum['y'])
plt.show()

64
examples/ZULF/toluene.py Normal file
View File

@@ -0,0 +1,64 @@
#!/usr/bin/python3
import spintrum
import math
import matplotlib.pyplot as plt
import numpy as np
import time
gammas = [1070.8e4,4257.7e4,4257.7e4,4257.7e4,4257.7e4,4257.7e4,4257.7e4,4257.7e4,4257.7e4]
multips = [2,2,2,2,2,2,2,2,2]
jCouplings = \
[
[0,125.99,125.99,125.99,4.53,0.63,0.56,0.63,4.53],
[0,0,0,0,-0.69,0.3,-0.52,0.3,-0.69],
[0,0,0,0,-0.69,0.3,-0.52,0.3,-0.69],
[0,0,0,0,-0.69,0.3,-0.52,0.3,-0.69],
[0,0,0,0,0,7.655,1.273,0.61,1.902],
[0,0,0,0,0,0,7.417,1.442,0.61],
[0,0,0,0,0,0,0,7.417,1.273],
[0,0,0,0,0,0,0,0,7.655],
[0,0,0,0,0,0,0,0,0],
]
BThermal = 1.8e0
T2 = 10
sampleRate = 2e3
T= 1/sampleRate
points = 80000
gammah = 2*math.pi*4257.7
spinOp = spintrum.SpinOperations()
spinOp.add_operation(spintrum.SpinOperations.OPERATION__THERMAL_POPULATE,
{'Bx': 0, 'By': 0, 'Bz': BThermal, 'T': 293.778})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__TIP_SPINS,
{'direction': 'y', 'BVsTArea': 4*math.pi/gammah})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__SET_HAMILTONIAN,
{'Bx': 0, 'By': 0, 'Bz': 0})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__INIT_TIME_INDEPENDENT_EVOLUTION,
{'samplingRate': sampleRate, 'measurementDirection': 'z'})
spinOp.add_operation(spintrum.SpinOperations.OPERATION__EVOLVE_TIME_INDEPENDENT,
{'points': points, 'threads': 4})
start_time = time.time()
signal = spintrum.simulate(gyromagneticRatios=gammas,
jCouplings=jCouplings,
spinMultiplicities=multips,
spinOperations=spinOp)
signal = signal - np.mean(signal)
signal = [signal[i]*math.exp(-i/sampleRate/T2) for i in range(len(signal))]
print("Simulation lastet: " + repr(time.time()-start_time) + "s")
#plt.plot(signal)
#plt.show()
fft = spintrum.FFTSpectralDensity(signal, sampleRate)
#plt.plot(fft['x'], fft['y'])
#plt.show()

View File

@@ -0,0 +1,39 @@
Minimum at J-couplings:
[0.0 7.540000000000000035527137 1.37999999999999989341859 0.6940500000000000557776048 1.37999999999999989341859 7.540000000000000035527137 158.3540000000000134150469]
[0.0 0.0 7.543000000000000149213975 1.377000000000000001776357 0.6580000000000000293098879 1.372999999999999998223643 1.133000000000000007105427]
[0.0 0.0 0.0 7.535000000000000142108547 1.381999999999999895194946 0.6580000000000000293098879 7.607000000000000206057393]
[0.0 0.0 0.0 0.0 7.535000000000000142108547 1.377000000000000001776357 -1.296000000000000040856207]
[0.0 0.0 0.0 0.0 0.0 7.543000000000000149213975 7.607000000000000206057393]
[0.0 0.0 0.0 0.0 0.0 0.0 1.133000000000000007105427]
[0.0 0.0 0.0 0.0 0.0 0.0 0.0]
Minimum at paramters:
[ 7.54000000000000003553 1.37999999999999989342
0.69405000000000005578 158.35400000000001341505
7.54300000000000014921 1.37700000000000000178
0.65800000000000002931 1.37299999999999999822
1.13300000000000000711 7.53500000000000014211
1.38199999999999989519 7.60700000000000020606
-1.29600000000000004086 0.00002 6. ]
Parameters standard deviations:
[ 0.01213036128028350744 0.01200338965431838219 0.0210108319218480534
0.00136520954965830372 0.00207036522512347001 0.0015403380168111558
0.002411457870921565 0.00388774145155117157 0.0115697414734789103
0.00197797340829316192 0.00378925067269910397 0.01309609727481571284
0.02228143292531298975 0.00000013041758667639 0.08099564331836582587]
Parameters correlation matrix:
[ 0.0001471456647902013181383402 0.00001463222969485299177267973 -0.00006909596379679264589945903 -0.000009879358894976308872795249 -0.0000009910243900245024325036503 -0.000002509748557468651844392826 -0.000002380514305191314647678003 -0.000001532797369848477294597076 -0.0001398171521420891800876204 0.000001422052124704963073199576 -0.00001037268069958482290642726 -0.00001290226212709788198467148 0.00007096566048036505325667219 -1.702553129336511984544059e-10 0.00004275020004048705398448456]
[ 0.00001463222969485299177267973 0.0001440813631933975880817379 0.00002299492026289425009574231 0.00001037831140663546812973995 0.000004641419189000230273160295 0.0000003481765790202689986629226 0.000005497366076771748661640629 0.000002877276454724989752027814 -0.00001362792654992391090535695 0.0000004161081524168458245327233 -0.000002483428954058797310899994 -0.0001558767501752093491889536 -0.00002141545832708516017103168 -6.012359324553393495710444e-11 -0.00002327038396238911095653417]
[ -0.00006909596379679264589945903 0.00002299492026289425009574231 0.0004414550580481491548513489 0.000001108435560228381067375232 -0.00001975420180487688038510312 0.00001453060280812084487906817 0.00002318209036413609021209115 0.00001039593258646703331312574 0.00006364589864333445436952719 -0.000009398587641029470657017377 0.00002622272826720824973467517 -0.000008764476892287513000476972 -0.000466746002920191158409556 1.248762095118255000331241e-10 0.00001130020472156932208081689]
[ -0.000009879358894976308872795249 0.00001037831140663546812973995 0.000001108435560228381067375232 0.000001863797114478228603607421 0.0000007476440865756702094209745 1.123978176405166973781769e-8 0.0000002553464654493212747923789 0.0000003195064918052377525208331 0.000009443194729269174453253087 7.221575647409583548534879e-8 0.000000349931576923391013309441 -0.00001190107927369451519111038 -0.0000008315685547761382561697822 6.700368978239857808480007e-12 -0.000005586326111486780414234254]
[-0.0000009910243900245024325036503 0.000004641419189000230273160295 -0.00001975420180487688038510312 0.0000007476440865756702094209745 0.000004286412165400555968378269 -0.00000148069638031103530582914 -0.00000173209322151311247953546 -0.0000005677951950371133070047416 0.0000009378771834264744655292185 0.000001247272798757033414925511 -0.000001274930289723080766708529 -0.000006204113311550526544923224 0.00002140476713125757962515133 -2.303859357294487235932149e-11 -0.0000003321116977367169408111833]
[ -0.000002509748557468651844392826 0.0000003481765790202689986629226 0.00001453060280812084487906817 1.123978176405166973781769e-8 -0.00000148069638031103530582914 0.000002372641206033724645831738 0.0000003949086502734464393062185 0.000001888143503238488927826451 0.000002307832893099388443109272 -0.000001330141506298025966824523 0.000001023838420449584372820466 8.810992240617305314994453e-8 -0.00001532057310382572305396533 6.464365426716748781623857e-13 0.000008235154837073978975731815]
[ -0.000002380514305191314647678003 0.000005497366076771748661640629 0.00002318209036413609021209115 0.0000002553464654493212747923789 -0.00000173209322151311247953546 0.0000003949086502734464393062185 0.000005815129063229567994669581 -0.0000008188514962362312139895792 0.000001586158863679219511860753 -0.000001061890629089395632567779 0.0000006323002134620725592762107 -0.000004645446730989817348446203 -0.00002427101958370795139270938 1.038492242263116564566961e-11 -0.000008219887074829020900351506]
[ -0.000001532797369848477294597076 0.000002877276454724989752027814 0.00001039593258646703331312574 0.0000003195064918052377525208331 -0.0000005677951950371133070047416 0.000001888143503238488927826451 -0.0000008188514962362312139895792 0.00001511453359410921012152708 0.000000999587640990087513467813 -0.000001931320208821247224439329 0.0000055775471016662317599875 -0.000003803551035702625255040296 -0.00001044948729450380108855006 1.538488794122819589494189e-11 -0.00000190273597974101894946311]
[ -0.0001398171521420891800876204 -0.00001362792654992391090535695 0.00006364589864333445436952719 0.000009443194729269174453253088 0.0000009378771834264744655292185 0.000002307832893099388443109272 0.000001586158863679219511860753 0.0000009995876409900875134678131 0.0001338589177631379405020443 -0.000001347004704046966658459637 0.000009310637780617520017116411 0.00001131355875911897408321388 -0.00006530765877458676341747736 1.506546328775637756433659e-10 -0.0000301979608076350653658923]
[ 0.000001422052124704963073199576 0.0000004161081524168458245327232 -0.000009398587641029470657017377 7.221575647409583548534879e-8 0.000001247272798757033414925511 -0.000001330141506298025966824523 -0.000001061890629089395632567779 -0.000001931320208821247224439329 -0.000001347004704046966658459637 0.00000391237880391486694459757 -0.0000006379463858305498051696242 -0.0000002334284653952341494558095 0.000008643432009244179075330804 1.758741509731881657071911e-12 -0.00000487121626283840634144112]
[ -0.00001037268069958482290642726 -0.000002483428954058797310899994 0.00002622272826720824973467517 0.000000349931576923391013309441 -0.000001274930289723080766708529 0.000001023838420449584372820466 0.0000006323002134620725592762107 0.0000055775471016662317599875 0.000009310637780617520017116411 -0.0000006379463858305498051696242 0.00001435842066055061071562628 0.000003028275428748878192197676 -0.00002776991450362346709938132 2.814838265884042881741137e-11 -0.00001169416998368706644677807]
[ -0.00001290226212709788198467148 -0.0001558767501752093491889536 -0.000008764476892287513000476973 -0.00001190107927369451519111038 -0.000006204113311550526544923224 8.810992240617305314994455e-8 -0.000004645446730989817348446203 -0.000003803551035702625255040296 0.00001131355875911897408321388 -0.0000002334284653952341494558095 0.000003028275428748878192197676 0.0001715077638314355195700391 0.000005116547306256408779515563 7.767623556078226544272074e-11 0.000019275139606341545706687]
[ 0.00007096566048036505325667219 -0.00002141545832708516017103168 -0.000466746002920191158409556 -0.0000008315685547761382561697822 0.00002140476713125757962515133 -0.00001532057310382572305396532 -0.00002427101958370795139270938 -0.00001044948729450380108855006 -0.00006530765877458676341747736 0.000008643432009244179075330805 -0.00002776991450362346709938132 0.000005116547306256408779515563 0.0004964622532052218464903146 -1.304877543835054883828051e-10 -0.00001404076566819395902521567]
[ -1.702553129336511984544059e-10 -6.012359324553393495710443e-11 1.248762095118255000331241e-10 6.700368978239857808480007e-12 -2.303859357294487235932149e-11 6.464365426716748781623857e-13 1.038492242263116564566961e-11 1.538488794122819589494189e-11 1.506546328775637756433659e-10 1.758741509731881657071911e-12 2.814838265884042881741137e-11 7.767623556078226544272074e-11 -1.304877543835054883828051e-10 1.700874691449460977731785e-14 -7.720781640183639711727769e-9]
[ 0.00004275020004048705398448456 -0.00002327038396238911095653417 0.00001130020472156932208081689 -0.000005586326111486780414234254 -0.0000003321116977367169408111833 0.000008235154837073978975731815 -0.000008219887074829020900351506 -0.00000190273597974101894946311 -0.0000301979608076350653658923 -0.00000487121626283840634144112 -0.00001169416998368706644677807 0.00001927513960634154570668701 -0.00001404076566819395902521567 -7.720781640183639711727769e-9 0.006560294236555937715697575]
Minimum objective function value: 0.00103043119564

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,20 @@
Minimum at J-couplings:
[0.0 0.0 0.0 7.099999999999999644728632 141.0 141.0]
[0.0 0.0 0.0 7.099999999999999644728632 141.0 141.0]
[0.0 0.0 0.0 7.099999999999999644728632 141.0 141.0]
[0.0 0.0 0.0 0.0 0.0 -4.882500000000000284217094]
[0.0 0.0 0.0 0.0 0.0 -4.882500000000000284217094]
[0.0 0.0 0.0 0.0 0.0 0.0]
Minimum at paramters:
[ 7.09999999999999964473 141. -4.88250000000000028422
0.00002 6. ]
Parameters standard deviations:
[ 0.03322511176186732779 0.00875703636437601129 0.00859062850557597291
0.00000523277859604197 3.77791757313063492063]
Parameters correlation matrix:
[ 0.001103908051588574804254193 -0.0001006480358644767479148856 0.00005611320233879484823628018 -2.237414104467287731378798e-11 0.0002700305105131311016724805]
[-0.0001006480358644767479148856 0.00007668568588700384258089065 -0.00004179674357134708614132537 -5.925975514198601921081523e-9 0.004471293184115583646988029]
[0.00005611320233879484823628018 -0.00004179674357134708614132537 0.00007379889812081447682909023 1.350386848067927730816378e-8 -0.0102277945204446472126845]
[-2.237414104467287731378797e-11 -5.925975514198601921081523e-9 1.350386848067927730816378e-8 2.738197183519495203009604e-11 -0.00001880755267537564555294751]
[ 0.0002700305105131311016724805 0.004471293184115583646988029 -0.0102277945204446472126845 -0.00001880755267537564555294751 14.27266118936926548689719]
Minimum objective function value: 0.0125706965818

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
Minimum at J-couplings:
[0.0 222.1877481194236167993949493393302]
[0.0 0.0]
Minimum at paramters:
[ 222.18774811942361679939 0.00000700376782247602
1.69818437855777837342]
Parameters standard deviations:
[ 0.00777056220300333632 0.00000037317354042493 0.15122981127762022413]
Parameters correlation matrix:
[ 0.000060381636950744068972239730989777295 0.00000000071197799223094697619657741707518772 -0.00034401826493826866573828698109969613]
[0.00000000071197799223094697619657741707518772 1.3925849127327319427483753807104422e-13 -0.000000047394629923508054151430233544667943]
[ -0.00034401826493826866573828698109969613 -0.000000047394629923508054151430233544667943 0.02287045581906462914171822272631652]
Minimum objective function value: 0.000654933531164

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
Minimum at J-couplings:
[0.0 -1.0678523499999998946918822184670717 -1.0678523499999998946918822184670717 -1.0678523499999998946918822184670717 226.79176699999999300416675396263599]
[0.0 0.0 0.0 0.0 4.266848470000000226320935325929895]
[0.0 0.0 0.0 0.0 4.266848470000000226320935325929895]
[0.0 0.0 0.0 0.0 4.266848470000000226320935325929895]
[0.0 0.0 0.0 0.0 0.0]
Minimum at paramters:
[ -1.06785234999999989469 226.79176699999999300417
4.26684847000000022632 0.0000453620118 2.73284203999999997237
0.0000000031154122 0.00000000280718054 ]
Parameters standard deviations:
[ 0.02242942966348998243 0.00190541137555014835 0.02303976419604812642
0.00000028974733647283 0.07572279537417966888 0.00000000003027146215
0.00000000004010792718]
Parameters correlation matrix:
[ 0.00050307931502944447178626360068638525 0.000029995480328595218968415826471918807 -0.00051359745782623199683628427562180084 0.000000000251280842447412138296006599769143 -0.00025439816330555875699204056496202219 1.9773403201808349316594111150447776e-14 7.0782623258978496584017170158219388e-15]
[ 0.000029995480328595218968415826471918807 0.0000036305925100759085887128102540087185 -0.000031545306263632570913346524380184319 -2.8590806792482291405525580037517663e-11 0.00000099665502856831515009376374925722041 5.2053844502032590732856596844496641e-15 5.6557052486419077136597636259362455e-16]
[ -0.00051359745782623199683628427562180084 -0.000031545306263632570913346524380184319 0.00053083073420950117280621071233900746 -0.00000000023963740826851480843983608530501171 0.00025228083948647103053486958411894584 -2.6259436597096508763502191603902104e-14 -5.617433835087409035349599078746469e-15]
[0.000000000251280842447412138296006599769143 -2.8590806792482291405525580037517663e-11 -0.00000000023963740826851480843983608530501171 8.3953518993101093428195753947557931e-14 -0.000000016426706608716963060350415785300258 -1.2389127603544075455328883147971448e-19 3.4049961328862909668053015097419539e-18]
[ -0.00025439816330555875699204056496202219 0.00000099665502856831515009376374925722041 0.00025228083948647103053486958411894584 -0.000000016426706608716963060350415785300258 0.0057339417392798879484838245926050435 8.3848437595250813682163955020503337e-13 -1.7808587170356099750124293395687296e-13]
[ 1.9773403201808349316594111150447776e-14 5.2053844502032590732856596844496641e-15 -2.6259436597096508763502191603902104e-14 -1.2389127603544075455328883147971448e-19 8.3848437595250813682163955020503337e-13 9.1636142048929983066902979806790567e-22 6.2746417676452346808851531983373244e-22]
[ 7.0782623258978496584017170158219388e-15 5.6557052486419077136597636259362455e-16 -5.617433835087409035349599078746469e-15 3.4049961328862909668053015097419539e-18 -1.7808587170356099750124293395687296e-13 6.2746417676452346808851531983373244e-22 1.608645822742293354407757298544296e-21]
Minimum objective function value: 0.00132379434362

File diff suppressed because it is too large Load Diff