Dual Spaces & Duality

covector

A covector is just an element of the dual space — a linear functional — but the name flags a viewpoint: it is the 'opposite kind' of object to a vector. Where a vector is a column you can picture as an arrow, a covector is a row you should picture as a stack of parallel level surfaces that a vector pierces. Feeding a vector to a covector counts how many surfaces the arrow crosses.

The defining behavior is how it transforms. Change basis by a matrix so that coordinates of vectors get multiplied by some matrix P; then the components of covectors get multiplied by the inverse-transpose, (P^-1)^T. Vectors and covectors transform oppositely, which is the entire reason for the prefix 'co': they co-vary with the dual basis, contra-vary with the original.

This opposite transformation is exactly what keeps the pairing <f, v> = f(v) a basis-independent number. If vectors scale up under a change of units, covectors must scale down by the matching factor, so their product is unchanged. A covector is the kind of thing whose pairing with a vector is an honest, coordinate-free quantity.

Familiar covectors are everywhere once you look: a gradient is a covector (it eats a direction and returns a directional derivative), a row of a measurement matrix is a covector, and a price vector dotted against a quantity vector is a covector acting on a vector. Keeping vectors and covectors typed differently prevents real mistakes in geometry, physics, and optimization.

vector: column v ; covector: row f ; f(v) = f v (row times column)

A covector is a row that pairs with a column to give a basis-independent scalar.

Index convention preview: vector components carry upper indices v^i, covector components carry lower indices f_i, and the pairing sum_i f_i v^i is automatically coordinate-free. That bookkeeping is the whole point of the tensor index gymnastics you meet later.

Also called
dual vectorrow vectorone-form