У меня есть следующий интеграл.Проблема в том, что результат интегрирования y зависит от значения самого y.Поэтому между правой и левой сторонами должна быть петля обратной связи.Начальное значение y равно нулю.
[Здесь f (U) - это гауссова функция U, со средним значением и стандартным отклонением, равными mu и sigma соответственно.]
Я могу выполнитьупрощенная версия интеграции, когда нет связи между LHS и RHS.то есть, если я заменю термин «mt-y» на постоянное значение в правой части (см. мой код, который, конечно, не решает актуальную проблему).
Но я не понимаю, как это сделать при наличии связи.
from scipy.integrate import quad
import numpy as np
from matplotlib import pyplot as plt
def integrand_1(U,A,t,p,gamma,m,n,alpha,mu,sig):
k=gamma*np.exp(-n*np.power(U/(m*p),alpha));
g=1-np.exp(-np.power(t,n)*k);
f=np.exp(-np.power(U - mu, 2.) / (2 * np.power(sig, 2.)));
return A*g*f
A=10;
n=2;
alpha=5
mu=2;
sig=0.4;
gamma=11.11e12
time = np.logspace(-8, -4, 100)
p=2.5;
m=1;
Ylist_P2_5 = []
for t in time:
Y = quad(integrand_1, 0, np.inf, args=(A,t,p,gamma,m,n,alpha,mu,sig))
Ylist_P2_5.append(Y[0])
fig, ax = plt.subplots()
ax.semilogx(time, Ylist_P2_5, 'k-*', label='x=2.5')
legend = ax.legend(loc='best', shadow=True, fontsize='x-large')
plt.xlabel('log(t)', fontdict=None, labelpad=None)
plt.ylabel('y', fontdict=None, labelpad=None)
plt.show()