Help using fsolve (theta beta mach)
Mostrar comentarios más antiguos
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?
Respuestas (2)
Star Strider
el 22 de Mzo. de 2022
Editada: Star Strider
el 22 de Mzo. de 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
el 22 de Mzo. de 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)
Categorías
Más información sobre Programming en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!