Solve the problems in hw01.pdf:
Forbidden methods/classes: numpy.roots, numpy.polynomial, numpy.poly1d
Create a general function roots(coeffs)
which takes the coefficients of a univariate polynomial and returns its (complex) roots.
Input/Output specifications for roots(coeffs: numpy.ndarray) → numpy.ndarray
:
coeffs
: 1-dimensional numpy.ndarray
that defines the polynomial coefficients starting from the highest degree term.
numpy.ndarray
containing the roots of the given polynomial.
Implement the solution in a single file hw01.py
. The file must contain the roots
function, such that it can be imported (by the automatic evaluation) as
import hw01 import numpy as np coeffs = np.array([1, 2, 3]) res = hw01.roots(coeffs)
Upload a zip archive hw01.zip
(via the course ware) containing:
hw01.json
- json file containing the answers to tasks 1, 2, 3.b and 4 (see below for the description of how to create it)
hw01.py
- python script containing the implemented function roots
hw01.pdf
- pdf file containing the solution to tasks 1, 2, 3.a together with the companion matrices for tasks 3.b and 4 (LaTex, photos, scans, …).
hw01.zip
.
Creating hw01.json
:
Create an empty dictionary in Python:
solution = {}
The keys for this dictionary are “task1”
, “task2”
, “task3”
(for task 3.b) and “task4”
.
The value for the key “task1”
is a list of coefficients of the product polynomial starting from the term of the highest degree, i.e. for the product polynomial 2*x^4 + 5*x^3 + 3*x^2 + 1
do
solution["task1"] = [2, 5, 3, 0, 1]
The value for the key “task2”
is a list of lists of coefficients of the quotient polynomial and the remainder, respectively, starting from the term of the highest degree, i.e. for the quotient polynomial 2*x^3 + 1
and the remainder x + 2
do
solution["task2"] = [[2, 0, 0, 1], [1, 2]]
The value for the key “task3”
is a list of roots to the polynomial from task 3.b (including multiplicities), i.e. for the sequence of integer roots 1, 1, 2, 3
do
solution["task3"] = [1, 1, 2, 3]
The value for the key “task4”
is created in the same way as for the key “task3”
.
Finally, save solution
to hw01.json
:
import json with open("hw01.json", "w") as outfile: json.dump(solution, outfile)