yields the Jordan decomposition of the state-space model ssm.
JordanModelDecomposition
yields the Jordan decomposition of the state-space model ssm.
Details
- The result is a list {p,jc}, where p is a similarity matrix, and jc is the Jordan canonical form of ssm.
- The state-space model ssm can be given as StateSpaceModel[{a,b,c,d}], where a, b, c, and d represent the state, input, output, and transmission matrices in either a continuous-time or a discrete-time system:
-

continuous-time system 
discrete-time system - The transformation
, where
is the new state vector, and
is a similarity matrix that spans the linearly independent eigenvectors of
, transforms the system into the Jordan canonical form: -
, 
continuous-time system
,
.discrete-time system - The new state matrix
is the Jordan canonical form of the old state matrix
.
Examples
open all close allBasic Examples (1)
Scope (4)
The Jordan decomposition of a second-order system:
JordanModelDecomposition[StateSpaceModel[{{{-1, 0}, {3, 2}}, {{1}, {-1}}, {{1, 0}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]]The Jordan decomposition of a discrete-time system:
JordanModelDecomposition[StateSpaceModel[{{{0.1625, -0.1125}, {0.1125, 0.5375}}, {{0.5}, {-0.5}}, {{2, -2}}, {{0}}},
SamplingPeriod -> 0.5, SystemsModelLabels -> None]]A transformation that gives the complex poles in second-order blocks:
Chop[JordanModelDecomposition[StateSpaceModel[TransferFunctionModel[{{{3}}, (-0.2 + z)*(1 + z + z^2)},
z, SamplingPeriod -> 0.1]]]]Repeated poles appear in Jordan blocks:
JordanModelDecomposition[StateSpaceModel[TransferFunctionModel[{{{10}}, (1 + s)^3*(5 + s)}, s]]]Applications (2)
A system is controllable if and only if the Jordan blocks of
have distinct eigenvalues, and the row of
corresponding to the last row of each Jordan block is not zero:
lssm = {StateSpaceModel[{{{-1, 0}, {0, -2}}, {{1}, {-1}}}, SamplingPeriod -> None,
SystemsModelLabels -> None], StateSpaceModel[{{{-1, 1, 0, 0}, {0, -1, 1, 0}, {0, 0, -1, 0}, {0, 0, 0, -2}},
{{1, 0, 0}, {0, 0, 1}, {0, 0, 0}, {0, -1, 0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None], StateSpaceModel[{{{-1, 1, 0, 0}, {0, -1, 1, 0}, {0, 0, -1, 0}, {0, 0, 0, -2}},
{{0, 0, 0}, {0, 0, 0}, {1, 0, 0}, {0, -1, 0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]};Table[ControllableModelQ[ssm], {ssm, lssm}]A system is observable if and only if the Jordan blocks of
have distinct eigenvalues, and the column of
corresponding to the first row of each Jordan block is not zero:
lssm = {StateSpaceModel[{{{-1, 0}, {0, -2}}, {{1}, {-1}}, {{2, -2}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None], StateSpaceModel[{{{-1, 1, 0, 0}, {0, -1, 1, 0}, {0, 0, -1, 0}, {0, 0, 0, -2}},
{{1}, {1}, {0}, {-1}}, {{0, 1, 1, 1}}, {{0}}}, SamplingPeriod -> None, SystemsModelLabels -> None], StateSpaceModel[{{{-1, 1, 0, 0}, {0, -1, 1, 0}, {0, 0, -1, 0}, {0, 0, 0, -2}},
{{0}, {0}, {1}, {0}}, {{1, 0, 0, 1}}, {{0}}}, SamplingPeriod -> None, SystemsModelLabels -> None]};Table[ObservableModelQ[ssm], {ssm, lssm}]Properties & Relations (3)
In the Jordan canonical form, the eigenvalues are along the diagonal of the state matrix:
m = (| | | |
| -- | -- | -- |
| -1 | 0 | 0 |
| 0 | -2 | 0 |
| 0 | 0 | -3 |);p = (| | | |
| -- | -- | -- |
| 0 | 1 | 0 |
| -1 | 0 | -1 |
| 1 | -1 | 0 |);JordanModelDecomposition[StateSpaceModel[{Inverse[p].m.p, (| | |
| -- | -- |
| 0 | 0 |
| b1 | 0 |
| 0 | b2 |), (| | | |
| -- | - | -- |
| c1 | 0 | 0 |
| 0 | 0 | c3 |), (| | |
| --- | --- |
| d11 | d12 |
| d21 | d22 |)}]]//LastThe Jordan canonical form is related to the original system via the similarity transform:
ssm = StateSpaceModel[{{{-2, 1, 3}, {1, 0, -1}, {2, 0, 1}}, {{1}, {-1}, {0}}, {{1, 0, 0}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None];{p, jc} = N[JordanModelDecomposition[ssm]];{jc, StateSpaceTransform[ssm, p]//Chop}{ssm, StateSpaceTransform[jc, Inverse@p]//Chop}The Jordan canonical form of a state-space model is the similarity transformation associated with the Jordan decomposition of its state matrix:
ssm = StateSpaceModel[{{{-7, 0.5, 5}, {-4, -1, 4}, {-2, 0.5, 0}}, {{1}, {-1}, {1}}, {{1, -1, -1}},
{{0}}}, SamplingPeriod -> None, SystemsModelLabels -> None];{p, jc} = JordanDecomposition@First@Normal@ssm{Last@JordanModelDecomposition[ssm], StateSpaceTransform[ssm, p]}//ChopPossible Issues (1)
JordanModelDecomposition does not support descriptor systems:
JordanModelDecomposition[StateSpaceModel[{{{1, 0, 2, -2}, {3, -3, -1, -1}, {2, -1, 0, 1}, {15, -15, 0, 5}},
{{0}, {1}, {0}, {1}}, {{1383, -1481, -16, 403}}, {{0}}, {{3, -3, -1, -1}, {0, 0, 0, 0},
{0, 0, 0, 0}, {-3, 3, 0, -1}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]Use KroneckerModelDecomposition to separate the modes of the system:
KroneckerModelDecomposition[StateSpaceModel[{{{1, 0, 2, -2}, {3, -3, -1, -1}, {2, -1, 0, 1}, {15, -15, 0, 5}},
{{0}, {1}, {0}, {1}}, {{1383, -1481, -16, 403}}, {{0}}, {{3, -3, -1, -1}, {0, 0, 0, 0},
{0, 0, 0, 0}, {-3, 3, 0, -1}}}, SamplingPeriod -> None, SystemsModelLabels -> None]]Related Guides
History
Text
Wolfram Research (2010), JordanModelDecomposition, Wolfram Language function, https://reference.wolfram.com/language/ref/JordanModelDecomposition.html.
CMS
Wolfram Language. 2010. "JordanModelDecomposition." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/JordanModelDecomposition.html.
APA
Wolfram Language. (2010). JordanModelDecomposition. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/JordanModelDecomposition.html
BibTeX
@misc{reference.wolfram_2026_jordanmodeldecomposition, author="Wolfram Research", title="{JordanModelDecomposition}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/JordanModelDecomposition.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_jordanmodeldecomposition, organization={Wolfram Research}, title={JordanModelDecomposition}, year={2010}, url={https://reference.wolfram.com/language/ref/JordanModelDecomposition.html}, note=[Accessed: 13-June-2026]}