Ошибка формы в Python. Это 6-мерная интеграция

«Я должен интегрировать эту функцию bm over -inf в inf. Я правильно определил функцию. Но это говорит о том, что у меня есть ошибка формы».

      import datetime
begin_time = datetime.datetime.now()
from numpy import linspace,conj,exp,pi,meshgrid,real,inf
from math import factorial
import matplotlib.pyplot as plt
from scipy import integrate
from scipy.special import roots_laguerre as L

m = n = p = 1
a = 1 

def bm(v1,v2,v3,v4,v5,v6):
    h1 = (v1 + 1j*v2)
    h2 = (v3 + 1j*v4)
    h3 = (v5 + 1j*v6)
    ma = a*conj(a) 
    term1 = L(m,-ma)*factorial(m)
    term2 = L(n,-ma)*factorial(n)
    term3 = L(p,-ma)*factorial(p)
    t1 = conj(a)**m *(a)**n +(a)**p
    t2 = conj(a)**n *(a)**m +(a)**p 
    t3 = conj(a)**p *(a)**m +(a)**n
    term4 = t1+t2+t3 
    NN = 1/term1+term2+term3+term4
    T1 = abs(h1-a)**2 
    T2 = abs(h2-a)**2 
    T3 = abs(h3-a)**2 
    F1 = abs((2*h1)-a)**2 
    F2 = abs((2*h2)-a)**2 
    F3 = abs((2*h3)-a)**2 
    E1 = exp(-2*T1)
    E2 = exp(-2*T2)
    E3 = exp(-2*T3)
    TT1 = L(m,F1)
    TT2 = L(n,F2)
    TT3 = L(p,F3)
    T5 = ((2*h1)-a)**m 
    T6 = ((2*h2)-a)**n 
    T7 = ((2*h3)-a)**p 
    cT5 = conj(-(2*h1)+a)**m 
    cT6 = conj(-(2*h2)+a)**n 
    cT7 = conj(-(2*h3)+a)**p 
    expo = E1*E2*E3 
    r1 = (-1)**m 
    r2 = (-1)**n 
    r3 = (-1)**p 
    a1 = ((-1)**m)*(factorial(m))*(TT1) 
    a2 = (r1)*(cT5)*(T6) 
    a3 = (r1)*(cT5)*(T7) 
    a4 = (r2)*(T5)*(cT6) 
    a5 = ((-1)**n)*(factorial(n))*(TT2) 
    a6 = (r2)*(cT6)*(T7) 
    a7 = (r3)*(T5)*(cT7) 
    a8 = (r3)*(T6)*(cT7)  
    a9 = ((-1)**p)*factorial(p)*(TT3) 
    return ((8*NN)/(pi**3))*expo*a1+a2+a3+a4+a5+a6+a7+a8+a9
I = integrate.nquad(bm, [[0, inf],[0, inf],[0, inf],[0, inf],[0, inf],[0, inf]])
print(I)
print(datetime.datetime.now() - begin_time)

«Это правильный способ сделать это? Если вы знаете другие способы интеграции по шести измерениям. Дайте мне знать. Я пробовал использовать эту функцию в Монте-Карло, но это не сработало».

0 ответов

Другие вопросы по тегам