Re: shooting method
- To: mathgroup at smc.vnet.net
- Subject: [mg92105] Re: shooting method
- From: "Kevin J. McCann" <Kevin.McCann at umbc.edu>
- Date: Sat, 20 Sep 2008 04:58:38 -0400 (EDT)
- Organization: University System of Maryland
- References: <gapfd4$o7q$1@smc.vnet.net>
I think you mean that A is approximately zero not <<1. To figure out what I should actually use for A and B, I first Plot your potential. If I am looking for bound states, then it looks as though I can use A=0.9 and B=4. Further refinements could be necessary. Here is some code. A = 0.9; B = 4.0; nde[e_] = {-y''[x] + 400 (1/x^12 - 1/x^6) y[x] - e y[x] == 0, y[A] == 0, y'[A] == 1}; tbl = Table[{e, y[B] /. NDSolve[nde[e], y, {x, A, B}][[1]]}, {e, -10, -0.01, .01}]; ListPlot[tbl, PlotRange -> {-100, 100}] What this does is to start at A and shoot to B for a given trial eigenenergy e, then evaluate y[B] and plot the results for a lot of e's. As you can see if you run the code, there is a zero crossing for e ~= -0.85 (the only zero crossing). Now you can write a function and use FindRoot to get the eigenvalue, then you can generate the eigenfunction and normalize it. Here is the code to find the eigenvalue and plot it: Clear[f]; f[e_?NumberQ] := y[B] /. NDSolve[nde[e], y, {x, A, B}][[1]] e0 = e /. FindRoot[f[e] == 0, {e, -9, -8}] Y = y /. NDSolve[nde[e0], y, {x, A, B}][[1]] Plot[Y[x], {x, A, B}] Note that there is another eigenvalue/eigenfunction at about e=-55 as well. Luca Petrone wrote: > Dear All, > > Using a shooting method, I would like to find the smallest eigenvalue of > > -y''[x] + 400((1/x)^12 - (1/x)^6) y[x] == E0*y[x] > > (the quantum-mechanical steady state energy of an anharmonic oscillator with Lennard-Jones potential) > with the boundary conditions : > y[A]==0 > y[B]==0 > with A<<1 and B >> 1 > Can anyone help about how to implement it ? > > Thank you > > Luca >