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,
2 | No.2 Revision |
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,