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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---