% PROGRAM level2.m % This MATLAB code simulates tosses of a coin with probability p % of getting a Head and 1-p of getting a Tail and % determines the fraction of experiments in which k heads % occur before m tails occur. Thus, this is the level-crossing % calculation in which, starting with a capital $Q, and for which % you gain $1 for each Head and lose $1 for each tail, you determine % the fraction of games in which you obtain a capital of % $Q+k before your capital is reduced to $Q-m. % You are prompted to supply % the probability p, the number k, and the number m. % At the end, output will be a vector, x, giving the times til % the kth Head occurs (given that the kth head occurs before % the mth tail), a vector y giving the times til the mth % tail occurs (given that mth tail occurs before the kth head), % and a vector z giving the time til either the kth head occurs % or the mth tail. % A total of 200 simulations are made. % A histogram summarizes the data, as well as the mean and % variance being calculated % !c: p=input('probability of heads on a single toss: ') k=input('count time until what number of Heads occur: ') m=input('or until what number of tails occur:') % nh will count the number of heads, nt the number of tails x=[ ]; y=[ ]; z=[ ]; hcount=0; tcount=0; for j=1:200 nh=0; nt=0; i=0; while (nh < k & nt < m), i=i+1; a=rand(1,1); if a <= p nh=nh+1; else nt=nt+1; end; end; % The vector z contains the times til the kth head or mth tail % occurred, x contains just these times when the kth Head occurred % first and y contains just these times when the mth Tail occurred % first. z=[z i]; if nh==k x=[x i]; hcount=hcount+1; else y=[y i]; tcount=tcount+1; end; end; pr=hcount/(hcount+tcount); disp('probability of k heads before m tails is: k,m,prob') k,m,pr,pause me=mean(x); s=std(x); md=median(x); disp('mean, median and standard deviation of time to ') k disp('occurrence of head are ') me,md,s,pause hist(x) title('histogram of time distribution til kth Head'),pause me=mean(y); s=std(y); md=median(y); disp('mean, median and standard deviation of time to ') m disp('occurrence of tail are ') me,md,s,pause hist(y) title('histogram of time distribution til mth Tail'),pause me=mean(z); s=std(z); md=median(z); disp('mean, median and standard deviation of time to exit') me,md,s,pause hist(z) title('histogram of time distribution to exit'),pause