Inscription / Connexion Nouveau Sujet
Niveau logiciels
Partager :

méthode itérative par blocs en Matlab

Posté par
lordbejito
26-04-09 à 09:18

Bonjour à tous.
J'aurais besoin d'aide car j'aimerai avoir le code matlab (ou scilab) de la méthode de Gauss-Seidel par blocs.
J'ai déjà le code de la méthode par point, le voici :
---------------------------------------------------------
function [x]=gauss(A,b,xo,maxit,epsi)
D=diag(diag(A));                              %on extrait la diagonale de A
E=-tril(A,-1); F=-triu(A,1);                 %on extrait les parties triangulaires inf et sup de A sans la diagonale
n=length(b);
x=zeros(n,1);
aux=xo
res=1;
iter=0;
    while res>epsi & iter<maxit            %critères d'arrêts
        
     for i=1:n
        x(i)=(1/A(i,i))*(b(i)+E(i,*x+F(i,*aux);
        aux(i)=x(i);
     end
    
     iter=iter+1;
     res=(norm(b-A*x,inf)/norm(b,inf));
end
---------------------------------------------------------

A=\left(
 \\ \begin{array}{ccccccc}
 \\ A_{11}&A_{12}&.&.&.&A_{1,n-1}&A_{1,n}\\
 \\ A_{21}&.&&&&.&\\
 \\ .&&&&&&.\\
 \\ .&&&&&&\\
 \\ .&&&&&&\\
 \\ A_{n-1,1}&&&&&A_{n-1,n-1}&A_{n-1,n}\\
 \\ A_{n,1}&.&.&.&&A_{n,n-1}&A_{n,n}\\
 \\ \end{array}
 \\ \right)

On décompose A par blocs de la manière suivante : A=D-E-F où :
D_{i,j}=A_{i,j} si i=j, 0 sinon. E_{i,j}=-A_{i,j} si i>j, 0 sinon. F_{i,j}=-A_{i,j} si i<j, 0 sinon.

On décompose x_{k}=\left(
 \\ \begin{array}{c}
 \\ X_{1}^{(k)}\\
 \\ .\\
 \\ .\\
 \\ .\\
 \\ X_{i}^{(k)}\\
 \\ .\\
 \\ .\\
 \\ .\\
 \\ X_{n}^{(k)}\\
 \\ \end{array}
 \\ \right)

et b=\left(
 \\ \begin{array}{c}
 \\ B_{1}\\
 \\ .\\
 \\ .\\
 \\ .\\
 \\ B_{1}\\
 \\ .\\
 \\ .\\
 \\ .\\
 \\ B_{n}\\
 \\ \end{array}
 \\ \right)
L'algorithme d'une itération est le suivant :
-------------------------------------------------
pour i=1 à n
  D_{ii}x_{i}^{(k+1)}=B_{i}-\bigsum_{j =1}^{i-1}A_{ij}X_{j}^{(k+1)} -\bigsum_{j =i+1}^{n}A_{ij}X_{j}^{(k)}
fin pour i
-------------------------------------------------
A chaque itération i on doit résoudre un système linéaire de dimension n_{i} (On le fait directement).

Merci d'avance à tout ceux qui réfléchiront à mon problème.

Posté par
elasrifadoua
re : méthode itérative par blocs en Matlab 14-12-15 à 09:47

bonjour lordbijito...moi aussi j aie besoin le code de methode de Jacobi et GAuss-SEidel par bloc en matlab



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !