三方演化博弈复制动态方程matlab仿真——matlab2016a版本
三方演化博弈——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版本相关推荐
- 双方博弈复制动态方程(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. ...
- 演化博弈、复制动态方程与仿真
本文只整理和总结一下我的理解,文末列出了可供参考的更详细完整的资料.建议先看参考资料[1](博弈论公开课)的博弈论课程,可以直接从第11讲开始看.参考链接[2]是关于演化博弈非常经典的一本书.参考链接 ...
- 三方演化博弈仿真代码(MATLAB2018b)
自己写的,如有不对敬请指正 以下的代码是用于某一参数改变时,三方主体演化博弈的仿真图,我不会使用for循环,所以是手动调整的参数的改变,但是比较容易理解和出图 简单来说,下列代码MATLAB运行的界面 ...
- matlab 异步程序代码,正弦波电压源供电时三相异步电动机系统动态运行MATLAB仿真源程序...
正弦波电压源供电时三相异步电动机系统动态运行MATLAB仿真源程序%采用静止αβ-dq坐标系 %参量输入 global U1 F1 Msr R G L CS J TL PO; R1=0.025;R2= ...
- python演化博弈仿真_求教 matlab做三方演化博弈仿真
欢迎使用Markdown编辑器 经管之家:Do the best economic and management education! 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页 ...
- 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) ...
- m厌氧间歇发酵动态控制系统matlab仿真,对比PID控制和MPC控制
目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 生物发酵过程,其中稀释速率和供料基质浓度可作为操作变量.出口的细胞浓度或生物浓度.基质浓度以及产品浓 ...
- [论文复现]演化博弈方法用于多智能体系统最优资源分配
原文 演化博弈方法用于多智能体系统最优资源分配 -CSDN博客 https://ieeexplore.ieee.org/document/8243778/ 问题描述 有2种资源分配给6个个体,2种 ...
- 演化博弈的Python实现:基础篇1 基于复制动态的演化博弈
写在前面 创作目的? 将自己求学期间所学所知进行总结:也希望阅读的同学有所收获. 如果对内容有疑惑.发现有错误? 希望在评论区提出,我会及时回复. 希望引用? 若不以盈利为目的,尽情引用:否则请注明出 ...
最新文章
- LeetCode 23. Merge k Sorted Lists--Python解法--优先队列,分治法
- 7.26T2某不科学的迷你激光炮
- ffmpeg 获取帧率_项目实战:Qt+FFmpeg录屏应用(支持帧率、清晰度设置)
- 深入剖析Redis系列(五) - Redis数据结构之字符串
- css3边框交替动画_用css3实现惊艳面试官的背景即背景动画(高级附源码)
- 判断一个数字是否存在于某一个数据之中
- py语法错误与异常处理
- linux如何安装网卡驱动6,详解CentOS 6.5如何安装Realtek无线网卡驱动
- 21day学通python_python21day
- java编程汽水_[原创]JAVA解决喝汽水问题
- xxampp 配置php_MAC下使用XMAPP配置php环境
- 基于微信网页版二维码扫码支付
- Beyond Compare linux
- 【备忘】hive 调优
- web页面之响应式布局
- AttributeError: module ‘keras_applications‘ has no attribute
- 新媒体营销方式有哪几种
- 控制台报错:Unknown database ‘xxxxx‘
- 2016年linux认证考试,2016年Linux认证考试模拟练习及答案
- RGBA和ARGB有区别吗
热门文章
- android定位的实现
- docker入门_Docker入门
- Oracle总结-学习这一篇就够了
- 使用立体声混音(Stereo Mix)录制音频
- Linux下的readelf 指令和file指令
- python下载m3u8视频_使用python 下载m3u8格式视频,并使用ffmpeg 合成视频
- 软考程序员 c java 二选一_下半年参加软考的初级程序员考试,有什么参考书推荐么?...
- 在vue项目中实现海康威视IOT云眸平台(实时和回放)
- 因为接了一个外包 我在监狱蹲了456天!
- 张正友相机标定(全流程,含畸变,matlab源代码解析)