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.
veelterm()
met als enig argument de lijst l
afgeleide_veelterm()
met opnieuw als enig argument de lijst l
primitieve_veelterm()
met als argumenten:
l
c
Gebruik telkens een closure, waarbij respectievelijk afgeleide en primitieve langs analytische weg bepaald worden.
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