I can make a few suggestions.
(1) Avoid use of capitalized symbols, expecially those tht might already be built-in symbols. D
is an example.
(2) You might rename x
to xx
wherever it appears with the big variable (I'll call it bigD
), and expand as a series in xx
at the origin. Then substitute xx->x
. I think the expansion would be to order zero, else total degree of resulting Taylor polynomials will exceed 4.
(3) Notice that this gives a biquadratic in x
so the solution will be done by iterating solutions for quadratics. This gives those complicated formulas. One can get a more concise form via Root
objects (prametrized in terms of the variables other than x
). To do this, add a "junk" linear term to avoid the biquadratic, and set Quartics->False
in Solve
to avoid the Cardano-Tartaglia form of result. Then remove that junk term. If expr
is that big quartic, then the code to do this would be:
Solve[expr+junk*x==0,x,Quartics->False]/.junk->0