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.
