kayj <kjaja27 <at> yahoo.com> writes:
> 
> 
> Hi All,
> 
> thank you all for your help. I have tried Bill's script and it works! so I
> am trying to think what was the problem and it looks like it i sthe
> precision. so you defined a function of the precision and evaluates at
> precision=500. Bill, I was wondering how did you choose 500? is it
> arbitrary?
> 

Your question was "I was wondering if it is possible to increase the precision
using R", but you never told which accuracy you really need, As a rule of thumb,
the number of correct decimal digits is about 0.3 * precision, so for 50 digits
you could set the precision to 256 to Be on the safe side.

And if you are wondering how to compute the binomial coefficients with 'Rmpfr',
here's one possibility to do that:

    require(Rmpfr)

    mpfrChoose <- function(a, b, prec=128) {
        m1 <- mpfr(1, prec=prec)
        # r <- gamma(m1+a) / (gamma(m1+b) * gamma(m1+a-b))
        # if (is.whole(r)) return(r) else return(round(r))
        gamma(m1+a) / (gamma(m1+b) * gamma(m1+a-b))
    }

An advantage of using 'Rmpfr' is that the power of R can be applied, for
example vectorization, so avoid 'for' loops if possible:

    pr  <- 256
    m_1 <- mpfr(-1, pr)
    m1  <- mpfr(1, pr)

    i <- mpfr(0:80, pr)
    s <- sum((m_1^i) * mpfrChoose(80, i, prec=pr) * (m1-(i+1)*1/200)^200)

    print(s, digits=50)
    # 1 'mpfr' number of precision  256   bits
    # [1] 6.6568524789662037699673275771182135789699510194000e-20

Hans Werner

> 
> thanks again for your help
>

______________________________________________
R-help@r-project.org 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.

Reply via email to