raising negative number to a power
16 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
William Perkins
il 3 Giu 2016
Commentato: Steven Lord
il 18 Ott 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 Commenti
Risposta accettata
Callum Clarke
il 3 Giu 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 Commenti
Jason
il 18 Ott 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
il 18 Ott 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
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Exponents and Logarithms in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!