The following code:
from sympy import *
a, b = symbols("a b")
eqs = [ a + b - 3j, a - b - 2 ]
print(solve(eqs, [a, b]))
prints:
{a: 1.0 + 1.5*I, b: -1.0 + 1.5*I}
I'd like the results to be returned as complex rational numbers not floating point numbers, e.g.:
{a: 1 + 3/2*I, b: -1 + 3/2*I }
Is there a way to do that?
a + 3j
becomse a + 3.0*I
when parsed by SymPy; to keep it Rational, use SymPy's I
:
>>> from sympy import I
>>> eqs = [ a + b - 3*I, a - b - 2 ]
>>> solve(eqs, [a, b])
{a: 1 + 3*I/2, b: -1 + 3*I/2}