Hi Kurt,

Thanks for the fast and very detailed response - much 
appreciated.

(1) Can the re-write rules be expressed in a "generic" way 
so that they will work for:

(a) any symbolic arguments appearing in the trigonometric 
functions, for example,
cos(x1)*sin(y)-sin(x1)*cos(y), 
cos(x3)*sin(z)-sin(x3)*cos(z), etc

(b) any order of appearance of the terms, 
-sin(x1)*cos(y) + sin(y)*cos(x1), 
-sin(x2)*sin(x3) + cos(x3)*cos(x2), etc

(2) In your example below, you used "equations" for t1, t2, etc.

In my question I was simply using t1 and t2 as auxiliary 
variables and assigning the rhs to t1, t2, etc, in order to 
construct the expression expr.

The idea is that the simplifying function I am looking for, 
lets call it my_simplify(), be applied to any expression expr
containing trigonometric terms, as follows:

expr_s := my_simplify(expr);

Is this possible?


Thanks very much.

Regards,
Constantine Frangos.


----- Original Message -----
From: "Kurt Pagani" <[email protected]>
To: "FriCAS - computer algebra system" <[email protected]>
Cc: [email protected]
Sent: Wednesday, January 25, 2017 3:51:54 AM
Subject: Re: fricas: trigonometric simplification.


Usually, this kind of task is not a CAS' strength because simplification mostly 
relies on a normal form/representation. Even with rewrite rules I cannot see a 
general pattern. However, waht you can do is sketched below, namely using 
equations, rules and substitutions. Admittedly, it's more the way theorem 
prover assistants works than automated simplifaction. If you have well defined 
normal form this method may be turned into an algorithm as well, of course. 

I don't know if you deliberatly used " = " (equations in Fricas) or it simpy 
was a typo (:= means assignment), anyway, it was the inspiration for the lines 
below: 

rs:=rule cos(x)*sin(y)-sin(x)*cos(y) == sin(y-x) 
rc:=rule cos(x)*cos(y)-sin(x)*sin(y) == cos(x+y) 

eq1:= t1 = cos(x)*sin(y)-sin(x)*cos(y) 
eq2:= t2 = cos(x)*cos(y)-sin(x)*sin(y) 
eq3:= expr = t1*cos(x3) + 5 + tan(q)*tan(w) + t2*w*cos(a)+ t1*t2*r3 

eq4:=expr = subst(rhs eq3,t1=rs rhs eq1) 
eq5:=expr_s = subst(rhs eq4,t2=rc rhs eq2) 




FriCAS Computer Algebra System 
Version: FriCAS 1.3.0 
Timestamp: Wed Aug 31 20:31:31 GMT 2016 
----------------------------------------------------------------------------- 
Issue )copyright to view copyright notices. 
Issue )summary for a summary of useful system commands. 
Issue )quit to leave FriCAS and return to shell. 
----------------------------------------------------------------------------- 

(2) -> rs:=rule cos(x)*sin(y)-sin(x)*cos(y) == sin(y-x) 

(2) cos(x)sin(y) - cos(y)sin(x) + %B == sin(y - x) + %B 
Type: RewriteRule(Integer,Integer,Expression(Integer)) 
(3) -> rc:=rule cos(x)*cos(y)-sin(x)*sin(y) == cos(x+y) 

(3) - sin(x)sin(y) + cos(x)cos(y) + %C == cos(y + x) + %C 
Type: RewriteRule(Integer,Integer,Expression(Integer)) 
(4) -> 
(4) -> eq1:= t1 = cos(x)*sin(y)-sin(x)*cos(y) 

(4) t1 = cos(x)sin(y) - cos(y)sin(x) 
Type: Equation(Expression(Integer)) 
(5) -> eq2:= t2 = cos(x)*cos(y)-sin(x)*sin(y) 

(5) t2 = - sin(x)sin(y) + cos(x)cos(y) 
Type: Equation(Expression(Integer)) 
(6) -> eq3:= expr = t1*cos(x3) + 5 + tan(q)*tan(w) + t2*w*cos(a)+ t1*t2*r3 

(6) expr = tan(q)tan(w) + t1 cos(x3) + t2 w cos(a) + r3 t1 t2 + 5 
Type: Equation(Expression(Integer)) 
(7) -> 
(7) -> eq4:=expr = subst(rhs eq3,t1=rs rhs eq1) 

(7) expr = tan(q)tan(w) + (cos(x3) + r3 t2)sin(y - x) + t2 w cos(a) + 5 
Type: Equation(Expression(Integer)) 
(8) -> eq5:=expr_s = subst(rhs eq4,t2=rc rhs eq2) 

(8) 
expr_s 
= 
tan(q)tan(w) + (r3 cos(y + x) + cos(x3))sin(y - x) + w cos(a)cos(y + x) + 5 

Type: Equation(Expression(Integer)) 
(9) -> 


Reagrding "rules", there is an excellent tutorial by Franz Lehner where you 
will find more examples (Section 4.5, though it's in German, but that's not a 
problem to undersrand the examples): 
https://www.math.tugraz.at/mathc/compmath2/Demo/fricas-tutorium-0.6.pdf 

On Tuesday, 24 January 2017 23:38:52 UTC+1, Constantine Frangos wrote: 


I wanted to ask for some assistance in using fricas to 
perform some specific trigonometric simplifications. 

(1) The relevant fricas commands or re-write rules to perform 
the following simplifications. 

t1 = cos(x)*sin(y)-sin(x)*cos(y) to sin(y-x), 

t2 = cos(x)*cos(y)-sin(x)*sin(y) to cos(x+y). 

(2) I have expressions which are sums of products of the 
above-mentioned terms. For example, 

expr = t1*cos(x3) + 5 + tan(q)*tan(w) + t2*w*cos(a) 
+ t1*t2*r3 

How can fricas commands be applied in order to simplify 
expr to 

expr_s = sin(y-x)*cos(x3) + 5 + tan(q)*tan(w) + 
cos(x+y)*w*cos(a) + sin(y-x)*cos(x+y)*r3 ? 


Thanks very much. 

Regards, 
Constantine Frangos. 

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to