三方演化博弈——matlab2016a版本

1.输入常微分方程组

%dx/dt=x(1-x)(0.2-yz)
%dy/dt=y(1-y)(0.2-xz)
%dz/dt=z(1-z)(0.2-xy),其中x换成x(1),y换成x(2),z换成x(3)
function dxdt=differential2(t,x)
dxdt=[x(1)*(1-x(1))*(0.2-x(2)*x(3));x(2)*(1-x(2))*(0.2-x(1)*x(3));x(3)*(1-x(3))*(0.2-x(1)*x(2))];
end
%% 尝试修改一
%function dxdt=differential2(t,x)
%dxdt=[x(1)*(1-x(1))*(-0.2-x(2)*x(3));x(2)*(1-x(2))*(-0.2-x(1)*x(3));x(3)*(1-x(3))*(0.2-x(1)*x(2))];
%end
%% 尝试修改二
%function dxdt=differential2(t,x)
%dxdt=zeros(3,1);
%dxdt(1)=x(1)*(1-x(1))*(0.2-x(2)*x(3));
%dxdt(1)=x(2)*(1-x(2))*(0.2-x(1)*x(3));
%dxdt(1)=x(3)*(1-x(3))*(0.2-x(1)*x(2));
%end
%% 尝试修改三
%function dxdt=differential2(x,t)
%dxdt=[x(1)*(1-x(1))*(0.2-x(2)*x(3)),x(2)*(1-x(2))*(0.2-x(1)*x(3)),x(3)*(1-x(3))*(0.2-x(1)*x(2))];
%end

保存为differential2.m文件

2.主函数

%% 三维图
for i=0.1:0.2:0.9    %循环步长为0.2,x的值for j=0.1:0.2:0.9     %循环步长为0.2,y的值for m=0.1:0.2:0.9    %循环步长为0.2,z的值[T,Y]=ode45('differential2',[0 20],[i j m]);    %常微分方程中常用ODE45()函数,其调用格式为[T,Y]=ode45('调用的函数名',[T自变量区间],初始值向量,...)figure(1)    %图1grid on   %显示坐标轴网格线plot3(Y(:,1),Y(:,2),Y(:,3),'lineWidth',1);   %(逗号前是行,逗号前是列,冒号表示从第一行到最后一行;(Y(:,1)表示第一列的所有元素,相当于dx/dt,Y(:,2))表示第二列的所有元素相当于dy/dt,Y(:,2))表示第二列的所有元素相当于dz/dt,('lineWidth',1)表示线宽为1% xlabel('x');    %x轴名称% ylabel('y')     %y轴名称% legend('ODE45 解','解析解')    曲线名称hold onview([0.5 0.5 0.5])    %调角度endend
end%% 二维图
for i=0.1:0.2:0.9 for j=0.1:0.2:0.9  for m=0.1:0.2:0.9[T,Y]=ode45('differential2',[0 20],[i j m]);   figure(2)    %图2grid on   %显示坐标轴网格线plot(T,Y(:,1),'r-','lineWidth',1);    %x(1)和t的关系图,('r-','lineWidth',1)表示曲线为“red”的“-”,线宽为1hold onplot(T,Y(:,2),'b--','lineWidth',1);    %x(2)和t的关系图,('b--','lineWidth',1)表示曲线为“blue”的“--”,线宽为1hold onplot(T,Y(:,3),'g*','lineWidth',1);     %x(3)和t的关系图,('g*','lineWidth',1)表示曲线为“green”的“*”,线宽为1% xlabel('x');  % ylabel('y')    % legend('ODE45 解','解析解')   hold onendend
end

保存为for2.m文件

3.run结果



run出来的图形跟原视频作者的图不一致,各位大神有什么发现吗,如何修改能得到原视频结果图

4.前面两个文件可修组合为一个

%% 三维图
for i=0.1:0.2:0.9    %循环步长为0.2,x的值for j=0.1:0.2:0.9     %循环步长为0.2,y的值for m=0.1:0.2:0.9    %循环步长为0.2,z的值f= @(t,x)[x(1)*(1-x(1))*(0.2-x(2)*x(3));x(2)*(1-x(2))*(0.2-x(1)*x(3));x(3)*(1-x(3))*(0.2-x(1)*x(2))];[T,Y]=ode45(f,[0 20],[i j m]);    %常微分方程中常用ODE45()函数,其调用格式为[T,Y]=ode45('调用的函数名',[T自变量区间],初始值向量,...)figure(1)    %图1grid on   %显示坐标轴网格线plot3(Y(:,1),Y(:,2),Y(:,3),'lineWidth',1);   %(逗号前是行,逗号前是列,冒号表示从第一行到最后一行;(Y(:,1)表示第一列的所有元素,相当于dx/dt,Y(:,2))表示第二列的所有元素相当于dy/dt,Y(:,2))表示第二列的所有元素相当于dz/dt,('lineWidth',1)表示线宽为1% xlabel('x');    %x轴名称% ylabel('y')     %y轴名称% legend('ODE45 解','解析解')    曲线名称hold onview([0.5 0.5 0.5])    %调角度endend
end%% 二维图
for i=0.1:0.2:0.9 for j=0.1:0.2:0.9  for m=0.1:0.2:0.9f= @(t,x)[x(1)*(1-x(1))*(0.2-x(2)*x(3));x(2)*(1-x(2))*(0.2-x(1)*x(3));x(3)*(1-x(3))*(0.2-x(1)*x(2))];[T,Y]=ode45(f,[0 20],[i j m]);   figure(2)    %图2grid on   %显示坐标轴网格线plot(T,Y(:,1),'r-','lineWidth',1);    %x(1)和t的关系图,('r-','lineWidth',1)表示曲线为“red”的“-”,线宽为1hold onplot(T,Y(:,2),'b--','lineWidth',1);    %x(2)和t的关系图,('b--','lineWidth',1)表示曲线为“blue”的“--”,线宽为1hold onplot(T,Y(:,3),'g*','lineWidth',1);     %x(3)和t的关系图,('g*','lineWidth',1)表示曲线为“green”的“*”,线宽为1% xlabel('x');  % ylabel('y')    % legend('ODE45 解','解析解')   hold onendend
end

