How can I calculate the value in an equation?

1 visualizzazione (ultimi 30 giorni)
gamma=1.4
V_M_2 = 20;
V_M_2 = sqrt((gamma+1)/(gamma-1)) * atan(sqrt((gamma-1)/(gamma+1)*(M_2^2-1)))-atan(sqrt(M_2^2-1))
How can I find the M_2 from this equation? Thank you.

Risposta accettata

Sam Chak
Sam Chak il 26 Apr 2022
Please verify if the nonlinear equation is correct.
Looks like there are no real solutions for this one.
  4 Commenti
Ali Deniz
Ali Deniz il 27 Apr 2022
That's right, I should find another way. Thank you.
Sam Chak
Sam Chak il 27 Apr 2022
Modificato: Sam Chak il 27 Apr 2022
@Ali Deniz, Thanks for the correction.
By the way, the nonlinear function has a limit, .
So, if , then it has roots. Please check again.
gamma = 1.4;
V_M_2 = 2.0;
% function to be solved
f = @(x) sqrt((gamma + 1)/(gamma - 1))*atan(sqrt((gamma - 1)/(gamma + 1)*(x^2 - 1))) - atan(sqrt(x^2 - 1)) - V_M_2;
% initial guess
x0 = 20;
% root-finding solver
xsol = fzero(f, x0)
xsol =
17.9584

Accedi per commentare.

Più risposte (1)

Torsten
Torsten il 26 Apr 2022
I don't see a root:
gamma=1.4
V_M_2 = 20;
fun = @(M_2)V_M_2 - (sqrt((gamma+1)/(gamma-1)) * atan(sqrt((gamma-1)/(gamma+1)*(M_2-1)))-atan(sqrt(M_2-1)));
M_2 = -20:0.1:200;
plot(M_2,fun(M_2))

Community Treasure Hunt

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

Start Hunting!

Translated by