Beruflich Dokumente
Kultur Dokumente
_
4 3 2 1
3 4 3 2
2 3 4 3
1 2 3 4
_
_
et b =
_
_
1
1
1
1
_
_
.
en utilisant dabord loprateur \ de Matlab .
2. crire une fonction backsub(A,B) en Matlab qui rsout un systme dquations triangulaire su-
prieur Ax = b par la mthode de substitution directe. Tout dabord, calculer x
N
= b
N
/A
NN
et
ensuite, utiliser la rgle
x
k
=
b
k
N
j=k+1
a
kj
x
j
a
kk
pour k = N 1, N 2, ..., 1.
3. Trouver des matrices P, L et U telles que L est triangulaire infrieure, U triangulaire suprieure
et PA = LU en utilisant Matlab . A est la matrice des coecients du systme suivant :
_
_
2x
1
3x
2
+ 2x
3
+ 5x
4
= 3
x
1
x
2
+ x
3
+ 2x
4
= 1
3x
1
+ 2x
2
+ 2x
3
+ x
4
= 0
x
1
+ x
2
3x
3
x
4
= 0
4. Ecrire une fonction Doolittle(A) en Matlab qui renvoie les matrices L et U obtenues partir de
la matrice A par la mthode de Doolittle. Vrier le bon fonctionnement de votre fonction avec la
matrice de lexercice prcdent.
Pour rappel, la mthode de Doolittle : on pose l
kk
= 1. Ensuite, pour pour k = 1, . . . , n on calcule
dabord la k-ime ligne de U, puis la k-ime colonne de L, selon les formules :
u
kj
= a
kj
k1
r=1
l
kr
u
rj
, j = k, . . . , n,
l
ik
=
1
u
kk
_
a
ik
k1
r=1
l
ir
u
rk
_
, i = k + 1, . . . , n.
5. Pour une solution approche x
e = x x
r = b Ax
= b A(x e) = Ae
Posant x
= x
(0)
, on peut eectuer un ranement itratif
_
_
_
r
(i)
= b Ax
(i)
Ae = r
(i)
x
(i+1)
= x
(i)
+ e
jusqu
e
x
(i)
< tol
Si le systme nest pas trop mal conditionn, le ranement itratif converge trs rapidement.
Pour le systme suivant :
_
_
5 7 6 5
7 10 8 7
6 8 10 9
5 7 9 10
_
_
_
_
x
1
x
2
x
3
x
4
_
_
=
_
_
23
32
33
31
_
_
la solution est x =
_
_
1
1
1
1
_
_
1
Calculer partir de
x
= x
(0)
=
_
_
0.9881
1.0073
1.0028
0.9983
_
_
la valeur de x
(1)
en utilisant Matlab .
6. Pour le systme
A =
_
1.2969 0.8648
0.2161 0.1441
_
et b =
_
0.8642
0.1440
_
et la solution approche x
=
_
0.9911
0.4870
_
Comparer x
j = 1
j = k
|a
kj
|
pour k = 1, 2, . . . , N. est une condition susante mais pas ncessaire pour dterminer si la mthode
de Jacobi va converger. A partir de dirents vecteurs initiaux P
0
, calculer des solutions approches
pour le systme suivant :
_
_
_
x + z = 2
x + y = 0
x + 2y 3z = 0
en utilisant dabord la mthode de Jacobi, ensuite celle de Gauss-Seidel. Conseil : augmenter
progressivement le nombre ditrations. Que constate-t-on ?
2
function X=jacobi(A,B,P,delta,max1)
% Input -A is an N x N nonsingular matrix
% -B is an N x 1 matrix
% -P is an N x 1 matrix; the initial guess
% -delta is the tolerance for P
% -max1 is the maximum number of iterations
% Output-X is an N x 1 matrix : the jacobi approximation to
% the solutions of AX= B
N= length(B);
for k=1:max1
for j=1:N
X(j)=(B(j)-A(j,[1:j-1,j+1:N])*P([1:j-1,j+1:N]))/A(j,j);
end
err=abs(norm(X-P));
relerr=err/(norm(X)+eps);
P=X;
if (err<delta)|(relerr<delta)
break
end
end
X=X;
Figure 1 Code Matlab implmetant la mthode de Jacobi
3
function X=gseid(A,B,P,delta,max1)
% Input -A is an N x N nonsingular matrix
% -B is an N x 1 matrix
% -P is an N x 1 matrix; the initial guess
% -delta is the tolerance for P
% -max1 is the maximum number of iterations
% Output-X is an N x 1 matrix : the jacobi approximation to
% the solutions of AX= B
N= length(B);
for k=1:max1
for j=1:N
if j==1
X(1)=(B(1)-A(1,2:N)*P(2:N))/A(1,1);
elseif j==N
X(N)=(B(N)-A(N,1:N-1)*(X(1:N-1)))/A(N,N);
else
% X contains th kth approximations and P th (k-1)st
X(j)=(B(j)-A(j,1:j-1)*X(1:j-1)-A(j,j+1:N)*P(j+1:N))/A(j,j);
end
end
err=abs(norm(X-P));
relerr=err/(norm(X)+eps);
P=X;
if (err<delta)|(relerr<delta)
break
end
end
X=X;
Figure 2 Code Matlab implmetant la mthode de Gauss-Seidel
4