[R] Behaviour of very large numbers
Martin Becker
martin.becker at mx.uni-saarland.de
Thu Aug 30 18:11:21 CEST 2007
willem vervoort wrote:
> Dear all,
> I am struggling to understand this.
>
> What happens when you raise a negative value to a power and the result
> is a very large number?
>
> B
> [1] 47.73092
>
>
>> -51^B
>>
> [1] -3.190824e+81
>
> # seems fine
>
Well, this seems not to be what you intended to do, you didn't raise a
negative value to a power, but you got the negative of a positive number
raised to that power (operator precedence, -51^B is the same as -(51^B)
and not the same as (-51)^B...).
If you really want to raise a negative value to a fractional power, you
may want to tell R to use complex numbers:
B <- 47.73092
x <- complex(real=seq(-51,-49,length=10))
x^B
[1] 2.117003e+81-2.387323e+81i 1.718701e+81-1.938163e+81i
[3] 1.394063e+81-1.572071e+81i 1.129702e+81-1.273954e+81i
[5] 9.146212e+80-1.031409e+81i 7.397943e+80-8.342587e+80i
[7] 5.978186e+80-6.741541e+80i 4.826284e+80-5.442553e+80i
[9] 3.892581e+80-4.389625e+80i 3.136461e+80-3.536955e+80i
>
Regards,
Martin
> # now this:
>
>> x <- seq(-51,-49,length=100)
>>
>
>
>> x^B
>>
> [1] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN <snip>
>
>> is.numeric(x^B)
>>
> [1] TRUE
>
>> is.real(x^B)
>>
> [1] TRUE
>
>> is.infinite(x^B)
>>
> [1] FALSE FALSE FALSE FALSE FALSE
>
> I am lost, I checked the R mailing help, but could not find anything
> directly. I loaded package Brobdingnag and tried:
> as.brob(x^B)
> [1] NAexp(NaN) NAexp(NaN) NAexp(NaN) NAexp(NaN) NAexp(NaN)
>
>> as.brob(x)^B
>>
> [1] NAexp(187.67) NAexp(187.65) NAexp(187.63) NAexp(187.61)
>
> I guess I must be misunderstanding something fundamental.
>
> Any clues would be really appreciated.
> Willem
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list