Re: Conflict between Mathematica 4.1 and 5.01?
- To: mathgroup at smc.vnet.net
- Subject: [mg46064] Re: Conflict between Mathematica 4.1 and 5.01?
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Wed, 4 Feb 2004 02:29:33 -0500 (EST)
- Organization: The University of Western Australia
- References: <bvpb3r$se2$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <bvpb3r$se2$1 at smc.vnet.net>, Hugh Walker <hwalker at gvtc.com> wrote: There have been other related postings about this topic. Ensuring that e in pistol is numeric (so as to prevent premature evaluation of pistol by eigenValue) is required: sol[V_, e_, {q_, qLeft_, qRight_}] := First[psi /. NDSolve[{(-(1/2))*Derivative[2][psi][q] + V*psi[q] == e*psi[q], psi[qLeft] == 0, Derivative[1][psi][qLeft] == 1}, psi, {q, qLeft, qRight}]] pistol[V_, e_?NumericQ, {q_, qLeft_, qRight_}] := sol[V, e, {q, qLeft, qRight}][qRight] eigenValue[V_, eStart_, {q_, qLeft_, qRight_}] := e /. FindRoot[pistol[V, e, {q, qLeft, qRight}] == 0, {e, eStart, eStart + 0.01*Abs[eStart]}] eigenValue[0.5*q^2, 0.4, {q, -4., 4.}] Cheers, Paul > I run under Mac OS X 10.2.8 on an iMac. > > The code below was extracted from a package I wrote some time ago using > Mathematica 4.1. Recently I upgraded to 5.01. > > If I execute the last line in 4.1, everything works as intended. > However, the identical code executed in 5.01 results in numerous fatal > errors. I find nothing in the 5.01 documentation that indicates any > such incompatibility. My frustration has boiled over. When pasted in a > 4.1 notebook, this code works; but the same code bombs out when pasted > in a 5.01 notebook. Can anyone spot the cause of this very strange > behavior? Can anyone reproduce these results? > > The job of the code snippets is to solve an eigenvalue problem by the > shooting method. The particular example here ought to produce the > ground state energy of the simple oscillator. Any comments would be > most welcome. > > sol[V_, e_, {q_, qLeft_, qRight_}] := > First[psi /. NDSolve[{(-(1/2))*Derivative[2][psi][q] + > V*psi[q] == e*psi[q], psi[qLeft] == 0, > Derivative[1][psi][qLeft] == 1}, psi, > {q, qLeft, qRight}]] > > pistol[V_, e_, {q_, qLeft_, qRight_}] := > sol[V, e, {q, qLeft, qRight}][qRight] > > eigenValue[V_, eStart_, {q_, qLeft_, qRight_}] := > e /. FindRoot[pistol[V, e, {q, qLeft, qRight}] == 0, > {e, eStart, eStart + 0.01*Abs[eStart]}] > > eigenValue[0.5*q^2, 0.4, {q, -4., 4.}] > > > ========== > Hugh Walker > -- Paul Abbott Phone: +61 8 9380 2734 School of Physics, M013 Fax: +61 8 9380 1014 The University of Western Australia (CRICOS Provider No 00126G) 35 Stirling Highway Crawley WA 6009 mailto:paul at physics.uwa.edu.au AUSTRALIA http://physics.uwa.edu.au/~paul