Polynomials
First, we will demonstrate the power of the Python constructs presented so far by designing a class for polynomials. We will give some theoretical background, which leads us to a list of requirements, and then we will give the code, with some comments.
Note, this class differs conceptually from the class numpy.poly1d
.
Theoretical background
A polynomial: p(x) = an x n + an-1 xn-1+…+ a1x + a0 is defined by its degree, its representation, and its coefficients. The polynomial representation shown in the preceding equation is called a monomial representation. In this representation, the polynomial is written as a linear combination of monomials, xi. Alternatively, the polynomial can be written in:
- Newton representation with the coefficients ci and n points, x0, …, xn-1:
p(x) = c0 + c1 (x - x0) + c2 (x - x0)(x-x1) + ... + cn(x - x0) … (x - xn-1)
- Lagrange representation with the coefficients yi and n+1 points, x0, … , xn:
&...