Advertisement
Guest User

Untitled

a guest
Jan 18th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.57 KB | None | 0 0
  1. clc;
  2. clear all;
  3. %Chapitre 1
  4. %Processus de Wiener
  5. %%
  6. %1.1.1. Simulation du mouvement Brownien standard à 4 dimensions
  7. clc;
  8. clear all;
  9.  
  10. T=365; % Instants du processus
  11. experiences=10000; % Nombre d'expériences indépendantes
  12.  
  13. position=zeros(4,T+1,experiences); % Matrice pour stocker les expériences : (dimension, temps, expérience)
  14. for i=1:experiences
  15.     for t=1:T
  16.         position(:,t+1,i)=position(:,t,i)+(1/sqrt(T))*randn(4,1);
  17.     end
  18. end
  19.  
  20. means=zeros(4,3);
  21. stds=zeros(4,3);
  22. range_of_k=[10 100 300];
  23. correlations=zeros(4,4,3);
  24. for i=1:3;
  25.     k=range_of_k(i);
  26.     means(:,i)=[mean(position(1,k,:)); mean(position(2,k,:)); mean(position(3,k,:)); mean(position(4,k,:))];
  27.     stds(:,i)=[std(position(1,k,:)); std(position(2,k,:)); std(position(3,k,:)); std(position(4,k,:))];
  28.     for m=1:4
  29.         for n=m:4
  30.     correlation_mn=corrcoef(squeeze(position(m,k,:)),squeeze(position(n,k,:)));
  31.     correlations(m,n,i)=correlation_mn(1,2);
  32.     correlations(n,m,i)=correlation_mn(1,2);
  33.         end
  34.     end
  35. end
  36.    
  37.  
  38. %1.1.2. Simulation du mouvement Brownien standard à 4 dimensions corrélées
  39.  
  40. Gamma = [1 0.2 0.8 0.5; 0.2 1 0.3 0.2; 0.8 0.3 1 0.9; 0.5 0.2 0.9 1];
  41. choleski_G=chol(Gamma);
  42. position_corrigee=zeros(4,T+1,experiences);
  43. for i=1:experiences
  44.     for t=1:T+1
  45.         position_corrigee(:,t,i)=choleski_G*position(:,t,i);
  46.     end
  47. end
  48. means_corrigee=zeros(4,3);
  49. stds_corrigee=zeros(4,3);
  50. range_of_k=[10 100 300];
  51. correlations_corrigee=zeros(4,4,3);
  52. for i=1:3;
  53.     k=range_of_k(i);
  54.     means_corrigee(:,i)=[mean(position_corrigee(1,k,:)); mean(position_corrigee(2,k,:)); mean(position_corrigee(3,k,:)); mean(position_corrigee(4,k,:))];
  55.     stds_corrigee(:,i)=[std(position_corrigee(1,k,:)); std(position_corrigee(2,k,:)); std(position_corrigee(3,k,:)); std(position_corrigee(4,k,:))];
  56.     for m=1:4
  57.         for n=m:4
  58.     correlation_mn=corrcoef(squeeze(position_corrigee(m,k,:)),squeeze(position_corrigee(n,k,:)));
  59.     correlations_corrigee(m,n,i)=correlation_mn(1,2);
  60.     correlations_corrigee(n,m,i)=correlation_mn(1,2);
  61.         end
  62.     end
  63. end
  64.  
  65. %%
  66. %1.2.1 Processus de Poisson
  67. lambda=150; %intervalle moyen entre deux appels
  68. N=10000; %nombre de clients
  69. [t_attente, t_fin]=attente(gen_exp(N,lambda),normrnd(120,20,1,N));
  70.  
  71. hist(t_attente)
  72. close all;
  73.  
  74. indices = find(t_fin>36000);
  75. t_fin(indices) = [];
  76. n=length(t_fin); %nombre de clients en 10 heures
  77. t_attente=t_attente(1:n); %temps d'attente de ces clients
  78.  
  79. %Nous ne considérons que les gens qui ont été effecitvement traités dans la
  80. %journée.
  81.  
  82. hist(t_attente)
  83. proportion_dattente_10minutes=length(find(t_attente>600))/n;
  84.  
  85. %%
  86. %1.3.1 Chaîne de Markov
  87. close all;
  88. clc;
  89. X0=randi([-42 42]);
  90. N=100000;
  91. Z=2*randi([0 1],1,N)-ones(1,N);
  92.  
  93. X=zeros(1,N);
  94. X(1)=X0;
  95. for k=1:N-1
  96.     X(k+1)=X(k)+Z(k);
  97. end
  98. plot(X)
  99.  
  100. %%
  101. %1.4.1 Processus de diffusion
  102. close all;
  103. clc;
  104. dt=0.01;
  105. x0=1;
  106. N=1000;
  107.  
  108. parameters=[1 1 1 0.01 1;-1 1 1 0.01 1;1 1 0.1 0.01 1;1 2 0.3 0.01 1];
  109. %De la forme a b sigma dt x0
  110. X=zeros(1,N);
  111. X(1)=x0;
  112. i=4;
  113. for k=1:N-1
  114.     X(k+1)=X(k)+(parameters(i,1)*(parameters(i,2)-X(k))*dt+parameters(i,3)*normrnd(0,dt));
  115. end
  116. %plot(X)
  117.  
  118. %1.4.2 deuxième equation
  119.  
  120. %Lorsque x est proche de 0.5, le facteur ALEATOIRE sera dominant. Lorsque x
  121. %est proche de 0 ou 1, le facteur DE GAUCHE le rapproche de 0.5 => On
  122. %reste entre 0 et 1
  123. %L'amplitude du bruit augmente lorsque x s'approche de 0.5
  124.  
  125. dt=0.01;
  126. N=1000;
  127. X=zeros(1,N);
  128. X(1)=rand;
  129. for k=1:N-1
  130.     X(k+1)=X(k)+(0.5-X(k))*dt+sqrt(X(k)*(1-X(k)))*normrnd(0,dt);
  131. end
  132. plot(X)
  133.  
  134.  
  135. function [time] = gen_exp(n,lambda)
  136. time=exprnd(lambda,1,n);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement