15 lines
469 B
Mathematica
15 lines
469 B
Mathematica
|
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
|