///////////////////////////////////////////////////////////////////////////////// // Simulation par des arbres généalogiques d'une marche aléatoire sur Z // absorbee au bords d'un segment [-L,L], conditionnellement à la non absorption. // Estimation particulaire de la probabilite de survie. // Estimation de la valeur propre principale et du vecteur propre associé (cas réversible) // d'une matrice d'absorption positive. // // ///////////////////////////////////////////////////////////////////////////////// //QQ Valeurs : //(T,N,p,L)=(100,5,0.5,5) bonne vision de l'arbre //(T,N,p,L)=(100,10,0.5,7) bonne vision de l'arbre //(T,N,p,L)=(100,10000,0.5,4 ou 7) bonne vision du vecteur propre+estimee v.p. //(T,N,p,L)=(1000,1000,0.5,7) bonne vision du vecteur propre+estimee v.p. //(T,N,p,L)=(1000,1000,0.5,5) estimee de la v.p //(T,N,p,L)=(1000,1000,0.5,5) estimee de la v.p //(T,N,p,L)=(1000,1000,0.7,7) estimee de la v.p //(T,N,p,L)=(400,10000,0.7,3) estimee de la v.p //(T,N,p,L)=(1000,1000,0.7,10) estimee de la v.p //(T,N,p,L)=(1000,1000,0.7,7) estimee de la v.p ///////////////////////////////////////////////////////////////////////////////// clear; T=100; //Horizon temporel N=10000; //Nombre de particules p=0.5; //Proba( X(n)=x+1 ! X(n-1)=x) L=4; //Niveau absorbant proba=1; //x=zeros(N,T); //t=[1:T]; u=zeros(N,T); x=floor(1+(2*L+1)*rand(N,T,'def')-L); // Description des matrices d'absorption d=2*L+1; P=p*ones(1,d-1); Dp=diag(P); M1=[zeros(d,1),[Dp;zeros(1,d-1)]]; Dq=diag((1-p)*ones(1,d-1)); M2=[zeros(1,d);[Dq,zeros(d-1,1)]]; M=M1+M2; g=[0,ones(1,d-2),0]; G=diag(g); Q=G*M; //Calcul du log de la valeur propre maximale vp=sort(spec(Q)); lvp=log(vp(1)); //Estimation du log de la valeur propre principale //par des itérations de la matrice d'absorption I=diag(ones(1,d)); lvpn=[]; I=diag(ones(1,d)); for s=1:T I=I*Q; I1=sort(I*ones(d,1)); lvpn=[lvpn,log(I1(1))/s]; end lvpp=[]; hv=zeros(d,T); for s=2:T //Evolution des particules u(:,s)=bool2s(rand(N,1,'uniform')
=L);
l=length(w);
v=find(abs(x(:,s))