如何解决mathematica中递归关系的解析解

时间:2011-02-09 01:49:50

标签: wolfram-mathematica

我有一个重复发生,例如:

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

我尝试使用RSolve,但是我收到了一个错误:

RSolve::deqx: Supplied equations are not difference equations 
              of the given functions.

感谢您的帮助!

2 个答案:

答案 0 :(得分:9)

差分方程和初始条件是 difference equation

Mathematica(7和8)不喜欢解决它...无论是否有初始条件。 RSolve表达式未被评估

In[1]:= RSolve[{f[m,n]==f[m,n-1]+f[m-1,n],f[0,n]==f[m,0]==1},f[m,n],{m,n}]
        RSolve[{f[m,n]==f[m,n-1]+f[m-1,n]},f[m,n],{m,n}]
Out[1]= RSolve[{f[m,n]==f[-1+m,n]+f[m,-1+n],f[0,n]==f[m,0]==1},f[m,n],{m,n}]
Out[2]= RSolve[{f[m,n]==f[-1+m,n]+f[m,-1+n]},f[m,n],{m,n}]

know that Mathematica使用generating functional methods(可能还有其他东西)来解决这种复发问题,但我不知道为什么它会在如此简单的情况下失败。

所以,让我们手工完成。

设g(x,n)为f(m,n)的生成函数 enter image description here

现在检查f(m + 1,n)x ^ m的和 enter image description here

现在解决简单的代数差分方程: enter image description here

也可以使用RSolve

来完成
In[3]:= RSolve[g[x,n]-x g[x,n]==g[x,n-1]&&g[x,0]==1/(1-x),g[x,n],n];
        Simplify[%,Element[n,Integers]]
Out[4]= {{g[x,n]->(1-x)^(-1-n)}}

现在提取x ^ m的系数:

In[5]:= SeriesCoefficient[(1 - x)^(-1 - n), {x, 0, m}]
Out[5]= Piecewise[{{(-1)^m*Binomial[-1 - n, m], m >= 0}}, 0]

使用

简化二项式
In[6]:= FullSimplify[(-1)^m*Binomial[-n - 1, m] == Binomial[m + n, m], Element[{n,m}, Integers]&&m>0&&n>0 ]
Out[6]= True

所以我们终于得到了 Results!

可以使用符号和数字方式检查

In[7]:= ff[m_,n_]:=ff[m,n]=ff[m-1,n]+ff[m,n-1]
        ff[0,_]:=1;ff[_,0]:=1
In[9]:= And@@Flatten[Table[ff[m,n]==Binomial[n+m,m],{n,0,20},{m,0,20}]]
Out[9]= True

In[10]:= {f[m,n]==f[m,n-1]+f[m-1,n],f[0,n]==f[m,0]==1}/.f->(Binomial[#1+#2,#1]&)//FullSimplify
Out[10]= {True,True}

答案 1 :(得分:2)

不是答案,但似乎正确的形式应该是(最后注意{m, n}):

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

Mathematica 让这个没有评价。我认为它无法解决这个问题。