Universit´e Pierre et Marie Curie – Paris 6 Examen de travaux pratiques Licence de Math´ematiques MA380 – Analyse Hilbertienne et Num´erique
24 janvier 2005 14h00 `a 15h00
R´esoudre chaque probl`eme sur une feuille s´epar´ee. Les appareils
´electroniques et les documents sont interdits. Les solutions devront ˆetre r´edig´ees de mani`ere rigoureuse. Lorsque des r´esultats du cours seront utilis´es, ils devront clairement ˆetre ´enonc´es. On notera que certaines questions peuvent ˆetre r´esolues ind´ependamment.
1. Soient R et T deux matrices carr´ees triangulaires sup´erieures de taille n. Montrer que RT est une matrice triangulaire sup´erieure carr´ee de taille n×n. SoitR= [rij]i,j∈{1,...,n}
une matrice triangulaire sup´erieure dont tous les coefficients diagonaux sont non nuls.
Montrer que R est inversible et que son inverse est une matrice triangulaire sup´erieure dont les coefficients diagonaux sont (1/rii)1≤i≤n.
2. Ecrire une´ fonction scilab a=remontee(R, b) qui donne la solution, si elle existe (faire afficher des messages d’erreurs pour les probl`emes de taille, de non inversibilit´e ou de non satisfaction de triangularit´e), du syst`eme Ra = b, par substitution, o`u R est une matrice triangulaire sup´erieure R, dont tous les coefficients diagonaux sont non nuls, b un vecteur de Rn.
(On appellera a=descente(S,b) lafonction scilab qui, ´etant donn´es une matrice trian- gulaire inf´erieureS, dont tous les coefficients diagonaux sont non nuls, et un vecteurbde Rn, r´esout le syst`eme Sa= b par substitution. On ne demande pas d’´ecrire la fonction scilab a=descente(S,b).)
3. Ecrire une´ fonction scilab a=stockS(R)qui permette de stocker une matrice triangulaire sup´erieure carr´ee de taillen×n dans un vecteur de taille n(n+ 1)/2.
1
Paris 6 –Licence de Math´ematique – MA380 – Analyse Hilbertienne et Num´erique Solution de l’examen de TP de janvier 2005
1. On a (RT)ij = Pn
k=1RikTkj, en particulier si R et T sont deux matrices triangulaires sup´erieures, on obtient (RT)ij = 0 si i > j et (RT)ii =riitii, d’`ou si T =R−1, on en d´eduit que (R−1)ii= 1/rii.
Soit R = [rij]i,j∈{1,...,n} une matrice triangulaire sup´erieure inversible et a, b ∈ Rn tels que Ra=b,a= (αi)i∈{1,...,n} etb= (βi)i∈{1,...,n}. On a alors le syst`eme lin´eaire suivant
r11α1+ ... +r1nαn = β1
. .
rn−1n−1αn−1+rn−1nαn = βn−1
rnnαn = βn
Sirii6= 0 pour touti, on peut r´esoudre ce syst`eme tr`es simplement en exprimant tout d’abord αn`a l’aide deβnpuisαn−1 en fonction deβn et deβn−1 et ainsi de suite jusqu’`aα1. Ainsi, on obtient
s11β1+ ... +s1nβn = α1 . .
sn−1n−1βn−1+sn−1nβn = αn−1
snnβn = αn
Le syst`eme pr´ec´edent peut s’´ecrire sous forme matricielle a=Sb o`u S est une matrice trian- gulaire sup´erieure, de plus il est clair queS =T−1.
2. function a=remontee(R,b)
// Calcul la solution de $Ra=b$
// $R$ est une matrice carr\’ee triangulaire sup\’erieure inversible
[m,n] =size(R); o=length(b);
if m~=n then
error(’probleme de dimensions’);
end;
if o~=n then
error(’probleme de dimensions’);
end;
zero=1.e-12;
if norm(R-tril(R),’inf’)>zero then
error(’matrice non triangulaire sup’);
end;
a=zeros(n,1);
if abs(R(1,1))<zero then
2
error(’matrice non inversible’);
end;
a(1)=b(1)/A(1,1);
for i=2:n
if abs(A(i,i))<zero then
error(’matrice non inversible’);
end;
a(i)=(b(i)-A(i,1:i-1)*a(1:i-1))/A(i,i);
end;
endfunction
3. On va stocker la matrice triangulaire sup´erieureT dans un vecteuru. La correspondance entre les indices estAij =ui+j(j−1)/2.
function u=stockS(T) n=length(T);
for j=1:n
ii=j*(j-1)/2;
for i=1:j
u(i+ii)=T(i,j);
end;
end;
endfunction
3