how to expand/rewrite/simplify (cos(a)+cos(b))^2?

3 views (last 30 days)
I have the code below. How to expand/rewrite/simplify the expression f^2 into cos(2a), cos(2b), cos(a+b), cos(2a), cos(2b), cos(a-b), cos(b-a)?
==========================================
syms a b;
f=cos(a)+cos(b);
combine(f^2)
ans = 
shows (cos(a) + cos(b))^2
rewrite(f^2, 'sincos')
ans = 
shows (cos(a) + cos(b))^2
simplify(f^2)
ans = 
shows (cos(a) + cos(b))^2
==========================================
  3 Comments
cfy30
cfy30 on 27 Jul 2023
The result I am looking for is without the square, the last expression below. Any way to do it?
(cos(a) + cos(b))^2
=cos(a)^2 + 2cos(a)cos(b) + cos(b)^2
=1/2*[1+cos(2a)] + cos(a+b)+cos(a-b) + 1/2*[1+cos(2b)]
Nathan Hardenberg
Nathan Hardenberg on 27 Jul 2023
I could be wrong, but I don't think this is possible. In the rewrite() documentation you can find a list of functions that can be replaced, but squares/powers are not (yet?) one of the options.
Still I want to mention that you can find multiple simplifications with the following Code:
syms a b
expr = cos(a) + cos(b);
simplify(expr,'Steps',15,'All',true)
ans = 

Sign in to comment.

Answers (0)

Products


Release

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!