recursion - 求解形式 p[n,m]==p[n,m-2]+p[n-1,m-1]+p[n-2,m]

标签 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}]

返回值与我的输入相同,最多是一些数字杂耍。

在文档页面上,它位于“范围”下,然后是“偏差分方程”

最佳答案

...只是我的两分钱,但这个方程组不是有缺陷吗?
IE。:

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] 的定义可以通过明确定义来解决您的问题。

关于recursion - 求解形式 p[n,m]==p[n,m-2]+p[n-1,m-1]+p[n-2,m],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3860069/

相关文章:

java - 使用图形的 Tromino 程序

wolfram-mathematica - 有没有办法在开始使用 Mathematica 之前清除所有内容?

wolfram-mathematica - 如何在 Mathematica 中获得实数的最佳近似分数

recursion - 跨编译单元的 OCaml 递归模块

javascript - 如何使用 Jquery/javascript 将递归函数转换为循环函数

Python DFS,无法弄清楚为什么如果使用 append/pop() 返回列表为空但在递归调用中适用于 []+[]

list - 方案:定义一个递归谓词 u-even?获取一个列表,如果列表中的项目数为偶数,则返回#t

wolfram-mathematica - 如何在Mathematica中按间隔定义函数?

wolfram-mathematica - 以小写字母开头的危险符号名称

wolfram-mathematica - 使用 Mathematica 从列表中创建矩阵