Package defining mathematical single-variable polynomials.
Project description
Python package defining single-variable polynomials and operations with them
Installation
pip3 install py-polynomial
Sample functionality
>>> from polynomial import Polynomial as P
>>> a = P(1, 2, 3, 4)
>>> a
Polynomial(1, 2, 3, 4)
>>> str(a)
x^3 + 2x^2 + 3x + 4
>>> b = P([4 - x for x in range(4)]) # Flexible initialization
>>> str(b)
4x^3 + 3x^2 + 2x + 1
>>> b.derivative # First derivative
Polynomial(12, 6, 2)
>>> str(b.derivative)
12x^2 + 6x + 2
>>> str(b.nth_derivative(2)) # Second or higher derivative
24x + 6
>>> str(a + b) # Addition
5x^3 + 5x^2 + 5x + 5
>>> (a + b).calculate(5) # Calculating value for a given x
780
>>> p = P(1, 2) * P(1, 2) # Multiplication
>>> p
Polynomial(1, 4, 4)
>>> p[0] = -4 # Accessing coefficient by degree
>>> p
Polynomial(1, 4, -4)
>>> p[1:] = [4, -1] # Slicing
>>> p
Polynomial(-1, 4, -4)
>>> (p.a, p.b, p.c) # Accessing coefficients by name convention
(-1, 4, -4)
>>> p.a, p.c = 1, 4
>>> (p.A, p.B, p.C)
(1, 4, 4)
>>> q, remainder = divmod(p, P(1, 2)) # Division and remainder
>>> q
Polynomial(1.0, 2.0)
>>> remainder
Polynomial()
>>> p // P(1, 2)
Polynomial(1.0, 2.0)
>>> P(1, 2, 3) % P(1, 2)
Polynomial(3)
>>> P(2, 1) in P(4, 3, 2, 1) # Check whether it contains given terms
True
>>> str(P("abc")) # Misc
ax^2 + bx + c
>>> 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))
Project details
Release history Release notifications | RSS feed
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.5.1.tar.gz
(11.7 kB
view hashes)
Built Distribution
Close
Hashes for py_polynomial-0.5.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9fab4899bbec76de44761ad2fa218962fdf7ad412953db8c98b6b02486b840f |
|
MD5 | f932c2fb7a0d91a4e87db8ff58c08424 |
|
BLAKE2b-256 | 8e0adafc85043aa4ac3dd23bad2cb9f5fe36ca10db16ab98ae3074ba76c1895b |