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)]

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},
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.
>