Help using fsolve (theta beta mach)
Ältere Kommentare anzeigen
I have a disgusting equation that needs to be solved for another variable:
tand(theta) = 2*atand(beta)*(M^2*sind(beta)^2-1)/(M^2*(1.4+cosd(2*beta))+2)
I need it to be solved for beta with theta and M known.
How do I use fsolve to solve for that equation?
Antworten (2)
Star Strider
am 22 Mär. 2022
Bearbeitet: Star Strider
am 22 Mär. 2022
The fsolve function is a root-finding algorithm, so the search must be for zeros of the function. The function needs to be expressed in that context —
f = @(beta,theta,M) tand(theta) - 2*atand(beta).*(M.^2*sind(beta).^2-1)./(M.^2.*(1.4+cosd(2*beta))+2);
theta = 30;
M = 42;
beta0 = 180*rand; % Can Be Anything
betav = fsolve(@(beta)f(beta,theta,M), beta0)
NOTE — Since this is a trigonoometric equation, there could be an infinity of solutions, integer multiples of 360°.
.
David Hill
am 22 Mär. 2022
syms theta;
beta=35;M=1.3;%example
eqn=tand(theta) == 2*atand(beta)*(M^2*sind(beta)^2-1)/(M^2*(1.4+cosd(2*beta))+2);
vpasolve(eqn)
Kategorien
Mehr zu Programming finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!