Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mathematical Integration of a function in Python

I'm trying to integrate this function:

enter image description here

However I'm running into an error of:

Traceback (most recent call last):

  File "<ipython console>", line 1, in <module>

  File "siestats.py", line 349, in NormalDistro

    P_inner = scipy.integrate(NDfx,-dev,dev)

TypeError: 'module' object is not callable

My code runs this:

# Definition of the mathematical function:
def NDfx(x):

    return((1/math.sqrt((2*math.pi)))*(math.e**((-.5)*(x**2))))

# This Function normailizes x, u, and o2 (position of interest, mean and st dev) 
# and then calculates the probability up to position 'x'

def NormalDistro(u,o2,x):


    dev = abs((x-u)/o2)


    P_inner = scipy.integrate(NDfx,-dev,dev)

    P_outer = 1 - P_inner

    P = P_inner + P_outer/2

    return(P)

Function NormalDistro is mean for import and used like this:

foo.NormalDistro(30,2.5,1.25)

As an example.

like image 491
James Mertz Avatar asked Aug 23 '26 17:08

James Mertz


1 Answers

The module you are attempting to call is scipy.integrate, you need to call one of the functions within the module. Based on previous comments on chat you are probably wanting to use scipy.integrate.quad().

Also, it returns a tuple of (Result,MaximumError), so you shouldn't use P_inner directly in the sum for P, you want P = P_inner[0] + P_outer/2

like image 134
DMA57361 Avatar answered Aug 26 '26 08:08

DMA57361



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!