LDL decomposition #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file proves the LDL-decomposition of matricies: Any positive definite matrix S
can be
decomposed as S = LDLᴴ
where L
is a lower-triangular matrix and D
is a diagonal matrix.
Main definitions #
LDL.lower
is the lower triangular matrixL
.LDL.lower_inv
is the inverse of the lower triangular matrixL
.LDL.diag
is the diagonal matrixD
.
Main result #
ldl_decomposition
states that any positive definite matrix can be decomposed asLDLᴴ
.
TODO #
- Prove that
LDL.lower
is lower triangular fromLDL.lower_inv_triangular
.
The inverse of the lower triangular matrix L
of the LDL-decomposition. It is obtained by
applying Gram-Schmidt-Orthogonalization w.r.t. the inner product induced by Sᵀ
on the standard
basis vectors pi.basis_fun
.
Equations
- LDL.lower_inv hS = gram_schmidt 𝕜 ⇑(pi.basis_fun 𝕜 n)
Instances for LDL.lower_inv
Equations
- LDL.invertible_lower_inv hS = _.mpr ((pi.basis_fun 𝕜 n).to_matrix ⇑(gram_schmidt_basis (pi.basis_fun 𝕜 n))).invertible_transpose
The entries of the diagonal matrix D
of the LDL decomposition.
Equations
- LDL.diag_entries hS = λ (i : n), has_inner.inner (⇑((pi_Lp.equiv 2 (λ (ᾰ : n), 𝕜)).symm) (has_star.star (LDL.lower_inv hS i))) (⇑((pi_Lp.equiv 2 (λ (i : n), 𝕜)).symm) (S.mul_vec (has_star.star (LDL.lower_inv hS i))))
The diagonal matrix D
of the LDL decomposition.
Equations
- LDL.diag hS = matrix.diagonal (LDL.diag_entries hS)
Inverse statement of LDL decomposition: we can conjugate a positive definite matrix by some lower triangular matrix and get a diagonal matrix.
The lower triangular matrix L
of the LDL decomposition.
Equations
- LDL.lower hS = (LDL.lower_inv hS)⁻¹
LDL decomposition: any positive definite matrix S
can be
decomposed as S = LDLᴴ
where L
is a lower-triangular matrix and D
is a diagonal matrix.