Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I want to know the formula for the general term of the following recurrence system. I guess it can be written with Floor or Mod. How can I find it?

RSolve[{a[n + 5] == a[n] + 6, a[1] == 1, a[2] == 3, a[3] == 2, a[4] == 1, a[5] == 1}, a[n], n]

DiscretePlot[-2 + (6 n)/5 + 
  2/5 Sqrt[28 + 53/Sqrt[5]] Sin[(2 n π)/5 - ArcTan[15/Sqrt[85 + 38 Sqrt[5]]]] + 
  2/5 Sqrt[28 - 53/Sqrt[5]] Sin[(4 n π)/5 - ArcTan[3 Sqrt[5 (85 + 38 Sqrt[5])]]],
 {n, 1, 20}]

Updated

I would like to have the formula for the general term without using recursion just as

RecurrenceTable[{y[n + 5] == y[n] + 1, 
  Sequence @@ Table[y[i] == i, {i, 5}]}, y, {n, 1, 30}]

can be written

n - 4 Floor[(n - 1)/5] /. n -> Range@30
share|improve this question
    
Not sure how to obtain this programmatically, but it is b[n_] := 6*(n - Mod[n, 5, 1])/5 + {1, 3, 2, 1, 1}.Map[DiscreteDelta, Mod[n, 5, 1] - Range[5]] –  Daniel Lichtblau Jan 23 '13 at 15:52
1  
@Daniel Please use backticks to offset code in comments. Thanks. –  Mr.Wizard Jan 23 '13 at 17:39
    
I am curious about the reason for the edit, because although it suggests you are getting recursive formulas in the answers, none of the (three) replies so far use recursion. –  whuber Jan 23 '13 at 18:22

4 Answers 4

up vote 4 down vote accepted

The argument of DiscretePlot is the sum of a linear function and explicitly periodic functions (Sin). The periodicity can be expressed by the relationship

$$\sin(x) = \sin(\text{mod}(x, 2\pi)).$$

Whence, because $n$ is multiplied by $2\pi/5$ where it appears within the arguments of $\sin$, you can reduce the evaluation of the argument to values of $n$ between (say) $1$ and $5$ via the replacement

g = f /. Sin[x_] -> Sin[Mod[x, 2 \[Pi]]]

where f represents the function. Noting that $n$ always appears divided by $5$, we can further simplify it by expressing $n$ in the form $5m + j$, $j=0, 1, 2, 3, 4$:

FullSimplify[g /. n -> 5 m + # , Assumptions -> m \[Element] Integers] & /@ Range[0, 4]

{-5 + 6 m, 1 + 6 m, 3 + 6 m, 2 + 6 m, 1 + 6 m}

Because $m = \text{floor}\frac{n-1}{5}$ and the remainder is given by Mod, we can now proceed to write a formula in terms of Floor and Mod.

However, none of this manipulation is necessary. The first line in the question exhibits a as a sum of a linear function (with slope $6/5$) and a periodic function of period $5$ defined by the values of $n$ from $1$ through $5$. Both Mod and Floor naturally work with periods starting at $0$, whence we need to (a) offset Mod by $1$ and (b) subtract $1$ from $n$ before dividing by $5$ and applying Floor. This immediately leads to the solution

a[1] = 1; a[2] = 3; a[3] = 2; a[4] = 1; a[5] = 1;
a[n_] /; n > 5 := a[Mod[n, 5, 1]] + 6 Floor[(n - 1)/5];

Looking at DiscretePlot[a[n], {n, 1, 20}] shows this to be exactly the same as the trigonometric formula.

share|improve this answer

Also:

fn[n_] := 6 Floor[(n - 1)/5] + Mod[2 n^4 + 3 n^3 + 3 n^2 + 2 n + 1, 5]
Array[fn, 30]
DiscretePlot[fn[n], {n, 30}]
share|improve this answer

Pardon me of this is tautological but perhaps there will be some value to be found here.

Your sequence can be described as a linear recurrence:

LinearRecurrence[{1, 0, 0, 0, 1, -1}, {1, 3, 2, 1, 1, 7}, 50] // 
  ListPlot[#, Filling -> Bottom] &

Mathematica graphics

Seeding this with symbolic values a simple pattern is apparent:

LinearRecurrence[{1, 0, 0, 0, 1, -1}, {a, b, c, d, e, f}, 31];
% ~Drop~ 6 ~Partition~ 5 // Column

Mathematica graphics

{a, b, c, d, e, f} = {1, 3, 2, 1, 1, 7};

Table[
  With[{x = Quotient[n, 5]}, {b, c, d, e, f}[[1 + Mod[n, 5]]] - a x + f x],
  {n, -1, 48}
] // ListPlot[#, Filling -> Bottom] &

Mathematica graphics

The sequence is the same, though the index is offset by two.

Correcting that offset and converting this to a function:

fn[n_Integer] := {-5, 1, 3, 2, 1}[[1 + Mod[n, 5]]] + 6 Quotient[n, 5]

Array[fn, 50]
{1, 3, 2, 1, 1, 7, 9, 8, 7, 7, 13, 15, 14, 13, 13, 19, 21, 20, 19, 19, 25, 27,
 26, 25, 25, 31, 33, 32, 31, 31, 37, 39, 38, 37, 37, 43, 45, 44, 43, 43, 49,
 51, 50, 49, 49, 55, 57, 56, 55, 55}

Or:

fn[n_Integer] := {-5, 1, 3, 2, 1}[[1 + #2]] + 6 # & @@ QuotientRemainder[n, 5]
share|improve this answer

Also:

y[n_] := Ceiling[6/5 n] + Switch[Mod[n, 5], 0, -5, 1, -1, 2, 0, 3, -2, 4, -4];
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.