gpt4 book ai didi

python - 与 python 的随机集成

转载 作者:太空狗 更新时间:2023-10-29 21:11:00 25 4
gpt4 key购买 nike

我想对包含白噪声的积分进行数值求解。

在数学上白噪声可以用变量X(t) 来描述,它是一个具有时间平均值的随机变量,Avg[X(t)] = 0和相关函数,Avg[X(t), X(t')] = delta_distribution(t-t')

一个简单的例子是计算 X(t)t=0t=1 的积​​分。平均而言,这当然是零,但我需要的是这个积分的不同实现。

问题是这不适用于 numpy.integrate.quad()

是否有处理随机积分的 python 包?

最佳答案

这是数值 SDE 方法的良好起点:http://math.gmu.edu/~tsauer/pre/sde.pdf .

这是我去年为类项目编写的随机微分方程 dX_t = a(t,X_t)dt + b(t,X_t)dW_t 的简单 numpy 求解器。它基于正则微分方程的前向欧拉法,在实际求解SDEs时应用相当广泛。

def euler_maruyama(a,b,x0,t):
N = len(t)
x = np.zeros((N,len(x0)))
x[0] = x0
for i in range(N-1):
dt = t[i+1]-t[i]
dWt = np.random.normal(0,dt)
x[i+1] = x[i] + a(t[i],x[i])*dt + b(t[i],x[i])*dWt
return x

本质上,在每个时间步,函数的确定性部分使用正向欧拉积分,随机部分通过生成均值为 0 和方差 dt 的正态随机变量 dWt 积分 并就此整合随机部分。

我们这样生成 dWt 的原因是基于布朗运动的定义。特别是,如果 $W$ 是布朗运动,则 $(W_t-W_s)$ 服从均值为 0 且方差为 $t-s$ 的正态分布。所以 dWt 是 $W$ 在一个小时间间隔内变化的离散化。

这是上述函数的文档字符串:

Parameters
----------
a : callable a(t,X_t),
t is scalar time and X_t is vector position
b : callable b(t,X_t),
where t is scalar time and X_t is vector position
x0 : ndarray
the initial position
t : ndarray
list of times at which to evaluate trajectory

Returns
-------
x : ndarray
positions of trajectory at each time in t

关于python - 与 python 的随机集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33053940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com