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.