Python中的随机微积分库

15
我正在寻找一个Python库,它可以让我计算随机微积分相关的东西,例如我定义扩散过程的(条件)期望值。我查看了simpy (simpy.sourceforge.net),但似乎它并不满足我的需求。
这是为了快速原型设计和实验。 在java中,我成功地使用了http://martingale.berlios.de/Martingale.html库。
问题本身并不困难,但有很多不平凡的模板事情要做(高效的内存使用、变量缩减技术等等)。
理想情况下,我应该能够编写像这样的代码(仅仅是举例):
def my_diffusion(t, dt, past_values, world, **kwargs): W1, W2 = world.correlated_brownians_pair(correlation=kwargs['rho']) X = past_values[-1] sigma_1 = kwargs['sigma1'] sigma_2 = kwargs['sigma2'] dX = kwargs['mu'] * X * dt + sigma_1 * W1 * X * math.sqrt(dt) + sigma_2 * W2 * X * X * math.sqrt(dt) return X + dX
X = RandomProcess(diffusion=my_diffusion, x0 = 1.0) print X.expectancy(T=252, dt = 1./252., N_simul= 50000, world=World(random_generator='sobol'), sigma1 = 0.3, sigma2 = 0.01, rho=-0.1)

有没有其他方法,而不是例如在numpy中重新实现它?


注意:这是非常有趣的材料,但不幸的是它似乎不包括路径/时间相关的过程: http://pymc.googlecode.com/svn/doc/index.html - LeMiz
作为一个从事这种工作的专业人士,我可以向您保证,如果您使用准随机数(例如 Sobol 序列),即使没有方差缩减技术,您也可以处理一些琐碎的代码。 - Alexandre C.
我也以此为生(而且在巴黎)!在模拟基础资产时能够重复使用相同的图纸不仅可以减少估计方差,还非常有用。 Sobol序列也有其缺点。但当然,问题是关于实验,而不是生产代码。 - LeMiz
如果你需要的话,我知道一些在R中可用的库。 - pyCthon
@pyCthon,你能分享一下这些名称吗? - Nick
5个回答

1
我在Python中看到的最接近这个的是PyMC - 这是各种马尔可夫链蒙特卡洛算法的实现。

1

你看过sage了吗?


我在Sage中没有找到随机模拟软件包。 - LeMiz

0

我认识一个人使用Sundials来解决随机ODE/PDE问题,但我不太了解这个库是否适用于你的情况。这里有它的Python绑定here


这是一个PDE求解器,而不是MC工具。我希望能将所有问题转换为低维PDE...现在,我只想调查一些模型的外观和感觉(例如轨迹看起来像什么)。 - LeMiz

0
我正在开发一个随机过程(包括扩散过程和一些条件)的Python库。请访问此链接以查看Google项目主页。干杯!

我认为这更适合作为一条注释。 - arshajii

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接