Real powers of positive definite matrices #
This file restores the upstream monlib4 API for real powers of positive semidefinite and positive definite matrices. The definitions are stated in terms of the current Mathlib Hermitian spectral theorem.
theorem
Matrix.IsHermitian.eigenvectorMatrix_conjTranspose_mul
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{A : Matrix n n ๐}
(hA : A.IsHermitian)
:
noncomputable def
Matrix.IsHermitian.rpow
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.IsHermitian)
(r : โ)
:
Matrix n n ๐
Real powers of a Hermitian matrix, defined by spectral calculus.
Equations
- hQ.rpow r = (Matrix.innerAut hQ.eigenvectorUnitary) (Matrix.diagonal (RCLike.ofReal โ (hQ.eigenvalues ^ r)))
Instances For
@[reducible, inline]
noncomputable abbrev
Matrix.PosSemidef.rpow
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.PosSemidef)
(r : โ)
:
Matrix n n ๐
Real powers of a positive semidefinite matrix.
Instances For
theorem
Matrix.PosDef.rpow_eq
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.PosDef)
(r : โ)
:
hQ.rpow r = (Matrix.innerAut โฏ.eigenvectorUnitary) (diagonal (RCLike.ofReal โ (โฏ.eigenvalues ^ r)))
theorem
Matrix.IsHermitian.rpow_one_eq_self
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.IsHermitian)
:
theorem
Matrix.PosSemidef.rpow_one_eq_self
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.PosSemidef)
:
@[reducible]
noncomputable instance
Matrix.PosDef.eigenvaluesInvertible
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.PosDef)
:
Equations
- hQ.eigenvaluesInvertible = { invOf := โฏ.eigenvaluesโปยน, invOf_mul_self := โฏ, mul_invOf_self := โฏ }
@[reducible]
noncomputable instance
Matrix.PosDef.eigenvaluesInvertible'
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.PosDef)
:
Equations
- hQ.eigenvaluesInvertible' = { invOf := RCLike.ofReal โ โฏ.eigenvaluesโปยน, invOf_mul_self := โฏ, mul_invOf_self := โฏ }
theorem
Matrix.IsHermitian.rpow_zero
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.IsHermitian)
:
theorem
Matrix.PosSemidef.rpow_zero
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.PosSemidef)
:
theorem
Matrix.IsHermitian.rpow.isHermitian
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.IsHermitian)
(r : โ)
:
(hQ.rpow r).IsHermitian
theorem
Matrix.PosSemidef.rpow.isPosSemidef
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.PosSemidef)
(r : โ)
:
(hQ.rpow r).PosSemidef
theorem
Matrix.PosSemidef.sqrt_eq_rpow
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.PosSemidef)
:
theorem
Matrix.IsHermitian.rpow_cast
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.IsHermitian)
(r : โ)
{S : Matrix n n ๐}
(hQS : Q = S)
:
theorem
Matrix.PosSemidef.rpow_cast
{n : Type u_1}
{๐ : Type u_2}
[RCLike ๐]
[Fintype n]
[DecidableEq n]
{Q : Matrix n n ๐}
(hQ : Q.PosSemidef)
(r : โ)
{S : Matrix n n ๐}
(hQS : Q = S)
:
theorem
Matrix.posDefOne_rpow
{๐ : Type u_2}
[RCLike ๐]
(n : Type u_1)
[Fintype n]
[DecidableEq n]
(r : โ)
: