Advertisement
Guest User

matdiff

a guest
Mar 27th, 2014
1,077
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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-');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement