Before you can read the parent note Gram–Schmidt orthogonalization — algorithm, you must own every symbol it fires at you. Below, each symbol gets three things: plain words → the picture → why the topic needs it. They are ordered so each one leans on the last (fittingly).
The little numbers inside, 3 and 1, are called components. In v=(3,1) the first component tells you how far right, the second how far up.
To name the components without committing to specific numbers, we write v=(v1,v2): here v1 is the first component (how far right) and v2 is the second component (how far up). Warning about the two uses of subscripts — read carefully:
When the letter under the vector is the same as the whole vector (like v1,v2insidev=(v1,v2)), the subscript picks out a component of that one vector.
When we later list several different vectors as v1,v2,v3,…, the subscript is a name tag meaning "vector number 1, vector number 2, ..."
The context always tells you which: are we opening up one vector's coordinates, or naming a family of vectors? To keep the two crystal-clear, this page uses v1,v2 for components and reserves whole-vector names for the family discussion below.
Figure: the arrow v=(3,1) drawn from the origin. The black horizontal leg is the first component (3, how far right) and the black vertical leg is the second component (1, how far up); the red arrow itself is the vector. The two legs and the arrow form a right triangle.
For v=(3,1) we have v1=3,v2=1, so ∥v∥=32+12=10. The double bars ∥∥ are just "length of what's inside" — never confuse them with the single bars of absolute value.
This is the most important symbol in the whole chapter, so we build it slowly.
Figure: a black reference arrow u lies flat. Three red arrows share the origin: one leaning the same way as u (inner product positive), one standing straight up at a right angle to u — marked with a small square and labelled ⟨u,v⟩=0 — and one leaning backwards (inner product negative). The picture shows the inner product sliding from positive, through zero at the right angle, to negative.
Why does this specific formula detect perpendicularity? It helps to name the opening between the two arrows. Let θ (the Greek letter "theta") stand for the angle between the two arrows, measured where their tails meet — θ=0∘ when they point the same way and θ=90∘ when they form a perfect corner. With that name in hand, the inner product secretly equals
⟨u,v⟩=∥u∥∥v∥cosθ,
where cosθ is the cosine of that angle. When the arrows are perpendicular, θ=90∘ and cos90∘=0, dragging the whole product to zero. You don't need this cosine formula to use Gram–Schmidt, but it explains why⟨u,v⟩=0 is the same statement as "right angle."
For a fuller treatment see Inner product spaces; for now, "multiply matching components and add, zero means perpendicular" is all you need.
The word splits as ortho (right-angle) + normal (unit length). A unit-length vector is written ek; the letter e is the traditional name for a clean, normalized direction. See Orthonormal basis.
This is the one operation the parent note calls "the building block."
Figure: a black arrow u acts as the floor; a black arrow v leans above it. The red arrow is proju(v), lying flat along u — the shadow of v. A dashed black segment drops straight from the tip of v down to the tip of the red shadow, meeting the floor at a right angle (marked with a small square); that dashed leftover is the perpendicular part.
The formula (derived in full in the parent note) is
proju(v)=⟨u,u⟩⟨v,u⟩u.
Read it as: "how much v agrees with u" divided by "how much u agrees with itself", times the direction u. The fraction is just a number (a scalar), and multiplying u by it stretches or shrinks u to reach the foot of the shadow. Deep dive available at Orthogonal projection.
The parent's key formula has two parts. First, a base case that tells you where to start:
u1=v1(the very first vector is already "clean" — nothing earlier to remove).
Then, the general step for every later vector k=2,3,…:
uk=vk−∑j=1k−1⟨uj,uj⟩⟨vk,uj⟩uj.
Without the base case you would never get going, because the sum needs earlier uj's to exist. Two pieces of notation deserve unpacking.
The word recursion means "each new answer is defined using the earlier answers": u1 feeds u2, and u1,u2 feed u3, and so on. You cannot compute u5 without first having u1,…,u4.
The map below reads top to bottom: the plain arrow (vector) supports the two measurements we build on it — the inner product (agreement) and the norm (length). Those two give us the test for orthogonality and the idea of unit length, which combine into orthonormal. Inner product and norm together also build the projection (shadow), whose whole purpose is that we can subtract the shadow. Finally, subtraction, the ∑ loop, the requirement of linear independence, and the promise of an unchanged span all feed into Gram–Schmidt itself. If your browser cannot render the diagram, that sentence is the diagram in words.