服务商与监管部门博弈——matlab2016a版本
1.输入常微分方程组
%dx/dt=x(1-x)(420y-10)
%dy/dt=y)(1-y)(100x-10),微分方程
function dxdt=differential4(t,x)
%①函数文件都以函数声明行“function ...”作为开始;②dxdt:返回变量;③differential4:函数名;
%④(t,x):t,x为两个自变量;t:步长和时间;x:有2个分量,分别为x(1)、x(2),分别表示的是x,y
dxdt=[x(1)*(1-x(1))*(420*x(2)-10);x(2)*(1-x(2))*(100*x(1)-10)];
%返回的dxdt为微分方程求解的结果;[ ; ]里面是微分方程
end
保存为differential4.m文件
2.主函数
%y-x
for i=0.1:0.2:0.9
for j=0.1:0.2:0.9
[T,Y]=ode45('differential4',[0 2],[i,j]);
figure(1)
grid on
plot(T,Y(:,1),'r*-','lineWidth',1); %T:时序,Y(:,1):1指的是x。总表示dxdt
hold on
plot(T,Y(:,2),'b--','lineWidth',1); %T:时序,Y(:,2):2指的是y。总表示dydt
hold on
end
end
axis([0 2 0 1]); %为了标出坐标轴最大值最小值,横坐标[0 20] ,纵坐标[-0.1 1.1]
set(gca,'XTick',[0:1:5],'YTick',[0:0.1:1]); %gca(ca即current axes)返回当前axes对象的句柄值;把当前的图形x轴标刻度,区间[0 20],间隔为2;Y同理
xlabel('evolutionary steps'); %标x轴名
ylabel('polution'); %标y轴名
legend('服务商','监管部门') %标曲线名
title('服务商与监管部门决策演化路径') %加标题
保存为for4.m文件