You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
import Mathlib
variable {m n R : Type*} [CommRing R] [Fintype m] [Fintype n] [DecidableEq m] [DecidableEq n]
noncomputabledefpinv (A : Matrix m n R) : Matrix n m R :=
(Aᵀ * A)⁻¹ * Aᵀ
only works when FIntype.card m >= Fintype.card n, and even then only when rank A = Fintype.card n.
Some possible references for a generalized definition:
A quick attempt at the second one seems to start with:
defIsMoorePenroseInverse {α β γ δ} [HMul α β γ] [HMul β α δ] [HMul γ α α] [HMul δ β β] [Star γ] [Star δ]
(A : α) (As : β) :=
A * As * A = A ∧ As * A * As = As ∧ star (A * As) = A * As ∧ star (As * A) = As * A
Note that the naive definition of
only works when
FIntype.card m >= Fintype.card n
, and even then only whenrank A = Fintype.card n
.Some possible references for a generalized definition:
A quick attempt at the second one seems to start with:
Zulip threads:
The text was updated successfully, but these errors were encountered: