Für meine Computational Physics Klasse müssen wir die Madelung Constant für NaCl berechnen. Mein Code hierfür verwendet drei verschachtelte for-Schleifen und läuft daher sehr langsam. Ich habe mich gefragt, ob es eine Möglichkeit gibt, Arrays oder andere Methoden zu verwenden, um die Geschwindigkeit der Berechnung zu erhöhen. DankWie beschleunigt man die dreidimensionale Summe für die Madelung Constant?
from math import sqrt
l= int(input("The lattice size is :"))
M = 0.0
for i in range(-L,L+1):
for j in range(-L,L+1):
for k in range(-L,L+1):
if not (i==j==k==0):
M += ((-1)**(i+j+k+1))/sqrt(i*i +j*j +k*k)
print("The Madelung constant for NaCl with lattice size",l,"is",M)
nicht Ihren Computational Physics Klasse lehren Sie numpy? –
Ja, aber ich verstehe nicht, wie man es für dieses Problem benutzt. Der Professor hat kaum diskutiert, Arrays zu benutzen, außer zu sagen, dass sie hier verwendet werden können. – Tom