Documentation

Atlas.AnAlgorithmistsToolkit.code.SymmetricMatrices

theorem SymmetricMatrixProperties.eigenvectors_orthogonal_of_ne_eigenvalues {n : Type u_1} [Fintype n] {M : Matrix n n } (hM : M.IsHermitian) {v w : n} {μ₁ μ₂ : } ( : μ₁ μ₂) (hv : M.mulVec v = μ₁ v) (hw : M.mulVec w = μ₂ w) :
v ⬝ᵥ w = 0
theorem SymmetricMatrixProperties.eigenvector_linear_combination {n : Type u_1} [Fintype n] {M : Matrix n n } {v w : n} {μ : } (hv : M.mulVec v = μ v) (hw : M.mulVec w = μ w) (a b : ) :
M.mulVec (a v + b w) = μ (a v + b w)
theorem SymmetricMatrixProperties.exists_orthonormalBasis_eigenvectors {n : Type u_1} [Fintype n] [DecidableEq n] (M : Matrix n n ) (hM : M.IsHermitian) :
∃ (v : OrthonormalBasis n (EuclideanSpace n)) (eigvals : n), ∀ (j : n), M.mulVec (v j).ofLp = eigvals j (v j).ofLp
theorem SymmetricMatrixProperties.proposition2_symmetric_matrix {n : Type u_1} [Fintype n] [DecidableEq n] (M : Matrix n n ) (hM : M.IsHermitian) :
(∀ {v w : n} {μ₁ μ₂ : }, μ₁ μ₂M.mulVec v = μ₁ vM.mulVec w = μ₂ wv ⬝ᵥ w = 0) (∀ {v w : n} {μ : }, M.mulVec v = μ vM.mulVec w = μ w∀ (a b : ), M.mulVec (a v + b w) = μ (a v + b w)) (∃ (v : OrthonormalBasis n (EuclideanSpace n)) (eigvals : n), ∀ (j : n), M.mulVec (v j).ofLp = eigvals j (v j).ofLp) M = hM.eigenvectorUnitary * Matrix.diagonal hM.eigenvalues * (↑hM.eigenvectorUnitary).transpose