Professional Documents
Culture Documents
But :
rsoudre des systmes dquation linaires laide de Matlab.
Prsentations des mthodes de calcules :
Mthodes de Jacobi et de Gauss-Seidel :
1
2
Exercice 01 :
1) Mthode directe :
6x+y=10
2x+2y=11
On peut encore la matrice sous la forme matricielle suivante :
AX=B
6 1 10
( ) () = ( )
2 2 11
X=A^-1*B
6 1 1 10
()=( ) ( )
2 2 11
Program sous Matlab :
clc
clear
A=[6 1;2 2];
B=[10; 11];
%solutions%
X=inv(A)*B
%verification%
B=A*X
2) Rsultats :
Solutions : Vrification :
X= b=
0.9000 10
4.6000 11
3
3) Reprsentation graphique :
Programme sous Matlab :
clc
clear
f1=@(x,y) 6*x+y-10;
f2=@(x,y) 2*x+2*y-11;
c1=ezplot(f1)
set(c1,'color','r')
hold on
c2=ezplot(f2)
set(c2,'color','b')
legend('f1','f2')
title('representation graphique de deux systeme d''equations');
grid on
4
Exercice 02 :
1 2 + 23 = 6
1 + 112 3 = 25
21 2 + 103 = 11
On peut encore la matrice sous la forme matricielle suivante :
AX=B
10 1 2 1 6
(1 11 1) (2 ) = ( 25 )
2 1 10 3 11
X=A^-1*B
1 10 1 2 1 6
(2 )=(1 11 1) ( 25 )
3 2 1 10 11
Program sous MATLAB :
clc;
clear;
A=[10 -1 2;-1 11 -1;2 -1 10] ;
b=[6;25;-11] ;
%solutions%
x=inv(A)*b
%verification%
b=A*x
1) Rsultats :
Solutions : Vrification :
X= b=
1.0433 6.0000
2.2692 25.0000
-1.0817 -11.0000
5
2) Reprsentation graphique :
Program sous Matlab :
clc
clear
[x2 x3]=meshgrid(-3:0.5:3);
x1=(x2-2*x3+6)/10;
surf(x1,x2,x3)
hold on
[x2 x3]=meshgrid(-3:0.5:3);
x1=11*x2-x3-25;
surf(x1,x2,x3)
hold on
[x2 x3]=meshgrid(-3:0.5:3);
x1=(x2-10*x3-11)/2;
surf(x1,x2,x3)
hold on
A=[10 -1 2;-1 11 -1;2 -1 10];
B=[6 ; 25 ; -11];
X=inv(A)*B
plot3(X(1),X(2),X(3),'*r')
function sol=Jacobi(A,B,x0,kmax,tol)
%Etape 01
k=1;
n=size(A,1);
%Etape 02
while k<=kmax
%Etape 03
for i=1:n
S=0;
for j=1:n
if j~=i
S=S+(A(i,j)*x0(j));
end
end
x(i)=(-S+B(i))/A(i,i);
end
%Etape 04
if norm(x-x0)<tol
sol=x;
disp(['nombre d iteration = ' num2str(k)])
return
end
%Etape 05
k=k+1;
%Etape 06
x0=x;
end
%Etape 07
disp('erreur d execution ')
sol=nan;
7
Le programme de la fonction gauss Seidel :
function sol=GS(A,B,x0,kmax,tol)
%Etape 01
k=1;
n=size(A,1);
%Etape 02
while k<=kmax
%Etape 03
for i=1:n
S=0;
for j=1:n
if j<i;
S=S+(A(i,j)*x(j));
end
if j>i ;
S=S+(A(i,j)*x0(j));
end
end
x(i)=(-S+B(i))/A(i,i);
end
%Etape 04
if norm(x-x0)<tol
sol=x;
disp(['nombre d iteration = ' num2str(k)])
return
end
%Etape 05
k=k+1;
%Etape 06
x0=x;
end
%Etape 07
disp('erreur d execution ')
sol=nan;
8
La rsolution de systme dquation de lexercice 2 :
clear
clc
A=[10 -1 2; -1 11 -1; 2 -1 10];
B=[6 25 -11]';
sol_d=A^-1*B
x0=zeros(1,3);
kmax=10000;
tol=0.0000001;
sol1=Jacobi(A,B,x0,kmax,tol)
sol2=GS(A,B,x0,kmax,tol)
Les rsultats :
sol_d =
1.0433
2.2692
-1.0817
Nombre ditration = 14
sol1 =
1.0433 2.2692 -1.0817
Nombre d itrations = 7
sol2 =
1.0433 2.2692 -1.0817
9
Domain dapplication des mthodes de rsolution :
Conclusion :
la rsolution des systmes dquation linaires peut tre trs compliqu cest pour
a on a besoin dutiliser des programmes de calcul tels que Matlab pour simplicit
les calculs avant dobtenir lalgorithme de la mthode, et a comme nous avons vu
avec la mthode de Jacobi et Gauss Seidel.
on peut citer que Les mthodes de rsolution sont de deux types :
(1) Les mthodes directes :
obtenir la solution en un nombre fini doprations.
(2) Les mthodes itratives :
construire une suite qui converge vers la solution.
Les mthodes directes prsentent lavantage de fournir la solution exacte Par
contre les mthodes directes ont un cout important en stockage mmoire.
10