如何用Mathematica解决这种多变量复发?

时间:2017-03-12 18:43:31

标签: wolfram-mathematica recurrence

我想解决这种复发关系:
$ a_ {m,n} = a_ {m-1,n} + a_ {m,n-1} $,$ a_ {0,0} = 0,a_ {m,0} = 1,a_ {0, N} = 1 $
它的输出形成了Tartaglia三角形,

解决方案应该只是组合...
$ A {M,N} =二项式(M + N,N)$

但是当我尝试用Mathematica解决它时

RSolve[{a[m, n] == a[-1 + m, n] + a[m, -1 + n], a[0, 0] == 0, 
  a[m, 0] == 1, a[0, n] == 1}, a[m, n], {m, n}]  

它只输出未评估的相同输入。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

也许你知道这一点,但如果你只是想要解决这些问题,你就不需要RSolve

Clear[a];
a[0, 0] = 0; a[m_, 0] = 1; a[0, n_] = 1;
a[m_, n_] := a[-1 + m, n] + a[m, -1 + n]
Column[Table[
  Row[Framed[#, FrameMargins -> 10] & /@ 
    Table[a[i, k - i], {i, 0, k}], " "], {k, 0, 8}], Center]

enter image description here

这似乎验证了您的配方,但似乎a[0,0]应该是1(这并不会使RSolve更快乐)

我怀疑RSolve根本无法处理它,但您可以尝试使用mathematica.stackexchange.com。

除此之外,如果你需要将它用于大数字,你可能应该使用memoization:

 a[m_, n_] := a[m,n] = a[-1 + m, n] + a[m, -1 + n]

为了完整性,预期答案为a[i,j]=Binomial[i+j,j]