# Solve equation with 2 unknowns using solve

1 view (last 30 days)
Jane Low on 30 Jun 2021
Commented: Jane Low on 30 Jun 2021
How to solve the two equation below?
cos(3a)+cos(3b)=0
cos(a)+cos(b)=1.6
Ans:
a = 7.6 degree = 0.132645 rad
b = 52.4 degree = 0.9145525 rad
Hereby my code
syms a b
sol = solve(cos(3*a)+cos(3*b)==0, cos(a)+cos(b)==1.6,[a,b])
sol.a
sol.b
and it gave me this
In sym/solve>warnIfParams (line 478)
In sym/solve (line 357)
sol =
struct with fields:
a: [1×1 sym]
b: [1×1 sym]
ans =
z
ans =
z1

Walter Roberson on 30 Jun 2021
syms a b
sol = vpasolve(cos(3*a)+cos(3*b)==0, cos(a)+cos(b)==1.6,[a,b],[0, pi; 0, pi])
sol = struct with fields:
a: [1×1 sym] b: [1×1 sym]
sol.a
ans =
0.91660896848843414923150917923804
sol.b
ans =
0.13058858270816359692270528185513
Your equations are symmetric in your variables, so this is an equivalent solution to what you posted.
Jane Low on 30 Jun 2021
Thank you :)

Alan Stevens on 30 Jun 2021
There are an infinite number of solutions! Restrict the range. One possibility is as follows
bfn = @(a) acos(1.6-cos(a));
fn = @(a) cos(3*a)+cos(3*bfn(a));
a0 = 0.1; % initial guess
a = fzero(fn, a0);
b = bfn(a);
disp([a, b])
0.1306 0.9166
7.4822 52.5178
Jane Low on 30 Jun 2021
Thank you :)

R2021a

### Community Treasure Hunt

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

Start Hunting!

Translated by