Solve equation with 2 unknowns using solve
    5 次查看(过去 30 天)
  
       显示 更早的评论
    
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
0 个评论
采纳的回答
  Walter Roberson
      
      
 2021-6-30
        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.a
sol.b
Your equations are symmetric in your variables, so this is an equivalent solution to what you posted.
更多回答(1 个)
  Alan Stevens
      
      
 2021-6-30
        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])
disp(rad2deg([a,b]))
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Equation Solving 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


