1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Runge Kutta to solve higher order ODE

  1. Feb 20, 2017 #1
    1. The problem statement, all variables and given/known data

    Edit* should say F'(0) = F(0) = 0

    2. Relevant equations
    I know that I typically need 3 equations for a 3rd order ODE, does this apply if the is no F'? In the picture above are the equations I came up with, am I on the right trail? Lastly I am familiar with RK4, however I have never used it to solve a system... how does one go about this? can it be done in excel? I took Diff Eq years ago and they really glossed over the numerical methods.

    3. The attempt at a solution
    The picture above is the question statement (at the top), and my attempt at breaking it into a system of equations.
  2. jcsd
  3. Feb 20, 2017 #2


    User Avatar
    Science Advisor
    Homework Helper
    2017 Award

    Yes. Looks good.
    Yes. I have a proposal: start with a simple integrator: forward Euler
    You have two initial conditions and one boundary condition. The easiest approach is the shooting method : guess a value for F''(0) and integrate. Adjust until for ##x\rightarrow \infty## F'(x) is close enough to one. ##x\rightarrow \infty## is a bit bothersome, so if F'(x) ##\approx## 1 and doesn't change too much any more you should be satisfied.

    So what you want to solve is F''' = ##-##F F'' / 2

    Your spreadsheet has five columns:
    x, F, F', F'', F''' and if your first guess for F''(0) is, e.g., 1, the first row looks like: 0, 0, 0, 1, '= ##-F * F'/ 2 ## ' (if you know what I mean).

    Choose a step size d, e.g. 0.01 then your next row looks like (supposing x(0) is in cell A4 )
    Code (Text):

    =A4+dx ##\quad## =B4+dx*C4 ##\quad## =C4+dx*D4 ##\quad## =D4+dx*E4 ##\quad## =(-1)*(B5*D5*2)
    which you can copy/paste from A6 all the way down to infinity (for me 400).

    Take some time to understand these formulas: Euler is simply F(x+dx) = F(x) + F' dx ##\quad ##.

    Then fumble with F''(0) until the boundary condition appears to be met reasonably well.

    It's handy to use a defined name for dx so you can vary it to check if your step size is reasonable. (dx 0.01 and then Formulas | Create from selection)
  4. Feb 20, 2017 #3
    Thanks for the reply! I am still a little hung up on accounting for the boundary condition of F'(Inf) = 1, how do I account for this? I've only dealt with initial conditions before, which are much more obvious. Thanks!
  5. Feb 21, 2017 #4


    User Avatar
    Science Advisor
    Homework Helper
    2017 Award

    So deal with guessed initial conditions and keep guessing until the boundary condition is satisfied. Do you understand the explanation in the shooting method link ?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted