Skip to content

Add coverage of non-diagonalisable matrices and the Jordan form (and its effect on linear state-space transients) #1018

Description

@mmcky

Nothing in the lecture repos covers what happens when a matrix is not diagonalisable. That is a real hole rather than a missing nicety: eigen_I.md in lecture-python-intro teaches eigenvalues, eigenvectors and power iteration, and uses the word "diagonalizable" exactly once, in passing, without ever saying when diagonalisability fails or what to do instead. linear_algebra.md here does not treat it at all. So a reader who meets a defective matrix has nowhere to go.

The natural application is linear state-space dynamics. linear_models.md develops the model, its moments and its stability without an eigendecomposition treatment, so the case where $A = P \Lambda P^{-1}$ does not exist is simply absent — even though it changes the form of the transient: repeated eigenvalues with deficient eigenvectors produce polynomial-times-exponential terms rather than pure exponentials.

This was requested in QuantEcon/meta#28, Tom Sargent's brief on eigenvalues and eigenfunctions, under "Linear state-space dynamics — cases where we require Jordan form", which he noted was "dedicated to Lars Hansen who often raises this case". That issue has been closed against the material that did ship; this is one of the residuals it did not cover.

Suggested shape, in rough order of dependency:

  • when diagonalisation fails — algebraic versus geometric multiplicity, and what "defective" means
  • the Jordan normal form as the general replacement, with the simplest non-trivial block worked explicitly
  • the consequence for dynamics: how a Jordan block changes the transient in a linear state-space model, relative to the diagonalisable case already covered

Worth deciding as part of picking this up: whether the multiplicity material belongs here or as a short addition to eigen_I in lecture-python-intro, with the state-space consequence staying in this repo. The brief filed it under state-space dynamics, which is why it is proposed here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions