Some examples: fricas )set output algebra on fricas )set output tex off Type: List(Equation(Polynomial(Integer)))
fricas solve(L, Type: List(List(Equation(Fraction(Polynomial(Integer)))))
However: fricas solve(L, Type: List(List(Equation(Fraction(Polynomial(Integer)))))
Note that solution should satisfy all equations. Quantities which are not variables are treated as parameters and solution is valid for generic parameters. There are no values of X and V which solve the last two equations: generically C is different than 2*U+V Simpler: fricas solve([a - b = 0, Type: List(List(Equation(Fraction(Polynomial(Integer)))))
fricas linSolve([a - b, Type: Record(particular: Union(Vector(Fraction(Polynomial(Integer))),
The operation +- 1+ [mat= | |,vec= [- a,d - c]] + 0 + Note that fricas linSolve([a - b, Type: Record(particular: Union(Vector(Fraction(Polynomial(Integer))),
works. The same happens, if the equation is not linear: fricas L := [ A = 2*X^2+Y, Type: List(Equation(Polynomial(Integer)))
fricas solve(L, Type: List(List(Equation(Fraction(Polynomial(Integer)))))
fricas )set output algebra on fricas )set output tex off Type: List(List(Equation(Fraction(Polynomial(Integer)))))
fricas )set output algebra off fricas )set output tex on So, very probably, a fix would need to do two things:
The second point is necessary, since fricas L := [ A = P+Q, Type: List(Equation(Polynomial(Integer)))
fricas solve(L,
Type: List(List(Equation(Fraction(Polynomial(Integer)))))
fricas solve(L,
Type: List(List(Equation(Fraction(Polynomial(Integer)))))
really has no solution. As far as I know, this would have to be done in the very last function defined in -- general solver. Input in polynomial style -- solve(lr:L F,vl:L SE) == empty? vl => empty() checkLinear(lr,vl) => -- linear system -- soln := linSolve(lr, vl) soln case "failed" => [] eqns: L EQ F := [] for i in 1..#vl repeat lhs := (vl.i::(P R))::F rhs := rhs soln.i eqns := append(eqns, [lhs = rhs]) [eqns] -- polynomial system -- if R has GcdDomain then parRes:=triangularSystems(lr,vl) [[makeEq(map(makeR2F,f)$PP2,vl) for f in pr] for pr in parRes] else [[]] The letter |