Milestone 5 - Stability and Jacobian Matrices
In this chapter, we are interested in analyzing the stability properties of our semi-discrete EBM.
Mapping from a Operator to a Vector
As a first step, we will first rewrite our system of ODEs in matrix form as a system of ODEs in vector form, as that will facilitate the stability analysis of the system.
In particular, we want to concatenate the columns of our operators that are defined in matrix form (with ), such that we create a one-dimensional vector with entries, where stands for number of degrees of freedom (see figure).

Applying this mapping to our system of ODEs in matrix form, we obtain
where .
Remark: To map a matrix () variable to a vector, you can use the command vec in Julia, and the command .flatten() in numpy (Python).
Stability Theory for Linear Systems of Equations
As we saw in Milestone 3, the maximum allowable time-step size depends on the choice of the time discretization method for scalar ODEs. In this section, we will apply the stability theory presented in Milestone 3 to systems of ODEs that result from spatial discretizations to study the stability properties of our EBM model.
As a first step for our analysis, we will take advantage of the linearity of the term to rewrite our system of ODEs (1) as
where is the so-called Jacobian matrix of the system.
Note that (3) differs from the linear scalar homogeneous ODE that we analyzed in Milestone 3. As a matter of fact, (3) is nonhomogeneous and the different ODEs are coupled through matrix .
Assuming that our Jacobian matrix is invertible, we can rewrite it as
where the dense matrix contains the eigenvectors of in its columns, and is a diagonal matrix that contains the (possibly complex) eigenvalues of . Hence, (3) is equivalent to the system of ODEs,
where and .
Note that the individual variables in (5) are decoupled due to the diagonal matrix . As a result, (5) resembles the linear scalar homogeneous ODE and the solutions have the form
where is a so-called particular solution (also particular integral) for the nonhomogeneous problem that depends on and , and is a constant that is adjusted to match the initial condition,
In the case that
we expect that converges to the particular solution as . In such a case, we call the particular solution equilibrium solution.
Remark: The stability properties of our system of ODEs (3) are inherited from the linearized system (5). As a matter of fact, we can compute the solutions of (3) from (6) as
where is now the particular solution of the original nonhomogeneous problem. If conditions (8) are valid, is the equilibrium temperature field.
We can now apply the stability theory presented in Milestone 3 to each scalar ODE of our diagonalized system (5). For systems of ODEs, we require that all values , for , lie in the stability region of the time-integration method used.
Computing Jacobian Matrices (Numerical Jacobian)
It is possible to expand a general nonlinear operator, , with a multi-dimensional Taylor series to obtain,
where the Jacobian matrix is defined as
This Taylor expansion can also be used to approximate the Jacobian matrix. For instance, one can assume that differs from only in one degree of freedom by a small quantity ,
where is a vector whose entries are defined as
Equation (10) can then be rearranged as
For general nonlinear operators, the quantity is a good approximation for the column of the Jacobian matrix if is small enough. One has to be careful in choosing the size of , as very small values (close to machine precision) suffer from cancelation errors, when adding up. Hence, there is some discussion in the literature available about the optimal choice of . As a starting point, it is good to consider only the square root of the currently used machine precision , i.e., to have a good balance of accuracy and machine error cancellation issues. For a typical double precision calculation with we then have about single precision accuracy, .
Since the right-hand-side term of our EBM is a linear operator, (14) is exact for any and any linearization temperature , and the second and higher-order terms vanish. As a consequence, we can choose and to get a column of the Jacobian of our EBM
The whole Jacobian matrix can be recovered by computing (15) times (i.e., computations of the right-hand-side operator ):
Created by Gregor Gassner and Andrés Rueda-Ramírez with contributions by Simone Chiocchetti, Daniel Bach, Sophia Horak, Philipp Baasch, Benjamin Bolm, Erik Faulhaber, and Luca Sommer. Last modified: April 02, 2026. Website built with Franklin.jl and the Julia programming language.