why do i keep getting a negatie value for angle

Antworten (1)

David Hill
David Hill am 14 Jun. 2022
Bearbeitet: David Hill am 14 Jun. 2022

0 Stimmen

Recommend avoiding using symbolics. Seeking numerical solution, use fzero.
mo=2.5;
y=1.4;
angle=10;
fun=@(a)((2*(1+((y-1)/2)*mo^2*(sind(a)).^2))./(((y+1)*mo^2*sind(a).*cosd(a))))-tand(a-angle);
A=fzero(fun,32);

3 Kommentare

Sarah Alhabbas
Sarah Alhabbas am 14 Jun. 2022
I appreciate your response.
However, the code should give the ouput answer as 32 so it should not be included in the code.
You could also plot and see that there are two solutions between (0 - 90).
mo=2.5;
y=1.4;
angle=10;
fun=@(a)((2*(1+((y-1)/2)*mo^2*(sind(a)).^2))./(((y+1)*mo^2*sind(a).*cosd(a))))-tand(a-angle);
x=3:.1:87;
plot(x,fun(x));
David Hill
David Hill am 14 Jun. 2022
Bearbeitet: David Hill am 14 Jun. 2022
When you graph the function you see solutions should be around 30 and 80. fzero requires an initial guess. 32 is not an exact solution.
mo=2.5;
y=1.4;
angle=10;
fun=@(a)((2*(1+((y-1)/2)*mo^2*(sind(a)).^2))./(((y+1)*mo^2*sind(a).*cosd(a))))-tand(a-angle);
A=fzero(fun,30)
A = 31.8506
mo=2.5;
y=1.4;
angle=10;
fun=@(a)((2*(1+((y-1)/2)*mo^2*(sind(a)).^2))./(((y+1)*mo^2*sind(a).*cosd(a))))-tand(a-angle);
A=fzero(fun,80)
A = 85.5761

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Mathematics finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 14 Jun. 2022

Kommentiert:

am 14 Jun. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by