Как интегрировать комплексную (не в реальном или сложном определении) функцию

У меня есть это выражение монстра для распределения давления вокруг сферы, выражение уравнениегде Re[A] - действительная компонента предопределенного коэффициента, P - многочлены Легендры, а j и n - сферические функции Бесселя и Неймана. Я хочу интегрировать это через тета, поэтому я определил функцию для уравнения выше следующим образом

def P_rms_calc(k,a,n_max,theta): # Return the P_rms function

# Obtain Coefficients
A_m = A_m_coeff(k,a,P_a,l,z0,n_max)

P_t = []
for m in range(n_max):
    for l in range(m+1):
        P_t.append(0.5*numpy.real(A_m[l])*numpy.real(A_m[m-l])*(legendre(l)(numpy.cos(theta)))*(legendre(m-l)(numpy.cos(theta)))*((spherical_jn(l,k*r)*spherical_jn(m-l,k*r))+
                                                                                                                            (spherical_yn(l,k*r)*spherical_yn(m-l,k*r))))
    P_rms = numpy.sqrt(sum(P_t))
return P_rms

Тем не менее, когда я пытаюсь интегрировать с помощью scipy.integrate.quad, вот так,

a0, err = quad(P_rms_calc(k,a,n_max,theta),-numpy.pi,numpy.pi)

он выдает "error: quad: первый аргумент не может быть вызван". И если я не приведу аргументы функции, как это,

a0, err = (1/(2*numpy.pi))*quad(P_rms_calc,-numpy.pi,numpy.pi)

он дает 'TypeError: P_rms_calc() принимает ровно 8 аргументов (1 дано)'

Я скучаю по чему-то простому в использовании инструмента интеграции Quad? Если нет, то есть ли лучший способ попробовать и интегрировать это выражение? Не стесняйтесь также рекомендовать более эффективный способ определения среднеквадратичного выражения давления. Для справки, я суммирую только от m=0 до 6 или около того, так что время вычислений не страшно при использовании циклов for. Спасибо за помощь!

1 ответ

Решение

Использование args аргумент для передачи дополнительных аргументов подынтегрального выражения:

>>> def func(x, a, b):
...    return a * x**b 
... 
>>> quad(func, 0, 1, args=(1., 2.))
(0.33333333333333337, 3.700743415417189e-15)
Другие вопросы по тегам