At its core, mine is a very simple communication error between me and Mathematica that I haven’t been able to crack, so I do apologise if it seems embarassingly inane.

Please consider the following simplified set-up. I have x(-1) and I seek an expression for x(5) using Table:

`root = Table(Solve(2x(b)+x(b-1)+b == 0, x(b)) /.x(-1)->1, {b,0,5})`

The output:

`{{{x(0)->-(1/2)}}, {{x(1) -> 1/2 (-1 - x(0))}}, {{x(2) -> 1/2 (-2 - x(1))}},`

`{{x(3) -> 1/2 (-3 - x(2))}}, {{x(4) -> 1/2 (-4 - x(3))}},`

`{{x(5) -> 1/2 (-5 - x(4))}}}`

.

(I don’t have the right lingo for this, but) the output elements don’t *engage* like numbers. If I were to try something like

`root((1))+1`

,

I would get

`{{1 + (x(0) -> -(1/2))}}`

(and `Rules->Equal`

just changes that `->`

to `=`

; the behaviour remains the same).

Is it possible to define these `x(b)`

such that back-substitution happens *while* Table is at work? If not, can you please advise on how to define individual output elements (without directly assigning values from the output to each x(b))?

As an aside, is it better Mathematica practice to abandon this whole Table business and use a loop instead?

So many thanks in advance!

–PhysicsHobbit