clear


//////////////////////////
//
//
//  fonction preconditionnement SSOR: 
//  en entree: n\in N*, r\in R^n , A = D-E-F \in M_n, w \in ]0,2[ 
//
//  On suppose Aii non nuls pour tous i=1,...,n
//
//  en sortie p tel que (D/w - E)D^-1(D/w - F)p = r 
//
function p=SSOR(n,A,w,r)
 
  // COMPLETER LA FONCTION SSOR   
    
endfunction



//////////////////////////

// DONNEES 

// EXEMPLE DU LAPLACIEN 2D sur maillage nx*ny, la taille de la matrice est n=nx*ny 

nx = 10;
ny = nx; 

n = nx*ny;

dx = 1/(nx+1);
dy = 1/(ny+1);

//A=sparse([],[],[n,n]); // matrice creuse

u = (2/dx**2 + 2/dy**2)*ones(n,1)
ux = -1/dx**2*ones(n-1,1)
uy = -1/dy**2*ones(n-nx,1) 

ux1 = -1./dx**2*ones(n-1,1)
uy1 = -1/dy**2*ones(n-nx,1) 

A=diag(u) + diag(ux1,1) + diag(ux,-1) + diag(uy1,nx) + diag(uy,-nx)


for k=1:n
    xbar(k,1) = rand(k)
end

b = A*xbar;

/////////////////////////////





// PROGRAMMER ICI L'ALGORITHME DE RICHARDSON a pas variable preconditionné 











