Module 1c: Linear Algebra Formula Sheet
Mathematical Foundations | ASTR 596: Modeling the Universe
Module 0a Quick Formula Sheet¶
Essential Vector Operations¶
Dot Product:
Physical Applications:
Work:
Power:
Projection of onto :
Cross Product:
Magnitude:
Physical Applications:
Angular momentum:
Torque:
Area of parallelogram:
Vector Norms and Properties:
Magnitude:
Unit vector:
Orthogonal if:
Essential Matrix Operations¶
Basic Operations:
Matrix multiplication:
Transpose:
Identity: for all
Determinant:
2×2 Matrix:
Properties:
Singular if
Matrix Inverse:
2×2 Matrix:
General Properties:
Eigenvalues and Eigenvectors¶
Definition:
Characteristic Equation:
Properties:
Trace:
Determinant:
For symmetric matrices: all eigenvalues are real
Numerical Stability Quick Checks¶
Condition Number¶
Interpretation:
: Excellent
: Good
: Use caution
: Ill-conditioned
Machine Epsilon¶
Float64:
Float32:
Python/NumPy Quick Reference¶
# Vectors
np.dot(a, b) # Dot product
np.cross(a, b) # Cross product
np.linalg.norm(v) # Vector magnitude
# Matrices
A @ B # Matrix multiplication
A.T # Transpose
np.linalg.inv(A) # Inverse (avoid!)
np.linalg.solve(A, b) # Solve Ax = b (preferred)
np.linalg.det(A) # Determinant
np.linalg.eig(A) # Eigenvalues & eigenvectors
np.linalg.cond(A) # Condition number
# Numerical fixes
A_sym = (A + A.T) / 2 # Force symmetry
A_reg = A + eps * I # RegularizationModule 0b Quick Formula Sheet¶
Positive Definite Matrices¶
Definition A symmetric matrix is positive definite if:
Tests for Positive Definiteness:
All eigenvalues > 0
All leading principal minors > 0
Cholesky decomposition exists
Can write as for invertible
Quadratic Forms:
Physical Examples:
Kinetic energy:
Potential energy:
Covariance and Statistical Matrices¶
Covariance:
Correlation:
Covariance Matrix:
Properties:
Diagonal:
Symmetric:
Positive semi-definite: all eigenvalues ≥ 0
Sample Covariance:
Or in matrix form:
where is centered data matrix
Multivariate Gaussian Distribution¶
Probability Density:
Mahalanobis Distance:
Log-likelihood (numerical stability)
Matrix Decompositions¶
Cholesky Decomposition For positive definite :
where is lower triangular with positive diagonal
Applications:
Solving: via , then
Sampling: If , then
Singular Value Decomposition (SVD)
Components:
: Left singular vectors (orthonormal)
: Singular values (diagonal, non-negative)
: Right singular vectors (orthonormal)
Pseudoinverse:
where inverts non-zero singular values
Advanced Topics¶
Matrix Exponential
Solution to linear ODE:
Jacobian Matrix
Linear approximation:
Schur Complement For block matrix :
Matrix Norms¶
Frobenius Norm
Spectral Norm
Numerical Stability Patterns¶
Safe Numerical Practices:
# Cholesky with automatic regularization
def safe_cholesky(A, jitter=1e-6):
try:
return np.linalg.cholesky(A + jitter * np.eye(len(A)))
except:
eigvals, eigvecs = np.linalg.eigh(A)
eigvals = np.maximum(eigvals, jitter)
A_fixed = eigvecs @ np.diag(eigvals) @ eigvecs.T
return np.linalg.cholesky(A_fixed)
# Work in log space
log_prob = multivariate_normal.logpdf(x, mu, Sigma)
# Stable parameterization
log_param = optimizer.param
param = np.exp(log_param) # Always positive
# Standardize data
X_std = (X - X.mean(axis=0)) / X.std(axis=0)Common Fixes:
| Problem | Solution |
|---|---|
| Cholesky fails | Add jitter: A + 1e-6 * I |
| Not symmetric | Force: (A + A.T) / 2 |
| Ill-conditioned | Regularize diagonal |
| Probability underflow | Use log space |
| Negative eigenvalues | Threshold: np.maximum(eigvals, 0) |
Python/SciPy Quick Reference¶
# Statistical
np.cov(X.T) # Covariance matrix
scipy.stats.multivariate_normal # Multivariate Gaussian
.logpdf(x, mean, cov) # Log probability
# Decompositions
np.linalg.cholesky(A) # Cholesky (A must be PD)
np.linalg.svd(A) # SVD
scipy.linalg.expm(A) # Matrix exponential
# Checks
np.linalg.eigvalsh(A).min() > 0 # Is positive definite?
np.allclose(A, A.T) # Is symmetric?
np.linalg.cond(A) # Condition number
# Solving systems
np.linalg.solve(A, b) # When A is square
np.linalg.lstsq(A, b) # Least squares
np.linalg.pinv(A) # Pseudoinverse