Inverse cosine of complex numbers

조회 수: 13 (최근 30일)
Sriram
Sriram 2014년 10월 9일
편집: Andrew Reibold 2014년 10월 10일
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