实验目的 | 了解解常微分方程(组)的基本原理和方法;熟悉MATLAB 求解微分方程的解析、数值解法,并学会用图形观察解的形态和进行解的定性分析。 |
实验内容 |
实 验 步 骤、过 程:
1、①
syms x y t
[x,y]=dsolve('Dx+x+y=0','Dy+x-y=0','x(0)=1','y(0)=0','t')
ezplot(x,y)
②
程序代码:
M函数文件fun1.m:
function f=fun1(t,x)
f=[-x(1)-x(2);x(2)-x(1)];
在程序中调用此函数:
>>clear;
>>y0=[1;0];
>>[t,x]=ode45('fun1',[0,2],y0);plot(t,x(:,1),'r-',t,x(:,2),'b-');
>>hold on
>>clear;
>> y0=[1;0];
>> [t,x]=ode23('fun1',[0,2],y0);plot(t,x(:,1),'r-',t,x(:,2),'b-');
两张图片(图片略,可自行用代码运行)相比,感觉采取ode45求解器的图像更加光滑。
2、
①.
初始条件1)程序代码:
M函数文件fun1.m:
function dx=fun1(t,x)
dx=zeros(2,1)
dx(1)=2.5*x(1)*(1-x(1)/1.6+0.5*x(2));
dx(2)=1.8*x(2)*(-1-x(2)+1.5*x(2)/1.6);
在程序中调用此函数:
>> [t,x]=ode45('fun1',[0,10],[0.1;0.1]);
%上式'fun1'可替换为@fun1,去掉分号才可运行出结果
>> plot(t,x(:,1),'r-',t,x(:,2),'b-');
>> title('初始条件1)');
>> xlabel('t');ylabel('x');
>> legend('x_1(t)','x_2(t)');
初始条件2)程序代码:
M函数文件fun2.m:
function dx=fun2(t,x)
dx=zeros(2,1)
dx(1)=2.5*x(1)*(1-x(1)/1.6+0.5*x(2));
dx(2)=1.8*x(2)*(-1-x(2)+1.5*x(2)/1.6);
在程序中调用此函数:
>> [t,x]=ode45('fun2',[0,10],[1;2]);
>> plot(t,x(:,1),'r-',t,x(:,2),'b-');
>> title('初始条件2)');
>> xlabel('t');ylabel('x');
>> legend('x_1(t)','x_2(t)');
②.
初始条件1)程序代码:
M函数文件fun1.m:
function dx=fun1(t,x)
dx=zeros(2,1)
dx(1)=2.5*x(1)*(1-x(1)/1.6+0.5*x(2));
dx(2)=1.8*x(2)*(-1-x(2)+1.5*x(2)/1.6);
在程序中调用此函数:
>> [t,x]=ode45('fun1',[0,10],[0.1;0.1]);
>> plot(x(:,1),x(:,2))
初始条件2)程序代码:
M函数文件fun2.m:
function dx=fun2(t,x)
f=[2.5*x(1)*(1-x(1)/1.6+0.5*x(2));1.8*x(2)*(-1-x(2)+1.5*x(1)/1.6)]
在程序中调用此函数:
>> [t,x]=ode45('fun2',[0,10],[1;2]);
>> plot(x(:,1),x(:,2))
③.
物种x1与物种x2是相互竞争关系的,当物种x1的随时间的增加超出一定范围时,超出维持相对稳定的范围时,物种x2就失去了竞争地位,竞争失败种群数量大幅度下降,直至灭绝。
答案供参考,如有错误请自行改正,本人只是随意分享之前的作业,代码均来源于网络+个人稍微修改,认为有用可参考哈~