1 | initial version |
This is just standard linear algebra: form a 21 by 20 matrix whose rows consist of the linearly dependent vectors and the 20 linearly independent vectors, and find the one-dimensional left kernel (nullspace); alternatively transpose and find the right kernel. The coefficients of the single element in a basis of the kernel provide a linear combination of all 21 vectors which is zero. Hence the dependent vector can be written as a linear combination of the 20 independent vectors.
A small scale version in Sage:
sage: V = VectorSpace(QQ, 6)
sage: vectors = [V.random_element() for _ in range(6)]
sage: V.subspace(vectors).rank()
6
Confirming that the vectors are linearly independent, otherwise repeat. Then form a random linear combination, and create the matrix:
sage: w = sum(randint(-4, 4)*v for v in vectors)
sage: A = matrix([w] + vectors)
Now take the first (and only) generator of the kernel, and verify the result:
sage: c = A.kernel().basis()[0]
sage: w == -sum(c[i+1]*vectors[i] for i in range(6))
True