function stock(ro,a,k,c,v,C,r,L) %ro le param de la loi géom, a le nb max d'objet qu'on peut vendre %(on calcule la loi que sur [0,a]), k prix de stockage, c prix d'achat, %v prix de vente, C coût fixe de commande. On doit choisir v>k+c. %Si on fait stock(0.1,50,1,2,6,1) on tombe dans le cas voulu. %r nombre de réalisations, L la longueur %CALCUL DU STOCK PLANCHER s P=ro*(1-ro).^[0:a]; %loi de proba de la demande, géométrique sur [0,a] R=cumsum(P); R=ones(1,a+1)-[0,R(1:a)]; %vecteur (1,1-p(0),...) S=1; p=R(S); while p>=(k+c)/v S=S+1; p=R(S); end S=S-1 %toujours le même problème : la première coord de R correspond à 0 %b(x0,x)=v*(x0+x)*R(x0+x+1)+v*sum( [0:x0+x-1].*P(1:x0+x) ) - k*(x0+x) - C - c*x X=zeros(1,S+1); for i=1:S+1 X(i)=v*(i+S-i)*R(i+S-i+1)+v*sum( [0:i+S-i-1].*P(1:i+S-i) ) - k*(i+S-i) - C - c*(S-i) - (v*(i+0)*R(i+0+1)+v*sum( [0:i+0-1].*P(1:i+0) ) - k*(i+0) - c*0); end X; s=1; while X(s)>=0 s=s+1; end s=s-1 %le stock plancher %CONSTRUCTION DE LA MATRICE DE TRANSITION %X(t) le stock à la fin du mois, avant la commande. %Si X(t)=s, on commande pas. Mettons X(t)=k. La proba qu'il y ait plus de k %articles le mosi d'après est nulle, la proba qu'il y en est k-i est la %proba qu'on en est vendu i. for i=s+1:S+1 for j=2:i Z(i,j)=P(i+1-j); end end for i=s+1:S+1 Z(i,1)=R(i); end %la matrice stochastique est construite ! %PLOT U=zeros(r,L); for i=1:r U(i,1)=4; for j=2:L u=rand; l=0; g=0; while g