Matlab数学建模实战 |
您所在的位置:网站首页 › 用matlab算方程 › Matlab数学建模实战 |
1.题目
该数学建模的第一问和第二问主要是用Matlab求解微分方程组,直接编程即可。 求解Step1改写 y(1)=ry(2)=fStep2得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结果 改变初值就行啦,直接进入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结果 首先列公式,给了u和v的定义,咱就对它求导,然后把它代入捕食者方程,再把r和f用u和v替换,根据题目所说忽略二阶项uv,这样可以算得 Step1改写 y(1)=uy(2)=vStep2得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结果 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |