raising negative number to a power
16 views (last 30 days)
Show older comments
William Perkins
on 3 Jun 2016
Commented: Steven Lord
on 18 Oct 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 Comments
Accepted Answer
Callum Clarke
on 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 Comments
Jason
on 18 Oct 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
on 18 Oct 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
More Answers (0)
See Also
Categories
Find more on Exponents and Logarithms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!