yes On Tue, May 6, 2008 at 4:48 AM, David Joyner <[EMAIL PROTECTED]> wrote: > > > On Sat, May 3, 2008 at 10:27 PM, William Stein <[EMAIL PROTECTED]> wrote: > > > > On Sat, May 3, 2008 at 6:53 PM, dvase <[EMAIL PROTECTED]> wrote: > > > > > > Hello, > > > It seems as though I am missing something obvious, but I can not > > > figure out how to use complex number manipulations on symbolic > > > variables in sage. > > > > > > A trivial example would be to have a function that returns the > > > imaginary portion of a given complex value: > > > > > > sage: f(x) = imag(x) > > > sage: f(i*1) > > > I > > > > > > However, the result of this currently gives me zero, as it seems the > > > imag() function is not captured by the function declaration. Any > > > insights on this quandary? > > > > > > At present, depending on what you're doing your best bet in this case > > is probably just to define a Python function instead of a formal symbolic > > function. For example, paste in this: > > > > def f(x): > > return imag(x) + 5 > > > > Then > > > > sage: f(3+I) > > 6 > > > > > > The rest of this email has some details about what is going on. > > Since symbolic calculus in Sage is currently being massively > > rewritten by Bill Furnish, I don't recommend people worry > > too much about making changes to the current system to > > address this problem. > > > > Complex number support for Sage's current symbolics is not very good. > > It wasn't a high priority in the initial implementation. > > > > In particular, imag is just a Python function: > > > > sage: type(imag) > > <type 'function'> > > > > whereas for something like the above to work well it should be a > > symbolic function. > > > > Second, even if imag were symbolic Maxima (which does expression > simplification > > of Sage symbolic expressions behind the scenes) would view x by default > > as real, and imag(x) = 0. > > I wonder if Bill Furnish is also planning on adding the sgn function > to this class? > > > > > > > sage: sage.calculus.calculus.maxima('imagpart(x)') # imagpart = imag in > maxima > > 0 > > sage: sage.calculus.calculus.maxima('realpart(x)') > > x > > > > This behavior can be changed as follows: > > > > sage: sage.calculus.calculus.maxima('declare(x, complex)') > > done > > sage: sage.calculus.calculus.maxima('imagpart(x)') # imagpart = imag in > maxima > > ?%imagpart(x) > > > > > > > > > > > > > > >
--~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---