# Inverting series with symbolic coefficients?

I am trying to invert the series symbolically. Is this possible in Mathematica?

Example 1 -

Let $$p = u + au^2 + bu^3$$, where $$a,b$$ are symbolic variables. I am trying to invert the series around $$u=0$$ say up to $$4$$ th order. That is I am trying to get inverse series in terms of $$p$$ with coefficients in terms of $$a,b$$.

How do we manage this once we have two dimensional case?

Example 2 -

Suppose we have $$p = u + au^2 + b uv + cv^2$$ $$q = v + dv^2 + euv+ fv^2$$

I am trying to invert the series say upto $$4$$th order. That is I am trying to get the inverse series in terms of $$p,q$$. Like $$u = ()p + ()p^2 + ()q + ()q^2 + ()pq + \ldots$$ $$v = ()p + ()p^2 + ()q + ()pq + ()q^2 + \ldots$$, where the coefficients are in terms of $$a,b,c,d,e,f$$.

I was trying Inverse Series $$[u + a u^2 + b u^3 , p]$$ but seems like it is not working.

I tried defining a function like $$f[u] = u + au^2 + bu^3$$ and then using the inverse series Inverse Series$$[f[u],p]$$. Seems this is also not working.

Any help?

EDIT - Trying Carl Woll suggestions, still I am making mistake somewhere -

asymptoticSolve[args__] := CloudEvaluate[SystemAsymptoticSolve[args]]
asymptoticSolve[{p == u + a u^2 + b u v + c v^2,
q == v + d u^2 + e u v + f v^2}, {{u, v}, {0, 0}}, {{p, q}, {0, 0},
3}]


results into output

CloudEvaluate[
AsymptoticSolve[{p == {u + u^2 + u v + c v^2,
u + 2 u^2 + 2 u v + c v^2, u + 3 u^2 + 3 u v + c v^2},
q == d u^2 + v + e u v + v^2 Function[x, 4 x (1 - x)]}, {{u,
v}, {0, 0}}, {{p, q}, {0, 0}, 3}]]


Not sure why?

• This, mathematica.stackexchange.com/questions/202126/… and this mathoverflow.net/questions/249060/… (see the answer of Pietro Majer) is relevant. Commented Sep 27, 2019 at 6:40
• For the first example add order term O[u]^4 and then use InverseSeries[u + a u^2 + b u^3 + O[u]^4, p].
– Alx
Commented Sep 27, 2019 at 6:45
• Try, InverseSeries[Series[u + a u^2 + b u^3, {u, 0, 10}]] Commented Sep 27, 2019 at 6:47
• Possible duplicate of InverseSeries of multiple variables and multiple equations Commented Sep 27, 2019 at 7:11
• Thank you for all the comments and answers, seem really helpful. will try to go through them, seems like this is a duplicate question, but still I am not sure, I request some time before the question is marked duplicate,. Thanks! Commented Sep 27, 2019 at 9:00

You can use the new in M12 function AsymptoticSolve for this:

AsymptoticSolve[
{
p == u + a u^2 + b u v + c v^2,
q == v + d v^2 + e u v + f v^2
},
{{u, v}, {0, 0}},
{{p, q}, {0, 0}, 3}
]


{{u -> p - a p^2 + 2 a^2 p^3 - b p q + (3 a b + b e) p^2 q - c q^2 + (b^2 + 2 a c + b d + 2 c e + b f) p q^2 + (b c + 2 c d + 2 c f) q^3, v -> q - e p q + (a e + e^2) p^2 q + (-d - f) q^2 + (b e + 3 d e + 3 e f) p q^2 + (2 d^2 + c e + 4 d f + 2 f^2) q^3}}

