楼主: wangguanwen
8391 12

[问答] matlab做演化博弈分析 [推广有奖]

  • 0关注
  • 3粉丝

等待验证会员

高中生

97%

还不是VIP/贵宾

-

威望
0
论坛币
84 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
249 点
帖子
23
精华
0
在线时间
31 小时
注册时间
2015-1-22
最后登录
2018-1-24

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
哎,做毕设要用到MATLAB做演化博弈分析,程序已经编好了,只是不知道哪里不对总是显示Missing variable or function.
求诸位大神帮忙看看吧,急求啊!!!!!
jixiao.m
function dy=jixiao(t,y,R,M,A,E,S)
dy=zeros(2,1);
dy(1)=y(1)*(1-y(1))*(y(2)*(S-A-M)-(R-M));
dy(2)=y(2)*(1-y(2))*(y(1)*(A+M)-E);
end


主程序.m
p0=0.2,q0=0.5,R=0.25,M=0.2,A=0.32,E=0.48,S=0.8;
[t,y]=ode45('jixiao',[0:40],[p0,q0],[],R,M,A,E,S);
y1=y(:,1);
plot(t,y1,'b*');
xlabel('t');
ylabel('p');
hold on;

p0=0.4,q0=0.5;
[t,y]=ode45('jixiao',[0:40],[p0,q0],[],R,M,A,E,S);
y1=y(:,1);
plot(t,y1,'b0');
xlabel('t');
ylabel('p');
hold on;

title('演化示意图')
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab 演化博弈 博弈分析 matlab

沙发
cmwei333 发表于 2016-5-31 14:50:08 |只看作者 |坛友微信交流群
你把

[t,y]=ode45('jixiao',[0:40],[p0,q0],[],R,M,A,E,S);

换成

[t,y]=ode45(@(t,y) jixiao(t,y,R,M,A,E,S),[0:40],[p0,q0]);

再试试看,应该没问题吧

使用道具

藤椅
wangguanwen 发表于 2016-6-1 08:43:00 |只看作者 |坛友微信交流群
cmwei333 发表于 2016-5-31 14:50
你把

[t,y]=ode45('jixiao',[0:40],,[],R,M,A,E,S);
太谢谢啦!!!简直解救我于水火之中啊,我在这上面已经卡了好长时间了,终于出图了

使用道具

板凳
wangguanwen 发表于 2016-6-1 09:20:11 |只看作者 |坛友微信交流群
cmwei333 发表于 2016-5-31 14:50
你把

[t,y]=ode45('jixiao',[0:40],,[],R,M,A,E,S);
p0=0.2,q0=0.5;
R=0.25,M=0.2,A=0.32,E=0.48,S=0.8;
[t,y]=ode45(@(t,y)jixiao(t,y,R,M,A,E,S),[0:50],[p0,q0]);
y1=y(:,1);
plot(t,y1,'b*');
xlabel('t');
ylabel('p');
hold on;

p0=0.4,q0=0.5;
R=0.25,M=0.2,A=0.32,E=0.48,S=0.8;
[t,y]=ode45(@(t,y)jixiao(t,y,R,M,A,E,S),[0:50],[p0,q0]);
y1=y(:,1);
plot(t,y1,'b0');
xlabel('t');
ylabel('p');
hold on;
按照您说的我改了程序,可是,我是想画出两条线对比,可是画出来的图只出一条线,而且纵坐标的最高点是0.25而不是1,这是怎么回事呢?求教呀

使用道具

报纸
cmwei333 发表于 2016-6-1 10:59:16 |只看作者 |坛友微信交流群
wangguanwen 发表于 2016-6-1 09:20
p0=0.2,q0=0.5;
R=0.25,M=0.2,A=0.32,E=0.48,S=0.8;
[t,y]=ode45(@(t,y)jixiao(t,y,R,M,A,E,S),[0:50], ...
你需要把

plot(t,y1,'b0');

换成


plot(t,y1,'bo');


出来的图就应该是这个样的

pic.jpg

MATLAB只承认 'o',而不是 '0'




bbs.pinggu.org/forum.php?mod=collection&action=view&ctid=3257
bbs.pinggu.org/forum.php?mod=collection&action=view&ctid=3258
bbs.pinggu.org/forum.php?mod=collection&action=view&ctid=3259

使用道具

地板
wangguanwen 发表于 2016-6-6 10:09:50 |只看作者 |坛友微信交流群
cmwei333 发表于 2016-6-1 10:59
你需要把

plot(t,y1,'b0');
对的对的,把‘b0’换成‘bo’就出图啦,太谢谢啦

使用道具

7
1392638875 发表于 2017-3-8 15:20:13 |只看作者 |坛友微信交流群
wangguanwen 发表于 2016-6-6 10:09
对的对的,把‘b0’换成‘bo’就出图啦,太谢谢啦
楼主解决了吗,最近在写毕业论文,也是写的这个,不会呀,能教教我吗,谢谢!在线等,急

使用道具

8
wangguanwen 发表于 2017-4-21 09:44:12 |只看作者 |坛友微信交流群
1392638875 发表于 2017-3-8 15:20
楼主解决了吗,最近在写毕业论文,也是写的这个,不会呀,能教教我吗,谢谢!在线等,急
最近没上线,所以看到的比较慢,主程序不变
p0=0.2,q0=0.5;
R=0.25,M=0.2,A=0.3,E=0.48,S=0.8;
[t,y]=ode45(@(t,y)jixiao(t,y,R,M,A,E,S),[0:50],[p0,q0]);
y1=y(:,1);
plot(t,y1,'b*');
xlabel('t');
ylabel('p');
hold on;

p0=0.4,q0=0.5;
R=0.25,M=0.2,A=0.3,E=0.48,S=0.8;
[t,y]=ode45(@(t,y)jixiao(t,y,R,M,A,E,S),[0:50],[p0,q0]);
y1=y(:,1);
plot(t,y1,'b-');
xlabel('t');
ylabel('p');
hold on;

p0=0.6,q0=0.5;
R=0.25,M=0.2,A=0.3,E=0.48,S=0.8;
[t,y]=ode45(@(t,y)jixiao(t,y,R,M,A,E,S),[0:50],[p0,q0]);
y1=y(:,1);
plot(t,y1,'b^');
xlabel('t');
ylabel('p');
hold on;

p0=0.8,q0=0.5;
R=0.25,M=0.2,A=0.3,E=0.48,S=0.8;
[t,y]=ode45(@(t,y)jixiao(t,y,R,M,A,E,S),[0:50],[p0,q0]);
y1=y(:,1);
plot(t,y1);
xlabel('t');
ylabel('p');
hold on;

title('演化示意图');
legend('p0=0.2','p0=0.4','p0=0.6','p0=0.8')

使用道具

9
nanianhuakai@ 发表于 2017-5-28 10:37:09 |只看作者 |坛友微信交流群
楼主 能否请教你一下 啊 我最近也是在做演化博弈 不知道怎样用这个matlab啊

使用道具

10
金坛映黼帷6 发表于 2017-8-28 09:46:45 |只看作者 |坛友微信交流群
楼主您好,能否请教您一下,我用您上面的代码为什么运行不出来呢,总说出错

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 12:46