基础--双方常微分方程演化博弈与matlab——matlab2016a版本
演化博弈与matlab1.输入常微分方程组function dxdt=differential(t,x) %t会被警告,可不用管dxdt=[x(1)(1-x(1))(5-6x(2));x(2)(1-x(2))(1-6x(1))];end先保存,命名differential.m文件***,对应的文件名,下面函数名也需一致***2.主函数%y-xfor i=0:0.1:1 %循环步长为0.1,i的取值
·
基础–演化博弈与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
求问:坐标图中都有一块不是区间需要的,如何去掉(已修改)

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)