我正在尝试解决(找到一个封闭形式的解决方案)这个(风险赔率计算器)递归关系:
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] == 0Mathematica的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}]返回值与我的输入相同,只是在一些数字上有些不同。
在文档页面上,它在“范围”下,然后是“偏差方程式”。
发布于 2010-10-13 02:01:32
...just我的两点意见,但是这个等式系统不是有缺陷吗?即:
p[n,m] == 2890/7776*p[n,m-2] + 2611/7776*p[n-1,m-1] + 2275/7776*p[n-2,m]例如,让我们尝试计算pN,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。也许添加pn,0或pn,2的定义可以通过很好地定义它来解决您的问题。
发布于 2010-10-11 02:29:50
免责声明:我只懂一点线性代数和微积分。我对Wolfram一无所知。
这可能是因为它从根本上说是很难的。你链接到的例子都比你的简单。例如,请看下面的示例:
RSolve[a[m + 1, n] - 3/4 a[m, n + 1] == 0, a[m, n], {m, n}]所有的am,n都在一条直线上,m+n=k表示某个常数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}]该链接中的所有示例也都在一条直线上。对于你需要知道的每个am,n总是m的函数,任何这种形式的东西都很容易用线性代数矩阵求解。(如果您想知道如何执行这些操作,请告诉我。)
然而,对于你的,情况并非如此。你的扩展就像一棵树,而不是一条线。我认为这可能就是困难所在。
这让我想起了偏导数和全导数之间的区别。这可能是一个很好的起点。
https://stackoverflow.com/questions/3860069
复制相似问题