Ask Your Question

Revision history [back]

In Sage, matrices have an image method.

The image is given as a vector space with basis.

Using random coefficients in a square matrix we are likely to get an invertible matrix whose image is the whole space.

sage: a = matrix(QQ, 4, [randint(-5, 5) for _ in range(16)])
sage: a
[-5 -1 -1  0]
[ 4 -1  1  5]
[-5 -4  3  3]
[ 1  1 -1  2]
sage: a.image()
Vector space of degree 4 and dimension 4 over Rational Field
Basis matrix:
[1 0 0 0]
[0 1 0 0]
[0 0 1 0]
[0 0 0 1]

Now change the last line to be a combination of the first three lines.

sage: b = copy(a)
sage: b
[-5 -1 -1  0]
[ 4 -1  1  5]
[-5 -4  3  3]
[ 1  1 -1  2]
sage: b[3] = 3*b[2] + b[1] - b[0]
sage: b
[ -5  -1  -1   0]
[  4  -1   1   5]
[ -5  -4   3   3]
[ -6 -12  11  14]
sage: b.image()
Vector space of degree 4 and dimension 3 over Rational Field
Basis matrix:
[     1      0      0  29/33]
[     0      1      0 -97/33]
[     0      0      1 -16/11]