Re: DO loop
- To: mathgroup at smc.vnet.net
- Subject: [mg91298] Re: DO loop
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Thu, 14 Aug 2008 06:59:38 -0400 (EDT)
- References: <g7uo2f$5uj$1@smc.vnet.net>
Hi,
since you where not so kind to provide a working example here is
one
a) define the potential:
V[eps_, sigma_][r_] := With[{x = sigma/r}, 4*eps*(x^12 - x^6)]
b) compute the radii
LJRadii[eps_, sigma_][e_] :=
Select[r /. Solve[V[eps, sigma][r] == e, r],
FreeQ[#, _Complex] && # > 0 &]
c) define a integral condition
BohrSommerfeld[eps_, sigma_, m_: 1, hbar_: 1][e_, n_Integer] /;
e < 0 :=
Module[{r1, r2, r},
{r1, r2} = LJRadii[eps, sigma][e];
NIntegrate[
Sqrt[2]*Sqrt[m*(hbar*n + (4*eps*sigma^6*(r^6 - sigma^6))/r^12)],
{r, r1, r2}]
]
d) and now, comes the "DO loop", that compute the function
for energy values between [-0.9,-0.01] in steps of 0.0125
BohrSommerfeld[1, 1][#, 0] & /@ Table[e, {e, -0.9, -0.01, 0.0125}]
Ooops ! there is no "DO loop", let try a version with out
stuff like "&" and "/@"
Table[BohrSommerfeld[1, 1][e, 0],{e, -0.9, -0.01, 0.0125}]
Now lets make a matrix
Table[BohrSommerfeld[1, 1][e, n], {e, -0.9, -0.01, 0.0125}, {n, 0, 4}]
and there is again no "DO loop" and I never found out for what a
"DO loop" is good for in Mathematica. I had times where I forgot
the syntax, that can be found by typing
?Do
Regards
Jens
maria wrote:
> Dear all,
>
> I am new with mathematica and I have the following problem:
> I want to repeat a procedure that involves a two main functions for a
> precise number of times. Which would be the format of a do loop in
> mathematica in order to calculate them and write the results of each
> iteration to a matrix?
> In order to be more exact I want to solve the following :
>
> I have a function........
>
> Vz[r_]=1/r
> intE = EA + e
> ........................which I solve and the real solutions are the
> intergartion limits at the intergral that follows
> Solve[Vz[r] == intE, r]
>
> olok = NIntegrate[f1[r], {r, Ra, Rb}] // N;
>
> I would like to repeat this procure for several e values and write a
> matrix.
> I future I would like to include a second function in the do loop
> which is also a function of e.
>
> Thank you in advance.
>
> Greetings
> Maria
>