Hi Francois,

On Mon, 14 Sep 2009 13:55:33 +0200
Francois Maltey <fmal...@nerim.fr> wrote:

> 
> Hello,
> 
> I don't find usual trigonometric transform in sage :
> 
> expand (sin (2*x)) == 2*sin(x)*cos(x)

sage: t = sin (2*x)
sage: t.tri<tab>
t.trig_expand    t.trig_simplify  
sage: t.trig_expand()
2*sin(x)*cos(x)

> combine (cos(a)^2) == 1/2 + cos(2*a)/2

The trig_expand() function doesn't seem to do this, trig_simplify()
let's you go back though.

sage: var('a')
a
sage: v = 1/2 + cos(2*a)/2
sage: v
1/2*cos(2*a) + 1/2
sage: v.trig_simplify()
cos(a)^2

> rewrite (sin(a), exp) == (exp(i*a)-exp(-i*a)) / (2*i)

ATM, there is no general framework to rewrite expressions
systematically in terms of exp, tan, or gamma functions. I have some
utility functions I wrote long ago. I will try to clean them up and
submit a patch this week.

For now, you can do this manually:

sage: z = sin(a)
sage: w = SR.wild()
sage: z.subs(sin(w) == (exp(i*w)-exp(-i*w)) / (2*i) )
1/2*I*e^(-I*a) - 1/2*I*e^(I*a)


> I can use maxima("expand (sin(a+b))") or fricas ("...") calls but not 
> the inner sage system.

This can also be done with the trig_expand() function.

sage: var('b')
b
sage: sin(a+b).trig_expand()
sin(a)*cos(b) + sin(b)*cos(a)


> Is there such functions in sage ?
> What sage files can I read if I want to understand how sage compute 
> similar algorithms.

Sage calls maxima to do the expansions and simplifications above. If
someone makes a list of transforms each function is supposed to apply,
these could easily be implemented in Sage directly (making it much
faster).

For the time being, you can look at the documentation for subs(),
find(), and match() functions on symbolic expressions to see what Sage
can do for pattern matching. E.g.,

sage: x.find?
< will show the documentation of the find method on x >

There are also quite a few functions for simplify and expand:

sage: x.simpl<tab>
x.simplify           x.simplify_log       x.simplify_trig
x.simplify_exp       x.simplify_radical   
x.simplify_full      x.simplify_rational  
sage: x.expa<tab>
x.expand           x.expand_rational  x.expand_trig      



Cheers,
Burcin

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to