function [z] = lax_friedrichs(z_k_moins_1, f, masque) a = 0.5; [n, m] = size(z_k_moins_1); z_haut = [zeros(1, m) ; z_k_moins_1(1:end-1, :)]; z_bas = [z_k_moins_1(2:end, :) ; zeros(1, m)]; z_gauche = [zeros(n, 1) z_k_moins_1(:, 1:end-1)]; z_droite = [z_k_moins_1(:, 2:end) zeros(n, 1)]; z = (z_haut + z_bas + z_gauche + z_droite) / 4 + a * ( f - sqrt( ((z_gauche - z_droite)/2).^2 + ((z_haut - z_bas)/2).^2 ) ); z = z .* masque; end