A Recursive Function Problem in Mathematica

• June 29th 2009, 11:18 PM
David
A Recursive Function Problem in Mathematica
Hello,

I have the following recursive function:

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

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

$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.

• July 1st 2009, 02:15 PM
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
• July 1st 2009, 02:20 PM
David
Quote:

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.