A similar post here but no answers. http://www.mathworks.com/matlabcentral/newsreader/view_thread/86495
Why matlab return me a complex number
14 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
David
am 27 Sep. 2013
Beantwortet: Edu Santos
am 21 Mai 2019
Hi, Why >>(-27)^(1/3) return me a complex number rather than -3??? I am curious about this. Please help.
Akzeptierte Antwort
Andreas Goser
am 27 Sep. 2013
From the documentation
doc power
"Note that for a negative value X and a non-integer value Y, if the abs(Y) is less than one, the power function returns the complex roots. To obtain the remaining real roots, use the nthroot function."
1 Kommentar
Weitere Antworten (2)
Edu Santos
am 21 Mai 2019
If instead you do:
(abs(-27))^(1/3)
you may have the good absolute value with the bad sign.
Storing the sign in a term, for example like this:
-27/abs(-27)
we can arrive to the expected answer by doing:
-27/abs(-27)*(abs(-27))^(1/3)
=-3
A simpler way is to just do
nthroot(-27,3)
=-3
0 Kommentare
Azzi Abdelmalek
am 27 Sep. 2013
% By definition a^n=exp(n*log(a))
% also if a is a positive real number, log(-a)=log(a)+j*pi
a=-27;
n=1/3
out1=exp(n*log(a))
%the same as
out2=a^n
0 Kommentare
Siehe auch
Kategorien
Mehr zu Special Functions finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!