我有我的代码写如下,但不能运行它,因为索引超出界限,有人能告诉我哪里我做错了?你知道吗
def potential(a,b,c,d):
energylist = []
for x in np.arange(-5,10,0.1):
for y in np.arange(-5,10,0.1):
expa = np.exp(-(x-a)**2)
expb = np.exp(-(y-b)**2)
expc = np.exp(-(x-c)**2)
expd = np.exp(-(y-d)**2)
if x-y != 0:
integ = expa*expb*(1/np.abs(x-y))*expc*expd
energylist.append(integ)
val = sum(energylist)
return val
def htable(*myions):
k = len(myions)
matrix = np.zeros((k^2,k^2),float)
for i in np.arange(0,k^2-1,1):
for j in np.arange(0,k^2-1,1):
m = myions[i/k]
n = myions[i%k]
o = myions[i/k]
p = myions[i%k]
matrix[i,j] = potential(m,n,o,p)
print matrix
return matrix
htable(1,3)
^
不是求幂运算符,而是二进制异或运算符;将^
替换为**
以获得求幂运算。2 ^ 2 == 0
,这会导致matrix
包含0乘0元素。你知道吗相关问题 更多 >
编程相关推荐