Message Boards Message Boards

Solving equations which include ParametricFunctions

Posted 8 years ago

Hello,

I'm trying to calculate Eigenvalues for a Hamilton-Operator with a given Potential V(x)=(x^2/4-4)(x^2-1). I'm starting off with a reduced differential equation and solve it with ParametricNDSolve. I use Parametric- since the solution is depended on the energyvalue/eigenvalue e.

s1 = ParametricNDSolve[{D[y[x], x] == 
    1 + ((e - (x^2/4 - 4) (x^2 - 1)) - 1) Sin[y[x]]^2, y[-4 ] == 0}, 
  y, {x, -4, 4}, {e}, Method -> {"ParametricCaching" -> None}]

Then I used FindRoot, since I only want the eigenfunctions that statisfy y[4]=n*Pi where n is an integer. Which means that Sin[y[4]]=0.

tr1 = Table[
   FindRoot[Sin[Evaluate[y[e][4] /. s1]], {e, s}, AccuracyGoal -> 4, 
     PrecisionGoal -> 4][[1, 2]], {s, -12, -5, 1}];

And here is the big problem: Findroot needs a starting location and I don't know anything about the location of the eigenvalues. Further this takes a long time to compute and isn't an automated process(have to guess the boundaries etc.). But I can't get something like:

NSolve[Evaluate[y[e][4] /. s2] == n*\[Pi], e]

to work. NSolve seems to not work with ParametricFunctions. Has anyone ever dealt with something like this before, is there a nice way to automate this?

I think it would be extremely helpful to get something like NSolve to work but I don't know how.

POSTED BY: tt5 kk6
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract