没有合适的资源?快使用搜索试试~ 我知道了~
xSPDE:随机微分方程求解工具箱 - 开放获取软件代码生成器,Matlab环境下可获取ScienceDirect
可在www.sciencedirect.com上在线获取ScienceDirectSoftwareX 5(2016)12原始软件出版物www.elsevier.com/locate/softxxSPDE:随机方程放大图片作者:Simon Kiesewetter,Rodney Polkinghorne,Bogdan Opanchuk,Peter D.德拉蒙德Swinburne University of Technology,Melbourne,Victoria 3122,澳大利亚接收日期:2015年12月19日;接受日期:2016年摘要我们介绍了一个可扩展的软件工具箱,xSPDE,求解普通和偏随机微分方程。该工具箱广泛使用向量和并行方法。输入非常简单,以减少学习曲线,所有许多输入参数都有默认选项。该代码计算函数平均值,相关性和频谱,检查时间步长和采样中的错误,并提供了几种算法选择。代码的大多数方面,包括数值算法,都有模块化的功能设计,允许用户修改。布拉奇 2016作者由Elsevier B.V.发布。这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/在/4。0/)。关键词:随机软件代码生成器代码元数据当前代码版本v1.04用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-15-00087法律代码许可证MIT许可证使用git的代码版本控制系统使用Matlab的软件代码语言、工具和服务编译要求,操作环境依赖性并行工具箱是首选,但可选如果可用链接到开发人员文档/手册http://xspde-matlab.readthedocs.org问题支持电子邮件peterddrummond@gmail.com1. 动机和意义随机微分方程是具有随机噪声项的它们广泛应用于许多领域,包括生物学、化学、物理学、工程学、经济学、气象学等学科。很少有公开可用的通用软件包可用于解决这些问题,特别是当推广到随机偏微分方程时。xSPDE是一个基于Matlab的软件工具箱,可以数值求解随机方程的常微分和偏微分情况,并绘制相关性和平均值的结果。它同时使用矢量化和核心*通讯作者。电子邮件地址:peterddrummond@gmail.com(P.D. Drummond)。并行速度。其面向对象的模块化设计使其易于扩展和修改。由程序求解的随机偏微分方程[4]或SPDE定义在一个时间维和三个空间维中。xSPDE工具箱主要设计用于处理Stratonovich方程[2],Stratonovich方程是有限带宽随机噪声方程的宽带极限,但也可用于Ito方程实向量场或复向量场a的常微分方程或偏随机微分方程[5,6]为:拉瓜t=A[a]+B[a]·t(t)+L(t)·a。(一)这里,A是一个向量或向量场,B是一个矩阵,而A是一个真实的噪声向量,在时间上是增量相关的在普通http://dx.doi.org/10.1016/j.softx.2016.02.0012352-7110/2016作者。由爱思唯尔公司出版 这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/by/4. 0/)。=∇={个=[]=[]我JIjin.da = @(a,z,r)z; xspde(in);微分方程的情况下,S. Kiesewetter et al./ SoftwareX 5(2016)12-1513随机轨迹被顺序地记录在数据单元阵列中,而原始轨迹数据被存储在原始单元阵列i(t)(二)对于随机偏微分方程,L[ ]是线性项和导数的任意矩阵,在向量场分量指数中是对角的,并且λrx,λrk是实delta相关噪声场:<$$>x(t,x)<$x<$t′,x′<$$>=δ<$x−x′<$δ<$t−t′<$δij<$k(t,k)<$kt ′,k′=f(k)δk−k′δt−t′δij.(三)这里f(k)是一个任意的动量滤波器,允许处理具有有限相关距离的噪声目前假定横向边界条件是周期性的,尽管这可以由于模块化设计而改变。通常情况下,这样的方程被广泛用于处理环境和热噪声,量子模拟中的量子噪声,以及由于生灭过程中离散粒子数的统计而产生的随机效应xSPDE的重要性在于它的易用性和适应性。它具有模块化的功能设计,其架构可以在未来轻松扩展到其他语言。 使用广泛的、可自定义的默认设置大大缩短了学习曲线。它具有紧凑输入的交互和批处理模式,并计算时域和空域频谱。它具有用户可定义的功能,包括算法本身。一个被广泛使用的基于C++的工具箱XMDS [7,8]也可以用来解决类似的问题。这涵盖了不同的用户需求,并减少了最终用户的定制。2. 软件描述主代码是一个名为xspde的简短函数。这将调用模拟函数xsim,然后调用图形函数xgraph。它们也可以单独使用,这对于批处理模式操作很有用。模拟功能是模块化的,有20个不同的功能组件,很容易更换或修改。完成后,将打印时间和错误。xSPDE工具箱允许在原始方程中定义任何微分和线性函数,以及选择积分算法。模拟可以按顺序进行,以模拟实验中的各个阶段,具有一般传递函数和噪声输入。它计算任何复或实场矢量函数的平均值,如果需要,可以在时间和空间上进行傅里叶变换。由于有限的时间步长和样本大小的误差估计都提供作为标准功能。2.1. 数据输入和输出为了解释数据流,模拟输入被存储在输入单元阵列中,该输入单元阵列描述模拟序列,使得输入1,2,... . 中的每个结构都有一个输出,该输出是下一个结构的输入。的平均值如果需要的话如果序列中有一个模拟,则只需要一个结构。通过给出文件名,可以存储输出并在以后绘制图形。所 有 平 均 值 和 原 始 数 据 结 果 都 可 以可 以 以 Matlab(.mat)或标准化的HDF5(.h5)格式存储。2.2. 差错控制如果指定了错误检查,则最终输出的图形和数据将具有错误条,这也是默认的参数设置。这是为了确保最终结果是准确的。如果错误太大,有一个明确的策略。增加时间点或时间点之间的步骤数也可以改变算法和外推阶数以改善误差。xSPDE中的采样误差估计使用子系综平均。合奏分为三个级别。使用轨迹的平行向量有效地计算第一级。根据中心极限定理,这些样本平均值在大样本数下服从正态分布这种方法受到可用内存的限制。接下来,样本平均值在两个更高级别的集合上平均,其方差用于估计平均值的标准偏差,因为每个计算的量现在是正态分布的结果。下一个更高级别的集成是串行执行的,以最大限度地减少内存使用,而最高级别的集成则在集群中的单独核心或CPU上使用并行模拟。3. 说明性实例3.1. 示例:最简单的随机方程类型是随机游走,因此,在一行代码中有xSPDE实现:这里的符号。 label参数将具有特定标签的参数值添加到中的结构。,而符号@(a,z,r)是内联或匿名函数的Matlab符号,在这种情况下是导数da/dt,标记为.da。 所有参数都有默认值,大多数不需要输入。为了给出标准化的符号,a是随机场,z是随机噪声,并且r是保持模拟时间r.t、空间网格点的坐标r.x、r.y、r.z和其他参数的结构比这复杂得多的复杂性当然是可能的。作为另一个例子,频谱有许多用途,特别是用于理解任何随机物理系统的 稳 态 波 动 为 了 实 现 这 一 点 , 只 需 包 括 参 数in.transforms=1,以随时间对场进行傅里叶变换,从而给出频谱。实现包络平均通过在.ensembles中包括参数的值。一==| |=-=||int n = 2;int size = 3;in. step= 10;in.linear = @(D,r)i*0.01*(D.x.^2+D.y.^ 2); in.observe = @(a,~)abs(a).^二、in.images = 6;in.olabels ='|一|^2';in.da= @(a,z,r)(1-abs(a(1,:)).^2).*个...+0.001*(z(1,:)+i*z(2,:));xspde(in)14岁。Kiesewetter等/ SoftwareX 5(2016)12在定义函数in.initial,它的第一个参数是一个随机域。3.2. SPDE示例一个典型的SPDE是随机Ginzburg-Landau(SGL)方程。在这个例子中,它有一个时间维度和两个空间维度,总共是d3。它描述了对称性破缺:系统发展出一个自发相,它也可以在空间上变化。该模型被广泛用于描述激光,磁性,超导性,超流性甚至粒子物理学:a/t=1 −|一|2a+b<$( x, t)+c<$2a(4)其中(x,t) δx−x′。(五)求解b 0的SGL方程。001和C 0。01i需要下面给出的简短脚本,该脚本指定每个绘制点10个步骤以获得良好的精度,以及6个电影图像以分析三维动态输出强度,α2作为一个单一的随机轨迹的时间的函数,如图所示。1.一、这里D.x是x-导数,使用傅立叶变换进行计算,并由线性响应函数使用。在Matlab语法中,要将向量按元素相乘,如a ib ic i,符号a=b。C使用。任何维度中的字段都是xSPDE中的 第一个索引是场分量,而第二个索引指 示 可以并行处理的不 同 轨 迹 和 晶 格 位 置 。 符 号a(1,:)意味着在第二索引的所有值上重复操作,第二索引是晶格/系综索引。4. 影响xSPDE解决的问题包括许多常见的情况下,常微分和偏微分随机方程。这些方程在生物学、化学、物理学、经济学、工程学和气象学中都有应用。它们被用来模拟量子噪声和/或环境噪声,所有这些都有重要的应用。为了提高速度,该设计可以简单地用更专业的基于GPU的代码替换组件[9]。该程序的主要用途是它的灵活性。每一个新问题都需要少量的输入,这加快了Fig. 1. SGL弹道的二维模拟,投影到y0.颜色对应于一个2,只是为了增加表现力。开发时间,并减少了在不同应用中进行大量测试的需要。以前的软件包xMDS到目前为止已经有超过40,000次下载。xSPDE提供的改进是其易用性和更大的模块化,允许简单的最终用户修改,甚至超出了已经包含的广泛功能。底层代码体经过了良好的测试。它附带了一组19个说明性的基准方程,每个方程都有解析解。每种类型的程序输入都有默认设置,因此学习曲线最小。时间步长和采样误差的估计给出了任何结果的精度范围该工具箱主要由计算物理学的研究生使用,但不限于物理学。4.1. 交互式和批处理应用程序xSPDE程序的交互式使用可以提供快速周转。这在学习工具箱、选择参数值或进行错误控制时非常有用。在交互模式下,xSPDE输入和函数直接输入Matlab命令窗口,以获得即时反馈。这种方法的一个重要优点是原型设计的速度,因为测试和编码所需的时间减少了。分析一个新的研究问题所需的用户代码量通常不超过一个页面,而具有此功能的手工编码程序需要数千行代码。2015年,它被交互式地应用于ANZENZENG物理暑期学校,导致40名学生在不到四个小时的时间内编码并解决了几个看不见的挑战性问题,以前从未使用过xSPDE。对于更大的、时间要求更严格的研究项目,批量使用是常规的,除了添加用于数据存储的文件名之外,xSPDE代码没有改变。在任何规模的并行集群上的多个核心和节点上的操作可以简单地通过以下方式获得:将单个参数添加到in.ensembles向量。为了使基本功能适应新的用户需求,可以重新定义任何函数或结构名称以增加默认值。=--函数b=normstep(a,z,dt,r)b = xMP(a,z,dt,r);norm = sqrt(xint(abs(b).^ 2,r. dx,r));b = b/norm;端4.2. 开放式面向对象体系结构S. Kiesewetter et al./ SoftwareX 5(2016)12-1515致谢整个数据结构是面向对象的,包括数据和方法。然而,xSPDE有一个比通常的面向对象编程风格更开放的体系结构,这是一个允许可扩展性的故意选择例如,在某些物理应用中,在每个时间步之后将场归一化是很重要的。在xSPDE中,只需通过添加.step@normstep以及新的函数定义来重新定义默认的时间步长函数xMP5. 结论我们已经描述了一个开放的工具箱集成随机方程具有高度模块化和可扩展的架构,在许多领域的应用。我们确认R.Y.的输入。德赫,K. Ng湖,加-地罗萨莱斯-萨拉特,R.R.约瑟夫,J.J.希望,和2015年ANZENUS暑期学校的学生。引用[1] 阿诺德湖随机微分方程:理论与应用。 重印版,FolensPublishers;1992年。[2] 加德纳CW。随机方法手册。2nd ed. Berlin:Springer-Verlag;1985年。[3] 德拉蒙德警局,希勒里·M.非线性光学的量子理论。剑桥:剑桥大学出版社,2014.[4] Werner MJ, 德拉蒙德 警局 J Comput 物理学1997;132(2):312-26。http://dx.doi.org/10.1006/jcph.1996.5638网站。[5] 德拉蒙德警局莫蒂默岛J Comput Phys1991;93:144-70.[6] Kloeden PE,Platen E.随机微分方程的数值解。Berlin:Springer-Verlag.[7] 我是德拉蒙德警局的科莱库特·GR Comput Phys Comm2001;142:219-23.[8] Dennis GR,Hope JJ,Johnsson MT. Comput Phys Comm 2013;184:201-18.[9] Januszewski M,Kostur M.随机微分方程的加速数值解CUDA的微分方程Comput Phys Comm 2010;181(1):183-8.http://dx.doi.org/10.1016/j.cpc.2009.09.009网站。网址http://www.sciencedirect.com/science/article/pii/S0010465509002999。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功