Thanks for the tip. I've tried .is_Real (capital one), because as IDE says it's basic method, while .is_real related to Interval. That's why I didnt even try it
In my opinion, x = Symbol('x', real=True) makes it way better to control and read, so I'll stick to it. суббота, 2 ноября 2013 г., 20:31:39 UTC+4 пользователь Aaron Meurer написал: > > The issue is that the second and third solution give None, which means > it doesn't know (there's really no good reason for this, but you > generally have to look out for that). Really, those solutions should > be complex. > > The attribute you want is is_real. > > Another thing you can do is to set x to be real. If you do that, solve > will filter out the solutions automatically > > In [52]: x = Symbol('x', real=True) > > In [53]: print(solve(x**3 - 4, x)) > [2**(2/3)] > > Aaron Meurer > > On Sat, Nov 2, 2013 at 10:17 AM, Alexander Birukov > <sany...@gmail.com<javascript:>> > wrote: > > Hello everyone. I have another question, and as topic name says: how can > I > > sort return of solve, so complex numbers wont be in anymore? > > > > I've seached in flags for it, but no luck, and then I've played with > .is_* > > attributes and got something wierd(?): > > > > sols = solve(x**3 - 4) > > sols = [sol for sol in sols if sol.is_complex] > > > > sols before filtering: > > [2**(2/3), -2**(2/3)/2 - 2**(2/3)*sqrt(3)*I/2, -2**(2/3)/2 + > > 2**(2/3)*sqrt(3)*I/2] > > > > after: > > 2**(2/3) > > > > Question is why and does that code always gives me what I want? (Just > > confused about why is_complex returns True for real, and False for > exactly > > complex number). > > > > -- > > 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+un...@googlegroups.com <javascript:>. > > To post to this group, send email to sy...@googlegroups.com<javascript:>. > > > Visit this group at http://groups.google.com/group/sympy. > > For more options, visit https://groups.google.com/groups/opt_out. > -- 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 http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.