有没有人有python代码来计算质量加权的schlitter熵

时间:2018-01-19 11:53:21

标签: python-2.7 matrix entropy

我已经从gromacs生成了一个ascii文件(大小为(1407675×3)尺寸(2055×2055)的协方差矩阵的dat文件,并且想要使用schlitter方程计算熵,S=Kb/2*ln det|1 + (Kb*e*e*matrix/hbar*hbar|

但是我得到了奇怪的价值观,任何人都可以拥有代码请分享或者有人可以修改(或检查)下面的代码非常感谢。

 import sys, os
 import numpy as np   # Import numpy for dot products etc
 import numpy.testing as npt # Import numpy.testing for comparing numbers
 import pmx # Import pmx classes
 import math # Import maths classes (floor)
 from numpy.linalg import det


 sigma = numpy.loadtxt('covar_fit.dat')
 hbar = 1.054571628e-34 #Joules seconds
 T = 310.0 # Kelvin
 Kb = 1.3806504e-23 #Joules/Kelvin
 Euler = 2.71828
 matrix = np.resize(sigma,(2055,2055))
 k = np.identity(2055)
 mat = ((Kb*T*Euler*Euler)*matrix)/(hbar*hbar)
 m = np.array(mat)+ np.array(k)
 sign,logdet = np.linalg.slogdet(m)
 (sign, logdet)
 det = logdet
 entropy = Kb*0.5*det
 print (entropy)

1 个答案:

答案 0 :(得分:0)

这是你代码中的一个错误 - 等式中的e不是指数(2.71828),而是电子电荷。

e 2 /(hbar * c)~1 / 137(又名精细结构常数)