Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Trying to solve your problem by brute force (i. e. using basic solve in SR) : run

v1 = vector(SR, [1, 0, 2, 2, 0, 4, 4, 0, 10])
v2 = vector(SR, [0, 1, 1, 3, 3, 2, 3, 2, 5])
v3 = vector(SR, [1, 2, 4, 8, 6, 8, 10, 4, 20])
v4 = vector(SR, [1, 2, 0, 4, 10, 0, 6, 20, 0])
v5 = vector(SR, [0, 1, 3, 3, 5, 10, 9, 10, 11])
v6 = vector(SR, [1, 4, 6, 10, 20, 20, 24, 40, 22])
v7 = vector(SR, [1, -1, 1, -1, -3, 2, 1, -2, 5])
v8 = vector(SR, [0, 1, -2, 1, -2, 0, 4, 0, 4])
v9 = vector(SR, [0, 0, -2, 0, 4, -2, 12, 8, -18])
vA = vector(var("a", n=8))
M = matrix([v1, v2, v3, v4, v5, v6, v7, v8])

Then :

sage: solve((vA*M-v9).list(), vA.list())
[]

which can be confirmed by other means, if you are sceptic (a good heuristic with CASes...) :

sage: solve((vA*M-v9).list(), vA.list(), algorithm="giac")
[]
sage: solve((vA*M-v9).list(), vA.list(), algorithm="sympy")
[]
sage: solve((vA*M-v9).list(), vA.list(), algorithm="maxima")
[]
sage: mathematica([u==0 for u in (vA*M-v9)]).Solve(vA).sage()
[]

The reason of this non-solution is well explained in @dan_fulea 's answer.

HTH,

Trying to solve your problem by brute force (i. e. using basic solve in SR) : run

v1 = vector(SR, [1, 0, 2, 2, 0, 4, 4, 0, 10])
v2 = vector(SR, [0, 1, 1, 3, 3, 2, 3, 2, 5])
v3 = vector(SR, [1, 2, 4, 8, 6, 8, 10, 4, 20])
v4 = vector(SR, [1, 2, 0, 4, 10, 0, 6, 20, 0])
v5 = vector(SR, [0, 1, 3, 3, 5, 10, 9, 10, 11])
v6 = vector(SR, [1, 4, 6, 10, 20, 20, 24, 40, 22])
v7 = vector(SR, [1, -1, 1, -1, -3, 2, 1, -2, 5])
v8 = vector(SR, [0, 1, -2, 1, -2, 0, 4, 0, 4])
v9 = vector(SR, [0, 0, -2, 0, 4, -2, 12, 8, -18])
vA = vector(var("a", n=8))
M = matrix([v1, v2, v3, v4, v5, v6, v7, v8])

Then :

sage: solve((vA*M-v9).list(), vA.list())
[]

which can be confirmed by other means, if you are sceptic (a good heuristic with CASes...) :

sage: solve((vA*M-v9).list(), vA.list(), algorithm="giac")
[]
sage: solve((vA*M-v9).list(), vA.list(), algorithm="sympy")
[]
sage: solve((vA*M-v9).list(), vA.list(), algorithm="maxima")
[]
sage: mathematica([u==0 for u in (vA*M-v9)]).Solve(vA).sage()
[]

The reason of this non-solution is well explained in @dan_fulea 's answer.

Update :

An alternative way is to solve in some relevant polynomial ring. Running :

M = matrix([[1, 0, 2, 2, 0, 4, 4, 0, 10],
            [0, 1, 1, 3, 3, 2, 3, 2, 5],
            [1, 2, 4, 8, 6, 8, 10, 4, 20],
            [1, 2, 0, 4, 10, 0, 6, 20, 0],
            [0, 1, 3, 3, 5, 10, 9, 10, 11],
            [1, 4, 6, 10, 20, 20, 24, 40, 22],
            [1, -1, 1, -1, -3, 2, 1, -2, 5],
            [0, 1, -2, 1, -2, 0, 4, 0, 4]])
v9 = vector([0, 0, -2, 0, 4, -2, 12, 8, -18])
RP = PolynomialRing(QQbar, 8, "a")
# RP.inject_variables() # Useless here, may be used for further work.
A = vector(RP.gens())
J1 = RP.ideal(*(A*M-v9))

allows us to conclude that :

sage: J1.dimension()
-1

there is no solution to this problem, i. e. that $v_9$ is not a linear combination of $v_1,\dots,v_8$

HTH,