3
$\begingroup$

I am analysing the stability of a series of 1D linear equations of the form \begin{equation} \frac{d}{dt} x = A x \end{equation} discretised using upwind and central finite volume methods, etc, with the explicit Euler time stepping scheme (to begin with).

What I have done so far is that I have calculated the eigenvalues of the system, and then plotted them. I then plotted a circle in the imaginary plane that contains all the eigenvalues, using the maximum and minimum eigenvalues. To comment on stability I then look at the radius of this circle and if it was less than one I concluded that stability is obtained.

I would be grateful if some could tell me if I am doing the right thing here, I have been through lots of books, etc and I got to this stage, but have not found something online or in books that verifies what I'm doing. Thank you in advance!

$\endgroup$
2
$\begingroup$

The eigenvalues of $A$ will only tell you something about the stability of the continuous system (and here you will need that the real parts of all eigenvalues are less than zero, see e.g. here). To analyse the stability of the system discretised with forward Euler, you will have to look not only at the eigenvalues of $A$, but of $I + \Delta t A$.

Using forward Euler, your time stepping becomes \begin{equation} u_{n+1} = u_{n} + \Delta t A u_{n} = \left( I + \Delta t A \right) u_{n}. \end{equation} Since you are looking at the spectral radius, let $A = U D U^{-1}$ be the eigenvalue decomposition of $A$. Then \begin{equation} u_{n+1} = u_n + \Delta t U D U^{-1} u_n \Rightarrow U^{-1} u_{n+1} = U^{-1} u_n + D U^{-1} u_n. \end{equation} Denote as $v := U^{-1} u$ your solution in transformed coordinates which satisfies \begin{equation} v_{n+1} = v_{n} + \Delta t D v_n \Rightarrow v_{n+1} = \left( I + \Delta t D \right)^{n+1} v_0 \end{equation} with $v_0 = U^{-1} u_0$ and $u_0$ your given initial solution. Since $D$ is a diagonal matrix, this corresponds to a set of scalar equations \begin{equation} v_{n+1}^{i} = ( 1 + \Delta t \lambda_{i} ) v_{0}^{i}, \end{equation} where $v_{n+1}^{i}$ is the $i$-th component of $v$. Growth in terms of e.g. the maximum norm of $v$ can now be computed component wise since \begin{equation} \left| v_{n+1}^{i} \right| = \left| 1 + \Delta t \lambda_{i} \right| \left| v_{0}^{i} \right|. \end{equation} So if you want to ensure stability in the sense that $\left\| u_{n+1} \right\| \leq \left\| u_{0} \right\|$, you will have to make sure that \begin{equation} \left| 1 + \Delta t \lambda_{i} \right| \leq 1 \end{equation} for every eigenvalue of $A$.

| cite | improve this answer | |
$\endgroup$
  • $\begingroup$ Thanks very much, I had totally missed 'I+ΔtA' rather than 'A'. On a different note, I am using the ODE solvers in Matlab but also have used some other time stepping schemes, is it safe to say that if I performed the stability analysis using Explicit Euler time stepping schemes, that it more or less gives me the worst case scenario in terms of stability? (Or perhaps if I solve the problem with the different time stepping schemes, and show that Explicit Euler was the least stable i.e. it required smaller time steps to produce stable results?) $\endgroup$ – Hooman Aug 30 '15 at 9:53
  • $\begingroup$ I would be careful with drawing conclusions from forward Euler about the stability of other methods: while some definitely have better stability properties, I don't think it is safe to consider explicit Euler as a worst case. You can generalise the analysis above, though: Runge Kutta methods have what is called a stability function and, based on that, you can derive a similar condition to what I did above for forward Euler. You can read up on that e.g. in the following book (which gives in my opinion a very good introduction) springer.com/us/book/9780857291479 $\endgroup$ – Daniel Aug 31 '15 at 8:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.