I am trying to solve one of my graduate level physics problems with
ruby…
Here is what I have so far…
a6=0.0
for n1 in -10…10
for n2 in -10…10
for n3 in -10…10
if n1!=0 and n2!=0 and n3!=0
p=Math.sqrt(n12+n22+n3**2+n1n2/1.414+n1n3/1.41+n2*n3/1.414)
a6+=(1/p)**6
end
end
end
end
puts a6
What I’ve got here is a 10x10x10 face-centered cubic lattice of atoms.
What I want to do is find this constant a6= sum(1/Pij)**6. From a
starting point I want the distance to every other atom location point in
the structure, meanwhile inversing and power to the sixth each distance.
Then I want to add all those up. This should return 14.4???
I am trying to solve one of my graduate level physics problems
with ruby…
Hi thiess,
this is the wxRuby mailinglist, related to the wxRuby GUI toolkit.
Your question should better be served on ruby-talk. Go to Ruby - Ruby-Forum for posting there.
location point in the structure, meanwhile inversing and power to
the sixth each distance. Then I want to add all those up. This
should return 14.4???
I’m by no means someone who has any knowledge on how atom physics
work, but a few notes on your code:
Don’t use “for” in Ruby. There’s the #each method that is the
correct idiom for this. And four your specific case you should use:
-10.upto(10) do |nx| … end
The test against zero can be made much more readable with the
Methods Integer#zero? and Integer#nonzero?
I’m not willing to dig into the giant term you pass to Math.sqrt.
From a first glance, you might want to have a look at the
Enumerable#inject method, which you can use to easily sum up things
that are computed the same way.
Be aware that doing math with floating-point numbers is always
dangerous as they’re not exact. The further you continue to compute
with floating-point results you got, the more unprecise your final
result will be. If I remember correctly, this is the industry standard
to blame for this: IEEE 754-2008 revision - Wikipedia
As I noted before, post your question to ruby-talk. It’s not related
to wxRuby in any way.
Vale,
Marvin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/