# Gram-Schmidt Calculator

Welcome to the **Gram-Schmidt calculator**, where you'll have the opportunity to learn all about **the Gram-Schmidt orthogonalization**. This simple algorithm is a way to read out the **orthonormal basis** of the space spanned by a bunch of random vectors. If you're not too sure what *orthonormal* means, don't worry! It's just an orthogonal basis whose elements are only one unit long. And what does *orthogonal* mean? Well, we'll cover that one soon enough!

So, just sit back comfortably at your desk, and let's venture into **the world of orthogonal vectors**!

## What is a vector?

One of the first topics in physics classes at school is velocity. Once you learn **the magical formula** of $v = s / t$, you open up the exercise book and start drawing cars or bikes with an arrow showing their direction parallel to the road. The teacher calls this arrow **the velocity vector** and interprets it more or less as "*the car goes that way*."

You can find similar drawings **throughout all of physics**, and the arrows always mean **which direction a force acts on an object and how large it is**. The scenario can describe anything from buoyancy in a swimming pool to the free fall of a bowling ball, but one thing stays the same: whatever the arrow is, **we call it a vector**.

In full (mathematical) generality, we define **a vector** to be **an element of a vector space**. In turn, we say that a vector space is **a set of elements with two operations that satisfy some natural properties**. Those elements can be quite funky, like sequences, functions, or permutations. Fortunately, for our purposes, **regular numbers are funky enough**.