楼主: Sean泽荣
4910 4

[演化博弈] 演化博弈相位图python画法 [推广有奖]

  • 0关注
  • 0粉丝

小学生

64%

还不是VIP/贵宾

-

威望
0
论坛币
309 个
通用积分
0.0706
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
76 点
帖子
3
精华
0
在线时间
10 小时
注册时间
2020-5-30
最后登录
2021-3-9

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
import random
import matplotlib.pyplot as plt
# define system in terms of separated differential equations
def f(x,y):
    return x*(1-x)*(5*y-2)
def g(x,y):
    return y*(1-y)*(4*x-2)
# initialize lists containing values

def sys(iv1, iv2, dt, time):
    x = []
    y = []
    # initial values:
    x.append(iv1)
    y.append(iv2)
    #z.append(iv3)
    # compute and fill lists
    for i in range(time):
        x.append(x + (f(x,y)) * dt)
        y.append(y + (g(x,y)) * dt)
        #z.append(z + (h(x,y,z)) * dt)
    return (x, y)


print("\n")
D=[]
for i in range(500):
    a=random.random()
    b=random.random()
    d=sys(a,b,0.01,1000)
    D.append(d)


"""画图"""
#plot
fig = plt.figure(figsize=(17,15))
fig.subplots_adjust(wspace = 0.5, hspace = 0.3)
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)

for n,m in D:
    ax1.plot(n, 'r-')
    ax1.plot(m, 'b-')
    ax2.plot(n, m, color="blue")
#ax1.plot(z, 'g-', label='prey')
ax1.set_title("Dynamic in time")
ax1.set_xlabel("time")
ax1.grid()
ax1.legend(loc='best')


ax2.set_xlabel("x")
ax2.set_ylabel("y")  
ax2.set_title("Phase space")
ax2.grid()

plt.show()


二维码

扫码加我 拉你入群

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

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

关键词:python 演化博弈 Differential Matplotlib Equations Stata专版

沙发
fengfen1961 在职认证  发表于 2021-3-22 17:11:00 |只看作者 |坛友微信交流群
请问自己需要修改哪里呢?
老是出现Traceback (most recent call last):
  File "C:\Users\28102\Desktop\Python\xiangweitu.py", line 30, in <module>
    d=sys(a,b,0.01,1000)
  File "C:\Users\28102\Desktop\Python\xiangweitu.py", line 19, in sys
    x.append(x+(f(x,y))*dt)
  File "C:\Users\28102\Desktop\Python\xiangweitu.py", line 5, in f
    return x*(1-x)*(5*y-2)
TypeError: unsupported operand type(s) for -: 'int' and 'list'

使用道具

藤椅
xuezhongcao 在职认证  发表于 2021-3-26 10:04:20 |只看作者 |坛友微信交流群
我也想知道怎么解决这个问题???

使用道具

把append里的x改成xi,y改成yi试试?

使用道具

报纸
htsong76 发表于 2023-12-7 18:48:15 |只看作者 |坛友微信交流群
     # compute and fill lists
    for i in range(time):
        x.append(x[-1] + f(x[-1],y[-1]) * dt)
        y.append(y[-1] + g(x[-1],y[-1]) * dt)

这两行要改,我的改动如上。

使用道具

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

本版微信群
加JingGuanBbs
拉您进交流群

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

GMT+8, 2024-4-23 23:54