3
$\begingroup$

Consider the recursion formular

$$ p_n(k) = (k+1) \,p_{n-1}(k)+(n-k)\,p_{n-1}(k-1)\qquad n\geq 3,$$

for $k=1,2,...,n-2$, with the conditions

$$ p_n(0)=p_n(n-1)=1\qquad n\geq 2$$

How can I get numerical solutions of that system with help of RSolve or RecurrenceTable?

Edit 2: After restarting the kernel I got

enter image description here

Edit 3: Sorry, here it is

 RecurrenceTable[{p[n,k] == (k+1)p[n-1,k ]+(n-k)p[n -1,k-1], 
    p[2,0]==1,p[2,1]==1,p[n,0]==1,p[n,n-1]==1}, p,{n,3,10},{k,1,n-2}]

Edit 4: The first few iterations are

$$[1, 1]$$

$$[1, 4, 1]$$

$$[1, 11, 11, 1]$$

$$[1, 26, 66, 26, 1]$$

$$[1, 57, 302, 302, 57, 1]$$

$$[1, 120, 1191, 2416, 1191, 120, 1]$$

$$[1, 247, 4293, 15619, 15619, 4293, 247, 1]$$

$$[1, 502, 14608, 88234, 156190, 88234, 14608, 502, 1]$$

$\endgroup$
  • $\begingroup$ Please show what you tried with RSolve and what it returned. The documentation has examples with two variables. Search for "partial" within the RSolve doc page. $\endgroup$ – Szabolcs Apr 14 '17 at 19:58
  • $\begingroup$ Re update: p is black, which tells you that it has a value. Restart your kernel (Quit[]) and try again. Or just Clear[p]. $\endgroup$ – Szabolcs Apr 14 '17 at 20:02
  • $\begingroup$ It might be a problem that $k$ runs from 1 to $n-2$ and not to a fixed number. $\endgroup$ – kaffeeauf Apr 14 '17 at 20:05
  • 1
    $\begingroup$ Please post copyable code too, not only the screenshot. I'm off for today, sorry, but you have a better chance for an answer if people don't have to retype your code. $\endgroup$ – Szabolcs Apr 14 '17 at 20:06
  • $\begingroup$ RSolve[] and RecurrenceTable[] are sadly not that very good at handling partial difference equations. $\endgroup$ – J. M. will be back soon Jul 31 '17 at 3:09
4
$\begingroup$

Purely for convenience, let us shift all indices by one, so that the smallest indices are 1 instead of 0. Then, the code in the question becomes

RecurrenceTable[{p[n, k] == (k + 1) p[n - 1, k] + (n - k) p[n - 1, k - 1], p[3, 1] == 1,
    p[3, 2] == 1, p[n, 1] == 1, p[n, n - 1] == 1}, p, {n, 4, 10}, {k, 2, n - 2}]

It is not clear to me that RecurrenceTable is able to accept either the initial condition p[n, n - 1] == 1 or the limits {k, 2, n - 2}, although I could be mistaken. In any case, an alternative approach is to define the iterative function.

p[3, 1] = 1;
p[3, 2] = 1;
p[n_, 1] = 1;
p[n_, k_] := 1 /; k == n - 1
p[n_, k_] := (k + 1) p[n - 1, k] + (n - k) p[n - 1, k - 1]

Note that p[n_, k_] := 1 /; k == n - 1 sets p[k, n] to 1 only if k == n - 1, reproducing the condition p[n, n - 1] == 1 in the question.

ptab = Table[p[n, k], {n, 1, 10}, {k, 1, Max[n - 1, 1]}];
Grid[ptab]

enter image description here

n varies from 1 to 10, top to bottom, and k from 1 to 10, left to right.

$\endgroup$
1
$\begingroup$

Just for something different:

f[a_] := {1}~Join~
  MapIndexed[{Length@a - #2[[1]] + 1, #2[[1]] + 2}.#1 &, 
   Partition[a, 2, 1]]~Join~{1}
r[0] := {1}
r[1] := {1}
r[n_] := Nest[f, {1, 1}, n - 1]

Visualizing:

Column[Row[r@#, " | "] & /@ Range[0, 10], Alignment -> Center]

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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