§ 2	Projections orthogonales

§ 2.1	Projection orthogonale et équations normales

Produit scalaire

Produit scalaire dans (ℝ^2) (rappel)

(OverVector[u]).(OverVector[v])=∥(OverVector[u])∥∥(OverVector[v])∥cos(∡((OverVector[u]),(OverVector[v])))

Par rapport à une base orthonormée, pour

(OverVector[u])=(({{(Subscript[u, 1])}, {(Subscript[u, 2])}})),    (OverVector[v])=(({{(Subscript[v, 1])}, {(Subscript[v, 2])}})),     (OverVector[u]).(OverVector[v])=(Subscript[u, 1])(Subscript[v, 1])+(Subscript[u, 2])(Subscript[v, 2])

Produit scalaire dans (ℝ^n) (généralisation)

Par rapport à une base orthonormée, pour

(OverVector[u])=(({{({{(Subscript[u, 1])}, {(Subscript[u, 2])}})}, {..}, {(Subscript[u, n])}})),    (OverVector[v])=(({{({{(Subscript[v, 1])}, {(Subscript[v, 2])}})}, {..}, {(Subscript[v, n])}})),        (OverVector[u]).(OverVector[v])=(Subscript[u, 1])(Subscript[v, 1])+(Subscript[u, 2])(Subscript[v, 2])+...+(Subscript[u, n])(Subscript[v, n])

Propriétés:

(OverVector[u]).(OverVector[v])=(OverVector[v]).(OverVector[u])

(OverVector[u]).((OverVector[v])+(OverVector[w]))=(OverVector[u]).(OverVector[v])+(OverVector[u]).(OverVector[w])

(λ(OverVector[u])).(OverVector[v])=λ((OverVector[u]).(OverVector[v]))

((OverVector[u])^2)=(OverVector[u]).(OverVector[u])=(((∥(OverVector[u])∥))^2)≥0

(OverVector[u])⊥(OverVector[v])    ⟺    (OverVector[u]).(OverVector[v])=0

(OverVector[u]).(OverVector[v])=∥(OverVector[u])∥∥(OverVector[v])∥cos(∡((OverVector[u]),(OverVector[v])))

Exemple 1

Un employé de bureau a acheté 4 sortes de timbres postaux:
	60 timbres à 0.85 Fr/timbre;
	40 timbres à 1 Fr/timbre;
	20 timbres à 1.50 Fr/timbre;
	10 timbres à 2 Fr/timbre.
Le prix total peut s'exprimer par le produit scalaire de deux vecteurs:

60·0.85+40·1+20·1.5+10·2=(({{60}, {40}, {20}, {10}}))·(({{0.85}, {1}, {1.5}, {2}}))

Les composantes du premier vecteur sont les nombres de timbres de chaque sorte. Les composantes du deuxième vecteur sont les prix unitaires de chaque sorte de timbres, dans le même ordre.

Exemple 2

Un élève a reçu les 5 notes suivantes:
	contrôle oral 5.5, coefficient (1/5);
	contrôle écrit 4.9, coefficient (1/2);
	examen écrit 4.8, coefficient 1;
	exposé 5.7, coefficient 1.5;
	examen de synthèse 4.3, coefficient 2.
La note moyenne peut s'exprimer par le produit scalaire de deux vecteurs:

((5.5·0.2+4.9·0.5+4.8·1+5.7·1.5+4.3·2)/(0.2+0.5+1+1.5+2))=5.5·(0.2/5.2)+4.9·(0.5/5.2)+4.8·(1/5.2)+5.7·(1.5/5.2)+4.3·(2/5.2)=(({{5.5}, {4.9}, {4.8}, {5.7}, {4.3}}))·(({{(0.2/5.2)}, {(0.5/5.2)}, {(1/5.2)}, {(1.5/5.2)}, {(2/5.2)}}))

Les composantes du premier vecteur sont les notes de chaque examen. Les composantes du deuxième vecteur sont les pondérations correspondantes, dans le même ordre. La pondération d'un examen est égal à son coefficient divisé par la somme des coefficients; la somme des pondérations est égale à 1.

Projection orthogonale de (ℝ^3) sur un sous-espace affine de dimension 2

On donne un plan G défini par le repère (A, (OverVector[(Subscript[g, 1])]), (OverVector[(Subscript[g, 2])])) et le point P.  Déterminez le point (SuperStar[P])=p(P)= projection orthogonale de P sur G. Le mot "orthogonal" signifie ici que la projection sur G se fait selon la direction perpendiculaire à G.

