Skip to main content

Calculate area under curve

Project description

  • Version 1.0.4

  • Python 3.7+ module to calculate riemann sum area under a curve

  • Copyright 2019 Steven Mycynek

  • Supports

    • simpson, trapezoid, and midpoint algorithms,

    • n-degree single variable polynomials, including fractional exponents,

    • variable step size

  • https://pypi.python.org/pypi/area-under-curve

USAGE = """ -p|--poly {DegreeN1:CoefficientM1, DegreeN2:CoefficientM2, ...}... -l|--lower <lower_bound> -u|--upper <upper_bound> -s|--step <step> -a|--algorithm <simpson | trapezoid | midpoint>

  • This was just a fun experiment I did on a couple airplane rides and might not be suitable for production use.
  • Try a simple function you can integrate by hand easily, like f(x) = x^3 from [0-10], and compare that to how accurate the midpoint, trapezoid, and simpson approximations are with various steps sizes.

  • Why not use numpy? You probably should, but I wanted to do everything from scratch for fun.

examples:

python area_under_curve.py --polynomial {3:1} --lower 0 --upper 10 --step .1 --algorithm simpson

or:

import area_under_curve as auc

algorithm = auc.get_algorithm("simpson")

bounds = auc.Bounds(0, 10, .1)

polynomial = auc.Polynomial({3:1})

params = auc.Parameters(polynomial, bounds, algorithm)

AREA = auc.area_under_curve(params.polynomial, params.bounds, params.algorithm)

print(str(AREA))

Also try out unit_test.py and demo.py.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

area_under_curve-1.0.4.tar.gz (7.6 kB view hashes)

Uploaded Source

Built Distribution

area_under_curve-1.0.4-py2.py3-none-any.whl (6.5 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page