Skip to main content

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

  1. 1Project each vector onto already-processed vectors
  2. 2Subtract those projections (orthogonalise)
  3. 3Divide result by its length (normalise)
  4. 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 →

Settings

PrivacyTermsAbout© 2026 PrimeCalcPro