建模语言CellML初步

2024-02-14 22:04
文章标签 初步 建模语言 cellml

本文主要是介绍建模语言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 asdef comp main asvar 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文件。

这篇关于建模语言CellML初步的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709678

相关文章

初步学习Android的感想

之前在学习java语言的时候就经常听说过Android这门语言,那时候感觉Android有些神秘感,再加上Android是用来开发移动设备的一门语言,所以一直对Android抱有一种兴奋的心情。 在我开始接触 Android之后,感觉超好玩,因为可以在自己的手机设备上开发一些我喜欢的小应用,再想想之前说学习Android应该会很难,但是如果你真的接触了,而且有JAVA的功底,我想学习Androi

UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图

陈科肇 ============= 1.主要模型 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。 包括序列图、活动图、状态图。 因为要创建个人空间项目并不是一个很大的项目,我这里只须关注两种图的创建就可以了,而在开始创建UML图

初步了解VTK装配体

VTK还不太了解,根据资料, vtk.vtkAssembly 是 VTK库中的一个重要类,允许通过将多个vtkActor对象组合在一起来创建复杂的3D模型。 import vtkimport mathfrom vtk.util.colors import *filenames = ["cylinder.stl","sphere.stl","torus.stl"]dt = 1.0renW

Weka的初步介绍

Weka无疑是数据挖掘入门的最好工具,初学者可以直接使用图形界面了解数据挖掘的相关算法(如何使用网上有很多教程,可以参考 http://download.csdn.net/detail/u013422712/8649239)。     进阶阶段就必须学会使用和了解Weka的源码,这会在接下去的文章中写道。

Maven的初步使用以及命令行工具

在写本文的时候先来说明一下maven依赖的各种范围的意思 compile(编译范围) compile 是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。 provided(已提供范围)provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如,如果你开发了一个web 应用,你可能在编译cl

基于LangChain+LLM的相关技术研究及初步实践

01 概述 大模型概述 大模型是指具有大规模参数和复杂计算结构的机器学习模型。这些模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。大模型的设计目的是为了提高模型的表达能力和预测性能,能够处理更加复杂的任务和数据。大模型在各种领域都有广泛的应用,包括自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量数据来学习复杂的模式和特征,具有更强大的泛化能力,可以对未见过的数据

Mybaites初步认知

Mybaties中映射语句是最强大的地方。ResultMap是其中最重要,最强大的元素。 一个Mybaties以一个SqlSessionFactory实例为中心,通过配置类SqlSessionFactoryBuilder创建SqlSessionFactory. SqlSessionFactory作用域为application,在整个应用程序中始终存在,获取sqlsession实例。(SqlSe

2024数学建模国赛选题建议及初步思路来啦!

大家好呀,全国大学生数学建模竞赛今天下午开赛啦,在这里先带来初步的选题建议及思路。 目前团队正在写B题和C题完整论文,后续还会持续更新哈,大家三连关注一下防止迷路。 精力有限,以下只是简略的图文版初步思路,更详细的视频版完整讲解请移步: 2024数学建模国赛选题建议及A、B、C题思路_哔哩哔哩_bilibili 首先是主基调: 本次国赛推荐大家选择B或C题目。A题目只建议数理基础很扎

2024高教社杯数学建模国赛ABCDE题选题建议+初步分析

提示:DS C君认为的难度:C<B<A,开放度:A<C<B 。 D、E题推荐选E题,后续会直接更新E论文和思路,不在这里进行选题分析,以下为A、B、C题选题建议及初步分析 A题:“板凳龙” 闹元宵 A题是数模类赛事很常见的物理类赛题,需要学习不少相关知识。此题涉及对一个动态系统的建模,模拟一支舞龙队伍在螺旋路径中的行进,并求解队伍的整体动态行为。包括队伍的每秒位置、速度、碰撞检测、路径优化等

面向对象的简单初步认识

首先我们从一道经典的面向对象题目理解:一头母牛一年生一头小牛,一头小牛过四年也每年生一头小牛,照此推算,20年后一共有多少头牛? 牛:为一个具体对象。 牛:属性:年龄 按照题意可知:这头牛的年龄只要达到4岁就能开始生小牛 那首先我们先写一个小牛类:没过一年生一头小牛,这里面应该有个方法记录小牛的年龄,和新增的小牛 ​public void cow(){private int age;