function unew=schema_theta(n,c,uold,ug,theta) %% Schéma theta pour l'équation de transport avec a>0 %% Variables d'entrée : % n : nombre de points du maillage % c : le nombre de Courant % uold : la solution (aux points du maillage) au temps tn % ug : la condition d'inflow au temps t=tn+dt %% Variables de sortie : % unew : la solution (aux points du maillage) au temps tn+dt %% Initialisation de K (matrice) et F (vecteur colonne) K=zeros(n,n); F=zeros(n,1); K(1,1)=1;F(1,1)=ug; % Boucle sur les n-2 noeuds du maillage for i=2:n-1 K(i,i-1)=-theta*c/2; K(i,i)=1; K(i,i+1)=theta*c/2; F(i,1)= uold(i)+(theta-1)*0.5*c*(uold(i+1)-uold(i-1)); end K(n,n)=1; F(n,1)= (1-c)*uold(n)+c*uold(n-1); unew=K\F; return