Inverse cosine of complex numbers

2 次查看(过去 30 天)
Sriram
Sriram 2014-10-9
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)

回答(1 个)

Andrew Reibold
Andrew Reibold 2014-10-9
编辑:Andrew Reibold 2014-10-9
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 个评论
Sriram
Sriram 2014-10-9
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 2014-10-10
编辑:Andrew Reibold 2014-10-10
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by