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: Stability of Crank-Nicholson method

  1. Mar 26, 2008 #1
    1. The problem statement, all variables and given/known data
    If p(A^-1 B) < 1 then the Crank-Nicholson method is stable for all eigenvalues.

    Where p is the spectral radius.

    2. Relevant equations
    Stability requires that A*U_j=B*U_{j-1} which gives
    U_j = A^-1 B U_{j-1}

    3. The attempt at a solution

    Where do I start?
  2. jcsd
  3. Mar 26, 2008 #2
    By defining A,B, and the problem more clearly. Are you saying you need to prove that if p(A^-1 B)<1, then the Crank-Nicholson method applied to some equation involving A and B is stable?
  4. Mar 26, 2008 #3
    So for A*U_j = B*U_{j-1} we have:
    The finite difference matrix for A:

    1+lamda -lamda/2 ... 0
    -lamda/2 1+lamda ... 0
    0 ........
    ... -lamda/2
    0 .... -lamda/2 1+lamda

    Some tridiagonal matrix.
    Similarly for B

    1-lamda +lamda/2 ... 0
    +lamda/2 1-lamda ... 0
    0 ........
    ... +lamda/2
    0 .... +lamda/2 1-lamda

    This is in general. I'm not sure if this is correct because I assume we need to do it for another problem.
  5. Mar 27, 2008 #4
    If your equation is
    [tex]Au_j = Bu_{j-1}[/tex],
    [tex]u_j = A^{-1}Bu_{j-1}[/tex]
    [tex]u_{j+1} = A^{-1}Bu_{j}= \left(A^{-1}B\right)A^{-1}Bu_{j-1}[/tex],
    [tex]u_{j+2} = A^{-1}Bu_{j-1}u_{j+1} = \left(A^{-1}B\right)^3u_{j-1}[/tex].
    You can continue this on forever to get the term after n steps as
    [tex]u_{j+n} = \left(A^{-1}B\right)^{n+1}u_{j-1}[/tex].

    Now factor A^{-1}B by eigenvalue decomposition to obtain
    [tex] A^{-1}B = TDT^{-1}[/tex]
    where D is a diagonal matrix containing the eigenvalues and T contains the corresponding eigenvectors.
    Note that
    [tex]\left(A^{-1}B\right)^2 = \left(TDT^{-1}\right)^2 = TDT^{-1}TDT^{-1}= TD^2T^{-1}[/tex]
    And similarly,
    [tex] \left( A^{-1}B \right)^n = TD^nT^{-1}[/tex]

    Now if you plug this in to the previous equation, you find that
    [tex]u_{j+n} = \left(A^{-1}B\right)^{n+1}u_{j-1} = TD^{n+1}T^{-1}u_{j-1}[/tex]

    The system is stable if the solution u_{j+n} is bounded for all n. Since D is a diagonal matrix, D^{n+1} is just the diagonal elements raised to the n+1th power. So what happens if a number bigger than one is raised to a large power? And what about when the number is smaller than one? This is why you have the condition on the size of the eigenvalues.
  6. Mar 28, 2008 #5
    If a number bigger than one is raised to a large power, then the system will become unstable.
    If a number smaller than one is raised to a large power, then the system will become stable.

    Hence the method is unconditionally stable.

    Is that correct?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook