Trigonometri Problems at atand and acosd

1 visualización (últimos 30 días)
Andy Rahmawan
Andy Rahmawan el 18 de Oct. de 2012
Hi.. can you help me pls.. I have a problem :
54.8=acosd(20/(100-z))-atand(40/(500-z))
how to evaluate z at matlab? thanks..

Respuesta aceptada

Matt Fig
Matt Fig el 18 de Oct. de 2012
Editada: Matt Fig el 18 de Oct. de 2012
This is perfect for the FZERO function....
fzero(@(z) 54.8-acosd(20./(100-z))+atand(40./(500-z)),30)
  4 comentarios
Walter Roberson
Walter Roberson el 18 de Oct. de 2012
Caution: the above will only find a single solution at most, but there are two solutions (I say "at most" because there are two singularities and you need to watch out for the possibility that your guess is on the far side of a singularity from a solution.)
Matt Fig
Matt Fig el 18 de Oct. de 2012
Yes, Walter is correct. To see good initial guesses (and also a bad initial guess) for the solutions, look where the black line crosses the blue line:
x = 0:.01:500;
f = @(z) 54.8-acosd(20./(100-z))+atand(40./(500-z));
plot(x,f(x))
line([0 500],[0 0],'color','k')

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 18 de Oct. de 2012
You can use the symbolic toolbox if you have it.
Otherwise, rewrite the expression by subtracting the left-hand side from both sides, and then using a zero finder.
Note: there is more than one solution.

Categorías

Más información sobre Symbolic Math Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by