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.

Reply via email to