从ODE或SDE模拟系统,分析时间序列。

nsim的Python项目详细描述


从odes、sde或分数odes模拟系统,分析时间序列。
n.b.这是一个预发行版:还有很多工作要做

模拟

nsim是用于物理、生物学和金融领域的系统,这些系统是用微分方程连续时间建模的。nsim使定义和模拟这些(包括适当的噪声处理)和分析产生的时间序列变得容易。

  • 自动并行计算/集群计算:对于多个或重复的模拟,nsim将它们分布在集群或amazon ec2云(或一台计算机的cpu)上,而无需进行任何并行编程。
    (首先配置一个IPython cluster。例如,在一台计算机上可以键入ipcluster start
  • 要定义标量或向量ode系统,请子类ODEModel。(参见examples)定义标量或向量sde系统,子类ItoModelStratonovichModel。现在支持多个驱动维纳进程。默认情况下,SDE积分使用1.0阶强随机Runge-Kutta算法(R_ler2010)。要定义标量或向量caputo分数ode系统,请子类CaputoModel

  • 模型参数可以指定为随机分布,以创建多个不相同的模拟。

  • NetworkModel类允许您模拟耦合到网络中的许多子系统,网络结构指定为加权有向图。子模型可以都是相同的,但它们不一定是相同的。(可以选择使用networkx包生成各种在网络模型中有用的随机、集群和小世界图)。网络模型中的子模型甚至可以是用于模拟网络的其他网络模型。

分析时间序列

除了模拟得到的时间序列外,还可以从Matlab.mat文件或.edf文件中加载经验时间序列数据进行分布式分析。

  • nsim提供了一个Timeseries类。这是一个numpy数组。
    它允许按时间而不是按数组索引对数组进行切片,例如可以将ts.t[10.5:30]从t=10.5写到t=30秒。当操作数组时,它将跟踪多变量时间序列的任何通道名(或变量名)。
  • 除了通常的numpy数组方法之外,Timeseries对象还有额外的方法,可以方便地进行过滤、绘图和分析。分析可以在管道中链接在一起。例如,使用Timeseries实例ts,您可以编写一系列分析,如ts.t[10:30].bandpass(20,35).hilbert().abs().plot()
    通过调用Timeseries.add_analyses()
    多个时间序列的分析分布在集群上,无需进行任何并行编程。
  • 要获得最佳结果,请使用启用了__numpy_ufunc__功能(尚未发布)的numpy。这使我们能够在分析得到的时间序列时支持分布式计算。您可以在此处启用此实验功能获得numpy:https://github.com/mattja/numpy/archive/master.zip

  • 待办事项

    • 自动生成覆盖点格的多个模拟 参数空间,并行运行。
    • 任选地允许在c中指定和积分方程, 对于速度
    • 添加对具有时间延迟(DDE和延迟SDE)的模型的支持。
    • 目前,单个CPU核心用于模拟 模型,包括网络模型。理想情况下可以使用共享内存和 每个集群主机上有多个CPU核,用于模拟模型实例, 在单个主机上均匀地跨CPU拆分自由度。

    谢谢

    结合了福里斯盛宝的额外时间序列分析 pyeeghttp://fsbao.net

    ipyparallel交互式并行计算: https://ipyparallel.readthedocs.org/

    另请参见:

    sdeint:sde集成算法库,由nsim用来进行模拟。https://github.com/mattja/sdeint

    fodeint:由nsim使用的分数ode集成算法库。https://github.com/mattja/fodeint

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

    推荐PyPI第三方库


    热门话题
    java如何通过编程将Android置于待机状态?   java mavenjarsignerplugin在Jenkins构建期间失败,但不是在命令行上   java创建具有公共ipv4地址的HttpServer   将数据从jsp传递到servlet的java返回null   Web应用程序中的java JDBC数据库连接   java无法显示unicode字符   java webview应用程序未上载图片或视频   Android客户端Java服务器,如果订单处理方式不正确,客户端将无法连接   java在不复制备份表的情况下创建备份表   集合如何在Java中实现列表折叠   java如何配置在JBoss7中使用EntityListeners?   java JVM ClassUnloadingWithConcurrentMark标志   java如何在Maven中排除特定的单元测试   java线程在SynchronousQueue中执行put操作后挂起   java中的hibernate Comparator和可比较的负面场景   数组中的java连接元素   拖放Java,让面板落在鼠标事件上   java是一种事务管理应用程序,无需在方法上使用@transactional   java有没有办法从安卓的软键板上删除这一行?