怎么用matlab分析演化博弈

怎么用matlab分析演化博弈,第1张

(1)这段程序分为两个部分:第一部分前面四行;第二部分从第五行到最后

(2)在matlab界面点击新建——函数,然后把前面四行粘进去,关闭编辑器页面,软件提示是否保存?将文件保存为differential.m

(3)在matlab界面点击新建——函数,然后把后面内容粘进去,关闭编辑器页面,软件提示是否保存?将文件保存为XXX.m

(4)注意将differential.m和XXX.m放在同一个文件夹,例如都放在”Matlab学习“

(5)将你打算调用的M文件所在的目录选为当前工作目录。(我这里Untitled4.m为主程序文件,即XXX.m)

(6)右击文件XXX.m,点击”运行“,结果就出来了

这个代码有两个错误:

在定义function方程代码中:

楼主原:dxdt=[x(1)*(1-x(1))*(2*x(3)+1x(2)*(1-x(2))*(3*x(3)+1x(3)*(1-x(3))*(-1*x(1)-x(2)-x(1)*x(2)+4)]

改正后:dxdt=[x(1)*(1-x(1))*(2*x(3)+1)x(2)*(1-x(2))*(3*x(3)+1)x(3)*(1-x(3))*(-1*x(1)-x(2)-x(1)*x(2)+4)]

错误原因:在前两个分号‘’前,缺少右括号‘

function的x需要传递三个参数想x(1) x(2) x(3),而楼主在主程序的调用ode45函数时,只传递了两个参数i和j,可引入变量k,通过x-y-z为例,改成如下(修改部分已经加粗),其它部分修改相同:

%z-y-x

for i=0:0.1:1

for j=0:0.1:1

for k=0:0.1:1

[T,Y]=ode45('differential',[0 5],[i j k])

figure (1)

grid on

plot3(Y(:,1),Y(:,2),Y(:,3))

hold on

end

end

end

应该是微分方程的不同initial condition下的解,如果是微分方程的数值解法google上matlab的code到处都是,而且matlab自带多个built-in微分方程解法,ode113,ode 45等等


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12087065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存