I have a simple enough system of two equations that need to be inverted:

αEMeqn = αEM == (1/(4 π)) gy^2 gw^2/(gy^2 + 
   gw^2) (1 - 2 vT^2 δ CϕWB (gy gw)/(gy^2 + gw^2));


MZeqn = MZ^2 == (1/4) vT^2 (gy^2 + gw^2) + (1/
   8) vT^4 δ CϕD (gy^2 + gw^2) + (1/2) vT^4 gy gw δ CϕWB;

The solution is consistent to first order in δ and the higher order terms aren't worth anything, so they are truncated (and δ set to 1, as it is just a book-keeping parameter). I do:

coupsols = Solve[(αEMeqn) && (MZeqn), {gy, gw}];

And looking at the positive solution for one of these parameters, do the truncation:

gytruncsol = (gy //. coupsols[[4]]) // 
Normal@Series[#, {δ, 0, 1}] & // Expand // FullSimplify

Then set δ to 1.

Problem is, the solutions are defined (recursively?) in terms of root objects and so on. It seems likely that they need not be, given we only need the first order part of the solution. Is there a nice way to either:

1) Tell Mathematica at the stage of Solve that I only want an answer to a fixed order and so have it give me a more compact analytic solution that can be written down?


2) Once it has the ugly, full solution, have it take on-board the information that I've truncated this solution in this parameter to the point where maybe it's no longer necessary to have it defined in an opaque way, and re-express it (hopefully) analytically and nicely?


  • 1
    $\begingroup$ Would it help to expand each as a series in delta? $\endgroup$ Commented Nov 17, 2014 at 17:08

1 Answer 1


One method of obtaining a solution accurate to first order in δ, based on the comment by @Daniel Lichtblau is as follows:

First, apply the function

Normal[Series[# /. {gw -> gw0 + δ gw1, gy -> gy0 + δ gy1}, {δ, 0, 1}]] &

to each equation to obtain them accurate to first order in δ.

Second, set δ to zero in the resulting step #1 equations and Solve them for gw0 and gy0. You will obtain eight solutions, but (I presume) only one is physically meaningful.

Third, equate the coefficients of δ in the equations from step #1 to zero and replace gw0 and gy0 in them by the appropriate solution from step #2. Solve the resulting two linear equations for gw1 and gy1.

  • $\begingroup$ Will give this a go ASAP - thanks! $\endgroup$
    – LMoore
    Commented Nov 19, 2014 at 16:04
  • $\begingroup$ @LMoore, feel free to let me know, it you encounter difficulties. By the way, as a new user, you may find the tour at mathematica.stackexchange.com/tour useful. $\endgroup$
    – bbgodfrey
    Commented Nov 19, 2014 at 17:28
  • $\begingroup$ Worked nicely - very helpful, cheers! $\endgroup$
    – LMoore
    Commented Nov 20, 2014 at 21:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.