Een reële functie $$f(x_0, x_1, ... ,x_{N-1})$$ wordt in een NumPy-tabel $$\mathbf{X}$$ bijgehouden. De tabel bevat $$M$$ rijen, en per rij vinden we de argumentwaarden $$x_0, ..., x_{N-1}$$ terug, gevolgd door de bijhorende functiewaarde. De tabel bevat dus $$N+1$$ kolommen (namelijk $$N$$ kolommen om de argumenten bij te houden, en 1 kolom om de bijhorende functiewaarde op te slaan).
Als voorbeeld geven we onderstaande tabel, waarin de functie $$s(x_0, x_1, x_2) = x_0 + 2x_1 + 3x_3$$ via een tabel in een beperkt aantal punten weergegeven wordt ($$N = 3, M = 4$$).
$$ \left( \begin{array}{cccc} -1.0 & -1.0 & -1.0 & -6.0\\ 0.0 & 0.0 & 0.0 & 0.0\\ 1.0 & 1.0 & 1.0 & 6.0\\ 1.0 & 2.0 & 3.0 & 14.0 \end{array} \right) $$Om nu de functiewaarde in een willekeurig argument $$(x_0^*, x_1^*, x_2^*, ..., x_{N-1}^*)$$ te bepalen, gebruiken we onderstaand eenvoudig algoritme:
Schrijf een functie functie_benadering()
met drie argumenten, namelijk:
X = np.array( [[ 0., 1., 2., 3.], [-1., -2., 5., 7.], [3., 2., 9., 1.], [-5., -3., 2., 0.], [-1.05, -2., 5., 8.]]) x = np.array([-1., -2., 5.]) print(functie_benadering(X, x, 0.1)) #7.5