• There are several branches of u and v as functions of p and q. Does AsymptoticSolve take it into account? Commented Sep 27, 2019 at 7:30
• @user64494 The short answer is yes. If there are multiple branches, AsymptoticSolve will return multiple results. You can control which branch is being inverted by specifying an expansion point in the second argument of AsymptoticSolve as I did, although there may still be multiple roots in this case. Commented Sep 27, 2019 at 14:54
• Thank you. However, the command AsymptoticSolve[p == u + au^2 + bu^3, {u, 0}, {p, 0, 3}] performs only {{u -> p - a p^2 + (2 a^2 - b) p^3}}. Commented Sep 27, 2019 at 15:43
• @user64494 AsymptoticSolve is returning the only solution that passes through $u=0$ and $p=0$. If you want multiple branches, don't specify $u=0$, i.e., AsymptoticSolve[p == u + a u^2 + b u^3, u, {p, 0, 3}]. Commented Sep 27, 2019 at 16:06
• @user64494 Why do you think the answers disagree? If I feed some numbers in, e.g., {a->3, b->10} and FullSimplify your result, it agrees with mine. Can you find values of a and b where the results disagree? Commented Sep 28, 2019 at 15:36

## Example 1

Let's define series like this:

p[u_] := u + a u^2 + b u^3 + O[u]^4


Inversing series p gives:

q[x_] := Evaluate[InverseSeries[p[x], x]];
q[p]


$$p-a p^2+p^3 \left(2 a^2-b\right)+O\left(p^4\right)$$

Check that q is an inverse series for p:

q[p[u]]


$$u+O\left(u^4\right)$$

## Example 2

I believe the solution that you are looking for is documented here.

• You wrote "I believe the solution that you are looking for is documented here". If I am not mistaken, there are no parameters in the latest example by @Michael E2. Commented Sep 27, 2019 at 7:27

Let us consider your example 1 (I think example 2 can be done in future versions of Mathematica only.). There are several cases depending on parameters and four branches of u as a function of p up to the result of

s = Reduce[p == u + a*u^2 + b*u^3, u] // ToRadicals


(b != 0 && (u == -(a/(3 b)) - (2^(1/3) (-a^2 + 3 b))/( 3 b (-2 a^3 + 9 a b + 27 b^2 p + Sqrt[ 4 (-a^2 + 3 b)^3 + (-2 a^3 + 9 a b + 27 b^2 p)^2])^( 1/3)) + (-2 a^3 + 9 a b + 27 b^2 p + Sqrt[ 4 (-a^2 + 3 b)^3 + (-2 a^3 + 9 a b + 27 b^2 p)^2])^(1/3)/( 3 2^(1/3) b) || u == -(a/(3 b)) + ((1 + I Sqrt[3]) (-a^2 + 3 b))/( 3 2^(2/3) b (-2 a^3 + 9 a b + 27 b^2 p + Sqrt[ 4 (-a^2 + 3 b)^3 + (-2 a^3 + 9 a b + 27 b^2 p)^2])^( 1/3)) - ((1 - I Sqrt[3]) (-2 a^3 + 9 a b + 27 b^2 p + Sqrt[ 4 (-a^2 + 3 b)^3 + (-2 a^3 + 9 a b + 27 b^2 p)^2])^(1/3))/( 6 2^(1/3) b) || u == -(a/(3 b)) + ((1 - I Sqrt[3]) (-a^2 + 3 b))/( 3 2^(2/3) b (-2 a^3 + 9 a b + 27 b^2 p + Sqrt[ 4 (-a^2 + 3 b)^3 + (-2 a^3 + 9 a b + 27 b^2 p)^2])^( 1/3)) - ((1 + I Sqrt[3]) (-2 a^3 + 9 a b + 27 b^2 p + Sqrt[ 4 (-a^2 + 3 b)^3 + (-2 a^3 + 9 a b + 27 b^2 p)^2])^(1/3))/( 6 2^(1/3) b))) || (b == 0 && a == 0 && u == p) || (b == 0 && a != 0 && (u == (-1 - Sqrt[1 + 4 a p])/(2 a) || u == (-1 + Sqrt[1 + 4 a p])/(2 a)))

Let us consider the first case and the first branch. Then

Series[Part[s[[1, 2, 1]], 2], {p, 0, 4}]


does the job (A long output is omitted.).

• Since you are concerned by the multiple solutions branches, you may be interested to look at this answer mathematica.stackexchange.com/questions/98467/… by @ChipHurst , which uses series expansion of the Root object. Commented Sep 27, 2019 at 8:09
• @yarchik: Thank you for a useful reference. Commented Sep 27, 2019 at 8:12
• You would get much simpler answers if you don't use ToRadicals`. Commented Sep 28, 2019 at 15:39