微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为参数的不同值迭代一个函数

如何解决为参数的不同值迭代一个函数

我有这个功能

def run_simulation(nba = 100,maxIter = 10,probI = 0.001,probR = 0.2,probI_init = 0.1,network = nx.erdos_renyi_graph,netParam=0.1,rep=10):
    r = []
    while len(r) < rep:
        init(nba,probI_init,netParam,network)
        i = 0
        while i < maxIter:
            step(probR,probI)
            nbI = collect_statistics()
            if nbI == 0:
                break
            i = i + 1
        r.append(statS[-1])
    print(((nba - sum(r)/len(r))/nba)*100)

这基本上是网络中病毒的模拟。输出一个随机数,它是模拟结束时受感染代理的百分比。 我需要为 12 种不同的感染概率绘制此输出(即“probI”定义为函数的参数)。这 12 个概率是:

in[]np.logspace(-3,12)
out[]array([0.001,0.00187382,0.00351119,0.00657933,0.01232847,0.0231013,0.04328761,0.08111308,0.15199111,0.28480359,0.53366992,1.        ])

我试过了:

enter image description here

但是这不会输入上面数组的每个数字作为 probI 的参数,就像:

run_simulation(probI = np.logspace(-3,12))

如何为每个概率循环我的函数

提前致谢

解决方法

使用:

x = []
y = []

for probI in np.logspace(-3,12):
    x.append(probI)
    y.append(run_simulation(probI=probI))

用于绘图:

df = pd.DataFrame({'x': x,'y': y})
df.plot()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。