接下来,我想实现一个不同的函数,它使用在Pnk函数和另一个函数中输入的n和k的不同值的双重和:
我在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语法来正确评估这种双重求和吗?