建模语言CellML初步

文章目录

    • 简介
    • 洛伦兹吸引子
    • 仿真

简介

CellML是主打计算生理学的一个编程语言,擅长处理微分方程问题,并且内置了单位系统,是细胞层次的建模工具。openCOR为其运行环境,提供了舒适的代码编辑窗口,以及一系列IDE工具,包括查看内存,图形输出等。其官网地址为openCOR,下载相应的版本,安装之后,其界面如下

在这里插入图片描述

洛伦兹吸引子

洛伦兹吸引子即蝴蝶效应,是各种主打科学计算的编程语言都喜欢用作示例的一个模型,其数学模型是三个一阶常微分方程组(ODEs)

{ x ˙ = σ ( y − x ) y ˙ = x ( ρ − x ) − y z ˙ = x y − β z \left\{\begin{aligned} \dot x&=\sigma(y-x)\\ \dot y&=x(\rho-x)-y\\ \dot z&=xy-\beta z \end{aligned}\right. x˙y˙z˙=σ(yx)=x(ρx)y=xyβz

这也是官方教程的一个示例,其参数设为

σ = 10 , ρ = 28 , β = 8 / 3 = 2.66667 \sigma=10, \rho=28, \beta=8/3=2.66667 σ=10,ρ=28,β=8/3=2.66667

初始条件为

x ( 0 ) = y ( 0 ) = z ( 0 ) = 1 x(0)=y(0)=z(0)=1 x(0)=y(0)=z(0)=1

下面将其写为CellML代码。点击【File】->【New】->【CellML File】,即可创建一个CellML文件,内容如下。

// CellML用//进行注释
def model Lorenz as
    def comp main as
        var t: dimensionless {init: 0};
        var x: dimensionless {init: 1};
        var y: dimensionless {init: 1};
        var z: dimensionless {init: 1};
        var sigma: dimensionless {init: 10};
        var beta: dimensionless {init: 2.66667};
        var rho: dimensionless {init: 28};
        ode(x,t)=sigma*(y-x);
        ode(y,t)=x*(rho-z)-y;
        ode(z,t)=x*y-beta*z;
    enddef;
enddef;

这几行代码的可读性非常强,首先定义一个模型lorenz,模型内部定义一个组件main,可以理解为入口函数。接下来 x , y , z , σ , β , ρ x,y,z,\sigma,\beta,\rho x,y,z,σ,β,ρ均为变量,最后是三个常微分方程,表示前文建立的模型。

当光标至于某行ode时,代码上方会出现其渲染的公式,非常便捷。

在这里插入图片描述

其选项卡标签File #2后面有个星星,说明当前文件未保存,可用【File】->【Save】或Ctrl+S将文件保存为cellml格式。

仿真

将代码输入框左侧的竖排选项卡,从【Editing】切换到【Simuliation】,其模拟结果如下。

在这里插入图片描述

其中,【Simulation】下拉框中存放的是仿真参数,为了能够清晰地展示 x , y , z x,y,z x,y,z之间的变化关系,将Ending Point设为50,Point interval设为0.01,二者分别表示终止时间和时间间隔。

点击左上角三角符号,即可完成仿真。点击下方【Parameters】下拉框,可实现二维图形的绘制。

目前尚未发现OpenCOR可以绘制三维图像,但可以将数据导出为csv文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/386686.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【lesson53】线程控制

文章目录 线程控制 线程控制 线程创建 代码: 运行代码: 强调一点,线程和进程不一样,进程有父进程的概念,但在线程组里面,所有的线程都是对等关系。 错误检查: 传统的一些函数是,成功返回0&…

TeamCity创建git项目Timed out 超时的一个解决办法

问题: 当自己: ping github.com从本地推送到远程仓库浏览器浏览www.github.com ——都没有问题 但是在teamcity创建工程的时候就超时: 或者多试几次,终于成功了,然后构建的时候半途超时报错。。。。。 一种解决办…

Spring GateWay

概述简介 能干什么 反向代理 鉴权 流量控制 熔断 日志监控 Spring Cloud Gateway 与Zuul的区别 在SpringCloud Finchley正式版之前,Spring Cloud推荐的网关是 Netflix提供的Zuul: 1、Zuul 1.x,是一个基于阻塞Ⅳ/O的APl Gateway 2、Zuul 1.x基于Servl…

linux系统zabbix监控配置钉钉告警

zabbix配置钉钉告警 配置钉钉告警环境准备配置钉钉脚本文件钉钉日志目录编写脚本浏览器配置钉钉告警中文消息告警模版为用户添加报警媒介添加监控项》添加触发器》 添加玩监控项和触发器后添加动作 配置钉钉告警 环境准备 创建钉钉内部群创建自定义机器人记录加签地址和webho…

thinkphp5.0提示不支持redis,not support: redis

安装PHP扩展 例如宝塔,其他环境请用命令行,安装 redis配置完成以后,修改php.ini把redis扩展打开即可,重启环境

【AI视野·今日CV 计算机视觉论文速览 291期】Wed, 17 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Wed, 17 Jan 2024 Totally 182 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers MultiPLY: A Multisensory Object-Centric Embodied Large Language Model in 3D World Authors Yining Hong, Zishuo Zhe…

深入探索Pandas读写XML文件的完整指南与实战read_xml、to_xml【第79篇—读写XML文件】

深入探索Pandas读写XML文件的完整指南与实战read_xml、to_xml XML(eXtensible Markup Language)是一种常见的数据交换格式,广泛应用于各种应用程序和领域。在数据处理中,Pandas是一个强大的工具,它提供了read_xml和to…

第二十八回 施恩重霸孟州道 武松醉打蒋门神-可用于生产环境的Python Web框架:Pyramid

施恩给武松讲了他的烦心事,他在快活林的酒肉店被蒋门神霸占了。希望武松能帮他出气。施恩的父亲也从屏风后走出来,让施恩拜武松为兄长。 武松要去打蒋门神,跟施恩约好了“无三不过望”,望子就是酒旗,意思看到酒旗就要…

H12-821_74

74.在某路由器上查看LSP,看到如下结果: A.发送目标地址为3.3.3.3的数据包时,打上标签1026,然后发送。 B.发送目标地址为4.4.4.4的数据包时,不打标签直接发送。 C.当路由器收到标签为1024的数据包,将把标签…

【JavaEE】_HTTP请求与响应

目录 1. HTTP协议 1.1 HTTP简介 1.2 Fiddler 2. HTTP请求 2.1 首行 2.2 请求头(header) 2.3 空行 2.4 正文(body) 3. HTTP响应 3.1 首行 3.2 响应头(header) 3.3 空行 3.4 正文(bo…

跟廖雪峰老师学习Git(持续更新)

Git简介 创建版本库 第一步,创建一个新目录 第二步,通过git init变成Git可以管理的仓库 把文件添加到文本库,不要使用Windows自带的记事本! 我用的是VS code 创建readme.txt 放入库中 commit可以一次提交很多文件&#xff0…

酒店押金预授权怎么开通?微信酒店押金+房态+门锁关联 +电子押金单 解决方案

一、酒店押金管理有哪些? 1.渠道有银行预授权 2.微信押金支付 3.酒店押金系统 4.支付押金管理 二、银行预授权模式 酒店押金预授权通常是在客人办理入住时进行的,酒店会要求客人提供信用卡或借记卡的卡号、有效期、持卡人姓名等信息,然后…

Django学习全纪录:Django开发环境的搭建

导言 对于Django,它是Python的一个开发框架,之前系统地学习过。遗憾的是,对于一些遇到的问题,没有及时地记录下来。因此,我将它重新捡起,进行学习和实践。从搭建环境开始,重新去学习它&#xff…

应用进程跨越网络的通信

目录 1 系统调用和应用编程接口 应用编程接口 API 几种应用编程接口 API 套接字的作用 几种常用的系统调用 1. 连接建立阶段 2. 传送阶段 3. 连接释放阶段 1 系统调用和应用编程接口 大多数操作系统使用系统调用 (system call ) 的机制在应用程序和操作系统之间传递控制…

Kafka 之生产者(Producer)

目录 一. 前言 二. 生产消息 三. 幂等和事务 四. send() 发送消息 五. 原理解析 一. 前言 Kafka生产者是一个应用程序,它负责向 Kafka 主题发送消息。这些消息可以用于多种目的,如记录用户活动、收集物联网设备数据、保存日志消息或缓存即将写入数据…

66万个 全国行政区划代码表

66万个全国各级行政区划代码表 提供的数据一览 简介 一共有66万个全国各级行政区划,一共有5个级别的行政单位级别 表格头部数据 表格尾部数据 全国行政单位各省份数量统计 数据下载地址 数据整理不易 百度云盘 链接: https://pan.baidu.com/s/1o1C2piYj2wu…

C#,数值计算,矩阵的行列式(Determinant)、伴随矩阵(Adjoint)与逆矩阵(Inverse)的算法与源代码

本文发布矩阵(Matrix)的一些初级算法。 一、矩阵的行列式(Determinant) 矩阵行列式是指矩阵的全部元素构成的行列式,设A(a)是数域P上的一个n阶矩阵,则所有A(a)中的元素组成的行列式称为矩阵A的行列式&…

仰暮计划|“​他们艰苦半生,但真的希望祖国安祥,山河无恙”

自述,自赎 我没有在那个年代生活过,我一出生就是盛世中国,看遍了祖国的大好河山。但我没想到,走了这么远的路,吃了这么多的苦的爷爷会一直跟我说“不是国家不好,只是中国的钱拿去还债了,过了那…

Linux释放内存

free -m是Linux上查看内存的指令,其中-m是以兆(MB)为单位,如果不加则以KB为单位。 如下图表示,(total)总物理内存是809MB,(used)已使用167MB,&…

零基础学Python(10)— 序列通用操作

前言:Hello大家好,我是小哥谈。本节课就带大家认识下Python语言中常见的序列通用操作!~🌈 目录 🚀1.索引 🚀2.切片 🚀3.序列加法 🚀4.序列乘法 🚀5.检查某个元素是…