求解形式p [n,m] == p [n,m-2] + p [n-1,m-1] + p [n-2,m]的重现

时间:2010-10-05 00:13:14

标签: recursion wolfram-mathematica

我正在尝试解决(找到一个封闭形式的解决方案)这个(风险赔率计算器)递归关系:

p[n,m] == 2890/7776*p[n,m-2] + 2611/7776*p[n-1,m-1] + 2275/7776*p[n-2,m],
p[n,1] == 855/1296 + 441/1296*p[n-1,1],
p[3,m] == 295/1296*p[3,m-2] + 420/1296*p[2,m-1],
p[2,m] == 55/216,
p[1,m] == 0

Mathematica的RSolve功能不起作用(我确定我正在使用它 正确的语法,因为我正在遵循两个变量的例子 http://reference.wolfram.com/mathematica/ref/RSolve.html)。

事实上,RSolve甚至不会解决这种“更简单”的递归:

p[n,m] == p[n,m-2] + p[n-1,m-1] + p[n-2,m],
p[0,m] == 1,
p[1,m] == 1,
p[n,1] == 1,
p[n,0] == 1

解决这类问题是否有根本性的困难 复发关系还是Mathematica只是片状?

我正在使用的确切示例:

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

返回值与我的输入相同,直到某些数字杂耍。

在doc页面上,它位于“Scope”下,然后是“Partial Difference Equations”

2 个答案:

答案 0 :(得分:1)

......只是我的两分钱,但这个方程式系统是否有缺陷? 即:

p[n,m] == 2890/7776*p[n,m-2] + 2611/7776*p[n-1,m-1] + 2275/7776*p[n-2,m]

例如,让我们尝试计算p [N,2]:

p[N,2] = 2890/7776*p[N,0] + ...
       = 2890/7776*2890/7776*p[N,-2] + ...
       = ... p[N,-4] + ...

我想你明白了我的观点。永远不会达到偶数m的初始条件。 同样的:

p[3,m] == 295/1296*p[3,m-2] + ...

相反,永远不会使用初始条件p[1,m] == 0。 也许添加p [n,0]或p [n,2]的定义可以通过明确定义来解决您的问题。

答案 1 :(得分:0)

免责声明:我只知道一点线性代数和一些微积分。我对Wolfram一无所知。

可能会有一些根本性的问题。您链接的示例比您的更容易。例如,看看这个例子:

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

所有a [m,n]都在一条直线上,对于某个常数k,m + n = k。比如说你知道[10,5]。从那以后你可以计算出[11,4],[12,3]等等。但它们都是直线的。这就是输出包含m + n的一些功能的原因。你可以用一个变量重写它并获得相同的效果:

RSolve[{a[m + 1] - 3/4 a[m] == 0, m+n=k}, a[m], {m, n}]

该链接中的所有示例也是直线。对于你需要知道的每一个[m,n],n总是m的函数。使用线性代数矩阵可以很容易地解决任何形式的问题。 (如果您想知道如何做,请告诉我。)

然而,对于你的情况并非如此。你的扩展就像一棵树,而不是一条线。我认为 可能是困难。

有点让我想起偏导数和总衍生物之间的区别。这可能是一个很好的起点。