[R] Understanding and predict round-off errors sign on simple functions
Bert Gunter
bgunter.4567 at gmail.com
Wed Jun 29 17:13:40 CEST 2016
I am certainly no expert, but I would assume that:
1. Roundoff errors depend on the exact numerical libraries and
versions that are used, and so general language comparisons are
impossible without that information;
2. Roundoff errors depend on the exact calculations being done and
machine precision and are very complicated to determine
So I would say the answer to your questions is no.
But you should probably address such a question to a numerical analyst
for an authoritative answer. Maybe try stats.stackexchange.com .
-- Bert
Bert Gunter
"The trouble with having an open mind is that people keep coming along
and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
On Wed, Jun 29, 2016 at 2:55 AM, Sirhc via R-help <r-help at r-project.org> wrote:
> Hi,
>
>
>
> May be it is a basic thing but I would like to know if we can anticipate
> round-off errors sign.
>
>
>
> Here is an example :
>
>
>
> # numerical matrix
>
> m <- matrix(data=cbind(rnorm(10, 0), rnorm(10, 2), rnorm(10, 5)), nrow=10,
> ncol=3)
>
>
>
>> m
>
> [,1] [,2] [,3]
>
> [1,] 0.4816247 1.1973502 3.855641
>
> [2,] -1.2174937 0.7356427 4.393279
>
> [3,] 0.8504074 2.5286509 2.689196
>
> [4,] 1.8048642 1.8580804 6.665237
>
> [5,] -0.6749397 1.0944277 4.838608
>
> [6,] 0.8252034 1.5595268 3.681695
>
> [7,] 1.3002208 0.9582693 4.561577
>
> [8,] 1.6950923 3.5677921 6.005078
>
> [9,] 0.6509285 0.9025964 5.082288
>
> [10,] -0.5676040 1.3281102 4.446451
>
>
>
> #weird moving average of period 1 !
>
> mma <- apply(m, 2, SMA, n=1)
>
>
>
>> mma
>
> [,1] [,2] [,3]
>
> [1,] NA NA NA
>
> [2,] -1.2174937 0.7356427 4.393279
>
> [3,] 0.8504074 2.5286509 2.689196
>
> [4,] 1.8048642 1.8580804 6.665237
>
> [5,] -0.6749397 1.0944277 4.838608
>
> [6,] 0.8252034 1.5595268 3.681695
>
> [7,] 1.3002208 0.9582693 4.561577
>
> [8,] 1.6950923 3.5677921 6.005078
>
> [9,] 0.6509285 0.9025964 5.082288
>
> [10,] -0.5676040 1.3281102 4.446451
>
>
>
>
>
> #difference should be 0 but here is the result
>
>> m - mma
>
> [,1] [,2] [,3]
>
> [1,] NA NA NA
>
> [2,] 0.000000e+00 0.000000e+00 -8.881784e-16
>
> [3,] 0.000000e+00 0.000000e+00 -8.881784e-16
>
> [4,] 0.000000e+00 4.440892e-16 -8.881784e-16
>
> [5,] -1.110223e-16 4.440892e-16 -8.881784e-16
>
> [6,] -1.110223e-16 2.220446e-16 -4.440892e-16
>
> [7,] -2.220446e-16 2.220446e-16 0.000000e+00
>
> [8,] -2.220446e-16 0.000000e+00 0.000000e+00
>
> [9,] -3.330669e-16 2.220446e-16 -8.881784e-16
>
> [10,] -3.330669e-16 4.440892e-16 -8.881784e-16
>
>
>
> SMA function use runMean
>
> # TTR / R / MovingAverages.R
>
> "SMA" <- function(x, n=10, ...) { # Simple Moving Average
>
> ma <- runMean( x, n )
>
> if(!is.null(dim(ma))) {
>
> colnames(ma) <- "SMA"
>
> }
>
> return(ma)
>
> }
>
>
>
>
>
> Can anyone explain me that round error type?
>
> Is it possible to reproduce this same error generation in another language
> like C++ or C# ?
>
>
>
> Thanks in advance for your answers
>
>
>
> Regards
>
>
>
> Chris
>
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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