python中的随机演算库

2024-05-13 21:24:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一个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中重新实现它以外的其他东西吗?在


Tags: worldmydtsigmakwargsw1valuespast
3条回答

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

你看过sage了吗?在

我知道有人使用Sundials来解决随机的ODE/PDE问题,不过我对这个库的了解还不足以确定它是否适合您的情况。它here有python绑定。在

相关问题 更多 >