Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Boundary conditions shooting method

  1. Nov 29, 2015 #1
    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. jcsd
  3. Nov 30, 2015 #2

    DrClaude

    User Avatar

    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
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook