Solve equation with 2 unknowns using solve

조회 수: 1(최근 30일)
Jane Low 2021년 6월 30일
댓글: Jane Low 2021년 6월 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

댓글을 달려면 로그인하십시오.

채택된 답변

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 = 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.
댓글 수: 1표시숨기기 없음
Jane Low 2021년 6월 30일
Thank you :)

댓글을 달려면 로그인하십시오.

추가 답변(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])
0.1306 0.9166
7.4822 52.5178
댓글 수: 1표시숨기기 없음
Jane Low 2021년 6월 30일
Thank you :)

댓글을 달려면 로그인하십시오.

R2021a

Community Treasure Hunt

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

Start Hunting!