Search code examples
rsequenceyacas

R - how to define a "symbolic sequence"


Let's say that we have this sequence of numbers:

1/2, 1/3, 1/4, ..., 1/N

Sorry for the bad formatting, but the LaTeX doesn't work here. Let's say that we define a function which sums all the elements of this sequence:

Σ n = 1N 1/n

The N is supposed to be in the superscipt, but I can't align it properly here - anyway, this function would calculate the sum of all 1/n elements starting from n=1 to N.

I now want to find the limit of this function when N tends to infinity using R. For this, I was planning to use the lim function from the Ryacas package as suggested in this question.

However, I can't seem to find a way to make my script work. My idea was this:

x <- ysym("x")
sq <- 1:x
fun <- sum(1/sq)
lim(fun, x, Inf)

However, I am already getting an error at the second step of this process. I can't seem to run the sq <- 1:x:

Error in 1:x : NA/NaN argument
In addition: Warning message:
In 1:x : numerical expression has 3 elements: only the first used

So it seems that it's not possible to define a "symbolic sequence" (don't know what else I would call it) in this way.

What would be the proper way to calculate what I want?


Solution

  • This series goes to infinity:

    library(Ryacas)
    yac_str("Sum(n, 1, Infinity, 1/n)")
    # "Infinity"
    

    Let's try a convergent series:

    yac_str("Sum(n, 1, Infinity, 1/n^2)")
    # "Pi^2/6"
    

    If you really want to use Limit:

    yac_str("Limit(n, Infinity) Sum(i, 1, n, 1/i^2)")
    

    Use yac_str to execute a Yacas command.