[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [newbie] unexpected behaviour for x^x
From: |
fbarbuto |
Subject: |
Re: [newbie] unexpected behaviour for x^x |
Date: |
Fri, 12 Dec 2014 05:14:55 -0800 (PST) |
Your question, and some answers you've got, baffled me in many ways.
Mathematically speaking, -0.001^-0.001 (or -0.001^(-0.001) thereof) should
not be compared to 0.001^0.001, because while the latter is a real number,
the former operation yields a /complex/ number. That is easy to see if you
apply logs to both expressions, because since y = x^c (suppose "x" and "c"
as real numbers), log10(y) = c*log10(x) and hence "y" can also be computer
as y = 10**(c*log10(x)). Thus,
log10(0.001^0.001) = 0.001*log10(0.001) = 0.001*(-3) = -0.003 ===> Real
number
whereas
log10(-0.001^(-0.001)) = -0.001*log(-0.001) ===> Complex number, as the log
of a negative number does not exist in the realm of the Reals.
Therefore your comparison makes no much sense at all.
>From Octave's standpoint I got some surprising results. Whereas
-0.001^(-0.001) does indeed yield -1.0069, the same does not happen when you
create a variable x = -0.001 and perform x^x, as someone cleverly suggested:
>> -0.001^-0.001
ans = -1.00693166885180
>> x = -0.001
x = -0.00100000000000000
>> x^x
ans = 1.00692669984727590 - 0.00316336393000065i
That is the result I would have expected to see (a complex number), which is
consistent with:
>> y = -0.001*log10(-0.001)
y = 0.00300000000000000 - 0.00136437635384184i
>> 10**y
ans = 1.00692669984727590 - 0.00316336393000065i
As a cherry on the top of the cake, I have just "discovered" that the old
and much-loved (by me) Fortran/Python exponentiation syntax, "**", is also
valid in Octave:
>> 0.001**0.001
ans = 0.993116048420934
(I never fully liked the caret as an exponentiation symbol).
Regards,
Fausto
--
View this message in context:
http://octave.1599824.n4.nabble.com/newbie-unexpected-behaviour-for-x-x-tp4667762p4667772.html
Sent from the Octave - General mailing list archive at Nabble.com.