//simulations numeriques sur le texte 'trafic routier', session 2006
clear
ac=10;//en metres, distance minimale critique
av=40;//en metres, distance de securite
deff('y=F(a)','y=(a>ac).*(1-exp(-(a-ac)/(av-ac)))');
aa=[0:0.1:60];
clf
plot2d(aa,F(aa))
halt()
ainit=5;//en metres, distance initiale entre deux vehicules
ainf=60;//en metres, parametre donnant la vitesse du vehicule de tete
N=50;//nombre de vehicules
tau=0.2;//en secondes
V=30;//en metre par secondes
x=zeros(N,1);//x(n) est la position du vehicule i
kmax=100; //nombre de pas de temps
ak=zeros(N,1);//distance entre deux vehicules a l'iteration k
for n=1:N
    x(n)=n*ainit;
end
clf
plot2d(x,zeros(x),style=-1)
halt()
for k=0:kmax
    for n=1:N-1
        ak(n)=x(n+1)-x(n);
    end
    ak(N)=ainf;
    newx=x+tau*V*F(ak);
    x=newx;
    clf
    plot2d(x,zeros(x),style=-1)
    //halt()
end

//situation finale : distance x_{n+1}-x_n en fonction de x_n
for n=1:N-1
        ak(n)=x(n+1)-x(n);
end
clf
plot2d(x,ak,style=-1)
