2017-09-18 3 views
0

Die Funktion, die ich Code will, ist f (x) = beta/(pi * (x^(2) + beta^(2)) für Beta-Wert 0, 10, 20, 50, 100Wie erstellt man eine Funktion, die von einem Array von Werten abhängig ist?

Deshalb mag ich bis ins Unendliche diese Funktion über den Bereich von x von minus unendlich integrieren. ich habe die Basis des Codes unter, aber bin nicht sicher, wie ein Array durchläuft für beta.

Danke für die Hilfe!

from scipy.integrate import quad 
from sympy import Symbol 
from math import pi 
import numpy as np 
import matplotlib.pyplot as plt 

def integrand(x): 
    return limit(beta/(np.pi*(x**2 + beta**2))); 
xlo = '-inf' 
xhi = 'inf' 
result = quad(integrand, xlo, xhi, args=(beta)) 
print result 
+0

'import scipy als quad'? Meinst du nicht "von scipy.integrate import quad"? – saintsfan342000

Antwort

0

Versuchen Sie folgendes:

from scipy.integrate import quad 
from math import pi 
import numpy as np 

def integrand(x, beta): 
    return beta/(np.pi*(x**2 + beta**2)) 

for beta in [0., 1., 10., 20., 50., 100.]: 
    xlo = -np.inf 
    xhi = np.inf 
    result = quad(integrand, xlo, xhi, args=(beta)) 
    print('beta: {}, result: {}, error estimate: {}'.format(beta, *result)) 

Das Integral sollte immer 1 sein, wenn Beta> 0 für diesen Ausdruck, unabhängig von der Beta, wenn Sie integrate it. Ich war mir nicht sicher, warum limit dort war oder wo es herkommen sollte, also entfernte ich es. Wenn Beta null ist, ist die Funktion bei x = 0 undefiniert, und Sie sollten vorsichtig sein.

Verwandte Themen