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

Solving differential equations using implicit methods

  1. Mar 8, 2010 #1
    Hi all, I'm writing myself a ordinary differential equation solver and I've already implemented several explicit integrators, which were pretty easy for me to do. Now I've decided to work on some implicit methods (for any stiff equations) and I've run into some issues.

    The most basic one is the Backward Euler:
    [tex]y_{n+1} = y_{n} + hf(t_{n+1}, y_{n+1})[/tex]

    And as I understand, to solve this you need to use some iteration to get the value of [tex]y_{n+1}[/tex] to solve that equation for the next time step.

    The problem I have is: How can I solve this? I thought I could use something like Newton's method, but I don't know how to properly apply it.

    Any help, even a push in the right direction would be appreciated. Thanks!
    Last edited: Mar 8, 2010
  2. jcsd
  3. Mar 10, 2010 #2
    The backward method
    [tex]y_{n+1} = y_{n} + hf(t_{n+1}, y_{n+1})[/tex]

    need to solve for yn+1 via NR method.

    [tex]y_{n+1} - y_{n} - hf(t_{n+1}, y_{n+1})=0[/tex]

    Let [tex]g(z) = z - y_{n} - hf(t_{n+1}, z)[/tex]

    The iteration
    [tex]z_{i+1} = z_i - \frac{g(z_i)}{g'(z_i)} [/tex]
    should converges to yn+1 using the initial estimation z0=yn.
  4. Mar 11, 2010 #3
    Thanks for your help! I never understood how to properly apply Newton's method before. I implemented it as you had shown, with:

    [tex]z_{i+1} = z_{i} - \frac{z_{i} - y_{n} - hf(t_{n+1}, z_{i})}{1 - hf'(t_{n+1}, z_{i})}[/tex]

    Is it safe to assume that I can say that: [tex]f'(t_{n+1}, z_{i}) = f(t_{n+1}, f(t_{n+1}, z_{i}))[/tex]

    I thought it out for a few minutes, and it seemed reasonable in the context of a few examples I put together:

    If we let [tex]\frac{dy}{dt} = -ky[/tex] then [tex]f(t, y) = -ky[/tex] and [tex]f'(t, y) = -kf(t, y) = f(t, f(t, y))[/tex]
  5. Mar 11, 2010 #4
    I thought that we have this relation: tn+1=t n + h
    where h is the step size increment.
    In the case of [itex]\frac{dy}{dt} = -ky[/itex] , f(tn+1, z) = -kz
  6. Mar 11, 2010 #5
    Yes, there is. But what I was asking was if I could replace the derivative of f inside of newton's method by f(t, f(t, y)), since for first order ODEs it would be equivalent to differentiating (at least I think it is) all the y components of differential equation.

    Because otherwise if I couldn't do that, then I know I'd have to numerically approximate the derivative as well.
  7. Mar 23, 2010 #6
    On a second thought, I think it is easier to use the fixed-point interation
    to approximates yn+1.

    This eliminate the requirement to compute the derivative of f.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook