Bruksanvisning för hur man simulerar diskreta Markovkedjor 1 En ...
Bruksanvisning för hur man simulerar diskreta Markovkedjor 1 En ...
Bruksanvisning för hur man simulerar diskreta Markovkedjor 1 En ...
Transform your PDFs into Flipbooks and boost your revenue!
Leverage SEO-optimized Flipbooks, powerful backlinks, and multimedia content to professionally showcase your products and significantly increase your reach.
STOCKHOLMS UNIVERSITET<br />
Stokastiska processer och simulering I<br />
MATEMATISKA INSTITUTIONEN<br />
Avd. Matematisk statistik VT 2008<br />
Anders Björkström<br />
<strong>Bruksanvisning</strong> för <strong>hur</strong> <strong>man</strong> <strong>simulerar</strong> <strong>diskreta</strong> <strong>Markovkedjor</strong><br />
Innan vi startar så börja med att öppna ett terminalfönster genom att trycka Alt + F2 och i det fönstret<br />
skriva ‘konsole’. Skapa sedan en katalog som heter ‘ProcI’ genom att skriva ‘mkdir ProcI’ i det terminalfönster<br />
som öppnades, och förflytta dig till den katalogen genom att skriva ‘cd ProcI’. (Katalogen<br />
‘ProcI’ kommer nu att finnas i din hemkatalog.) Starta nu Matlab genom att skriva ‘matlab’ i ditt terminalfönster.<br />
Nu är vi säkra på att Matlab kommer att hitta alla filer som vi sparar i katalogen ‘ProcI’.<br />
1 <strong>En</strong> Markovkedja med tre tillstånd<br />
<strong>En</strong>ligt vissa undersökningar kan följden av bokstäver i en svensk text betraktas som en markovkedja med<br />
tre tillstånd, E 0 , E 1 och E 2 , där E 0 är ordmellanrum, E 1 är vokal och E 2 är konsonant. Övergångsmatrisen<br />
för markovkedjan är<br />
⎛<br />
P = ⎝<br />
0 0.25 0.75<br />
0.16 0.01 0.83<br />
0.24 0.47 0.29<br />
Antag att vi vill simulera de första 100 variablerna i markovkedjan. Då behöver vi en funktion och den<br />
kan i Matlab skrivas såhär:<br />
⎞<br />
⎠<br />
function [y]=f(x,u)<br />
if x==0<br />
if u
end;<br />
end;<br />
Skriv denna Matlabtext i en fil som du ger namnet ‘f.m’ och sparar i katalogen ‘ProcI’ i din hemkatalog.<br />
Om vi nu skriver in följande i matlabs ‘Com<strong>man</strong>d Window’:<br />
n=0;<br />
result=[];<br />
x=0;<br />
while ntest<br />
y=y+1;<br />
test=test+P(x+1,y+1);<br />
end;<br />
Storheten P står naturligtvis för kedjans övergångsmatris. Vi förutsätter att denna har blivit definierad<br />
i det program, från vilket funktionen anropas.<br />
2