Problem with cubic root

조회 수: 8 (최근 30일)
Chesus
Chesus 2023년 9월 10일
댓글: Bruno Luong 2023년 9월 11일
When I try to get the cubic root of -1 (which should be -1) I get this:
(-1).^(1/3)
ans = 0.5000 + 0.8660i
How do I fix this?
  댓글 수: 1
Dyuman Joshi
Dyuman Joshi 2023년 9월 10일
What is there to fix? That is one of the 3 cube roots of -1.
Do you wish to obtain -1 as the output?

댓글을 달려면 로그인하십시오.

채택된 답변

Sam Chak
Sam Chak 2023년 9월 10일
nthroot(-1, 3)
ans = -1
  댓글 수: 4
Walter Roberson
Walter Roberson 2023년 9월 10일
편집: Walter Roberson 2023년 9월 10일
I put in the condition that when A is negative
A = -rand(1,1e6) * 100000;
l1 = log(A);
l2 = log(-A) + log(-1);
nnz(l1 ~= l2)
ans = 0
Bit for bit equality.
Bruno Luong
Bruno Luong 2023년 9월 11일
I know it is true for negative A, but readers might wonder out the blue where this come from: "log(A) is log(-A)+log(-1)"?
And next why log(-1) is 1i*pi (and not -1i*pi)? Of course one can check it with MATLAB command.
The MATLAB log doc states
log(A) = log(abs(A)) + 1i*angle(A)
why not start with that?
And btw log(A) = log(abs(A)) + 1i*angle(A) is not entirely true either in some special values of A.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by