Как запустить эту интеграцию в PythonPython

Программы на Python
Anonymous
Как запустить эту интеграцию в Python

Сообщение Anonymous »

Когда я запускаю следующий тройной интеграл в Python, он выдает ошибку:

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()
Как запустить код без IntegrationWarning?

Подробнее здесь: https://stackoverflow.com/questions/785 ... -in-python

Вернуться в «Python»