Я пытаюсь вычислить тройной интеграл функции 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
Спасибо за вашу помощь.