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