# Solving this system of two algebraic equations

I'd like to find symbolically the common roots of two polynomial of second order in X and Y. Though this is not possible in general, with the present coefficients, MMA manages to output a result.

sol = Solve[a + (X - Y) (2 + 5 X - Y) == 0 &&
b X (2 + 5 X) + Y (-2 c (1 + 3 X) + d Y) == 0, {X, Y}]


Slight problem: LeafCount@sol is 682005...

Is there a better strategy to solve this algebraic system of two equations? If not, I'd be interested in any symbolic method to get a closed-form approximation of the roots, if any...

Edit I managed to reduce the LeafCount to 18k by solving one equation first, and injecting it to the second. I am still looking for better solutions, if any...

sol = Solve[a + (X - Y) (2 + 5 X - Y) == 0, X];
tmp = b X (2 + 5 X) + Y (-2 c (1 + 3 X) + d Y) /. sol[] //
FullSimplify;
sol = Solve[tmp == 0, Y];

• Would Root objects be appropriate for your goal? You could get those by adding Quartics -> False to your Solve. LeafCount of the solution is then reduced to "only" 17k... :-) – MarcoB Jan 30 '17 at 22:14
• Using Quartics->False and Simplify reduce LeafCount to 3.6k. However, in the end, I'd like closed-form expressions... I'll try to go back from the "reduced" form to closed-form and see what happens. Thank you for the edit too. – anderstood Jan 30 '17 at 22:19