# Thread: A Recursive Function Problem in Mathematica

1. ## A Recursive Function Problem in Mathematica

Hello,

I have the following recursive function:

$\displaystyle \beta_{kj}=\sum_{l=k-N+1}^k \frac{\beta_{l(j-1)}}{(k-l)!} I_{[0,(j-1)(N-1)]}(l)$

where $\displaystyle \beta_{00}=\beta_{0j}=1, \beta_{k1}=1/k!, \beta_{1j}=j$

$\displaystyle I_{[a,b]}(l)= \left\{ \begin{array}{cc} 1 & a \leq l \leq b\\ 0 & \mbox{ otherwise} \end{array} \right.$

and I tried to write it using Mathematica as following:

Code:
fun[m_,n_,r_]:=If [m<=r<=n,1,0];
B[0,j_,N_]:=1;
B[1,j_,N_]:=j;
B[k_,1,N_]:=1/k!;B[k_,j_,N_]:=Sum[B[l,j-1,N]/Factorial[k-l]×fun[0,((j-1)×(N-1)),l],{l,l=k-N+1,k}]
I have this function programmed well in MATLAB, and I use it as a reference to check the Mathematica code which fails to give correct answers. Can anyone tell me where is the error in the Mathematica code?

Hint: If you write at Mathematica B[3,3,3] it must give you 4, B[2,3,3] = 4.5, B[4,4,4]=10.5 as given by using the MATLAB code.

2. (didn't need the l= syntax):

Code:
In[1397]:= fun[m_, n_, r_] := If[m <= r <= n, 1, 0];
B[0, j_, n_] = 1;
B[1, j_, n_] = j;
B[k_, 1, n_] = 1/k!;
B[k_, j_, n_] :=
Sum[B[l, j - 1, n]/Factorial[k - l]*fun[0, (j - 1) (n - 1), l], {l,
k - n + 1, k}]
B[3, 3, 3]
B[2, 3, 3]
B[4, 4, 4]

Out[1402]= 4

Out[1403]= 9/2

Out[1404]= 21/2

3. Originally Posted by shawsend
(didn't need the l= syntax):

Code:
In[1397]:= fun[m_, n_, r_] := If[m <= r <= n, 1, 0];
B[0, j_, n_] = 1;
B[1, j_, n_] = j;
B[k_, 1, n_] = 1/k!;
B[k_, j_, n_] :=
Sum[B[l, j - 1, n]/Factorial[k - l]*fun[0, (j - 1) (n - 1), l], {l,
k - n + 1, k}]
B[3, 3, 3]
B[2, 3, 3]
B[4, 4, 4]

Out[1402]= 4

Out[1403]= 9/2

Out[1404]= 21/2
Thank you very much, I didn't notice that at all.
Thank you again.