基础–演化博弈与matlab——matlab2016a版本
1.输入常微分方程组
function dxdt=differential1(t,x) %t会被警告,可不用管
dxdt=[x(1)(1-x(1))(5-6x(2));x(2)(1-x(2))(1-6x(1))];
end
先保存,命名differential1.m文件***,对应的文件名,下面函数名也需一致***
2.主函数
%y-x
for i=0:0.1:1 %循环步长为0.1,i的取值范围[0,1]
for j=0:0.1:1 %循环步长为0.1,j的取值范围[0,1]
[T,Y]=ode45(‘differential1’,[0 5],[i j]); %常微分方程中常用ODE45()函数,其调用格式为[T,Y]=ode45(‘求解的函数名’,[T自变量区间],初始值向量,…)
figure(1) %图1
grid on %显示坐标轴网格线
plot(Y(:,1),Y(:,2)); %(逗号前是行,逗号前是列,冒号表示从第一行到最后一行;(Y(:,1)表示第一列的所有元素,相当于dx/dt,Y(:,2))表示第二列的所有元素相当于dy/dt
xlabel(‘x’); %x轴名称
ylabel(‘y’) %y轴名称
hold on
axis([0,1,0,1])
end
end
%dx/dt-t
for i=0:0.1:1
for j=0:0.1:1
[T,Y]=ode45('differential1',[0 5],[i j]);
figure(2)
grid on
plot(T,Y(:,1));
xlabel('t');
ylabel('y')
hold on
axis([0,5,0,1])
end
end
%dy/dt-t
for i=0:0.1:1
for j=0:0.1:1
[T,Y]=ode45('differential1',[0 5],[i j]);
figure(3)
grid on
plot(T,Y(:,2));
xlabel('t');
ylabel('y')
hold on
axis([0,5,0,1])
end
end
再保存到另外一个文件中,英文名命名的文件,此处为for1.m
3.run之后的图形
学习他人的程序,自己的理解
复制代码可以找原文链接https://bbs.pinggu.org/thread-3513345-1-1.html
求问:坐标图中都有一块不是区间需要的,如何去掉(已修改)