Built and fact-checked by the DocNectar team — see our editorial standards
Key Features
Instant Calculation
Get accurate results in real time with our optimized algorithm.
Mobile Friendly
Fully responsive design. Works on all devices & screen sizes.
Privacy Focused
Your data stays on your device. We don't store any inputs.
100% Free
No hidden costs. This tool is completely free forever.
The Gram-Schmidt process takes any set of linearly independent vectors and produces an orthogonal set spanning the same space — each new vector has the "shadow" of every earlier vector subtracted out, leaving only the part perpendicular to all of them.
This calculator applies Gram-Schmidt to a set of up to 6 vectors (each up to 6-dimensional), showing both the orthogonal result and its normalized (unit-length) orthonormal version.
How it works
Enter your vectors, one per row. The tool processes them in order: each vector has its projection onto every previously-processed orthogonal vector subtracted off, leaving a vector orthogonal to all the earlier ones. Dividing each result by its own length gives the orthonormal basis.
- Click Calculate to see your results.
Examples
Three vectors in 3D
Starting from (1,1,0), (1,0,1), and (0,1,1), Gram-Schmidt produces three mutually perpendicular vectors spanning the same 3D space.
Who should use it
- Converting a basis into an orthogonal or orthonormal one for further linear algebra work.
- Learning and verifying the Gram-Schmidt process step by step.
Industry applications
- Numerical linear algebra and scientific computing
- Computer graphics (camera/orientation basis construction)
Advantages
- Clear, step-by-step view of how each vector is built from the one before it.
- Produces both the orthogonal and orthonormal forms in one result.
Limitations
- Classical Gram-Schmidt (used here) is less numerically stable than Householder-based QR decomposition for ill-conditioned vector sets, though this doesn't affect typical textbook-style inputs.
Common mistakes to avoid
- Feeding in a set of vectors that isn't linearly independent and expecting a full orthogonal basis to come out.
- Forgetting that Gram-Schmidt processes vectors in the order given — reordering the input changes the specific orthogonal vectors produced, though not the overall space they span.
Best practices
- Use the orthonormal (unit-length) result when you need vectors for further calculations like projections or as columns of an orthogonal matrix.
Tips
- If you actually need a full QR decomposition (not just the orthogonalized vectors), the QR Decomposition Calculator produces the same orthogonal space via a more numerically stable method.