raising negative number to a power
16 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
William Perkins
am 3 Jun. 2016
Kommentiert: Steven Lord
am 18 Okt. 2024
>> c=-1.5^2
c=-2.2500
>> c=-1.5*-1.5
c=2.2500
The latter result is correct. The former is incorrect. How to raise negative numbers to a power that is internally consistent and correct in Matlab.
0 Kommentare
Akzeptierte Antwort
Callum Clarke
am 3 Jun. 2016
Just put your negative values in brackets:
(-1.5)^2 = 2.2500
In your case Matlab is applying the sign afterwards, as it sees it as a standard operator and is following the usual operation order by calculating the power before subtraction.
4 Kommentare
Jason
am 18 Okt. 2024
Hello,
I typed a rather simple expression: (-8)^(1/3)
but the answer I got was 1.0000 + 1.7321i, instead of a nice -2. Any ideas...?
Thank you, Jason
Steven Lord
am 18 Okt. 2024
There are three values that when raised to the third power give -8. [Yes, the real parts of y are not all exactly -8 and y has a non-zero imaginary part. Such is floating point arithmetic.]
format longg
x = roots([1 0 0 8]) % roots of x^3+8 = 0 or x^3 = -8
y = x.^3
z1 = nthroot(-8, 3)
w1 = z1.^3
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Exponents and Logarithms 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!