基础--双方常微分方程演化博弈与matlab——matlab2016a版本

基础–演化博弈与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

求问:坐标图中都有一块不是区间需要的,如何去掉(已修改)

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值