Can the general term my recurrence equations be written with Floor or Mod?

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 \[Pi])/5 - ArcTan[15/Sqrt[85 + 38 Sqrt[5]]]] + 
  2/5 Sqrt[28 - 53/Sqrt[5]]
    Sin[(4 n \[Pi])/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
````
-
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 at 15:52

1
@Daniel Please use backticks to offset code in comments. Thanks. – Mr.Wizard♦ Jan 23 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 at 18:22

4 Answers

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.

-

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] &
````

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
````

````{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] &
````

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]
````
-

Also:

````y[n_] := Ceiling[6/5 n] + Switch[Mod[n, 5], 0, -5, 1, -1, 2, 0, 3, -2, 4, -4];
````
-

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}]
````
-
lang-mma
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 22, "mathjax_display_tex": 1, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": false, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "plain"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.8149681687355042, "perplexity_flag": "middle"}