# Construction of a basis

I know that for a vector space $\mathbb R^n$ one can use the Gram-Schmidt process to construct its basis. But what if the vector space is over some arbitrary field? I am thinking of the following:

1. Pick an arbitrary vector in $V$, label as $v_1$
2. Pick another arbitrary vector in $V$. From this deduct the component in $v_1$. If this gives the zero vector then do it again with another arbitrary vector, otherwise take this as $v_2$ .
3. Repeat the above until we have found $n$ linearly independent vectors. (Given that $\dim V=n < \infty$); otherwise, we go on forever.

(Basically Gram-Schmidt.)

This doesn't seem like a particularly efficient algorithm especially for large $n$, are there any better suggestions? Also, I am not sure that my steps are necessarily valid. Is the scalar product -- that obtains the component of an arbitrary vector in the direction of a $v_i$ already in the set -- defined for vector spaces over arbitrary fields?

Thanks.

-
You can define a scalar product over arbitrary fields, but it doesn't always work like you might expect. For instance, in $\mathbb F_2^n$ over $\mathbb F_2$ with the canonical scalar product given by the sum over the products of the components, vectors with an even number of $1$s are self-orthogonal, so you can't normalize them and you can't subtract a "component along them" in the usual way. – joriki Sep 10 '11 at 13:42
@joriki: Thanks.(btw, what is $\mathbb F_2$?) So this algorithm doesn't work? Is there an algorithm for constructing a basis? – gareth Sep 10 '11 at 13:47
If you just want a basis you don't need Gram–Schmidt. That's for finding an orthonormal basis. – Hans Lundmark Sep 10 '11 at 13:49
Just keep picking arbitrary vectors. If you get one which is linearly dependend on the ones you already have, discard it and try again. And so on, until you have a maximal linearly independent set, i.e., a basis. – Hans Lundmark Sep 10 '11 at 13:57
@Hans: The two are related in that "usually" the easiest way to tell whether the vectors are linearly independent is to make them orthonormal. – joriki Sep 10 '11 at 14:31

You don't need Gram-Schmidt. Start with a generating set or keep adding vectors to a set and use Gaussian elimination to remove linear dependences.

-

Choose $x_1\neq0$ which is l.i. then if $x_1$ generates V it is a basis and you're done.

If it is not a basis there is a $x_2\in V\setminus <x_1>$ and $x_1,x_2$ are l.i, if $x_1,x_2$ generates you got your basis,....

... ...

if not, choose a $x_{n+1}\in V\setminus <x_1,....,x_n>$ , ${x_1,...,x_{n+1}}$ are l.i. then if ${x_1,...,x_{n+1}}$ generate you've got your basis.

If the dimension is finite the algoritm must stop.

With I mean the generated subspace by S.

-