Implement the algorithm of multivariate polynomial division for more than one divisor (the examples and pseudo-algorithm of polynomial division can be found in lab slides from week 8 or lecture slides from week 9 and 10. )
Forbidden methods: sympy.polys.polytools.reduced
Create a function poly_div(f, divs, mo)
for dividing the polynomial f
by the list of polynomials divs
using the specified monomial ordering mo
.
Input/Output specifications for poly_div
:
f
: Poly
object
divs
: list of Poly
objects
mo
: String. It can take the following values (according to SymPy documentation):
“lex”
- lexicographic order
“grlex”
- graded lexicographic order
“grevlex”
- graded reversed lexicographic order
“q”
and “r”
, whose values are the list of quotient polynomials (list of Poly
objects) and the remainder of the division (Poly
object), respectively. That is,
$$ f = \sum_{i}q[i]\cdot divs[i] + r, \quad \mathrm{LT}(r) \text{ is not divisible by any of } \mathrm{LT}(divs[i]) \;\text{ or }\; r = 0. $$
Poly
objects see Sympy documentation.
Upload a zip archive hw07.zip
(via the course ware) containing the following files:
hw07.py
- python script containing the implemented function poly_div