1 | initial version |
Operating as you did, I get the same results. Furthermore, I get:
sage: solve([eq1, eq2, eq3, eq4, D==0, x1==0], [x, y, z, D])
[]
This, IMHO, means that sage concludes that no valye of x, y, z, d
allows you to conclude that x1==0
, which is indeed true. What is more annoying is that
sage: solve([eq1, eq2, eq3, eq4, D==0, x1==0], [x, y, z, D, x1])
never returns (you have to interrupt Sage in order to get tyour prompt back). This may be a bug...
But to get your solutions while instantiating tour parameters, you can write:
sage: [[eq.subs([x1==0, y1==0, z1==0]) for eq in s] for s in S]
[[x == 1, y == 0, z == 20, D == 0], [x == 1, y == 0, z == 0, D == 0]]
which looks entirely reasonable...
IMNSHO, the cleaner way to solve your problem is:
sage: S0=solve([eq1, eq2, eq3, eq4],[x,y,z])
sage: [[eq.subs([x1==0, y1==0, z1==0, D==0]) for eq in s] for s in S0]
totally separating variables (x, y, z) and parameters (D is a parameter...).
HTH,