保存为for2cs.m文件

三方演化博弈复制动态方程matlab仿真——matlab2016a版本相关推荐

  1. 双方博弈复制动态方程(y-z,z=0.3,z=0.5,z=0.7)与matlab数值仿真——matlab2016a版本

    双方博弈复制动态方程(y-z,z=0.3,z=0.5,z=0.7)与matlab数值仿真--matlab2016a版本 注明:源于对<基于演化博弈的装配式建筑应用研究>-金倩-4.4.1. ...

  2. 演化博弈、复制动态方程与仿真

    本文只整理和总结一下我的理解,文末列出了可供参考的更详细完整的资料.建议先看参考资料[1](博弈论公开课)的博弈论课程,可以直接从第11讲开始看.参考链接[2]是关于演化博弈非常经典的一本书.参考链接 ...

  3. 三方演化博弈仿真代码(MATLAB2018b)

    自己写的,如有不对敬请指正 以下的代码是用于某一参数改变时,三方主体演化博弈的仿真图,我不会使用for循环,所以是手动调整的参数的改变,但是比较容易理解和出图 简单来说,下列代码MATLAB运行的界面 ...

  4. matlab 异步程序代码,正弦波电压源供电时三相异步电动机系统动态运行MATLAB仿真源程序...

    正弦波电压源供电时三相异步电动机系统动态运行MATLAB仿真源程序%采用静止αβ-dq坐标系 %参量输入 global U1 F1 Msr R G L CS J TL PO; R1=0.025;R2= ...

  5. python演化博弈仿真_求教 matlab做三方演化博弈仿真

    欢迎使用Markdown编辑器 经管之家:Do the best economic and management education! 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页 ...

  6. MATLAB R2016a实现三方演化博弈

    %脚本1 functiondydt=cjd(t,y,a,C11,C12,L11,L12,L13,P11,P12,C21,L21,L22,P21,P22,P23,C31,L31,L32,P31,P32) ...

  7. m厌氧间歇发酵动态控制系统matlab仿真,对比PID控制和MPC控制

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 生物发酵过程,其中稀释速率和供料基质浓度可作为操作变量.出口的细胞浓度或生物浓度.基质浓度以及产品浓 ...

  8. [论文复现]演化博弈方法用于多智能体系统最优资源分配

    原文 演化博弈方法用于多智能体系统最优资源分配 -CSDN博客 https://ieeexplore.ieee.org/document/8243778/ 问题描述   有2种资源分配给6个个体,2种 ...

  9. 演化博弈的Python实现:基础篇1 基于复制动态的演化博弈

    写在前面 创作目的? 将自己求学期间所学所知进行总结:也希望阅读的同学有所收获. 如果对内容有疑惑.发现有错误? 希望在评论区提出,我会及时回复. 希望引用? 若不以盈利为目的,尽情引用:否则请注明出 ...

最新文章

  1. LeetCode 23. Merge k Sorted Lists--Python解法--优先队列,分治法
  2. 7.26T2某不科学的迷你激光炮
  3. ffmpeg 获取帧率_项目实战:Qt+FFmpeg录屏应用(支持帧率、清晰度设置)
  4. 深入剖析Redis系列(五) - Redis数据结构之字符串
  5. css3边框交替动画_用css3实现惊艳面试官的背景即背景动画(高级附源码)
  6. 判断一个数字是否存在于某一个数据之中
  7. py语法错误与异常处理
  8. linux如何安装网卡驱动6,详解CentOS 6.5如何安装Realtek无线网卡驱动
  9. 21day学通python_python21day
  10. java编程汽水_[原创]JAVA解决喝汽水问题
  11. xxampp 配置php_MAC下使用XMAPP配置php环境
  12. 基于微信网页版二维码扫码支付
  13. Beyond Compare linux
  14. 【备忘】hive 调优
  15. web页面之响应式布局
  16. AttributeError: module ‘keras_applications‘ has no attribute
  17. 新媒体营销方式有哪几种
  18. 控制台报错:Unknown database ‘xxxxx‘
  19. 2016年linux认证考试,2016年Linux认证考试模拟练习及答案
  20. RGBA和ARGB有区别吗

热门文章

  1. android定位的实现
  2. docker入门_Docker入门
  3. Oracle总结-学习这一篇就够了
  4. 使用立体声混音(Stereo Mix)录制音频
  5. Linux下的readelf 指令和file指令
  6. python下载m3u8视频_使用python 下载m3u8格式视频,并使用ffmpeg 合成视频
  7. 软考程序员 c java 二选一_下半年参加软考的初级程序员考试,有什么参考书推荐么?...
  8. 在vue项目中实现海康威视IOT云眸平台(实时和回放)
  9. 因为接了一个外包 我在监狱蹲了456天!
  10. 张正友相机标定(全流程,含畸变,matlab源代码解析)