I am trying to solve a set of equations in Mathematica. My input is

Solve[y*x - 1/x - 1/x^2 == 1 && z*x - 1/x^2 + 1/x == 2, {y, z}]

and output is

{{y -> (1 + x + x^2)/x^3, z -> (1 - x + 2 x^2)/x^3}}.

Now I want the answer only upto the order of 1/x, neglecting all higher orders(i.e neglecting 1/x^2, 1/x^3 and so on). If I have a single equation, I am able to get the desired answer (only keeeping 1/x and neglecting higher orders)using AsymptoticSolve.


and output,


But for more than 1 equations, AsymptoticSolve is not working. Can anyone tell how can I use AsymptoticSolve to get solution of simultaneous equations keeping only 1/x order terms in answer ?

My input is

AsymptoticSolve[y*x-(1/x)-(1/x^2)==1 && z*x-(1/x^2)+(1/x)==2,{y,z},x->inf]

here, as I want to keep upto 1/x terms in answer , answer should be y-> 1/x, z-> 2/x, but I am getting answer {}. Can anyone help me with this ?

  • $\begingroup$ inf should be written as Infinity (or one has to define it so), though this doesn't change the result {} of AsymptoticSolve with multiple variables. $\endgroup$
    – tueda
    Dec 25, 2021 at 10:17

1 Answer 1


As I understand it, Mathematica has a problem with the order of the series expansion at infinity. The following works in 13.0.0 and produces the required result.

AsymptoticSolve[{y*x - (1/x) - (1/x^2) == 1, 
z*x - (1/x^2) + (1/x) == 2} /. x -> 1/t, {{y, z}, {0, 0}}, {t, 0,1}] /. t -> 1/x

{{y -> 1/x, z -> 2/x}}

  • $\begingroup$ Here, {t,0,1} means we are exapanding t around 0 upto order 1, right ? What does {{y,z},{0,0}} mean ? $\endgroup$
    – apk
    Dec 25, 2021 at 13:36
  • $\begingroup$ @apk: 1. Yes. 2. A solution near the point {0,0}. $\endgroup$
    – user64494
    Dec 25, 2021 at 14:07

Your Answer

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

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