gpt4 book ai didi

python - python 中的可瘫痪系统模型

转载 作者:行者123 更新时间:2023-11-28 18:11:45 26 4
gpt4 key购买 nike

作为更大模型的一部分,我需要几行代码来为我实现 Paralazable 系统模型。

整个模型都在探测器上。该检测器可以根据到达的元素记录信号。探测器效率低下,在一种元素撞击它后,它可能会在一段时间内失去灵敏度。

在 Paralyzable 模型中,当一个元素撞击它时,探测器将停止运行,即使它没有检测到它。这意味着我们作为死区时间的某个数字可能会发生变化,如果另一个元素在那段时间内撞击探测器,它会增加另一个死区时间。

有这个链接,您可以阅读更多关于这个主题的内容: Dead time

我使用 numpy 制作了一个随机泊松样本,它可能具有与源相同的行为(源正在根据泊松分布制作元素),然后由于检测器只能检测一个元素有一次,我们需要用一个替换所有多个值。

那么最后一步才是真正应用Paralzable dead time effect的主要部分,它会移除检测值的dead time距离值。

import numpy as np
np.random.seed(2)
random_set = np.random.poisson(lam=1, size = 500) #The source is making the elements with Poisson distribution
#lam could be any other value
d = 2 #dead time, could be any other integers

#Saturation effect
#detector could not detect more than one elements at a time
random_set[random_set>1] = 1

index = 1
#Paralyzable dead time effect
for i in range(1, (random_set.shape[0])):
for j in range(index, index + d+1):

if random_set[j]==1:
index = j
random_set[j]=0

它不会出现任何错误,但它肯定不是在做我正在寻找的事情。有没有快速的方法让它发挥作用?

谢谢。

最佳答案

我想出了这个非常简单的方法来解决这个问题,死时间必须从元素撞击检测器的位置开始计算,这意味着如果死时间必须阻塞 2 个 channel ,第一个实际上是元素在其中接收的那个。

在这里,我只是制作了另一个向量,它基本上使用了来自 numpy 的向量,并使与主向量的 d 距离等于零,然后将它们相乘,最终会给出位置上的 1在阻塞位置必须为零。

import numpy as np
np.random.seed(2)
random_set = np.random.poisson(lam=1, size = 20) #The source is making the elements with Poisson distribution
#lam could be any other value
d = 3 #dead time, could be any other integers

#Saturation effect
#detector could not detect more than one elements at a time
random_set[random_set>1] = 1
print(random_set)
new_vec = np.ones(random_set.shape)
for i in range(random_set.shape[0]):
if random_set[i]==1:
new_vec[i+1:i+d]=0

result = new_vec*random_set

print(result)

关于python - python 中的可瘫痪系统模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50593079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com