a={0,0,0};ps={-2,3,0};p=ps+{0,0,2.5`};g1={0,1,0};g2={-1,0,0};
Show[Graphics3D[{{Dashing[{0.02`}],Line[{ps,p}],Line[{ps,{-2,0,0},g2}],Line[{ps,{0,3,0},g1}]},vecteur3D[a,g1,0.15`,0.005`],vecteur3D[a,g2,0.2`,0.005`],Point[a],Point[p],Point[ps],Text["A",a+{0.15`,-0.15`,-0.15`}],Text["P",p+{0,0.2`,0}],Text["\!\(\*SuperscriptBox[\(P\), \(*\)]\)",ps+{0,0.2`,0}],Text["\!\(\*OverscriptBox[SubscriptBox[\(g\), \(1\)], \(⇀\)]\)",g1+{0,0.1`,-0.15`}],Text["\!\(\*OverscriptBox[SubscriptBox[\(g\), \(2\)], \(⇀\)]\)",g2+{-0.3`,-0.2`,0}],Polygon[{a,0.5` g1,0.5` g2}]},Boxed->False,PlotRange->All,ViewPoint->{3,1,1}],ImageSize->{400,250}]

Une première méthode consiste à
  1°	contruire le vecteur (OverVector[n]) normal au plan G;
  2°	effectuer la projection sur G parallèlement à (OverVector[n]).
Comme nous l'avons étudié au § 1, cette méthode conduit à résoudre un système de 3 équations à 3 inconnues.

Nous allons maintenant introduire une meilleure méthode
  1°	qui ne nécessite pas de déterminer le vecteur normal (OverVector[n]);
  2°	qui conduit à un système de seulement 2 équations à 2 inconnues.

Equations normales

Le point (SuperStar[P]) est caractérisé par les deux conditions:

(SuperStar[P]) ∈ G   et    (OverVector[(SuperStar[PP])])⊥G

La première condition s'explicite comme suit:

(OverVector[(SuperStar[AP])])=(Subscript[r, 1])(OverVector[(Subscript[g, 1])])+(Subscript[r, 2])(OverVector[(Subscript[g, 2])])

La deuxième condition s'écrit

(OverVector[(SuperStar[PP])]).(OverVector[(Subscript[g, 1])]) =0    et     (OverVector[(SuperStar[PP])]).(OverVector[(Subscript[g, 2])]) =0

En substituant la première dans la deuxième, il vient successivement

((OverVector[PA])+(OverVector[(SuperStar[AP])])).(OverVector[(Subscript[g, 1])]) =0         et         ((OverVector[PA])+(OverVector[(SuperStar[AP])])).(OverVector[(Subscript[g, 2])]) =0

⟺ (OverVector[PA]).(OverVector[(Subscript[g, 1])])+(OverVector[(SuperStar[AP])]).(OverVector[(Subscript[g, 1])]) =0        et         (OverVector[PA]).(OverVector[(Subscript[g, 2])])+(OverVector[(SuperStar[AP])]).(OverVector[(Subscript[g, 2])]) =0

⟺ (OverVector[(SuperStar[AP])]).(OverVector[(Subscript[g, 1])]) =(OverVector[AP]).(OverVector[(Subscript[g, 1])])          et              (OverVector[(SuperStar[AP])]).(OverVector[(Subscript[g, 2])]) = (OverVector[AP]).(OverVector[(Subscript[g, 2])])

⟺ ((Subscript[r, 1])(OverVector[(Subscript[g, 1])])+(Subscript[r, 2])(OverVector[(Subscript[g, 2])])).(OverVector[(Subscript[g, 1])]) =(OverVector[AP]).(OverVector[(Subscript[g, 1])])         et         ((Subscript[r, 1])(OverVector[(Subscript[g, 1])])+(Subscript[r, 2])(OverVector[(Subscript[g, 2])])).(OverVector[(Subscript[g, 2])]) = (OverVector[AP]).(OverVector[(Subscript[g, 2])])

⟺ (OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 1])]) (Subscript[r, 1])+(OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 1])]) (Subscript[r, 2])=(OverVector[AP]).(OverVector[(Subscript[g, 1])])        et          (OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 2])]) (Subscript[r, 1])+(OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 2])]) (Subscript[r, 2])= (OverVector[AP]).(OverVector[(Subscript[g, 2])])

Il s'agit d'un système de deux équations à deux inconnues dont la forme matricielle est

(({{(OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 1])]) , (OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 1])]) }, {(OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 2])]), (OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 2])])}}))(({{(Subscript[r, 1])}, {(Subscript[r, 2])}}))  =  (({{(OverVector[AP]).(OverVector[(Subscript[g, 1])])}, {(OverVector[AP]).(OverVector[(Subscript[g, 2])])}}))

Ce système d'équations, qui est symétrique, est appelé "équations normales" de la projection. Après avoir résolu le système, on détermine les coordonnées de la projection (SuperStar[P]) comme suit:

(OverVector[(SuperStar[OP])])=(OverVector[OA]) + (OverVector[(SuperStar[AP])])=(OverVector[OA]) +(Subscript[r, 1])(OverVector[(Subscript[g, 1])])+(Subscript[r, 2])(OverVector[(Subscript[g, 2])])

Exercice 2.1 - 1

Calculez la projection orthogonale du point P(5; 6; 7) sur le plan affine de repère (A, (OverVector[(Subscript[g, 1])]), (OverVector[(Subscript[g, 2])])) où

A(-1; 1; 3),   (OverVector[(Subscript[g, 1])])=(({{1}, {1}, {0}})),        (OverVector[(Subscript[g, 2])])=(({{-1}, {0}, {2}}))

On demande de refaire toute la démarche qui est décrite dans le paragraphe précédent intitulé "Equations normales" et de terminer les calculs sans ordinateur.

Exercice 2.1 - 2

On donne la droite affine G de repère (A, (OverVector[(Subscript[g, 1])])) et le point P où

A((Subscript[x, 0]); (Subscript[y, 0]); (Subscript[z, 0])),  (OverVector[(Subscript[g, 1])])=(({{(Subscript[x, 1])}, {(Subscript[y, 1])}, {(Subscript[z, 1])}})), P(x; y;z).

Calculez la projection orthogonale de P sur G.

Projection orthogonale, cas affine général

Dans l'espace (ℝ^n) de dimension n, considérons le sous-espace affine G de dimension p engendré par le repère

(A, (OverVector[(Subscript[g, 1])]),(OverVector[(Subscript[g, 2])]), ..., (OverVector[(Subscript[g, p])]))          où           1≤p≤n.

La projection orthogonale (SuperStar[P]) de P sur G est caractérisée par les deux conditions:

(SuperStar[P])∈ G   et    (OverVector[(SuperStar[PP])])⊥G

La première condition s'explicite comme suit:

(OverVector[(SuperStar[AP])])=(Subscript[r, 1])(OverVector[(Subscript[g, 1])])+(Subscript[r, 2])(OverVector[(Subscript[g, 2])])+ ...+(Subscript[r, p])(OverVector[(Subscript[g, p])])

La deuxième condition s'écrit

(OverVector[(SuperStar[PP])]).(OverVector[(Subscript[g, 1])]) =0,    (OverVector[(SuperStar[PP])]).(OverVector[(Subscript[g, 2])]) =0, ..., (OverVector[(SuperStar[PP])]).(OverVector[(Subscript[g, p])]) =0

En substituant la première dans la deuxième, il vient sucessivement

((OverVector[PA])+(OverVector[(SuperStar[AP])])).(OverVector[(Subscript[g, 1])]) =0,((OverVector[PA])+(OverVector[(SuperStar[AP])])).(OverVector[(Subscript[g, 2])]) =0,...,      ((OverVector[PA])+(OverVector[(SuperStar[AP])])).(OverVector[(Subscript[g, p])]) =0

⟺ (OverVector[PA]).(OverVector[(Subscript[g, 1])])+(OverVector[(SuperStar[AP])]).(OverVector[(Subscript[g, 1])]) =0,(OverVector[PA]).(OverVector[(Subscript[g, 2])])+(OverVector[(SuperStar[AP])]).(OverVector[(Subscript[g, 2])]) =0 , ...,   (OverVector[PA]).(OverVector[(Subscript[g, p])])+(OverVector[(SuperStar[AP])]).(OverVector[(Subscript[g, p])]) =0

⟺ (OverVector[(SuperStar[AP])]).(OverVector[(Subscript[g, 1])]) =(OverVector[AP]).(OverVector[(Subscript[g, 1])]),  (OverVector[(SuperStar[AP])]).(OverVector[(Subscript[g, 2])]) =(OverVector[AP]).(OverVector[(Subscript[g, 2])]), ...,             (OverVector[(SuperStar[AP])]).(OverVector[(Subscript[g, p])]) = (OverVector[AP]).(OverVector[(Subscript[g, p])])

⟺((Subscript[r, 1])(OverVector[(Subscript[g, 1])])+(Subscript[r, 2])(OverVector[(Subscript[g, 2])])+...+(Subscript[r, p])(OverVector[(Subscript[g, p])])).(OverVector[(Subscript[g, 1])]) =(OverVector[AP]).(OverVector[(Subscript[g, 1])]), ((Subscript[r, 1])(OverVector[(Subscript[g, 1])])+(Subscript[r, 2])(OverVector[(Subscript[g, 2])])+...+(Subscript[r, p])(OverVector[(Subscript[g, p])])).(OverVector[(Subscript[g, 2])]) =(OverVector[AP]).(OverVector[(Subscript[g, 2])]),...,    ((Subscript[r, 1])(OverVector[(Subscript[g, 1])])+(Subscript[r, 2])(OverVector[(Subscript[g, 2])])+...+(Subscript[r, p])(OverVector[(Subscript[g, p])])).(OverVector[(Subscript[g, p])]) = (OverVector[AP]).(OverVector[(Subscript[g, p])])

⟺ (OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 1])]) (Subscript[r, 1])+(OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 1])]) (Subscript[r, 2])+...+(OverVector[(Subscript[g, p])]).(OverVector[(Subscript[g, 1])]) (Subscript[r, p])=(OverVector[AP]).(OverVector[(Subscript[g, 1])]), (OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 2])]) (Subscript[r, 1])+(OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 2])]) (Subscript[r, 2])+...+(OverVector[(Subscript[g, p])]).(OverVector[(Subscript[g, 2])]) (Subscript[r, p])=(OverVector[AP]).(OverVector[(Subscript[g, 2])]),...,    (OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, p])]) (Subscript[r, 1])+(OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, p])]) (Subscript[r, 2])+...+(OverVector[(Subscript[g, p])]).(OverVector[(Subscript[g, p])]) (Subscript[r, p])= (OverVector[AP]).(OverVector[(Subscript[g, p])])

Il s'agit d'un système de p équations à p inconnues dont la forme matricielle est

(({{(OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 1])]) , (OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 1])]), ..., (OverVector[(Subscript[g, p])]).(OverVector[(Subscript[g, 1])]) }, {(OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 2])]), (OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 2])]), ..., (OverVector[(Subscript[g, p])]).(OverVector[(Subscript[g, 2])])}, {..., ..., ..., ...}, {(OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, p])]), (OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, p])]) , ..., (OverVector[(Subscript[g, p])]).(OverVector[(Subscript[g, p])])}}))(({{(Subscript[r, 1])}, {(Subscript[r, 2])}, {...}, {(Subscript[r, p])}}))  =  (({{(OverVector[AP]).(OverVector[(Subscript[g, 1])])}, {(OverVector[AP]).(OverVector[(Subscript[g, 2])])}, {...}, {(OverVector[AP]).(OverVector[(Subscript[g, p])])}}))

Après avoir résolu le système, on détermine les coordonnées de la projection (SuperStar[P]) comme suit:

(OverVector[(SuperStar[OP])])=(OverVector[OA]) + (OverVector[(SuperStar[AP])])=(OverVector[OA]) +(Subscript[r, 1])(OverVector[(Subscript[g, 1])])+(Subscript[r, 2])(OverVector[(Subscript[g, 2])])+ ...+(Subscript[r, p])(OverVector[(Subscript[g, p])])

En résumé, le calcul d'une projection orthogonale sur un sous-espace de dimension p se ramène à la résolution d'un système de p équations linéaires à p inconnues appelé "équations normales".

Cas particulier des bases orthogonales

Si la base est orthogonale, c'est-à-dire si toutes les paires de deux vecteurs distincts sont orthogonales

(OverVector[(Subscript[g, 1])])⊥(OverVector[(Subscript[g, 2])]), (OverVector[(Subscript[g, 1])])⊥(OverVector[(Subscript[g, 3])]),..., (OverVector[(Subscript[g, 1])])⊥(OverVector[(Subscript[g, p])]), (OverVector[(Subscript[g, 2])])⊥(OverVector[(Subscript[g, 3])]), (OverVector[(Subscript[g, 2])])⊥(OverVector[(Subscript[g, 4])]),...,(OverVector[(Subscript[g, 2])])⊥(OverVector[(Subscript[g, p])]), (OverVector[(Subscript[g, 3])])⊥(OverVector[(Subscript[g, 4])]), (OverVector[(Subscript[g, 3])])⊥(OverVector[(Subscript[g, 5])]), ...

alors les équations normales s'écrivent plus simplement

(({{(OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 1])]) , 0, 0, 0 }, {0, (OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 2])]), 0, 0}, {..., ..., ..., ...}, {0, 0, ..., (OverVector[(Subscript[g, p])]).(OverVector[(Subscript[g, p])])}}))(({{(Subscript[r, 1])}, {(Subscript[r, 2])}, {...}, {(Subscript[r, p])}}))  =  (({{(OverVector[AP]).(OverVector[(Subscript[g, 1])])}, {(OverVector[AP]).(OverVector[(Subscript[g, 2])])}, {...}, {(OverVector[AP]).(OverVector[(Subscript[g, p])])}}))

ce qui permet d'exprimer la projection explicitement

(Subscript[r, 1])=(((OverVector[AP]).(OverVector[(Subscript[g, 1])]))/((OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 1])]) )), (Subscript[r, 2])=(((OverVector[AP]).(OverVector[(Subscript[g, 2])]))/((OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 2])]) )),   ...,  (Subscript[r, p])=(((OverVector[AP]).(OverVector[(Subscript[g, p])]))/((OverVector[(Subscript[g, p])]).(OverVector[(Subscript[g, p])]) ))

(OverVector[(SuperStar[OP])])=(OverVector[OA]) +(((OverVector[AP]).(OverVector[(Subscript[g, 1])]))/((OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 1])]) ))(OverVector[(Subscript[g, 1])])+ (((OverVector[AP]).(OverVector[(Subscript[g, 2])]))/((OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 2])]) ))(OverVector[(Subscript[g, 2])])+   ...+(((OverVector[AP]).(OverVector[(Subscript[g, p])]))/((OverVector[(Subscript[g, p])]).(OverVector[(Subscript[g, p])]) ))(OverVector[(Subscript[g, p])])

§ 2.2	Projection sur l'espace supplémentaire orthogonal  [Facultatif]

Sur le site  http://www.collegedusud.ch/app/applmaths/
sous la rubrique  Documents Mathematica / Annexes / Projections et ajustements
téléchargez le cahier  2-2_Espace_supplementaire.nb

§ 2.3	Moindres carrés, cas affine dans (ℝ^3)

Enoncé du problème des moindres carrés

On donne un point Y de l'espace et le sous-espace affine G déterminé par un repère (A,(OverVector[ (Subscript[g, 1])]), (OverVector[(Subscript[g, 2])])) .
Déterminer le point Q ϵ G tel que la distance YQ soit minimale.

a={0,0,0};b={-2,0,0};c={-2,3,0};d={0,3,0};y={-1,1,2};q={-1,2,0};
Show[Graphics3D[{{Dashing[{0.02`}],Line[{a,b,c,d,a}]},Line[{y,q}],Point[y],Point[q],Text["A",a+{0.1`,-0.1`,0}],Text["G",a+0.17` c],Text["Y",y+{0,0.1`,0}],Text["Q",q+{0,0.1`,0}],Polygon[{a,(b-a) 0.25`,(d-a) 0.2`}]},Boxed->False,PlotRange->All,ViewPoint->{3,1,1}],ImageSize->{400,250}]

Pourquoi ce problème est-il appelé "des moindres carrés" ?

Introduisons les notations

Y((Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])), A((Subscript[a, 1]),(Subscript[a, 2]),(Subscript[a, 3])), (OverVector[(Subscript[g, 1])])=(({{(Subscript[g, 11])}, {(Subscript[g, 12])}, {(Subscript[g, 13])}})), (OverVector[(Subscript[g, 2])])=(({{(Subscript[g, 21])}, {(Subscript[g, 22])}, {(Subscript[g, 23])}})),     (OverVector[AQ])=(Subscript[r, 1]) (OverVector[(Subscript[g, 1])])+(Subscript[r, 2]) (OverVector[(Subscript[g, 2])]),
 (OverVector[e])=(OverVector[QY])=écart

Les composantes du vecteur écart sont appelées résidus:

(OverVector[e])=(OverVector[QY])=(OverVector[QA])+(OverVector[AY])=(OverVector[AY])-(OverVector[AQ])=(({{(Subscript[y, 1])-(Subscript[a, 1])}, {(Subscript[y, 2])-(Subscript[a, 2])}, {(Subscript[y, 3])-(Subscript[a, 3])}}))-(Subscript[r, 1])(({{(Subscript[g, 11])}, {(Subscript[g, 12])}, {(Subscript[g, 13])}}))-(Subscript[r, 2])(({{(Subscript[g, 21])}, {(Subscript[g, 22])}, {(Subscript[g, 23])}}))=(({{(Subscript[y, 1])-(Subscript[a, 1])-(Subscript[r, 1])(Subscript[g, 11])-(Subscript[r, 2])(Subscript[g, 21])}, {(Subscript[y, 2])-(Subscript[a, 2])-(Subscript[r, 1])(Subscript[g, 12])-(Subscript[r, 2])(Subscript[g, 22])}, {(Subscript[y, 3])-(Subscript[a, 3])-(Subscript[r, 1])(Subscript[g, 13])-(Subscript[r, 2])(Subscript[g, 23])}}))

Calculons le carré de la distance QY:

(((∥(OverVector[e])∥))^2)=(((∥(OverVector[QY])∥))^2)=((((Subscript[y, 1])-(Subscript[a, 1])-(Subscript[r, 1])(Subscript[g, 11])-(Subscript[r, 2])(Subscript[g, 21])))^2)+((((Subscript[y, 2])-(Subscript[a, 2])-(Subscript[r, 1])(Subscript[g, 12])-(Subscript[r, 2])(Subscript[g, 22])))^2)+((((Subscript[y, 3])-(Subscript[a, 3])-(Subscript[r, 1])(Subscript[g, 13])-(Subscript[r, 2])(Subscript[g, 23])))^2)

Le problème se reformule en termes de "moindres carrés", c'est-à-dire: choisir les nombres (Subscript[r, 1]), (Subscript[r, 2]) de telle sorte que la somme des carrés des résidus soit minimale.

Solution du problème des moindres carrés

Intuitivement, le problème des moindres carrés possède une et une seule solution qui est

(SuperStar[y])= projection orthogonale de Y sur G

a={0,0,0};b={-2,0,0};c={-2,3,0};d={0,3,0};y={-1,1,2};q={-1,2,0};ys={-1,1,0};
Show[Graphics3D[{{Dashing[{0.015`}],Line[{a,b,c,d,a}],Line[{y,ys,q}]},Line[{y,q}],Point[y],Point[q],Text["A",a+{0.1`,-0.1`,0}],Text["G",a+0.17` c],Text["\!\(\*SuperscriptBox[\(Y\), \(*\)]\)",ys+{0.08`,-0.1`,0}],Text["Y",y+{0,0.1`,0}],Text["Q",q+{0,0.1`,0}],Polygon[{a,(b-a) 0.25`,(d-a) 0.2`}]},Boxed->False,PlotRange->All,ViewPoint->{3,1,1}],ImageSize->{400,250}]

Prouvons-le par un calcul formel:

(((∥(OverVector[e])∥))^2)=((((OverVector[QY])))^2)=((((OverVector[(SuperStar[QY])])+(OverVector[(SuperStar[Y])Y])))^2)=((OverVector[(SuperStar[QY])])^2)+2(OverVector[(SuperStar[QY])]).(OverVector[(SuperStar[Y])Y])+((OverVector[(SuperStar[Y])Y])^2)=((OverVector[(SuperStar[Y])Q])^2)+((OverVector[(SuperStar[YY])])^2)≥((OverVector[(SuperStar[YY])])^2)

(((∥(OverVector[e])∥))^2)=min         ⟺         ((OverVector[(SuperStar[Y])Q])^2)=0          ⟺            Q=(SuperStar[Y])

Retenons le résultat sous la forme vectorielle:

(((∥(OverVector[e])∥))^2)=min         ⟺      (OverVector[e])   ⊥  G

§ 2.4	Moindres carrés, cas vectoriel dans (ℝ^n)

Enoncé du problème des moindres carrés

On donne un vecteur (OverVector[y]) de (ℝ^n) et le sous-espace vectoriel G de dimension p déterminé par la base ((OverVector[(Subscript[g, 1])]),..., (OverVector[(Subscript[g, p])])) .
Déterminer le vecteur (OverVector[g]) ϵ G tel que la norme de l'écart (OverVector[e])=(OverVector[y])-(OverVector[g]) soit minimale.

Reformulation du problème en composantes

Avec les notations

(OverVector[y])=(({{(Subscript[y, 1])}, {(Subscript[y, 2])}, {...}, {(Subscript[y, n])}})),  (OverVector[(Subscript[g, 1])])=(({{(Subscript[g, 11])}, {(Subscript[g, 12])}, {...}, {(Subscript[g, 1n])}})),..., (OverVector[(Subscript[g, p])])=(({{(Subscript[g, p1])}, {(Subscript[g, p2])}, {...}, {(Subscript[g, pn])}}))

définissons

(OverVector[g])=(Subscript[r, 1])(OverVector[(Subscript[g, 1])])+(Subscript[r, 2])(OverVector[(Subscript[g, 2])])+...+(Subscript[r, p])(OverVector[(Subscript[g, p])])          et      (OverVector[e])=(OverVector[y])-(OverVector[g])

En composantes,

(OverVector[e])=(OverVector[y])-(OverVector[g])=(OverVector[y])-(Subscript[r, 1])(OverVector[(Subscript[g, 1])])-(Subscript[r, 2])(OverVector[(Subscript[g, 2])])-...-(Subscript[r, p])(OverVector[(Subscript[g, p])])=(({{(Subscript[y, 1])-(Subscript[r, 1])(Subscript[g, 11])-(Subscript[r, 2])(Subscript[g, 21])-...-(Subscript[r, p])(Subscript[g, p1])}, {(Subscript[y, 2])-(Subscript[r, 1])(Subscript[g, 12])-(Subscript[r, 2])(Subscript[g, 22])-...-(Subscript[r, p])(Subscript[g, p2])}, {...}, {(Subscript[y, n])-(Subscript[r, 1])(Subscript[g, 1n])-(Subscript[r, 2])(Subscript[g, 2n])-...-(Subscript[r, p])(Subscript[g, pn])}}))

Calculons le carré de la norme de l'écart (ou somme des carrés des résidus)

(((∥(OverVector[e])∥))^2)=((((Subscript[y, 1])-(Subscript[r, 1])(Subscript[g, 11])-(Subscript[r, 2])(Subscript[g, 21])-...-(Subscript[r, p])(Subscript[g, p1])))^2)+((((Subscript[y, 2])-(Subscript[r, 1])(Subscript[g, 12])-(Subscript[r, 2])(Subscript[g, 22])-...-(Subscript[r, p])(Subscript[g, p2])))^2)+...+((((Subscript[y, n])-(Subscript[r, 1])(Subscript[g, 1n])-(Subscript[r, 2])(Subscript[g, 2n])-...-(Subscript[r, p])(Subscript[g, pn])))^2)

Le problème se reformule en termes de "moindres carrés", c'est-à-dire: choisir les nombres (Subscript[r, 1]), ..., (Subscript[r, p]) de telle sorte que la somme des carrés des résidus soit minimale.

Solution du problème des moindres carrés

Intuitivement, le problème des moindres carrés possède une et une seule solution qui est

(OverVector[(SuperStar[y])])= projection orthogonale de (OverVector[y]) sur G

Autrement dit, pour  (OverVector[g]) ∈ G,  l'écart  (OverVector[e])=(OverVector[y])-(OverVector[g])    vérifie

(((∥(OverVector[e])∥))^2)=min         ⟺      (OverVector[e])   ⊥  G

Prouvons-le par un calcul formel:

(((∥(OverVector[e])∥))^2)=((((OverVector[y])-(OverVector[g])))^2)=(((((OverVector[y])-(OverVector[(SuperStar[y])]))+((OverVector[(SuperStar[y])])-(OverVector[g]))))^2)=((((OverVector[y])-(OverVector[(SuperStar[y])])))^2)+2((OverVector[y])-(OverVector[(SuperStar[y])])).((OverVector[(SuperStar[y])])-(OverVector[g]))+((((OverVector[(SuperStar[y])])-(OverVector[g])))^2)=((((OverVector[y])-(OverVector[(SuperStar[y])])))^2)+((((OverVector[(SuperStar[y])])-(OverVector[g])))^2)≥(((∥(OverVector[y])-(OverVector[(SuperStar[y])])∥))^2)

Donc,

∥(OverVector[y])-(OverVector[g])∥≥∥(OverVector[y])-(OverVector[(SuperStar[y])])∥

De plus,

∥(OverVector[y])-(OverVector[g])∥=∥(OverVector[y])-(OverVector[(SuperStar[y])])∥    ⟺         ((((OverVector[(SuperStar[y])])-(OverVector[g])))^2)=0          ⟺            (OverVector[g])=(OverVector[(SuperStar[y])])

Méthode de calcul

Voir § 2.1

Exemple

Problème de moindres carrés : Déterminez les nombres réels (Subscript[r, 1]), (Subscript[r, 2]) tels que l'expression suivante soit minimale

(((5-3 (Subscript[r, 1])+8 (Subscript[r, 2])))^2)+(((7-2 (Subscript[r, 1])+(Subscript[r, 2])))^2)+(((-4+5 (Subscript[r, 1])-3 (Subscript[r, 2])))^2)=∥(Overscript[e, ->])(∥^2)

Reformulation en termes de projection orthogonale : Déterminez les nombres réels (Subscript[r, 1]), (Subscript[r, 2]) tels que la norme du vecteur suivant soit minimale

(OverVector[e])=(({{5-3 (Subscript[r, 1])+8 (Subscript[r, 2])}, {7-2 (Subscript[r, 1])+(Subscript[r, 2])}, {-4+5 (Subscript[r, 1])-3 (Subscript[r, 2])}}))=(({{5}, {7}, {-4}}))-(Subscript[r, 1])(({{3 }, {2 }, {-5 }}))-(Subscript[r, 2])(({{-8 }, {-1}, {3 }}))=(OverVector[y])-(Subscript[r, 1])(OverVector[(Subscript[g, 1])])-(Subscript[r, 2])(OverVector[(Subscript[g, 2])])=(OverVector[y])-(OverVector[g])

où nous avons posé

(OverVector[y])=(({{5}, {7}, {-4}}));(OverVector[(Subscript[g, 1])])=(({{3 }, {2 }, {-5 }}));(OverVector[(Subscript[g, 2])])=(({{-8 }, {-1}, {3 }}));(OverVector[g])=(Subscript[r, 1])(OverVector[(Subscript[g, 1])])+(Subscript[r, 2])(OverVector[(Subscript[g, 2])]); (OverVector[e])=(OverVector[y])-(OverVector[g])

Le problème peut être reformulé comme suit:
Soit G le sous-espace vectoriel de base ((OverVector[(Subscript[g, 1])]), (OverVector[(Subscript[g, 2])])). Déterminez l'élément (OverVector[g]) ∈ G tel que la norme de l'écart (OverVector[e])=(OverVector[y])-(OverVector[g]) soit minimale. En d'autres termes, déterminez l'élément (OverVector[g]) ∈ G qui est la projection orthogonale de (OverVector[y]) sur G.

Equations normales

(({{(OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 1])]), (OverVector[(Subscript[g, 1])]).(OverVector[(Subscript[g, 2])])}, {(OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 1])]), (OverVector[(Subscript[g, 2])]).(OverVector[(Subscript[g, 2])])}}))(({{(Subscript[r, 1])}, {(Subscript[r, 2])}}))=(({{(OverVector[y]).(OverVector[(Subscript[g, 1])])}, {(OverVector[y]).(OverVector[(Subscript[g, 2])])}}))

g1={3,2,-5};g2={-8,-1,3};m=(({{g1.g1, g1.g2}, {g2.g1, g2.g2}}))

y={5,7,-4};v={y.g1,y.g2}

r=LinearSolve[m,v];N[r]

Exercice 2.4 - 1

Reprenons la situation décrite dans le § 1.2 (mélange de mélanges de céréales). Nous supposons maintenant que, le deuxième fournisseur étant en rupture de stocks, le mélange doit être effectué uniquement avec les produits du premier fournisseur. Quel est alors le mélange "le plus proche" du mélange visé ?

a)	Exprimez ce problème en termes de problème des moindres carrés.
	Précisez le sens exact de l'expression "le plus proche" du mélange visé.

b)	[Sans ordinateur] Réduisez le problème de moindres carrés à un problème de projection.
	Refaites la démarche du § 2.1 conduisant aux équations normales.

c)	[Avec Mathematica] Résolvez le système.

d)	Comparez le mélange obtenu au mélange visé du point de vue de leurs compositions en %.