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$ – user26514 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.'s discontentment 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.

| improve this answer | |
$\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

| improve this answer | |
$\endgroup$

Your Answer

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