IntegrationWarning: обнаружено возникновение ошибки округления, которая предотвращает требуемый допуск не достигается
Вот код: он предназначен для построения тройного интеграла f(t1, t2, m, k) против переменной k.
Код: Выделить всё
import numpy as np
import scipy.special
from scipy import integrate
from scipy.special import kn
import matplotlib.pyplot as plt
import math
import time, sys
H = 4
ti = -H
a = 0.1
f = lambda t1, t2, m, k: (k**3 * m**3) * (1/(H * t1)) * (1/(H * t2)) * (2/k)**2
X = np.arange(0, 50, 0.1)
g = float('inf')
def F(x):
res = np.zeros_like(x)
for i, val in enumerate(x):
y, err = integrate.tplquad(f, ti, a, lambda x: ti, lambda x: a, lambda x, y: 0, lambda x, y: g, args=(val,))
res[i] = y
return res
plt.plot(X, F(X))
plt.title("P(k), H=2.5")
plt.xlabel("k")
plt.ylabel("P")
plt.savefig('P(k).png')
plt.show()
Подробнее здесь: https://stackoverflow.com/questions/785 ... -in-python