Inverse cosine of complex numbers

11 visualizaciones (últimos 30 días)
Sriram
Sriram el 9 de Oct. de 2014
Editada: Andrew Reibold el 10 de Oct. de 2014
I'm trying to get the inverse cosine of a complex number. Using the definition given in the help of acos(z) produces a different result than directly using acos. See below for the code snippet. Can someone help me out?
format LONGENG
z = 0.625820036622262+1.576125391478034E-055i;
res1 = acos(z)
d = z + i*sqrt(1-(z*z))
res2 = -i*log(d)

Respuestas (1)

Andrew Reibold
Andrew Reibold el 9 de Oct. de 2014
Editada: Andrew Reibold el 9 de Oct. de 2014
I know why!
You were close, but you didn't quite replicate the definition in the documentation correctly.
This is how you would write it.
d = z + i*sqrt(1-z*z)
res2 = -i*log(d)
Using this corrected definition, I get approximately 0.894613863 + ~0i for both answers.
First Method Solution: 0.894613863926113 - 2.02075780910344e-55i
Second Method Solution: 0.894613863926114 + 1.11022302462516e-16i
Bother of the i values are near negligible in magnitude relative to the real part.
Hope this helped!
-Andrew
  4 comentarios
Sriram
Sriram el 9 de Oct. de 2014
Can we know how acos is implemented within MATLAB for them to get -2.02075780910344e-55i? Clearly it must some numerical implementation -
Andrew Reibold
Andrew Reibold el 10 de Oct. de 2014
Editada: Andrew Reibold el 10 de Oct. de 2014
For some reason I thought your square root function was only taking the square root of z^2. Unless you edited the question, I just made an honest mistake saying you typed it wrong I guess.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing 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