分数布朗运动实现。

fbm的Python项目详细描述


traviscodecovpypipyversions

  • 分数布朗运动(fbm)或分数布朗运动的精确模拟方法 python中的高斯噪声(fgn)。
  • 多分数Brownian运动(MMB)模拟 多重分形高斯噪声(mgn)。

安装

fbm包在pypi上提供,可以通过pip安装:

pip install fbm

分数布朗运动

分数布朗运动可以通过hosking的方法产生, cholesky方法,或者davies-harte方法。这三种方法都是 理论上精确地生成离散采样的fbm/fgn。

用法:

fromfbmimportFBMf=FBM(n=1024,hurst=0.75,length=1,method='daviesharte')# orf=FBM(1024,0.75)# Generate a fBm realizationfbm_sample=f.fbm()# Generate a fGn realizationfgn_sample=f.fgn()# Get the times associated with the fBmt_values=f.times()

其中n是具有hurst的fbm所需的等距增量数 间隔[0,length]上的参数hurst。方法可以是 可以是'hosking''cholesky''daviesharte'。那fbm() 方法为fbm返回一个长度为n+1的离散值数组(包括 0)。fgn()方法返回fbm的长度n数组 增量,或fgn。times()方法返回一个长度为n+1的数组 与FBM实现相对应的时间。

需要nhurst参数。length参数 默认值为1,method默认值为'daviesharte'

要模拟多个实现,请使用上面提供的fbm类。一些 缓存中间值以进行重复模拟。

对于FBM或FGN的一次性样品,有单独的功能:

fromfbmimportfbm,fgn,times# Generate a fBm realizationfbm_sample=fbm(n=1024,hurst=0.75,length=1,method='daviesharte')# Generate a fGn realizationfgn_sample=fgn(n=1024,hurst=0.75,length=1,method='daviesharte')# Get the times associated with the fBmt_values=times(n=1024,length=1)

为了获得最快的性能,请使用davies和harte方法。请注意 如果hurst参数hurst接近 1并且有少量的增量n。如果发生这种情况,将发出警告 打印到控制台上,它将退回到使用hosking的方法 生成实现。欲了解更多信息,请参阅以下论文第412页 详细说明:

  • 伍德,安德鲁·塔和格蕾丝·陈。“平稳高斯过程的模拟 在[0,1]d.“计算和图形统计杂志3,第4期 (1994):409-432.

hosking的方法:

  • 霍斯金,乔纳森。“水文时间序列中的持续性建模 使用分数差分法。《水资源研究》第20期,第12期(1984年): 1898-1908年。

cholesky方法:

  • 阿斯穆森,瑟伦。面向随机的随机模拟 过程。奥胡斯大学。数学物理和 随机(maphysto)[mps],1998年。

davies harte方法:

  • 戴维斯,罗伯特B.和D.S.哈特。“赫斯特效应测试”,生物计量学74, 编号1(1987):95-101。

多重布朗运动

这个包支持^ {EM1} $近似eEM>多分数的生成 布朗运动。当前的方法使用riemann–liouville分数 mbm的积分表示。

用法:

importmathfromfbmimportMBM# Example Hurst function with respect to time.defh(t):return0.25*math.sin(20*t)+0.5m=MBM(n=1024,hurst=h,length=1,method='riemannliouville')# orm=MBM(1024,h)# Generate a mBm realizationmbm_sample=m.mbm()# Generate a mGn realizationmgn_sample=m.mgn()# Get the times associated with the mBmt_values=m.times()

这里的hurst参数应该是接受一个参数的可调用参数 并返回(0,1)中的浮点值。

对于MBM或MGN的一次性样品,有单独的可用功能:

fromfbmimportmbm,mgn,times# Define a hurst functiondefh(t):return0.75-0.5*t# Generate a mbm realizationmbm_sample=mbm(n=1024,hurst=h,length=1,method='riemannliouville')# Generate a fGn realizationmgn_sample=mgn(n=1024,hurst=h,length=1,method='riemannliouville')# Get the times associated with the mBmt_values=times(n=1024,length=1)

riemann-liouville表示方法:

方法最初提出于

中的FBM
  • 兰巴迪、桑德罗和奥姆布雷塔·皮纳扎。“一个精确的分数布朗 《物理A:统计力学及其应用》208, 编号1(1994):21-30。

适用于

近似的MM>
  • 穆尼安迪,S.V.和S.C.林。“局部自相似过程的建模 使用黎曼-刘维尔型的多重布朗运动。 审查E 63,第4号(2001):046104。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在一个问题被连续正确回答三次/并添加差异后,我如何将程序循环回开始   Java中未实例化的匿名类   java如何在Android中录制视频,只允许横向模式和最长时间录制时间   java从另一个活动发送实时消息   多线程java线程和互斥   java禁用Spring安全日志   JAVA伊奥。StreamCorruptedException:在与子级和父级ProcessBuilder通信时写入子级中的标准输出时,流头无效   使用Java(HttpURLConnection)对Restheart进行身份验证(对于Mongodb)   java如何解决Jenkins中的SAXParseException?   java为什么我需要mockito来测试Spring应用程序?   计算sin-cos和tan时缺乏精度(java)   java Hibernate。不同项目中相同一对一映射的不同行为   java图像滑块:如何使用JavaFX将图像放在另一个图像上   java Mockito在使用when时抛出NotAMockException   http Java servlet发送回响应