Thanks, I've commented there. On Sat, 27 Oct 2018 at 20:40, Chris Smith <smi...@gmail.com> wrote: > > See this issue for previous discussion. > > On Saturday, October 27, 2018 at 12:44:09 PM UTC-5, Oscar wrote: >> >> Hi all, >> >> I find the behaviour of operations involving Eq strange. I would >> really like to be able to use Eqs for algebra but they don't seem to >> do anything useful. Is this behaviour intentional or is it something >> that could be improved? >> >> Setup: >> >>> from sympy import * >> >>> x = Symbol('x') >> >>> y = Symbol('y') >> >>> eq = Eq(x, y) >> >>> eq >> Eq(x, y) >> >>> pprint(eq) >> x = y >> >> I don't understand what any of these mean: >> >>> pprint(2*eq) >> 2⋅(x = y) >> >>> pprint((2*eq).expand()) >> 2⋅(x = y) >> >>> exp(eq) >> exp(Eq(x, y)) >> >>> pprint(abs(eq)) >> │x = y│ >> >>> eq - 1 >> -1 + Eq(x, y) >> >>> pprint(eq - 1) >> -1 + (x = y) >> >> Integration works but differentiation doesn't: >> >>> pprint(integrate(eq, x)) >> ⌠ ⌠ >> ⎮ x dx = ⎮ y dx >> ⌡ ⌡ >> >>> pprint(integrate(eq, x).doit()) >> 2 >> x >> ── = x⋅y >> 2 >> >>> diff(eq, x) >> Derivative(Eq(x, y), x) >> >>> pprint(diff(eq, x)) >> ∂ >> ──(x = y) >> ∂x >> >>> pprint(diff(eq, x).doit()) >> ∂ >> ──(x = y) >> ∂x >> >> Functions of Eq raise errors: >> >>> sin(eq) >> ... >> TypeError: cannot determine truth value of Relational >> >> It looks as if I can chain equations and inequalities but does it >> actually mean what it looks like mathematically? >> >>> eq < 3 >> Eq(x, y) < 3 >> >>> pprint(eq < 3) >> x = y < 3 >> >> Apart from the inequality example at the end I would like it if all of >> the above operations acted on both lhs and rhs separately as in the >> case of integration e.g.: >> >> >>> eq >> x = y >> >>> 2*eq >> 2*x = 2*y >> >>> sin(eq) >> sin(x) = sin(y) >> >> The other thing that I don't understand although it is clearly >> documented is this: >> >>> Eq(1, 1) >> True >> >>> Eq(1, 0) >> False >> >> These True/False values are annoying if you are building up Eqs >> programatically e.g. to pass to solve: >> >>> solve([Eq(1, 1), Eq(x, y), Eq(x, 1)], [x, y]) >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> File "/Users/enojb/current/sympy/sympy/sympy/solvers/solvers.py", >> line 980, in solve >> return reduce_inequalities(f, symbols=symbols) >> File "/Users/enojb/current/sympy/sympy/sympy/solvers/inequalities.py", >> line 987, in reduce_inequalities >> rv = _reduce_inequalities(inequalities, symbols) >> File "/Users/enojb/current/sympy/sympy/sympy/solvers/inequalities.py", >> line 907, in _reduce_inequalities >> ''')) >> NotImplementedError: >> inequality has more than one symbol of interest. >> >> You can solve this last problem with evaluate=False but I really don't >> understand why any evaluation is desirable here. I think that solve >> has probably gotten confused here for the same reason that any other >> code would: the True/False objects don't have any of the same >> attributes that an Eq would have: >> >> >>> Eq(0, 1).lhs >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> AttributeError: 'BooleanFalse' object has no attribute 'lhs' >> >> >> -- >> Oscar > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sympy+unsubscr...@googlegroups.com. > To post to this group, send email to sympy@googlegroups.com. > Visit this group at https://groups.google.com/group/sympy. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/420d940b-663f-4af7-b4eb-59a048d0bdb3%40googlegroups.com. > For more options, visit https://groups.google.com/d/optout.
-- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at https://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAHVvXxSKpPy3rGkATFNcb_gc1YbFGA65PQ6FT3Sgb-%3Dw7kfhNA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.