The Matrix Exponential & Nonhomogeneous Systems

Putzer's algorithm

/ POOT-zer /

All the eigenvector machinery for computing e^(At) shares one annoyance: you must find eigenvectors, and when an eigenvalue repeats you must hunt for generalized ones too. Putzer's algorithm sidesteps that entirely. It computes e^(At) from the eigenvalues alone — just the n roots of the characteristic polynomial — with no eigenvectors, no diagonalization, and no Jordan form. For a 2-by-2 or 3-by-3 system done by hand, it is often the fastest reliable route.

The method writes e^(At) as a sum r_1(t) P_0 + r_2(t) P_1 + ... + r_n(t) P_(n-1), where the matrices P_k are built up step by step and the scalars r_k(t) are found by solving a simple chain of first-order linear equations. Concretely, set P_0 = I and define each next matrix by P_k = (A - lambda_k I) P_(k-1), marching through the eigenvalues lambda_1, ..., lambda_n in any fixed order (repeats are allowed and need no special handling). The scalar functions come from the cascade r_1' = lambda_1 r_1 with r_1(0) = 1, and then r_k' = lambda_k r_k + r_(k-1) with r_k(0) = 0 — each a one-line first-order linear ODE you solve with an integrating factor, feeding the previous answer into the next. Assemble the weighted sum and you have e^(At) exactly.

Putzer's genuine strength is that it treats repeated eigenvalues and complex eigenvalues with no extra cases — the same recursion handles a defective matrix that would otherwise demand the Jordan form, automatically producing the t e^(lambda t) terms through the cascade. The trade-off is that it scales poorly for large n (the chain of integrations grows), so it is a hand-computation and small-system tool, not a numerical workhorse. But for the textbook 2-by-2 and 3-by-3 it is hard to beat.

For A = [0, 1; -1, 0], eigenvalues are i and -i. Take lambda_1 = i: r_1' = i r_1, r_1(0) = 1 gives r_1 = e^(it). Then r_2' = -i r_2 + e^(it), r_2(0) = 0; solving gives r_2 = (e^(it) - e^(-it))/(2i) = sin t. With P_0 = I and P_1 = A - i I, the sum r_1 P_0 + r_2 P_1 simplifies (the imaginary parts cancel) to [cos t, sin t; -sin t, cos t] — the rotation, with no eigenvectors computed.

Putzer needs only the eigenvalues; a short cascade of first-order ODEs supplies the coefficients, repeats and complex roots included.

Putzer needs the eigenvalues but not eigenvectors, which is exactly why it shines for defective matrices; its weakness is scale — the integration chain lengthens with n, so it is a small-by-hand method, not a large-system numerical one.

Also called
Putzer's method普策爾方法Putzer formula for e^(At)