дробный интеграл python - PullRequest
       45

дробный интеграл python

0 голосов
/ 01 апреля 2020

Я пытаюсь вычислить тройной интеграл функции abs(x-y)**(H-1)*abs(y-z)**(H-1)*abs(z-x)**(H-1) на [0,1]^3, например, с H между (0.5,1), однако для python кажется сложным вычислить его.

Итак, во-первых, я попробовал с integrate.tplquad от scipy, но он позволяет это сделать, он только возвращает, что интеграл, вероятно, расходится или медленно сходится.

Чтобы избежать этого, я перекодирую функцию Римана на скважине известный метод, и я взял «эпсилон», который представляет собой небольшое положительное число, такое как 10 ** - 6, в самой функции в каждом абсолютном значении, но также необходимо взять еще один эпсилон на интервале. Первая ошибка, которую я заметил, 0,0 не может быть возведено в отрицательную степень. Но затем, выполнив это преобразование, зная, что ответ должен быть около 29,7, Python вернет несовместимое значение.

Я думаю, что проблема связана с проблемой цифр c или самой схемой интеграции, хотя моя функция Римана не не оптимизировано, я думаю, оно должно было быть близко к реальному значению, которое я ожидал.

Вот код

def f(H):
    eps=10**-12
    return lambda x,y,z:(abs(x-y)+eps)**(H-1)*abs(y-z+eps)**(H-1)*abs(z-x+eps)**(H-1)

def riemann(H,g,a,b,c,d,e,h,n):
    s=0
    du=(b-a)/n
    dv=(c-d)/n
    dw=(e-h)/n
    for i in range (n):
        for j in range(n):
            for k in range(n):
                s+=g(du*i,dv*j,dw*k)
    s=s/(n**3)
    return s

Спасибо за вашу помощь.

...