How to Calculate Gram-Schmidt
What is Gram-Schmidt?
The Gram-Schmidt process converts a set of linearly independent vectors into an orthonormal basis — vectors that are mutually perpendicular and each have length 1. It is used in linear algebra, QR decomposition, and machine learning.
Formula
uₙ = vₙ − Σₖ₌₁ⁿ⁻¹ ⟨vₙ, uₖ⟩ / ⟨uₖ, uₖ⟩ · uₖ (orthogonalize); eₙ = uₙ / |uₙ| (normalize)
- v₁, v₂, ..., vₙ
- original linearly independent vectors
- u₁, u₂, ..., uₙ
- orthogonal vectors
- e₁, e₂, ..., eₙ
- orthonormal vectors (unit length)
Step-by-Step Guide
- 1Project each vector onto already-processed vectors
- 2Subtract those projections (orthogonalise)
- 3Divide result by its length (normalise)
- 4Projection: proj_u(v) = (v·u/u·u)u
Worked Examples
Input
v₁=(1,1,0), v₂=(1,0,1)
Result
e₁=(0.707,0.707,0), e₂=(0.408,−0.408,0.816)
Frequently Asked Questions
What is the difference between orthogonal and orthonormal?
Orthogonal: perpendicular vectors (dot product = 0). Orthonormal: also have unit length (|v| = 1).
Why is Gram-Schmidt orthogonalization useful?
Orthonormal bases simplify calculations: projections, inversions, and numerical stability.
Is Gram-Schmidt the only way to orthogonalize?
No, QR decomposition and Householder reflections are alternatives with better numerical properties.
Ready to calculate? Try the free Gram-Schmidt Calculator
Try it yourself →