Foreword: I'll give some background here because I'm not sure all my premises are correct. I encourage you to IGNORE THE BACKGROUND, unless you're really interested / bored :)

The Question

I want to calculate the eigenvalues of this system.

$\frac{dM_0}{dt}=k+t_0 M_1 - M_0 (t_1+d)$

$\frac{dM_1}{dt}=t_1 M_0 - M_1 (t_0+d)$

In matrix form, I want the system to look like $m^{'}=Ax$, and I'd compute the eigenvalues from the square matrix A. But here I have $m^{'}=Ax+b$ -an inhomogeneous set of ODEs.

My intuition is that eigenvalues don't depend on $k$ ($b$) at all, but I have been unable to confirm this by any means (consulted many ODE/eigenanalysis texts, and the internet). So the question is: can I ignore $k$ when computing the eigenvalues?


In order to construct the steady state probability distribution function (PDF), I run a simulation many times, record the "final" state of the system, and repeat. At the end of N simulations, I have a vector of final states $[X_1 X_2 ... X_N]$, which as $N\rightarrow \infty$ the histogram of which converges to the probability distribution function.

It seems to me that the optimal time $T^*$ to simulate each individual run is when the stochastic system has "relaxed" enough that it no longer "remembers" its starting condition. A good metric for this is autocorrelation: the lag time for which autocorrelation goes to zero (or some arbitrarily small value) seems like the time I should choose for $T^*$. If I choose a time $T<T^*$, every simulation is correlated with the start condition, and not independent observations. Thus, the PDF will never converge on the correct distribution. If I choose a time $T>T^*$ then I do "extra" computation. Since it turns out the simulation is VERY inefficient, even simulating a little past $T^*$ results in significant computational overhead.

The question is, how to choose $T^*$? Suffice to say, numerically computing it is out of the question. One idea suggested to me is to calculate the eigenvalues of the system. The inverse of an eigenvalue corresponds to the relaxation time of a system, which is equivalent to the lag-time tau at which autocorrelation = $\frac{1}{e}$. Thus, the time $T^*$ could be chosen instantaneously by selecting the longest relaxation time of the system (smallest eigenvalue)--or some multiple of this time to get the correlation sufficiently small. Bonus points if you weigh in on whether this is a good idea or bad, and why--but not necessary to answer the question.

  • $\begingroup$ Are $M_0$ and $M_1$ random processes? I'm wondering if $M_0(t_1+d)$ is "the random process $M_0$'s value at time $(t_1+d)$, or "the quantity $M_0$ times the value $(t_1+d)$. $\endgroup$
    – Jason R
    Jan 19, 2012 at 13:49
  • $\begingroup$ Jason -- I'm an idiot, totally misunderstood your question (old response deleted). M0 is a quantity multiplied by (t1+d), it's not M0 evaluated at time=(t1+d). $\endgroup$
    – vector07
    Jan 20, 2012 at 6:21

1 Answer 1


Considering the complexity of the question, and the rating of your reputation, i assume you are still alive.

In the following, i am assuming $k$ is a constant, since it is not a variable -fixed or random- expressed in the question.

If you are still interested, which is a numerically strong assumption, the system can be rewritten trivially as:

$$\frac{d}{dt} \left(\begin{array}{cc} x_1 \\ x_2 \end{array}\right)= \left(\begin{array}{cc} -(t_1+d) & t_0 \\ t_1 & -(t_0+d) \end{array}\right) \left(\begin{array}{cc} x_1 \\ x_2 \end{array}\right) + \left(\begin{array}{cc} k \\ 0 \end{array}\right) = \left(-d \left(\begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array}\right) + \left(\begin{array}{cc} -1 & 1 \\ 1 & -1 \end{array}\right) \left(\begin{array}{cc} t_1 \\ t_0 \end{array}\right)\right) \left(\begin{array}{cc} x_1 \\ x_2 \end{array}\right) + \left(\begin{array}{cc} k \\ 0 \end{array}\right)$$

Which has the standard form: $$Dx=Ax+x_0$$

The constant vector $x_0=[k;0]$ or equivalently the constant vector $A^{-1}x_0$ is a state reference.

Through the variable change: $$x+x_0 \to x$$ you can safely discard the $x_0$ vector.

This is an autonomous system which, unless you forget to include perturbations or inputs, is a very boring system. I am sure you did.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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