Hey, First of all thanks for your response. I am also new to this forum so I expected to receive an email if somebody replies to my question. Therefore I just read it today.... > I am not sure if you are the right persons to contact but if not I > would appreciate a short notice and maybe an address where I can find > help.
I'd try the numpy mailing list: http://www.scipy.org/Mailing_Lists Alright. I will try that. > 5) In principal Python can divide those numbers (2.3e-28)/(5.6e-6)**3 I get half the result you suggest above: >>> (2.3e-28)/(5.6e-6)**3 1.3096756559766764e-12 which agrees with my HP-48GX, and the result after simplifying by hand to 2.3e-10/175.616. So I think that is the correct result, not 2.6e-12. You are totally right. I forgot to write down a factor of 2. I am so sorry about it!!!!!! > My source code is attached. Please keep in mind that I just started > programing and Python is my first Language. I tried to do my best to > comment every single step to make the code readable. Here it comes: Comments are good, but too many comments hurt readability. Don't feel that you need to comment every single line. Comments like: x = x+1 # increment x by 1 are just noise. But this is a good comment: x = x+1 # add correction for wind-chill factor. > self.m = 39.96*1.66*10**(-27) #m is the mass > of a single trapped ion in the chain I wonder why you calculate m with an explicit exponentiation operator, instead of a floating point exponent? The difference is very small, so it probably doesn't matter: >>> 39.96*1.66*10**(-27) 6.6333600000000006e-26 >>> 39.96*1.66e-27 6.6333599999999994e-26 Haha, you are right. Thats just because I am a physicist and used to write it down that way. I changed that! > for i in range(len(x)): > for j in range(len(x)): > if j >i: > Vx = Vx + C * (abs(x[i]-x[j]))**(-1) #then we > add the coulomb interaction You can simplify that nested loop and addition: for i in range(len(x)): for j in range(i+1, len(x)): Vx += C * (abs(x[i]-x[j]))**(-1) # add the coulomb interaction The function range takes up to three integer arguments: range(start, end, step) where start and step are optional, defaulting to 0 and 1 respectively. By starting the inner loop at i+1, you guarantee that j is always > i and therefore you can skip the test. The other change is that instead of Vx = Vx + something you can write: Vx += something Thanks. I got it. In the beginning it is just hard to see every simplification. But I understand what you were suggesting and I corrected it. Sometimes a program evolves also physically. So I added the while loop because I found out later that I need it. -- Steven D'Aprano _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor -- View this message in context: http://old.nabble.com/-Tutor--problems-with-numdifftools-tp30034615p30060567.html Sent from the Python - tutor mailing list archive at Nabble.com. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor