跳转到主要内容

Langevin积分器,用于具有常漂移和扩散的SDE,在具有圆形边界条件的连续区间上。

项目描述

Build Status

CILES:连续区间朗吉万方程模拟器

Langevin积分器,用于具有常漂移和扩散的SDE,在具有圆形边界条件的连续区间上。

CILES是用Cython编写的,并使用GSL对漂移和扩散场进行插值,以模拟连续变量。

描述

给定一个离散的漂移场A(x)和一个(位置相关的)扩散系数B(x),此工具执行简单的SDE时间正向积分

dx(t)/dt = A(x(t)) + sqrt(B(x(t))) * eta(t)

其中eta(t)是一个高斯白噪声项,x是一个具有圆形边界(通常是0 <= x < 2PI)的区间上的变量。

漂移场A和扩散B都需要是相同维度的数组。它们内部使用gsl_interp_cspline_periodic进行插值,以提供连续的场,然后用于正向积分。

正向积分使用Euler-Murayama方案执行:x(t+dt) = x(t) + dt * A(x(t)) + r * sqrt(dt * B(x(t))),其中r是一个具有零均值和单位方差的正态分布随机数。

依赖关系

安装

  • 克隆仓库

  • python setup.py install

  • 测试(使用nosetests):nosetests

示例用法

from ciles.integrator import LangevinIntegrator as LI
import numpy as np

drift = np.zeros(100)  # no drift field
diff = np.ones(100)  # constant diffusion with 1 deg^2/s

dt = 1e-3  # 1 ms timestep
tmax = 1.  # simulate until 1s

# initialize the integrator
li = LI(drift, diff, dt=dt, tmax=tmax)

# simulate a single trajectory
li.run()
out = li.out

更多示例

以下是来自ciles.examples的当前可用示例的绘图结果。

2秒扩散后的最终分布

查看源代码

Diffusion for 2 seconds

具有2个固定点的漂移场轨迹

查看源代码

Plotting trajectories

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源码分发

ciles-0.1.0.tar.gz (61.4 kB 查看哈希值)

上传时间: 源码

构建分发

ciles-0.1.0-cp27-cp27m-macosx_10_11_x86_64.whl (32.5 kB 查看哈希值)

上传时间: CPython 2.7m macOS 10.11+ x86-64

支持者