SPD Matrix Geometric Mean
Generalize a scalar geometric mean to positive matrices that need not commute.
By Riano · Published · Updated · Report a correction
SPD Matrix Geometric Mean
The geometric mean of two positive definite matrices generalizes the scalar concept √(ab). When matrices commute, it is exactly the product of their square roots. When they do not commute, non-trivial rotations must be accommodated.
Worked Example
Consider the symmetric positive definite matrices A and B.
Since they are diagonal and commute, we can compute their geometric mean directly:
- Find A1/2 and A-1/2.
- Form C = A-1/2 B A-1/2.
- Find C1/2.
- Compute A # B = A1/2 C1/2 A1/2.
Experiment
Explore this using the interactive module:
- Open the SPD Matrix Geometric Mean module.
- Set Pair to "Reciprocal" and Angle to 0. Notice the arithmetic mean trace is 5, but geometric mean trace is 4.
- Change the Angle to 45 degrees. The geometric mean changes because the matrices no longer commute!
- The visualization will show how the geometric mean ellipse always lies "between" the ellipses for A and B, but in a geodesic sense rather than a linear Euclidean sense.
Limitations
This exact formulation is specifically for symmetric (or Hermitian) positive-definite matrices. If a matrix is only positive semi-definite (has a zero eigenvalue), the inverse A-1/2 does not exist, though limits can sometimes be taken. The formula also relies heavily on the fact that the principal square root of an SPD matrix is unique and also SPD. Round-off errors near zero can cause a matrix to temporarily appear indefinite.
References
Here are some materials to read more about the computation of the square root and geometric mean.
- What is a Matrix Square Root? by Nick Higham - details unique principal square roots of matrices which are fundamental to the geometric mean formulation.
Experience it interactively
Adjust parameters, observe in real time, and build deep intuition with Riano’s interactive SPD Matrix Geometric Mean module.
Try SPD Matrix Geometric Mean on Riano →