# Boundary conditions shooting method

1. Nov 29, 2015

### spaghetti3451

I am trying to solve the differential equation

$\frac{d^{2}y}{dr^2}+(\frac{1}{r}+1)y=0$

with the boundary conditions

$y(r) \rightarrow r \frac{dy}{dr}(0)$ as $r \rightarrow 0$ and $y(r) \rightarrow \sin(kr+\delta)$ as $r \rightarrow \infty$.

I know that the shooting method is the way to go, but am having trouble figuring out how to implement the boundary conditions.

Are the following lines of code in Mathematica alright? I have not yet wrapped it around a root-finding algorithm.

diffeq = {y''[r] + ((1/r) + 1) y[r] == 0, y[0] == 0, y'[0] == 5};
sol = NDSolve[diffeq, y, {r, 0, 200}, Method -> "ExplicitRungeKutta"];

Now, how do I change y[0]=0 in the code above to the first boundary condition.

Also, I know that the value of y[0] is to be changed and the code run until the second boundary condition is satisfied. What check should I use for that? Do I just check if the solution lies between -1 and 1 as $r \rightarrow \infty$

2. Nov 30, 2015

### Staff: Mentor

These boundary conditions might be nice for an analytical solution, but not for a numerical one!

I would take a slightly different approach, and start from the right. Choose a value of $r$ that is big enough to be considered "infinity." At that point, you can easily find $y$ and $y'$, so you can integrate the equation towards $r=0$. This requires you to guess the value of $\delta$. You can then check the solution at $r \rightarrow 0$ and vary $\delta$ until the left boundary condition is fulfilled.

For such a problem, I would not use a Runge-Kutta algorithm, but the Numerov[/PLAIN] [Broken] method. Also, this is a variation of the Coulomb potential for an electron in an atom. There are probably more clever methods to solve that problem. You should try to look up what has been published on the subject.

Last edited by a moderator: May 7, 2017