Approximation au sens des moindres carrés discrets

Si l'on se donne une famille de points du plan \((x_i, y_i)\) pour \(i = 0, \dots, n\), les \(x_i\) étant distincts, alors il existe un unique polynôme \(p(x)\) de degré inférieur ou égal à \(n\) tel que :

\[ p(x_i) = y_i, \quad \text{pour tout } i = 0, \dots, n \]

Ce polynôme est appelé le polynôme d’interpolation des points \((x_i, y_i)\).

Si le nombre de points est trop grand, ou si les ordonnées sont bruitées, on préfère en général chercher une fonction \(g(x)\) appartenant à une certaine classe (polynômes, fractions rationnelles, fonctions trigonométriques, exponentielles, etc.) qui approche au mieux les points \((x_i, y_i)\). On parle alors d'approximation, de lissage ou de régression.

Formulation du problème

Soit une famille de fonctions linéairement indépendantes :

\[ g_0(x),\ g_1(x),\ \dots,\ g_m(x), \quad \text{avec } m \leq n \]

On cherche une combinaison linéaire :

\[ g(x) = \sum_{i=0}^{m} a_i g_i(x) \]

On définit l’erreur quadratique :

\[ E(a) = \sum_{i=0}^{n} \left( g(x_i) - y_i \right)^2 = \sum_{i=0}^{n} \left( \sum_{j=0}^{m} a_j g_j(x_i) - y_i \right)^2 \]

Le problème d’approximation se formule ainsi :
Trouver \(a \in \mathbb{R}^{m+1}\) tel que \(E(a)\) soit minimal.

Cas de la régression polynomiale

On choisit :

\[ g_i(x) = x^i, \quad i = 0, \dots, m \quad \Rightarrow \quad g(x) = a_0 + a_1 x + \dots + a_m x^m \]

La fonction à minimiser devient :

\[ E(a) = \sum_{i=0}^{n} \left( a_0 + a_1 x_i + \dots + a_m x_i^m - y_i \right)^2 \]

On calcule les dérivées partielles :

\[ \frac{\partial E}{\partial a_k} = 2 \sum_{i=0}^{n} \left( \sum_{j=0}^{m} a_j x_i^j - y_i \right) x_i^k, \quad \text{pour } k = 0, \dots, m \]

Ce qui donne un système linéaire : \(A \cdot a = b\), où :

  • \(A = \left( \sum_{i=0}^{n} x_i^{j+k} \right)_{0 \le j,k \le m}\)
  • \(b = \left( \sum_{i=0}^{n} y_i x_i^j \right)_{0 \le j \le m}\)

Régression linéaire (cas \(m=1\))

Le système devient :

\[ \begin{cases} (n+1) a_0 + \sum x_i \cdot a_1 = \sum y_i \\ \sum x_i \cdot a_0 + \sum x_i^2 \cdot a_1 = \sum x_i y_i \end{cases} \]

La solution est :

\[ a_1 = \frac{(n+1) \sum x_i y_i - \sum x_i \sum y_i}{(n+1) \sum x_i^2 - \left( \sum x_i \right)^2} \quad \text{et} \quad a_0 = \frac{\sum y_i \cdot \sum x_i^2 - \sum x_i \cdot \sum x_i y_i}{(n+1) \sum x_i^2 - \left( \sum x_i \right)^2} \]

Exemple 20

Déterminons la droite des moindres carrés qui approxime les données suivantes :

\(x_i\) 0.5 0.5 1 1.5 2 2.5 3 3.5 4 4 4.5 4.75 5.5 6 6 6.5
\(y_i\) 0.5 1 1 1.25 1 1 1.5 1.5 1.5 2 2 1.75 2 2 2.25 2.25

On calcule :

  • \(n+1 = 16\)
  • \(\sum x_i = 55.75\)
  • \(\sum y_i = 24.75\)
  • \(\sum x_i^2 = 254.5625\)
  • \(\sum x_i y_i = 101.8125\)

Donc :

\[ a_0 = \frac{24.75 \cdot 254.5625 - 55.75 \cdot 101.8125}{16 \cdot 254.5625 - (55.75)^2} = 0.64706 \]

\[ a_1 = \frac{16 \cdot 101.8125 - 55.75 \cdot 24.75}{16 \cdot 254.5625 - (55.75)^2} = 0.25824 \]

La droite des moindres carrés est donc :

\[ p(x) = 0.25824\,x + 0.64706 \]