Problem with cubic root

5 Ansichten (letzte 30 Tage)
Chesus
Chesus am 10 Sep. 2023
Kommentiert: Bruno Luong am 11 Sep. 2023
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 Kommentar
Dyuman Joshi
Dyuman Joshi am 10 Sep. 2023
What is there to fix? That is one of the 3 cube roots of -1.
Do you wish to obtain -1 as the output?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Sam Chak
Sam Chak am 10 Sep. 2023
nthroot(-1, 3)
ans = -1
  4 Kommentare
Walter Roberson
Walter Roberson am 10 Sep. 2023
Bearbeitet: Walter Roberson am 10 Sep. 2023
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 am 11 Sep. 2023
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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by