Gegeven is een reeks gemeten punten $$y_i$$ als functie van $$x_i$$ ($$0 \le i < N$$).
We vermoeden dat er een polynomiaal verband bestaat tussen de grootheid $$y$$ en $$x$$, m.a.w.
(op kleine meetfouten na)
$$ y_i = \sum_{j=0}^{M} w_j (x_i)^j $$
,
waarbij we de ongekende veeltermcoëfficiënten $$w_j$$ uit de opgemeten gegevens wensen te bepalen.
Om de coëfficiënten $$w$$ te vinden, gaan we als volgt tewerk:
Schrijf de functie polynoom_fit()
met als argumenten
x
met N
> 0 elementen y
met N
> 0 elementen M
, dat de gewenste veeltermgraad aangeeft Merk op dat het Dodonascript je resultaat omzet naar een lijst. Het resultaat van je functie moet wel degelijk een 1D NumPy-rij zijn. De numerieke waarden worden ook afgekapt op 4 decimalen.
polynoom_fit(np.array([0.8, -8.7, -1.0, -3.0, 1.1, -5.6, 4.4, 9.0]), np.array([1.7811199999999996, -174052.2218799999, 2.0, -568.0, 6.444440000000001, -17490.688639999993, 7703.471360000002, 259292.0]), 6) #[1.9999, 0.9999, -2.9999, -3.9999, 3.9999, 3.9999] polynoom_fit(np.array([7.0, -4.1, -7.2, 3.5, -6.5, 5.3, -0.6, -9.2, -1.6, -7.5]), np.array([-31.0, 24.5, 40.0, -13.5, 36.5, -22.5, 7.0, 50.0, 12.0, 41.5]), 2) #[3.9999, -5.0]