[已解决] 演化博弈代码错误

[复制链接]
兔兔145 发表于 2022-7-23 17:21:27
function dydt=xuexi(t,y,Cph,Cpl,Cp,Bt,Rp,Ft,Ct,Cg,Tg);
dydt=zeros(3,1);
dydt(1)=y(1)*(y(1)-1)*(cph-cpl-cp-bt-y(2)*(rp-bt)-y(3)*(fp+mp));
end
figure(1)   
Rp=100,Cph=85,Cpl=0,Cp=10,Bt=40,Fp=40,Mp=20,Ct=10,Ft=20,Mt=15,Cg=15,Tg=40;
set(0,'defaultfigurecolor','w');
[t,y]=ode45(@(t,y)xuexi(t,y,Cph,Cpl,Cp,Bt,Rp,Ft,Ct,Cg,Tg),[0 50],[0.2 0.2 0.2]);
  plot3(y(:,1),y(:,2),y(:,3),'r+','linewidth',1);
  hold on;

这个是一部分,但是运行的时候提示:出错[t,y]=ode45(@(t,y)xuexi(t,y,Cph,Cpl,Cp,Bt,Rp,Ft,Ct,Cg,Tg),[0 50],[0.2 0.2 0.2]);也就是ode这一行有问题,想知道有什么问题?

最佳答案


lyqmath 发表于 2022-7-25 16:55:30


需要看一下变量的对应关系
更多代码请参考
《视觉大数据智能分析算法实战》[刘衍琦等]

  1. clc; clear all; close all;
  2. figure(1)
  3. Rp=100;Cph=85;Cpl=0;Cp=10;Bt=40;Fp=40;Mp=20;Ct=10;Ft=20;Mt=15;Cg=15;Tg=40;
  4. % set(0,'defaultfigurecolor','w');
  5. [t,y]=ode45(@(t,y)xuexi(t,y,Cph,Cpl,Cp,Bt,Rp,Ft,Ct,Cg,Tg,Fp,Mp),[0 50],[0.2 0.2 0.2]);
  6. plot3(y(:,1),y(:,2),y(:,3),'r+','linewidth',1);
  7. hold on;


  8. function dydt=xuexi(t,y,Cph,Cpl,Cp,Bt,Rp,Ft,Ct,Cg,Tg,Fp,Mp)
  9. dydt=zeros(3,1);
  10. dydt(1)=y(1)*(y(1)-1)*(Cph-Cpl-Cp-Bt-y(2)*(Rp-Bt)-y(3)*(Fp+Mp));
  11. end
复制代码
[attach]332569[/attach]
回复此楼

1 条回复


lyqmath 发表于 2022-7-25 16:55:30


需要看一下变量的对应关系
更多代码请参考
《视觉大数据智能分析算法实战》[刘衍琦等]

  1. clc; clear all; close all;
  2. figure(1)
  3. Rp=100;Cph=85;Cpl=0;Cp=10;Bt=40;Fp=40;Mp=20;Ct=10;Ft=20;Mt=15;Cg=15;Tg=40;
  4. % set(0,'defaultfigurecolor','w');
  5. [t,y]=ode45(@(t,y)xuexi(t,y,Cph,Cpl,Cp,Bt,Rp,Ft,Ct,Cg,Tg,Fp,Mp),[0 50],[0.2 0.2 0.2]);
  6. plot3(y(:,1),y(:,2),y(:,3),'r+','linewidth',1);
  7. hold on;


  8. function dydt=xuexi(t,y,Cph,Cpl,Cp,Bt,Rp,Ft,Ct,Cg,Tg,Fp,Mp)
  9. dydt=zeros(3,1);
  10. dydt(1)=y(1)*(y(1)-1)*(Cph-Cpl-Cp-Bt-y(2)*(Rp-Bt)-y(3)*(Fp+Mp));
  11. end
复制代码
result.png
回复此楼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表