Matlab数学建模实战

您所在的位置:网站首页 用matlab算方程 Matlab数学建模实战

Matlab数学建模实战

2023-07-11 05:24| 来源: 网络整理| 查看: 265

1.题目

请添加图片描述

问题1

该数学建模的第一问和第二问主要是用Matlab求解微分方程组,直接编程即可。

求解

Step1改写

y(1)=ry(2)=f

Step2得y的导数

y(1).=2y(1)-ay(1)*y(2)y(2).=-y(2)+a*y(1)*y(2)

Step3编程

clear; a=0.01; F=@(t,y)[2*y(1)-a*y(1)*y(2); -y(2)+a*y(1)*y(2)]; [t,y]=ode45(F,[0,10],[300,150]); subplot(121); plot(t,y(:,1)); xlabel('时间'); ylabel('r数量'); subplot(122); plot(y(:,1),y(:,2)); xlabel('r数量'); ylabel('y数量');

Step4结果 在这里插入图片描述 从图中可以看出对应的周期tp大概是5

问题2

改变初值就行啦,直接进入step3

求解

Step3编程

clear; a=0.01; F=@(t,y)[2*y(1)-a*y(1)*y(2); -y(2)+a*y(1)*y(2)]; [t,y]=ode45(F,[0,10],[15,22]); subplot(121); plot(t,y(:,1)); xlabel('时间'); ylabel('r数量'); subplot(122); plot(y(:,1),y(:,2)); xlabel('r数量'); ylabel('y数量');

Step4结果 在这里插入图片描述 从图中可以看出对应的周期tp大概是8

问题3 分析

首先列公式,给了u和v的定义,咱就对它求导,然后把它代入捕食者方程,再把r和f用u和v替换,根据题目所说忽略二阶项uv,这样可以算得 在这里插入图片描述

求解

Step1改写

y(1)=uy(2)=v

Step2得y的导数

y(1).=-y(2)y(2).=2y(1)

Step3编程

clear; a=0.01; F=@(t,y)[-y(2); 2*y(1)]; [t,y]=ode45(F,[0,10],[0.1,0.1]); subplot(121); plot(t,y(:,1)); xlabel('时间'); ylabel('u'); subplot(122); plot(y(:,1),y(:,2)); xlabel('u'); ylabel('v');

Step4结果 在这里插入图片描述 从图中可以看出u对应的周期tp大概是5



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3