matlab怎么生成几何布朗运动,Python代码:几何布朗运动-怎么了?
看来X=(mu-0.5*sigma**2)*t+(sigma*W) ###geometric brownian motion####而不是X=(mu-0.5*sigma**2)*dt+(sigma*sqrt(dt)*W)因为T代表时间范围,我认为t应该是t = np.linspace(0, T, N)现在,根据这些Matlab示例(here和here),它出现了W = np.random.stan

看来X=(mu-0.5*sigma**2)*t+(sigma*W) ###geometric brownian motion####
而不是X=(mu-0.5*sigma**2)*dt+(sigma*sqrt(dt)*W)
因为T代表时间范围,我认为t应该是t = np.linspace(0, T, N)
现在,根据这些Matlab示例(here和here),它出现了W = np.random.standard_normal(size = N)
W = np.cumsum(W)*np.sqrt(dt) ### standard brownian motion ###
不是W=(standard_normal(size=Steps)+mu*t)
请检查一下数学,不过,我可能错了。
所以,把它们放在一起:import matplotlib.pyplot as plt
import numpy as np
T = 2
mu = 0.1
sigma = 0.01
S0 = 20
dt = 0.01
N = round(T/dt)
t = np.linspace(0, T, N)
W = np.random.standard_normal(size = N)
W = np.cumsum(W)*np.sqrt(dt) ### standard brownian motion ###
X = (mu-0.5*sigma**2)*t + sigma*W
S = S0*np.exp(X) ### geometric brownian motion ###
plt.plot(t, S)
plt.show()
收益率

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)