// talle du domaine L=10; H=8; //parametre de discretisation Nx=70; Ny=80; l=L/(Nx-1); h=H/(Ny-1); // construction de la liste des triangles reperes par les sommets S=zeros(2*(Nx-1)*(Ny-1),3); k=0 for j=0:Ny-2 for i=1:Nx-1 k=k+1; S(k,1)=i+j*Nx S(k,2)=S(k,1)+1 S(k,3)=S(k,1)+Nx k=k+1 S(k,3)=i+1+j*Nx S(k,1)=S(k,3)+Nx S(k,2)=S(k,1)-1 end end //fin de construction de la construction du maillage taille=k;// on verifie que taille=2*(Nx-1)*(Ny-1) //construction de la matrice elementaire lsh=l/h;hsl=h/l; el=0.5*[lsh+hsl,-hsl,-lsh;-hsl,hsl,0;-lsh,0,lsh]+h*l/3*diag(ones(3,1),0); // initialisation de la matrice globale mat=diag(sparse(zeros(Nx*Ny,1)),0); //passage revue des elements for k=1:taille for i=1:3 for j=1:3 mat(S(k,i),S(k,j))=mat(S(k,i),S(k,j))+el(i,j); end end end //construction du second membre par FQ trapeze //definition de l evaluation de f aux sommets x=[0:l:L]; y=[0:h:H]; ftab=sin(x')*cos(y); f=matrix(ftab,Nx*Ny,1); SM=zeros(Nx*Ny,1); //passage en revue des elements hls3=h*l/3; for k=1:taille //passage en revue des ddl for i=1:3 SM(S(k,i))=SM(S(k,i))+hls3*f(S(k,i),1); end end // fin d assemblage du second membre //resolution du systeme u=mat\SM; // utab=matrix(u,Nx,Ny); plot3d(x,y,utab)