Warning

This page is located in archive.
Go to the latest version of this course pages.
Go the latest version of this page.

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

**Return value**: dictionary with 2 keys`“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. $$

For the explanation of how to work with

`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`

courses/pkr/labs/hw06.txt · Last modified: 2022/11/06 17:29 by korotvik