I have a linear system shown in the block diagram below.  This system is described with the following set of linear equations: err = inp - fb out = a * err fb = f * out  I would like to use sympy to compute the output (out) of the function of the input (inp). Thus, I would like to eliminate the variables err and fb. I would like some help as I been unable to figure out how to express what I want. So far I have: from sympy import symbols, Eq, solve inp, err, out, fb, a, f = symbols("inp err out fb a f") eqns = [ Eq(err, inp - fb), Eq(out, a * err), Eq(fb, f * out), ] solution = solve(eqns, [out]) solution # []  That clearly does not work. I thought perhaps simplify() might help here, but I don't know how to apply the simplify function to a system of equations. The result I am hoping to achieve is:  a out = ------ * inp 1 + af  Can anyone point me in the right direction?
I think you should specify all "outgoing" parameters, e.g., [out, fb, err], rather than [out] only, since [inp, a, f] could be treated as "constants" in this system of equations. from sympy import simplify, symbols, Eq, solve inp, err, out, fb, a, f = symbols("inp, err, out, fb, a, f") eqns = ( Eq(inp - fb, err), Eq(a * err, out), Eq(f * out, fb) ) solution = solve(eqns, [out, fb, err])  and you will see {err: inp/(a*f + 1), fb: a*f*inp/(a*f + 1), out: a*inp/(a*f + 1)} 