I have a system of two equations to solve. 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}}.

I want to keep only 1/x order terms in answer and neglect higher order terms. i.e I should get the answer as y->1/x, z->2/x.

I am new to coding. Can anyone suggest some code so that I will get answer only upto 1/x order terms ? How to tell mathematica to neglect higher order terms.

(I dont want to use command AsymptoticSolve. What I am looking for is giving some additional conditions, assumptions to the above mentioned command "Solve" , so that I will automatically get answer only keeping 1/x order terms).

  • $\begingroup$ Yes. It is giving an answer to this problem. But, this is not my actual problem. My actual problem is quite big having 16 big equations with 16 unknowns. It will be difficult to post such a big set of equations here on this platform. So first I am trying to solve a simpler problem having two equations only. For my actual problem having 16 equations to solve, AsymptoticSolve is not giving an answer. Using AsymptoticSolve for my actual problem is giving {} in answer. Hence I am looking if there are any other ways other than AsymptoticSolve for this. $\endgroup$
    – apk
    Dec 28, 2021 at 13:50

1 Answer 1

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

sol /. (var_ -> f_) :> 
 (var -> Normal[Series[f, {x, Infinity, 1}]])

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

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