在Matlab中计算函数nchoosek的双重和的最有效方法

时间:2017-06-19 19:22:20

标签: algorithm matlab sum evaluation binomial-coefficients

我想在Matlab中实现以下函数,Pnk: Pnk

接下来,我想实现一个不同的函数,它使用在Pnk函数和另一个函数中输入的n和k的不同值的双重和:

sumsum

我在Matlab中以有效的方式实现这些功能时遇到了麻烦。我通过在向量中存储n和k的值并分别评估每个组合来成功地实现它们,但这在计算上是非常密集的。什么是最有效的方法,以便我可以在Pnk函数中输入n和k的向量,然后取k = 1的双和:n和n = 1:Inf(或将其限制在某个上限,即n = 15)?

仅供参考:这些函数用于使用Kou模型计算期权定价(http://www.columbia.edu/~sk75/MagSci02.pdf

修改: 可以使用Andrzej Kozlowski的代码在Mathematica中成功实现该模型http://demonstrations.wolfram.com/OptionPricesInTheKouJumpDiffusionModel/

此问题所涉及的具体部分以下列方式在Mathematica中编码:

With[{w = 15},
Exp[(\[Sigma]*\[Eta]1)^2*T/2]/(Sqrt[2*\[Pi]*T]\*\[Sigma]\)*
 Sum[Exp[-\[Lambda]*T*(\[Lambda]*T)^n/n!*
  PP[n, k, p, \[Eta]1, \[Eta]2]*(\[Sigma]*Sqrt[T]*\[Eta]1)^k*
   II[k - 1][a - \[Mu]*T, -\[Eta]1, -1/(\[Sigma]*Sqrt[T]), 
 -\[Sigma] \[Eta]1 Sqrt[T]]
 , {n, 1, w}, {k, 1, n}]

和PP和II各自的功能Pnk和In。

在Mathematica中的功能: 总和并[f,{I,IMIN,IMAX},{Ĵ,J最小,J最大},...] 存在,以上述方式使用f评估: {n,1,w},{k,1,n}。

有人可以帮助我使用正确的Matlab语法来正确评估这种双重求和吗?

0 个答案:

没有答案