# Can I simplify (solve) a certain DifferenceRoot expression?

I've generated this expression

DifferenceRoot[
Function[{\[FormalY], \[FormalN]}, {62022240 +
545995032 \[FormalN] + 2056791388 \[FormalN]^2 +
4333244560 \[FormalN]^3 + 5587600700 \[FormalN]^4 +
4517982000 \[FormalN]^5 + 2238010000 \[FormalN]^6 +
621200000 \[FormalN]^7 +
74000000 \[FormalN]^8 + (-19027008 - 158454120 \[FormalN] -
566231672 \[FormalN]^2 - 1135130960 \[FormalN]^3 -
1397526400 \[FormalN]^4 - 1082880000 \[FormalN]^5 -
516080000 \[FormalN]^6 - 138400000 \[FormalN]^7 -
16000000 \[FormalN]^8) \[FormalY][\[FormalN]] +
3 (2 + 5 \[FormalN]) (3 + 5 \[FormalN])^2 (4 +
5 \[FormalN]) (6 + 5 \[FormalN]) (5 + 6 \[FormalN]) (7 +
6 \[FormalN]) (31 + 20 \[FormalN]) \[FormalY][
1 + \[FormalN]] == 0, \[FormalY][1] == 158/31}]][n]


Can it be placed in a more transparent form and/or meaningfully manipulated?

• What do you mean by "meaningfully manipulated"? They can be used within Sum[], Product[], and a number of other symbolic functions. If you want an explicit solution of the underlying difference equation, you could try feeding it to RSolve[], or use FunctionExpand[] on the DifferenceRoot[] itself. Aug 10, 2016 at 16:38
• OK, thanks very much J. M. I'm aware of Function Expand and, of course, FullSimplify. I tried applying RSolve--but I wasn't quite sure what to import to it, and got error messages. So what is the correct code for applying RSolve here? Aug 10, 2016 at 16:51

The OP in a comment above asks how to use RSolve on the problem. RSolve can, in fact, be used to obtain an explicit expression for an arbitrary term in the series, although this expression is not particularly useful. Designate the DifferenceRoot in the question as f. Then,

First[Head[f]][y, n]
(* {62022240 + 545995032 n + 2056791388 n^2 + 4333244560 n^3 +
5587600700 n^4 + 4517982000 n^5 + 2238010000 n^6 + 621200000 n^7 +
74000000 n^8 + (-19027008 - 158454120 n - 566231672 n^2 -
1135130960 n^3 - 1397526400 n^4 - 1082880000 n^5 -
516080000 n^6 - 138400000 n^7 - 16000000 n^8) y[n] +
3 (2 + 5 n) (3 + 5 n)^2 (4 + 5 n) (6 + 5 n) (5 + 6 n) (7 + 6 n)
(31 + 20 n) y[1 + n] == 0, y[1] == 158/31} *)


gives the corresponding recurrence relation and initial condition, which can be solved after several minutes of computation by

(y /. RSolve[%, y, n][[1, 1]])
(* g = Function[{n}, (3^(-3 n) 64^(-2 + n) (3 + 5 n) ... *)


With a LeafCount of 25894, it is far too long to reproduce here.

Not surprisingly, the Difference Root for n -> 1 returns the initial condition in less than a second.

f /. n -> 1
(* 158/31 *)


It also returns results for larger n quickly. For instance,

f /. n -> 3
(* 22801/3692 *)


In contrast, the RSolve result

FullSimplify[g[1]]


takes several minutes to return the same initial values and

FullSimplify[g[3]]


runs for an hour without producing a result. Thus, as noted originally, RSolve indeed produces an explicit expression, but it is not useful in practice.

For completeness, f can be plotted over a wide range in several seconds.

ListLogLinearPlot[Table[f, {n, 1, 1000, 10}], PlotRange -> All, DataRange -> 1000]