SHOW:
|
|
- or go back to the newest paste.
1 | %SIMULATION OF THE DIFFUSION PROCESS | |
2 | rtn=500; %num trials | |
3 | global rt; | |
4 | rt=zeros(2,rtn); | |
5 | ||
6 | maxWalk=15000; | |
7 | ||
8 | %PARAMETERS | |
9 | a=10; %positive boundary (the negative is 0) | |
10 | z=0; %starting point | |
11 | s=1;%variance in drift rate within trial | |
12 | v=0.38;%mean drift rate | |
13 | ||
14 | for xx=1:rtn | |
15 | timeseries(1:maxWalk,1)=NaN; | |
16 | timeseries(1)=z; | |
17 | ||
18 | for i=2:maxWalk | |
19 | timeseries(i)=timeseries(i-1)+normrnd(v,s,1,1); | |
20 | if (timeseries(i)>=a) | |
21 | %linear interpolation | |
22 | slope=timeseries(i)-(timeseries(i-1)); | |
23 | x=i-(timeseries(i)-a)/slope; | |
24 | rt(1,xx)=x; | |
25 | break; | |
26 | end | |
27 | ||
28 | end | |
29 | if xx==1 | |
30 | plot([0 150],[1 1],'b:'); | |
31 | end | |
32 | timeseries(isnan(timeseries))=[]; | |
33 | time=(1:length(timeseries)); | |
34 | figure(1); hold on; plot(time, timeseries,'r.-'); drawnow; | |
35 | end | |
36 | ||
37 | ||
38 | figure(); | |
39 | RT{1}=rt(1,find(rt(1,:)>0)); | |
40 | ||
41 | %{ | |
42 | [~,~,~,~,~,~,~,par]= myHist(RT{1},'binW',1, 'typePlot','h','fit','invg'); | |
43 | par{1}{1} | |
44 | %} | |
45 | mu=a/v; sig=a.^2./s.^2; | |
46 | %display(['Estimated - mu:' num2str(par{1}{1}(1)) ' s: ' num2str(par{1}{1}(2))]); | |
47 | display(['Real - mu:' num2str(mu) ' s: ' num2str(sig)]); | |
48 | ||
49 | x=0:0.1:400; | |
50 | hold on; plot(x,invgpdf(x,mu,sig),'r-'); |