matlab中solver函数_Matlab中微分方程的模型
之前一篇已经粗略的介绍了微分方程的解析解,数值解以及简单的模型。下面这篇文章要对微分方程的求数值解进一步讨论,并且提供一些常用的微分方程的模型。(这里参考的是B站清风老师的课程)
数学建模清风第一次直播:传染病模型和微分方程拟合www.bilibili.com
- 微分方程的数值解
- 人口预测模型
- 马尔萨斯模型
- logistic模型
- 自然界模型
- 捕食者-猎物模型
- 种群相互竞争模型
- 种群相互依存模型
微分方程的数值解
求微分方程的数值解的函数如下:
[x,y]=solver('f',ts,x0,options)
#x代表自变量
#y代表函数值
#solver代表求解函数常见的函数如下表
#ts表示自变量的初值和终值,可以是一个向量
#x0表示函数的初始值
#options=odeset('reltol',rt,'abstol',at),rt,at是绝对误差和相对误差,缺省时默认为1e-3,1e-6
#f表示由待解的微分方程编写的m函数文件名,且要将微分方程写成标准形式,且需要放在当前工作文件夹下
注意
- 这里的x和y是变量名,可以自取
- 若求解的是一个含有n个未知函数的方程,则初值是一个n维的向量
- 使用matlab求解微分方程时,高阶微分方程必须转换为一阶微分方程组
刚性表示未知函数值在某些时间段内会出现剧烈变化,而非刚性表示未知函数值随自变量的变化比较缓慢。
例1:求二阶微分方程
先将方程转化为标准形式
方程函数的m文件为:
function dy=df(x,y)dy=zeros(2,1)dy(1)=y(2)dy(2)=2*x/(1+x*x)*y(2)
end
主函数为
[x,y]=ode45('df',[-2,-2],[3,4])
人口预测模型
马尔萨斯模型
模型假设
- 设
表示时刻的人口数,且连续可微
- 人口增长率
是常数
- 人齁数量的变化是封闭的,即人口数量的增加和减少只取决于人口中个体的生育和死亡,且每一个个体都具有相同的生育能力和死亡率
建立模型
我们所得的模型为
logistics模型
模型假设
- 设
为的线性函数,
- 自然资源与环境条件所能容纳的最大人口数为
即当增长率为
建立模型
我们所得到模型为
该模型中
- ,即无论人口初值如何,人口总数都是以为极限
- 当
时,单调增加,当时为下凸函数,当时为上凸函数
- 在取得最大值
自然界模型
捕食者-猎物模型
模型假设
- 食饵和捕食者在时刻
的数量分别记为
- 食饵的状态
- 食饵独立生存则将以增长率
按指数规律增长,即有
- 捕食者的存在使得食饵增长率降低,降低的程度正比于捕食者数量,即有
- 其中:
反映捕食者掠取食饵的能力
- 其中:
- 食饵独立生存则将以增长率
- 捕食者的状态
- 捕食者离开食饵无法生存,假设独立存在时的死亡率为
,即
- 而食饵为捕食者提供食物的作用相当于使其死亡率降低。这个作用与食饵数量成正比,即有
- 其中:
反映食饵为捕食者的供养能力
- 其中:
- 捕食者离开食饵无法生存,假设独立存在时的死亡率为
- 表示捕获能力或强度系数为
,相当于食饵的自然增长率由降为,捕食者的死亡率由增长为
建立模型
我们所得到的模型为
种群相互竞争模型
模型假设
- 考虑单个种群在自然资源有限的环境下生存时,我们用logistic模型来描述演变的过程,即
- 假设
分别是甲乙两个种群的数量,分别是两个种群的固有增长率,分别是甲乙两个种群的最大容量,表示甲乙两个种群的初始数量
- 对于种群甲
- 考虑到乙的竞争作用,那么乙消耗同一资源会对甲的增长造成影响,所以我们的模型改进为
- 这里的系数
表示:单位数量的乙种群消耗的供养甲的食物量单位数量的甲消耗的食物量的倍
- 如果
则表示甲对资源的占有能力更强
- 这里的系数
- 考虑到乙的竞争作用,那么乙消耗同一资源会对甲的增长造成影响,所以我们的模型改进为
- 对于种群乙
- 和种群甲类似有
- 这里的系数
表示:单位数量的乙种群消耗的供养甲的食物量单位数量的甲消耗的食物量的倍
- 这里的系数
- 和种群甲类似有
- 注意这里
一般是相互独立的,只有在甲乙两个种群的食物选择以及对食物的偏好完全相同时,我们有
建立模型
我们所得到的模型为
种群相互依存模型
甲乙两个种群中存在着以下三种情况:
- 甲可以独立生存,乙不能独立生存
- 甲乙均可独立生存
- 甲乙均不能独立生存
情况一:甲可以独立生存,乙不能独立生存
我们可以得到的模型为
情况二:甲乙均可独立生存
我们可以得到的模型是
情况三:甲乙均不能独立生存
我们可以得到我模型为
matlab中solver函数_Matlab中微分方程的模型相关推荐
- matlab函数fftshift,matlab中fft算法_matlab中fftshift函数_matlab中fft函数的用法(2)
plot([0 : PointNum/2 - 1], x1(1:PointNum/2)); grid on subplot(3,1,2); % [REX IMX] am = sqrt(abs(REX. ...
- matlab中ss函数_MATLAB中的S-Function的用法(C语言)
1. S-Function简介 S-Function是system-function的缩写.说得简单,S-Function就是用MATLAB所提供的模型不能完全满足用户,而提供给用户自己编写程序来满足 ...
- scala 函数中嵌套函数_Scala中的嵌套函数 用法和示例
scala 函数中嵌套函数 Scala中的嵌套函数 (Nested functions in Scala) A nested function is defined as a function whi ...
- matlab中stract用法_matlab 中 strcat函数的用法
展开全部 先明白strcat函数的定义: 定义 strcat 即 Strings Catenate,横向连接62616964757a686964616fe4b893e5b19e313333656436 ...
- matlab中ind2sub函数,Python中的MATLAB ind2sub等价
据我所知,这些函数在MATLAB中没有直接实现. 结果我看不懂文件.如果您想要sub2ind的功能,那么您需要^{}函数.函数声明说您需要两个输入.第一个输入是2Dnumpy数组,其中每一行是特定维度 ...
- matlab seed函数_如何用matlab生成随机数函数_matlab随机数生成函数
如何用matlab生成随机数函数 1. MATLAB 函数 rand 产生在区间 (0, 1)的均匀随机数,它是平均分布在 (0,1)之间.一个称为seed的值则是用来控制产生随机数的次数.均匀随机数 ...
- python中exp函数_Python3中exp()函数用法分析
python中虚数函数exp怎么表示 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型 虚数函数exp用math是不行的要用cmat ...
- shell中的函数shell中的数组告警系统需求分析
2019独角兽企业重金招聘Python工程师标准>>> 20.16/20.17 shell中的函数 函数的概念 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用 ...
- python中pop函数_Python中的Pop函数
python中pop函数 什么是弹出功能? (What is the pop function?) The method pop() removes and returns the last elem ...
最新文章
- 又一所“双一流”清退超33名博士生!今年已有超1300名硕博研究生被清退
- php网页跳转无法获取session值
- 佳铁怎样传输程序_阿里资深开发工程师合著《Java开发手册》,影响250万程序员附pdf...
- python panda apply_python – Pandas – 关于apply函数缓慢的解释
- Android底部导航栏实现(一)之BottomNavigationBar
- P3441-[POI2006]MET-Subway【图论,贪心】
- linux文件权限umask,linux系统中UMASK权限的用法讲解
- 简单有趣的c语言小程序,一个有趣的小程序
- Winform实现漂亮动画-小火车
- 第四篇:new和delete的基本用法
- Vivado里程序固化详细教程
- 索尼z5原生android6.0,索尼Z5怎么刷安卓6.0?索尼Z5刷安卓6.0固件包教程
- 数据库迁移的几种方式
- as_completed函数用例
- Android kotlin let函数学习
- 笔试面试经历----上海爱立信
- 电路基本原理那些事儿之 能量守恒定律
- 互联网行业应届生年薪35W,倒挂老员工,这是逼老人离职吗?
- 微信自定义开发的一些问题的梳理
- php 如何缩小一张图片,放大和缩小图片的技巧_PHP
热门文章
- 品牌家居清洁之妙法产品平面海报设计模板
- 计算机两万字符英语文献翻译,求一篇2万字符以上的工程类外文文献及翻译
- Hook Windows API调用 C++
- netfilter数据流图 | 转
- GCC帧指针的开启与关闭以及反汇编测试
- Linux内存管理之内存寻址:分段机制的实现方式
- Segment Model.
- 总线驱动:Bus driver - USB driver for example
- tkmybatis 子查询_你的名字是爆款吗?一键查询!看看在杭州、全国多少人和你同名!...
- javascript的运算(小结)