Skip to main content

Python package defining single-variable polynomials and operations with them

PyPI version Downloads PyPI pyversions PyPI license

Unit Tests Code Documentation Style CodeFactor codecov

Installation

pip install py-polynomial

Documentation

Click here for code-derived documentation and help

Quick examples

Flexible initialization

>>> from polynomial import Polynomial

>>> a = Polynomial(1, 2, 3, 4)
>>> str(a)
x^3 + 2x^2 + 3x + 4

>>> b = Polynomial([4 - x for x in range(4)])
>>> str(b)
4x^3 + 3x^2 + 2x + 1

First derivative

>>> b.derivative
Polynomial(12, 6, 2)

>>> str(b.derivative)
12x^2 + 6x + 2

Second or higher derivative

>>> str(b.nth_derivative(2))
24x + 6

Addition

>>> str(a + b)
5x^3 + 5x^2 + 5x + 5

Calculating value for a given x

>>> (a + b).calculate(5)
780

>>> а(2)  #  equivalent to a.calculate(2)
26

Multiplication

>>> p = Polynomial(1, 2) * Polynomial(1, 2)
>>> p
Polynomial(1, 4, 4)

Accessing coefficient by degree

>>> p[0] = -4
>>> p
Polynomial(1, 4, -4)

Slicing

>>> p[1:] = [4, -1]
>>> p
Polynomial(-1, 4, -4)

Accessing coefficients by name convention

>>> (p.a, p.b, p.c)
(-1, 4, -4)

>>> p.a, p.c = 1, 4
>>> (p.A, p.B, p.C)
(1, 4, 4)

Division and remainder

>>> q, remainder = divmod(p, Polynomial(1, 2))
>>> q
Polynomial(1.0, 2.0)
>>> remainder
Polynomial()

>>> p // Polynomial(1, 2)
Polynomial(1.0, 2.0)

>>> P(1, 2, 3) % Polynomial(1, 2)
Polynomial(3)

Check whether it contains given terms

>>> Polynomial(2, 1) in Polynomial(4, 3, 2, 1)
True

Definite integral

>>> Polynomial(3, 2, 1).integral(0, 1)
3

Misc

>>> str(Polynomial("abc"))
ax^2 + bx + c

Roots and discriminants

>>> from polynomial import QuadraticTrinomial, Monomial
>>> y = QuadraticTrinomial(1, -2, 1)
>>> str(y)
x^2 - 2x + 1

>>> y.discriminant
0

>>> y.real_roots
(1, 1)

>>> y.real_factors
(1, Polynomial(1, -1), Polynomial(1, -1))

>>> str(Monomial(5, 3))
5x^3

>>> y += Monomial(9, 2)
>>> y
Polynomial(10, -2, 1)

>>> str(y)
10x^2 - 2x + 1

>>> (y.a, y.b, y.c)
(10, -2, 1)

>>> (y.A, y.B, y.C)
(10, -2, 1)

>>> y.complex_roots
((0.1 + 0.3j), (0.1 - 0.3j))

Download files

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

Source Distribution

py-polynomial-0.6.2.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_polynomial-0.6.2-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file py-polynomial-0.6.2.tar.gz.

File metadata

  • Download URL: py-polynomial-0.6.2.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for py-polynomial-0.6.2.tar.gz
Algorithm Hash digest
SHA256 2a641dca63678d05d27ffd9bfd7242e37ec0197045c2126afc47459f949f3aad
MD5 2ce0a7d9a133782a6e594564a6ca1caf
BLAKE2b-256 1776bee6bded85e454e47bde6d1a700d920ca1f45879ba5b0f438ca988730848

See more details on using hashes here.

File details

Details for the file py_polynomial-0.6.2-py3-none-any.whl.

File metadata

  • Download URL: py_polynomial-0.6.2-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for py_polynomial-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fe9fe1f3901cd84b1b327d041f1321ac0ebf863ce367e63569305eca95bfac25
MD5 3c6c48e44586a8c697648e0ba36edd00
BLAKE2b-256 e47497f38fb78527d32e0d1cd7ec1285370a535c83382aca97fd942586d6a678

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.6.2 This release

2 files

0.6.1

2 files

0.6.0

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3

2 files

0.2

2 files

0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page