【发布时间】:2014-01-16 22:50:46
【问题描述】:
我必须应用我写的一些数学公式 在python中为:
for s in range(tdim):
sum1 = 0.0
for i in range(dim):
for j in range(dim):
sum1+=0.5*np.cos(theta[s]*(i-j))*
eig1[i]*eig1[j]+eig2[i]+eig2[j])-0.5*np.sin(theta[s]*(i-j))*eig1[j]*eig2[i]-eig1[i]*eig2[j])
PHi2.append(sum1)
现在,这是正确的,但显然效率低下,反之亦然:
for i in range(dim):
for j in range(dim):
PHi2 = 0.5*np.cos(theta*(i-j))*(eig1[i]*eig1[j]+eig2[i]+eig2[j])-0.5*np.sin(theta*(i-j))*(eig1[j]*eig2[i]-eig1[i]*eig2[j])
但是,第二个示例在 PHi2 的所有元素中给了我相同的数字,所以这个 更快,但答案是错误的。您如何才能更正确、更有效地做到这一点?
注意:eig1 和 eig2 具有相同的维度 d,theta 和 PHi2 具有相同的维度 D, 但是 d!=D。
【问题讨论】:
标签: python optimization numpy numerical-computing