Polynomial Manipulation¶
Computations with polynomials are at the core of computer algebra and
having a fast and robust polynomials manipulation module is a key for
building a powerful symbolic manipulation system. SymPy has a dedicated
module sympy.polys
for computing in polynomial algebras over
various coefficient domains.
There is a vast number of methods implemented, ranging from simple tools like polynomial division, to advanced concepts including Gröbner bases and multivariate factorization over algebraic number domains.
Contents¶
- Basic functionality of the module
- Examples from Wester’s Article
- Introduction
- Examples
- Simple univariate polynomial factorization
- Univariate GCD, resultant and factorization
- Multivariate GCD and factorization
- Support for symbols in exponents
- Testing if polynomials have common zeros
- Normalizing simple rational functions
- Expanding expressions and factoring back
- Factoring in terms of cyclotomic polynomials
- Univariate factoring over Gaussian numbers
- Computing with automatic field extensions
- Univariate factoring over various domains
- Factoring polynomials into linear factors
- Advanced factoring over finite fields
- Working with expressions as polynomials
- Computing reduced Gröbner bases
- Multivariate factoring over algebraic numbers
- Partial fraction decomposition
- Literature
- Polynomials Manipulation Module Reference
- Basic polynomial manipulation functions
poly()
poly_from_expr()
parallel_poly_from_expr()
degree()
degree_list()
LC()
LM()
LT()
pdiv()
prem()
pquo()
pexquo()
div()
rem()
quo()
exquo()
half_gcdex()
gcdex()
invert()
subresultants()
resultant()
discriminant()
terms_gcd()
cofactors()
gcd()
gcd_list()
lcm()
lcm_list()
trunc()
monic()
content()
primitive()
compose()
decompose()
sturm()
gff_list()
gff()
sqf_norm()
sqf_part()
sqf_list()
sqf()
factor_list()
factor()
intervals()
refine_root()
count_roots()
real_roots()
nroots()
ground_roots()
nth_power_roots_poly()
cancel()
reduced()
groebner()
is_zero_dimensional()
Poly
PurePoly
GroebnerBasis
- Extra polynomial manipulation functions
- Domain constructors
- Monomials encoded as tuples
- Orderings of monomials
- Formal manipulation of roots of polynomials
- Symbolic root-finding algorithms
- Special polynomials
- Orthogonal polynomials
- Manipulation of rational functions
- Partial fraction decomposition
- Dispersion of Polynomials
- Basic polynomial manipulation functions
- AGCA - Algebraic Geometry and Commutative Algebra Module
- Introducing the Domains of the poly module
- What are the domains?
- Representing expressions symbolically
- Basic usage of domains
- Domain elements vs sympy expressions
- Gaussian integers and Gaussian rationals
- Finite fields
- Real and complex fields
- Algebraic number fields
- Polynomial ring domains
- Old (dense) polynomial rings
- PolyRing vs PolynomialRing
- Rational function fields
- Expression domain
- Choosing a domain
- Converting elements between different domains
- Unifying domains
- Internals of a Poly
- Choosing a domain for a Poly
- Choosing generators
- Algebraically dependent generators
- Reference docs for the Poly Domains
- Internals of the Polynomial Manipulation Module
- Level Zero
- Options
- Configuration
- Exceptions
BasePolynomialError
ExactQuotientFailed
OperationNotSupported
HeuristicGCDFailed
HomomorphismFailed
IsomorphismFailed
ExtraneousFactors
EvaluationFailed
RefinementFailed
CoercionFailed
NotInvertible
NotReversible
NotAlgebraic
DomainError
PolynomialError
UnificationFailed
GeneratorsNeeded
ComputationFailed
GeneratorsError
UnivariatePolynomialError
MultivariatePolynomialError
PolificationFailed
OptionError
FlagError
- Reference
- Undocumented
- Series Manipulation using Polynomials
- Literature
- Poly solvers
- Introducing the domainmatrix of the poly module
- Number Fields