We stellen een veelterm voor via een lijst van coëfficiënten. De veelterm $$V(x) = a_N x^N + a_{N-1}x^{N-1} + ... + a_1 x + a_0$$ wordt dan voorgesteld door een lijst l met $$N+1$$ elementen, namelijk [a0, a1, ..., aN]. Schrijf volgende functies, die elk een gevectoriseerde functie teruggeven in 1 argument, dat hetzij een float kan zijn of een NumPy-rij.

Gebruik telkens een closure, waarbij respectievelijk afgeleide en primitieve langs analytische weg bepaald worden.

Voorbeeld

v = veelterm(np.array([1, 2, 3]))
y1 = v(np.array([1.0, 2.0, 3.0]))    #[6.0000, 17.0000, 34.0000]
y2 = v(np.array([-1.0, -2.0, -3.0])) #[2.0000, 9.0000, 22.0000]
y3 = v(2.0) #17.0000
v = afgeleide_veelterm(np.array([1, 2, 3]))
y1 = v(np.array([1.0, 2.0, 3.0]))    #[8.0000, 14.0000, 20.0000]
y2 = v(np.array([-1.0, -2.0, -3.0])) #[-4.0000, -10.0000, -16.0000]
y3 = v(2.0)                          #14.0000
v = primitieve_veelterm(np.array([1, 2, 3]), 3.0)
y1 = v(np.array([1.0, 2.0, 3.0]))    #[-36.0000, -25.0000, 0.0000]
y2 = v(np.array([-1.0, -2.0, -3.0])) #[-40.0000, -45.0000, -60.0000]
y3 = v(2.0) #-25.0000