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[[1]] // 
sol = Solve[tmp == 0, Y];
  • $\begingroup$ 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... :-) $\endgroup$ – MarcoB Jan 30 '17 at 22:14
  • $\begingroup$ 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. $\endgroup$ – anderstood Jan 30 '17 at 22:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.