Schur triangulation #
Schur triangulation is more commonly known as Schur decomposition or Schur triangularization, but
"triangulation" makes the API more readable. It states that a square matrix over an algebraically
closed field, e.g., โ, is unitarily similar to an upper triangular matrix.
Main definitions #
Matrix.schur_triangulation: a matrixA : Matrix n n ๐with๐being algebraically closed can be decomposed asA = U * T * star UwhereUis unitary andTis upper triangular.Matrix.schurTriangulationUnitary: the unitary matrixUas previously stated.Matrix.schurTriangulation: the upper triangular matrixTas previously stated.- Some auxiliary definitions are not meant to be used directly, but
LinearMap.SchurTriangulationAux.ofcontains the main algorithm for the triangulation procedure.
subNat' i h subtracts m from i. This is an alternative form of Fin.subNat.
Equations
- i.subNat' h = Fin.subNat m (Fin.cast โฏ i) โฏ
Instances For
An alternative form of Equiv.sumEquivSigmaBool where Bool.casesOn is replaced by cond.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The composition of finSumFinEquiv and Equiv.sumEquivSigmalCond used by
LinearMap.SchurTriangulationAux.of.
Instances For
The type family parameterized by Bool has decidable equality if each type variant is
decidable.
Equations
- instDecidableEqSigmaBoolCond_physLean โจtrue, sndโฉ โจfalse, snd_1โฉ = isFalse โฏ
- instDecidableEqSigmaBoolCond_physLean โจfalse, sndโฉ โจtrue, snd_1โฉ = isFalse โฏ
- instDecidableEqSigmaBoolCond_physLean โจfalse, iโฉ โจfalse, jโฉ = if h : i = j then isTrue โฏ else isFalse โฏ
- instDecidableEqSigmaBoolCond_physLean โจtrue, iโฉ โจtrue, jโฉ = if h : i = j then isTrue โฏ else isFalse โฏ
The property of a matrix being upper triangular. See also Matrix.det_of_upperTriangular.
Equations
Instances For
The subtype of upper triangular matrices.
Equations
- Matrix.UpperTriangular n R = { A : Matrix n n R // A.IsUpperTriangular }
Instances For
Don't use this definition directly. Instead, use Matrix.schurTriangulationBasis,
Matrix.schurTriangulationUnitary, and Matrix.schurTriangulation. See also
LinearMap.SchurTriangulationAux.of and Matrix.schurTriangulationAux.
- dim : โ
The dimension of the inner product space
E. - basis : OrthonormalBasis (Fin self.dim) ๐ E
An orthonormal basis of
Ethat induces an upper triangular form forf.
Instances For
Schur's recursive triangulation procedure #
Given a linear endomorphism f on a non-trivial finite-dimensional vector space E over an
algebraically closed field ๐, one can always pick an eigenvalue ฮผ of f whose corresponding
eigenspace V is non-trivial. Given that E is also an inner product space, let bV and bW be
orthonormal bases for V and Vแฎ respectively. Then, the collection of vectors in bV and bW
forms an orthonormal basis bE for E, as the direct sum of V and Vแฎ is an internal
decomposition of E. The matrix representation of f with respect to bE satisfies
$$ \sideset{_\mathrm{bE}}{_\mathrm{bE}}{[f]} = \begin{bmatrix} \sideset{_\mathrm{bV}}{_\mathrm{bV}}{[f]} & \sideset{_\mathrm{bW}}{_\mathrm{bV}}{[f]} \\ \sideset{_\mathrm{bV}}{_\mathrm{bW}}{[f]} & \sideset{_\mathrm{bW}}{_\mathrm{bW}}{[f]} \end{bmatrix} = \begin{bmatrix} \mu I & โก \\ 0 & \sideset{_\mathrm{bW}}{_\mathrm{bW}}{[f]} \end{bmatrix}, $$
which is upper triangular as long as $\sideset{_\mathrm{bW}}{_\mathrm{bW}}{[f]}$ is. Finally, one
observes that the recursion from $\sideset{_\mathrm{bE}}{_\mathrm{bE}}{[f]}$ to
$\sideset{_\mathrm{bW}}{_\mathrm{bW}}{[f]}$ is well-founded, as the dimension of bW is smaller
than that of bE because bV is non-trivial.
However, in order to leverage DirectSum.IsInternal.collectedOrthonormalBasis, the type
ฮฃ b, cond b (Fin m) (Fin n) has to be used instead of the more natural Fin m โ Fin n while their
equivalence is propositionally established by Equiv.sumEquivSigmalCond.
Don't use this definition directly. This is the key algorithm behind
Matrix.schur_triangulation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The change of basis that induces the upper triangular form A.schurTriangulation of a matrix
A over an algebraically closed field.
Equations
Instances For
The unitary matrix that induces the upper triangular form A.schurTriangulation to which a
matrix A over an algebraically closed field is unitarily similar.
Equations
- A.schurTriangulationUnitary = โจ(EuclideanSpace.basisFun n ๐).toBasis.toMatrix โA.schurTriangulationBasis, โฏโฉ
Instances For
The upper triangular form induced by A.schurTriangulationUnitary to which a matrix A over an
algebraically closed field is unitarily similar.
Equations
Instances For
Schur triangulation, Schur decomposition for matrices over an algebraically closed field. In particular, a complex matrix can be converted to upper-triangular form by a change of basis. In other words, any complex matrix is unitarily similar to an upper triangular matrix.