function EcTransporte

L = 1; % Tamanio del dominio
N = 100; %N?mero de sub-intervalos en la discretizaci?n
T = 1/2;
x_ini = -L; x_fin = L;
dx = (x_fin-x_ini)/N;
a = 1;

%% Definir el eje x
x = zeros(N,1);
for j = 1:N
    x_j = x_ini+dx*( j-1/2 );
    x(j,1) = x_j;
end

%% Definir la condicion inicial

rho0 = zeros(N,1);
rho_l = 1;
rho_r = 0;
for j=1:N
    x_j=x(j,1);
    if x_j < 0
        rho0(j,1) = rho_l;
    else
        rho0(j,1) = rho_r;
    end
end
nu = 0.9; %Numero de Courant
dt = nu*dx/a;

% plot(x,u0)
% stop

%% Solucion exacta

rho_exacta = zeros(N,1);
for j=1:N
    x_j=x(j,1);

    if x_j < a*T
        rho_exacta(j,1) = rho_l;
    else
        rho_exacta(j,1) = rho_r;
    end
end


%% Esquema numerico 1

t = dt;
rho_n = rho0;
rho_np1 = rho_n;
while t < T
    for j=2:N-1
        rho_np1(j,1) = rho_np1(j,1) - a*dt/dx*(rho_n(j+1,1)-rho_n(j,1));
    end
    %Condiciones de frontera Neumann
    rho_np1(1,1) = rho_np1(2,1);
    rho_np1(N,1) = rho_np1(N-1,1);
    
    rho_n = rho_np1;
    t = t+dt;
end
    
figure(1)
hold on
plot(x,rho_exacta,'b -','LineWidth',2)
plot(x,rho_n,'r -','LineWidth',2)
xlabel('x','FontSize',20)
ylabel('Solucion','FontSize',20)
title('Condicion inicial y solucion','FontSize',20)
lg = legend('Condicion inicial','Solucion a tiempo T');
set(lg,'Location','NorthWest');
set(lg,'FontSize',15);
print('Esquema1','-depsc',figure(1))
stop

%% Esquema numerico 1

t = dt;
rho_n = rho0;
rho_np1 = rho_n;
while t < T
    for j=2:N-1
        rho_np1(j,1) = rho_np1(j,1) - a*dt/dx*(rho_n(j,1)-rho_n(j-1,1));
    end
    %Condiciones de frontera Neumann
    rho_np1(1,1) = rho_np1(2,1);
    rho_np1(N,1) = rho_np1(N-1,1);
    
    rho_n = rho_np1;
    t = t+dt;
end
    
figure(1)
hold on
plot(x,rho_exacta,'b -','LineWidth',2)
plot(x,rho_n,'r -','LineWidth',2)
xlabel('x','FontSize',20)
ylabel('Solucion','FontSize',20)
title('Condicion inicial y solucion','FontSize',20)
lg = legend('Condicion inicial','Solucion a tiempo T');
set(lg,'Location','NorthWest');
set(lg,'FontSize',15);
print('Esquema2','-depsc',figure(1))

