😨
Soit $\B$ une base othonormée de $\R^n$, $F$ un sev de $\R^n$ dont $(u_1,...,u_p)$ est une base. On note $U=\M_{\B}(u_1,...,u_p)$, on note $U_{c,1}$,...,$U_{c,p}$ les colonnes de $U$ et pour tout $k\in\zint{1,p-1}$, $U_k$ la matrice formée des $k$ premières colonnes de $U$.
Montrer que l'équation en $X_k$, $^tU_{k}U_{k}X_k=-^tU_{k}U_{c,k+1}$ admet une unique solution.
💁♂️
Montrer que $\rg(\,^tU_kU_k)=\rg(U_k)=k$ et en déduire qu'elle est inversible.
Vérifier que la matrice $P$ dont les colonnes sont $U_{c,1},U_1X_1+U_{c,2},...,U_{p-1}X_{p-1}+U_{c,p}$ est la matrice dans la base $\B$ d'une base orthogonale de $F$.
💁♂️
Justifier assez rapidement que $\Vect(P_{c,1},...,P_{c,k})\subset\Vect(U_{c,1},...,U_{c,k})$ puis montrer l'égalité en prouvant par récurrence sur $k$ que $U_{c,k}\in\Vect(P_{c,1},...,P_{c,k})$.
Pour finir, montrer que pour tout $k\in\zint{1,p-1}$, $\,^tU_kP_{c,k+1}=0$.
Écrire une fonction Scilab $\tt{orthog(U)}$ qui renvoie la matrice $P$
👨🏫
- Pour tout $k\in\zint{1,p-1}$, $\rg(U_k)=k$ puisque $\rg(U)=p$ d'où comme nous l'avons vu à plusieurs reprises, $\rg(\,^tU_kU_k)=k$. Or cette matrice est carrée d'ordre $k$, elle est donc inversible.
$-^tU_{k}C_{k+1}$ est une matrice colonne d'ordre $k$ d'où, il existe bien une unique matrice colonne d'ordre $k$, $X_k$ telle que $^tU_{k}U_{k}X_k=-^tU_{k}U_{c,k+1}$, c'est $(^tU_{k}U_{k})^{-1}(-^tU_{k}U_{c,k+1})$.
- On note $P_{c,j}$ les colonnes de de $P$. On a clairement, pour tout $k\in\zint{1,p}$:
$$\Vect(P_{c,1},...,P_{c,k})\subset\Vect(U_{c,1},...,U_{c,k})$$
- On montre assez facilement par récurrence sur $k\in\zint{1,p}$ que:
$$U_{c,k}\in\Vect(P_{c,1},...,P_{c,k})$$
Ceci prouve, en particulier, que $P$ est la matrice dans la base $\B$ d'une base de $F$.
- Montrons que pour tout $k\in\zint{1,p-1}$, $P_{c,k+1}\in\Vect(U_{c,1},...,U_{c,k})^{\bot}$ ie $\,^tU_kP_{c,k+1}=0$.
On a: $\,^tU_kP_{c,k+1}=\,^tU_k(U_kX_k+U_{c,k+1})=\,^tU_kU_kX_k+\,^tU_kU_{c,k+1}=0$ par définition de $X_k$.
- Ainsi $P_{c,k+1}$ est orthogonal à $U_{c,1},...,U_{c,k}$ donc appartient à $\Vect(U_{c,1},...,U_{c,k})^{\bot}$ qui est aussi $\Vect(P_{c,1},...,P_{c,k})^{\bot}$, ce qui permet de conclure.
-
Le programme:
function P=orthog2(U)
p=size(U)(2) // nombre de colonne de U
if rank(U)==p then
P=zeros(U)
P(:,1)=U(:,1) // colonne 1 de P = colonne 1 de U
for k=1:(p-1)
Uk=U(:,1:k) // matrice des k prem. colonnes de U
Uc=U(:,k+1) // colonnes k+1 de U
P(:,k+1)=-Uk*(Uk'*Uk)^(-1)*Uk'*Uc+Uc
end
else
P='la famille proposée n'est pas une base.'
end
endfunction
Voici un exemple:
--> P=orthog2([1 2 -1;2 1 0;0 3 0])
P =
1. 1.2 -0.6666667
2. -0.6 0.3333333
0. 3. 0.3333333
On vérifie que $\,^tPP$ est diagonale:
--> P'*P
ans =
5. -2.220D-16 0.
-2.220D-16 10.8 0.
0. 0. 0.6666667
.