QuantEcon / QuantEcon/lecture-python.myst
Add coverage of non-diagonalisable matrices and the Jordan form (and its effect on linear state-space transients)
Nobody has claimed this yet.
- Dominant language
- TeX
- Stars
- 123
- Forks
- 57
- Avg merge
- 3d 10h
- Merged PRs (30d)
- 11
Description
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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing eigen_I.md in lecture-python-intro with linear_algebra.md and linear_models.md in this repository, following how diagonalisation and state-space dynamics are currently introduced. Done means the lecture material explains defective matrices, algebraic and geometric multiplicity, Jordan form, and the polynomial-times-exponential transient consequence, with the placement of the multiplicity discussion decided.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100