I'm trying solve the Schrödinger equation for a given potential using the function ParametricNDSolveValue following the the first method of the post:
It works fine, but it bothers me that we have to impose the somewhat artificial boundary condition ψ==1 instead of the real condition ψ[Infinity]==0.
I've tried two different ideas to get around this:
a. Imposing the condition ψ==10^-5 or similar values, the problem with this is that afterwards Findroot doesn't return the right values of the energy (I tested with the known results. of the harmonic oscillator). Oddly, if I use ψ==0.01 I get better results than with ψ==0.0001 or ψ==0.0001 and definitely than with ψ==10^-5 (?!)
b. Using ParametricNDSolveValue with two parameters, one for the Energy and one for the the boundary conditions, ie. ψ==k, and the using Findroot for the energy making k=0, but again, results are wrong.
So my questions are:
Why do I get better results using the boundary condition ψ==0.01 than using ψ==0.0001 or ψ==0.0001 when the latest are closer to the real boundary condition?
Is there a way of using the fonction ParametricNDSolveValue when boundaries are infinity or close enough?