ITERATIVE SOLUTION OF ONE UNKNOWN VALUE IN AN EQUATION

1 view (last 30 days)
Please I need an iput on how to solve the value of t in the following equation x = cos(t) - y*sin(t).
%% Solution for t
x = 0.9991/1.02;
y = 2.1838/1.2544;

Accepted Answer

John D'Errico
John D'Errico on 2 Nov 2023
Edited: John D'Errico on 2 Nov 2023
Hint: try solving for t.
syms x y t
tsol = solve(x == cos(t) - y*sin(t),t)
tsol = 
So there are two solutions. Much of the time, a fully real solution will not exist. That will depend on the values of x and y.
subs(tsol,[x,y],[0.9991/1.02,2.1838/1.2544])
ans = 
vpa(ans)
ans = 
You can ignore the imaginary part of that, since it is essentially a VPA zero.
Alternatively, you could just use fzero.
txyfun = @(t,x,y) cos(t) - y*sin(t) - x;
x = 0.9991/1.02;
y = 2.1838/1.2544;
tfun = @(t) txyfun(t,x,y);
First, PLOT IT. Does a solution exist?
fplot(tfun)
yline(0)
So it would appear there are infinitely many solutions. fzero can find one of them. I don't even need to give it a brack around a root in this case.
[tval,fval,exitflag] = fzero(tfun,0)
tval = 0.0117
fval = 0
exitflag = 1

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!