У меня есть функция плотности вероятности:Расщепление интегрированной плотности вероятности в двух пространственных областей
T = 10000
tmin = 0
tmax = 10**20
t = np.linspace(tmin, tmax, T)
time = np.asarray(t) #this line may be redundant
for j in range(T):
timedep_PD[j]= probdensity_func(x,time[j],initial_state)
Я хочу, чтобы интегрировать его в течение двух различных областей х. Я попытался следующим разделить timedep_PD
массив в двух пространственных областях, а затем приступил к интеграции:
step = abs(xmin - xmax)/T
l1 = int(np.floor((abs(ab - xmin)* T)/abs(xmin - xmax)))
l2 = int(np.floor((abs(bd - ab)* T)/abs(xmin - xmax)))
#For spatial region 1
R1 = np.empty([l1])
R1 = x[:l1]
for i in range(T):
Pd1[i] = Pd[i][:l1]
#For spatial region 2
Pd2 = np.empty([T,l2])
R2 = np.empty([l2])
R2 = x[l1:l1+l2]
for i in range(T):
Pd2[i] = Pd[i][l1:l1+l2]
#Integrating over each spatial region
for i in range(T):
P[0][i] = np.trapz(Pd1[i],R1)
P[1][i] = np.trapz(Pd2[i],R2)
Есть ли проще/более понятный способ идти о раскалывается функция плотности вероятности в двух пространственных областях, а затем интегрируя в каждой пространственной области на каждом временном шаге?