Re: Eigenvalue problem in mathematica...
- To: mathgroup at smc.vnet.net
- Subject: [mg93767] Re: Eigenvalue problem in mathematica...
- From: "sjoerd.c.devries at gmail.com" <sjoerd.c.devries at gmail.com>
- Date: Tue, 25 Nov 2008 07:17:45 -0500 (EST)
- References: <gg62l4$537$1@smc.vnet.net>
Bulash,
I can see several problems here:
First, what is this ODE package? As far as I know, differential
equations are done in Mathematica using DSolve or NDsolve. Are you
sure you're not using a another system's package or so (they end in .m as well)?
Anyways, I don't see a statement in your program in which you load
this package (Needs[ ] or <<), so don't expect Mathematica to know the
ODE function automatically.
And then there is the use of the set delayed construction ( := ) for
all of your assignments, even involving constants. For constants, :=
is never essential or useful and Set ( = ) usually yields a much
faster program.
The difference between the two is that in an assignment like a=b+5 the
right-hand side is evaluated immediately and the result is used
whenever the righthand side is used. The value of b at the time of the
assignment to a is used.
In a:=b+5 the right-hand side is *not* evaluated until a is actually
used in an evaluation. The value of b at that time is used, *not* the
value at the time of the assignment to a.
Your definition of p ("p[r_] := e^Integrate[B[r]/A[r], r]") has
several problems:
I assume you want e to be the exponential constant. That should be
either entered as E or esc-ee-esc in Mathematica.
The integral itself is a very complicated function and will take for
ages to solve (if a solution can be found at all, of which I'm not
sure). Due to the ':=' it is calculated *every* time p[r] is used.
Furthermore, if you would like to evaluate p[5] this would yield
e^Integrate[B[5]/A[5], 5] which is clearly nonsense (no integration
variable left here). You should really use '=' here. Or perhaps you
meant something like: p[r_] := E^Integrate[B[r1]/A[r1], {r1,0,r}] ?
Cheers -- Sjoerd