Thanks for the details! On 10 June 2011 02:00, Aaron Meurer <[email protected]> wrote:
> So, the way that re() and im() are currently implemented, they do not > do evaluation. You should use .as_real_imag() instead. However, I > think this should change. See > http://code.google.com/p/sympy/issues/detail?id=754#c15. > > Aaron Meurer > > On Thu, Jun 9, 2011 at 5:54 PM, [email protected] > <[email protected]> wrote: > > What about re(1/(x+I*y))? It does not evaluate. Is there a function that > I > > should call before re() so I have something with real denominator? > > > > On 10 June 2011 01:39, Aaron Meurer <[email protected]> wrote: > >> > >> To assume that x is real, define it like > >> > >> x = Symbol('x', real=True) > >> > >> Then you can use the functions re() and im(), or the method > >> .as_real_imag() to get the real and imaginary parts. > >> > >> In [1]: x, y = symbols('x y', real=True) > >> > >> In [2]: (x + I*y).as_real_imag() > >> Out[2]: (x, y) > >> > >> In [3]: re(x + I*y) > >> Out[3]: x > >> > >> In [4]: im(x + I*y) > >> Out[4]: y > >> > >> Aaron Meurer > >> > >> On Thu, Jun 9, 2011 at 4:31 PM, [email protected] > >> <[email protected]> wrote: > >> > Hi, > >> > > >> > Short version of the question: How to take the real/imaginary part of > a > >> > symbolic expression? Can real(x + I*y) give me "x" with the proper > >> > assumptions in place? > >> > > >> > > >> > Here is the context: > >> > I'm implementing a small gaussian optics module that I am going to > need > >> > during an internship. Here is my problem. > >> > > >> > There is a thing called complex beam parameter that is a complex > number > >> > whose real part is a certain quantity describing the beam and the > >> > imaginary > >> > part is another such quantity. The formalism treats them together in > >> > this > >> > complex number. > >> > > >> > I want to have a class with the constructor: > >> > > >> >>>>a=Constructor(quantityA, quantityB) > >> >>>>a == quantityA + I*quantityB > >> > True > >> > > >> > with the assumptions that quantityA and quantityB are real. > >> > > >> > Then I want to have the selectors (@property decorators): > >> > > >> >>>>a.quantA > >> > quantityA > >> >>>>q.quantB > >> > quantityB > >> > > >> > My idea was just to define quantA as real(a) but as far as what the > >> > documentation or Google say there is no function "real" for a general > >> > symbolic expression in sympy. I suppose I have missed something. Can I > >> > take > >> > the real part of a general expression? Can real(x + I*y) give me "x" > >> > with > >> > the proper assumptions in place? > >> > > >> > Regars > >> > Stefan > >> > > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups > >> > "sympy" group. > >> > To post to this group, send email to [email protected]. > >> > To unsubscribe from this group, send email to > >> > [email protected]. > >> > For more options, visit this group at > >> > http://groups.google.com/group/sympy?hl=en. > >> > > >> > >> -- > >> You received this message because you are subscribed to the Google > Groups > >> "sympy" group. > >> To post to this group, send email to [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]. > >> For more options, visit this group at > >> http://groups.google.com/group/sympy?hl=en. > >> > > > > -- > > You received this message because you are subscribed to the Google Groups > > "sympy" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group at > > http://groups.google.com/group/sympy?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
