att genomföra laborationen) kan du sedan spara filen med ev. ändringar på ditt eget konto med Save As, såsom anges i introduktionslaborationen.

Relevanta dokument
1 Förberedelser. 2 Teoretisk härledning av värmeförlust LABORATION 4: VÄRMEKRAFTVERK MATEMATISK STATISTIK AK, MAS 101:A, VT-01

3 Jämförelse mellan Polyas urna och en vanlig urna

1 Förberedelser. 2 Att starta MATLAB, användning av befintliga m-filer. 3 Geometriskt fördelad avkomma

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

Fö relä sning 2, Kö system 2015

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Markovprocesser SF1904

Markovprocesser SF1904

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

P =

Markovprocesser SF1904

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

Introduktion till MATLAB

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

b) Vad är sannolikheten att personen somnar i lägenheten? (4 p) c) Hur många gånger förväntas personen byta rum? (4 p)

bli bekant med summor av stokastiska variabler.

Laboration 3: Enkla punktskattningar, styrkefunktion och bootstrap

Demonstration av laboration 2, SF1901

Datorövning 1 Fördelningar

DATORÖVNING 2 MATEMATISK STATISTIK FÖR D, I, PI OCH FYSIKER; FMSF45 & MASB03. bli bekant med summor av stokastiska variabler.

Tiden i ett tillstånd

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

TSBB14 Laboration: Intro till Matlab 1D

** a) Vilka värden ska vara istället för * och **? (1 p) b) Ange för de tre tillstånden vilket som svarar mot 0,1,2 i figuren.

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

SF1901 Sannolikhetsteori och statistik: HT 2014 Lab 1 för CSAMHS, CINEKI, och CL

repetera begreppen sannolikhetsfunktion, frekvensfunktion och fördelningsfunktion

Tentamen i FMS180/MASC03 Markovprocesser

Stokastiska processer och simulering I 24 augusti

Markovprocesser SF1904

Markovprocesser SF1904

Laboration: Grunderna i MATLAB

TAMS79: Föreläsning 10 Markovkedjor

Datorövning 1: Fördelningar

Laboration i Automationsteknik FK: Del 1: Polplacering. Del 2: Markovkedjor

Stokastiska processer och simulering I 24 maj

Simulering av Poissonprocesser Olle Nerman, Grupprojekt i MSG110,GU HT 2015 (max 5 personer/grupp)

Mer om slumpvariabler

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

Markovkedjor. Patrik Zetterberg. 8 januari 2013

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Datorövning 1: Fördelningar

TENTAMEN I SF2937 (f d 5B1537) TILLFÖRLITLIGHETSTEORI TORSDAGEN DEN 14 JANUARI 2010 KL

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

SF1910 Tillämpad statistik, HT 2016 Laboration 1 för CSAMHS, CLGYM-TEMI

Stokastiska processer

Syftet med den här laborationen är att du skall bli mer förtrogen med några viktiga områden inom kursen nämligen

TANA17 Matematiska beräkningar med Matlab

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

träna på att använda olika grafiska metoder för att undersöka vilka fördelningar ett datamaterial kan komma från

Laboration 1: Grundläggande sannolikhetsteori, simulering och dataanalys

Matriser och vektorer i Matlab

Laboration 1: Beskrivande statistik

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

TAIU07 Matematiska beräkningar med Matlab

SF1911: Statistik för bioteknik

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

Markovprocesser SF1904

Markovprocesser SF1904

Datorövning 2 Betingad fördelning och Centrala gränsvärdessatsen

TENTAMEN I SF1904 MARKOVPROCESSER FREDAGEN DEN 17 AUGUSTI 2018 KL

Matematikcentrum 1(6) Matematisk Statistik Lunds Universitet MASB11 - Biostatistisk grundkurs VT2014, lp3. Laboration 2. Fördelningar och simulering

Minsta-kvadratmetoden

TAIU07 Matematiska beräkningar med Matlab

2 februari 2016 Sida 1 / 23

Uppgift 3: Den stokastiska variabeln ξ har frekvensfunktionen 0 10 f(x) =

15 februari 2016 Sida 1 / 32

Laboration 3: Parameterskattning och Fördelningsanpassning

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 13:e januari klockan

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

Tentamen LMA 200 Matematisk statistik, data/elektro

TANA81: Simuleringar med Matlab

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

SF1920/SF1921 Sannolikhetsteori och statistik, VT 2018 Laboration 1 för CELTE2/CMATD3

LABORATIONSHÄFTE NUMERISKA METODER GRUNDKURS 1, 2D1210 LÄSÅRET 03/04. Laboration 3 3. Torsionssvängningar i en drivaxel

Syftet med den här laborationen är att du skall bli mer förtrogen med det i praktiken kanske viktigaste området inom kursen nämligen

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

TENTAMEN I SF1904 MARKOVPROCESSER FREDAGEN DEN 18 AUGUSTI 2017 KL

TMS136. Föreläsning 4

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar

TANA17 Matematiska beräkningar med Matlab

TENTAMEN I SF1904 MARKOVPROCESSER TISDAGEN DEN 29 MAJ 2018 KL

Matematisk analys för ingenjörer Matlabövning 3 Numerisk lösning av differentialekvationer

Avd. Matematisk statistik

Uppgift 2 Betrakta vädret under en följd av dagar som en Markovkedja med de enda möjliga tillstånden. 0 = solig dag och 1 = regnig dag

Tentamen i matematisk statistik, TAMS15/TEN (4h)

Matematisk statistik för D, I, Π och Fysiker

Matlabövning 1 Funktioner och grafer i Matlab

P(X nk 1 = j k 1,..., X n0 = j 0 ) = j 1, X n0 = j 0 ) P(X n0 = j 0 ) = etc... P(X n0 = j 0 ) ... P(X n 1

2 Laborationsuppgifter, upptagetsystem

Matematisk statistik allmän kurs, MASA01:B, HT-14 Laborationer

Projekt 1: Om fördelningar och risker

Transkript:

LUNDS UNIVERSITET MATEMATIKCENTRUM MATEMATISK STATISTIK LABORATION 3: SIMULERING AV MARKOVPROCESSER MED TILLFÖRLITLIGHETSTILLÄMPNING MATEMATISK STATISTIK AK, MAS 101:A, VT-01 1 Förberedelser Denna laboration handlar om hur man simulerar Markovprocesser i kontinuerlig tid genom att bilda en inbäddad Markovkedja, som innehåller alla processens hopp. Läs igenom Avsnitt 3.4.1 och 5.1 5.5 i Tilläggskompendiet (TK). 2 Att starta MATLAB, användning av befintliga m-filer Gå in i MATLAB på det sätt som beskrivs i introduktionslaborationen. Väl inne i MATLAB anger du sedan >> mh_init( MAS101A ) Då skapas automatiskt en sökväg till underbiblioteket...\mas101a\, som innehåller alla m-filer som behövs för datorlaborationerna till kursen (se även appendix för de m-filer du behöver till just denna laboration). Filerna i...\mas101a\ listas med kommandot 1 >> what MAS101A Hjälptexten till en godtycklig fil från listan får du fram genom >> help... där... är namnet på den fil du vill ha hjälptexten för. Om du dessutom vill läsa in hela filen till Matlabs editor anger du >> edit... där återigen... står för filnamnet. Om du gör ändringar i den inlästa filen (ej nödvändigt för att genomföra laborationen) kan du sedan spara filen med ev. ändringar på ditt eget konto med Save As, såsom anges i introduktionslaborationen. 3 Simulering av Markovprocesser. Vi ska börja med att simulera Markovprocesser i kontinuerlig tid med hjälp av sats 5.7 i TK, avsnitt 5.5. 1 Det syns inte i den lista du får upp på skärmen att samtliga filer är av typen.m.

Förberedelseuppgift 1 (Inbäddad övergångsmatris.) Givet en Markovprocess med fyra tillstånd, numrerade E 1, E 2, E 3, E 4, och intensitetsmatris 3 2 1 0 A = 2 4 2 0 1 3 5 1, 0 3 3 6 bestäm övergångsmatrisen P för den inbäddade Markovkedjan. Den inbäddade Markovkedjans övergångsmatris anger med vilka sannolikheter vi hoppar mellan olika tillstånd, utan hänsyn till hur lång tid det tar mellan hoppen. Med hjälp av sats 5.7 kan vi simulera hoppen och tidsintervallen mellan hoppen var för sig. Förberedelseuppgift 2 (Fördelning för ett hopp.) Anta att vi hoppar till E 3 vid tidpunkten T i (det i:te hoppet). Ange sannolikhetsfunktionen för X i+1 = X (T i+1 ), dvs nästa tillstånd som processen hoppar till. Hur kan man simulera detta hopp? (Ledning: se Avsnitt 3.4.1 i TK.) Förberedelseuppgift 3 (Tiden i ett tillstånd.) Vilken fördelning har T i+1 T i, under samma förutsättningar som i föregående uppgift? Förberedelseuppgift 4 (Flera hopp.) Vilken är sannolikheten att vi givet start i E 3 först tillbringar minst 0.4 tidsenheter i E 3, därefter hoppar till E 2, tillbringar mellan 0.1 och 0.4 tidsenheter i E 2 samt slutligen hoppar till E 1? Funktionen markovkont_sim.m (se appendix eller använd hjälpfunktionen i MATLAB, dvs help markovkont_sim) simulerar en Markovprocess i kontinuerlig tid med intensitetsmatris A och starttillstånd X (0), under T tidsenheter: >> A =... >> X0 =... >> T =... >> [tau,x,t_hopp] = markovkont_sim(a,t,x0) Utparametrarna till funktionen skrivs nu ut på skärmen. För att plotta realiseringen av processen kan man använda >> stairs(t_hopp,x) Gränserna i grafikfönstret, som automatiskt sätts av MATLAB, är inte så bra i detta fall. Du kan själv ändra dem genom >> N = size(a,1); >> axis([0 T 0 N+1]); där N anger antal tillstånd hos Markovkedjan. Uppgift 1 Simulera Markovprocessen med intensitetsmatris ( ) 0.5 0.5 A = 3 3 under en lämpligt vald tidsperiod T och valfritt starttillstånd. Plotta ut realiseringen av processen. Beräkna (T ) = ( 1 (T ), 2(T )), där i(t ) anger hur stor del av tiden processen befinner sig i E i (så att 1(T ) + 2 (T ) = 1). Förklara processens utseende. 2

Uppgift 2 Gör samma sak för Markovprocessen i Förberedelseuppgift 1, för några olika värden på T. Plotta sedan i (T ) som funktion av T för i = 1, 2, 3, 4 i samma plot: >> T_vec = [...] Lägg de T-värden du väljer i en vektor T_vec >> pi_1 = [...] Motsvarande värden på pi_1(t) >> plot(t_vec,pi_1, r ) Plotta pi_1(t) mot T med röd färg ( r ) >> hold on Grafikfönstret raderas ej inför nästa plottning >> pi_2 = [...] >> plot(t_vec,pi_2, b ) Här valde vi blå färg ( b )... >> hold off Pröva gärna, om tiden tillåter, att simulera Markovprocesser med olika intensitetsmatriser, för att se hur realiseringarna beror av A. 4 Stationära sannolikheter Om T är stor bör vektorn (T ) = ( 1 (T ),..., N(T )) svänga in sig mot den stationära sannolikhetsvektorn = ( 1,..., N ). Funktionen pi_kont (se appendix) beräknar för en allmän Markovprocess. Den utnyttjar omskrivningen { A = 0, N i=1 i = 1 B = (0,..., 0, 1), där anger transponat, B = ( A 1 ) = ( A 1 ) och 1 är en radvektor innehållande N ettor. Genom denna omskrivning ges ett ekvationssystem med N + 1 linjärt beroende ekvationer och N obekanta. som lösningen till Uppgift 3 Beräkna den stationära fördelningen för Markovprocessen i Förberedelseuppgift 1. Jämför resultatet med det värde du fick i Uppgift 2. 5 Passiv redundans med reparation av komponenter Vi tänker oss följande tillförlitlighetsproblem: En maskin innehåller en komponent. Så snart denna går sönder, kan den bytas ut mot en annan. Totalt finns n komponenter att tillgå, och trasiga komponenter kan lagas av en reparatör. Komponenterna antas ha oberoende och exponentialfördelade livslängder med väntevärde 1, och reparationstiderna är också exponentialfördelade, med väntevärde 1. Frågeställningen är nu när reparatören ska tillkallas för att underhållskostnaden ska bli så låg som möjlig. Tre typer av kostnader förekommer: 1) kostnad per tidsenhet vid driftsstopp (alla komponenter trasiga) 2) kostnad att tillkalla reparatör 3) reparationskostnad per tidsenhet. Anta att vi tillkallar reparatören (momentant) då den r:te komponenten går sönder, 1 r n. När reparatören har anlänt, lagar han alla komponenter som är trasiga vid ankomst samt de som blir trasiga innan han återvänder. Om r är liten ökar kostnaden 2), eftersom vi måste tillkalla reparatören 3

oftare. Ett stort r ökar å andra sidan sannolikheten för driftsstopp och därmed ökar kostnad 1). Vi antar ett linjärt samband för den totala kostnaden K under T tidsenheter: där K = K (r, T ) = a 1n (T ) + bn rep (T ) + c 1 (T ), (1) 1n(T ) = driftsstoppstid under [0, T ] n rep (T ) = antal gånger reparatören tillkallas under [0, T ] 1(T ) = total reparationstid under [0, T ] (indexen kommer strax att få sin förklaring) och a, b och c är konstanter som beskriver den relativa vikten av de olika kostnadstyperna. Systemet kan beskrivas av en Markovprocess i kontinuerlig tid, med N = n + r tillstånd E 00, E 01,..., E 0,r 1, E 11, E 12,..., E 1n, där E ij = i reparatörer tillkallade, j komponenter trasiga. Tydligen blir 1n den tid vi tillbringar E 1n, n rep antalet hopp E 0,r 1 E 1r och 1 den sammanlagda tiden vi är i något av tillstånden E 11,..., E 1n. Förberedelseuppgift 5 (Tillståndsdiagram.) Ställ upp ett tillståndsdiagram för systemet med intensiteter angivna mellan alla tillstånd. Efter byte av tidsskala kan vi alltid anta att = 1, vilket vi gör fortsättningsvis. Funktionen A_tillflab (se appendix) beräknar tillståndsmatrisen för godtyckligt n, r och (med tillstånden numrerade 1, 2,..., N enligt ordningsföljden E 00, E 01,..., E 0,r 1, E 11, E 12,..., E 1n ). Uppgift 4 Beräkna intensitetsmatrisen då n = 6 och r = 3 och = 3. 5.1 Simulering Med hjälp av funktionen kostnad (se appendix), simuleras systemet under tiden T, och den genomsnittliga kostnaden K medel = K /T bestäms. Uppgift 5 (Grafisk illustration av systemet.) Simulera systemet under en ganska kort tid för lämpligt valda värden på n, r,, a, b och c. Plotta ut antal trasiga komponenter (utparametern Y) som funktion av tiden samt i samma plot när reparatören är tillkallad (utparametern Z) som funktion av tiden. För att kunna särskilja de två kurvorna åt, använd olika färger, exempelvis stairs(t_hopp,y, b ) för en blå Y -kurva osv. Kom ihåg hold on, så att du inte raderar den befintliga kurvan när du ritar in en ny. Gör sedan en ny plot med ett annat värde på. Hur ändras medelkostnaden och varför? Uppgift 6 (Optimalt val av r.) Simulera systemet du valde i föregående uppgift för ett stort T (exempelvis T = 1000 eller ett mindre värde om det tar för lång tid), beräkna och plotta medelkostnaden som funktion av r, då a = 10, b = 1 och c = 1. Vilket r är optimalt? Gör sedan om simuleringen med andra värden på a, b och c. Hur ändras det optimala värdet på r och varför? 4

5.2 Analytisk metod Om T i (1) får vi K medel (r, T ) = K (r, T ) T = a 1n (T ) T + b n rep(t ) T + c 1 (T ) T a 1n + b 0,r 1 + c n i=1 1i, (2) där ij är den stationära sannolikheten att befinna sig i E ij. Då systemet svängt in sig i jämvikt kan alltså de stationära sannolikheterna användas för att beskriva medelkostnaden. Vi utnyttjade att 1n(T )/T är proportionen av tiden vi befinner oss i E 1n, som för stora T bör ligga nära 1n. Av samma anledning bör 1(T )/T ligga nära n i=1 1i, då ju 1 (T ) är den sammanlagda tiden vi befinner oss i något av tillstånden E 11,..., E 1n. Vidare gäller n rep (T ) T = 0,r 1 (T )/T 0,r 1(T )/n rep 0,r 1 1 = 0,r 1, eftersom 0,r 1 (T )/n rep är den genomsnittliga längen av de n rep tidsintervall Markovprocessen befinner sig i E 0,r 1, och väntevärdet är 1 för vart och ett av dessa intervall 2, 3. Uppgift 7 (Medelkostnad vid jämvikt.) Använd dig av funktionen kostnad_limit (se appendix) för att beräkna medelkostnaden vid jämvikt som funktion av r. Utgå från samma system som du simulerade i föregående uppgift, samt jämför resultaten. Uppgift 8 (Konvergens av medelkostnad.) Välj ett system, använd kostnad för att beräkna K medel (r, T ) som funktion av T, och plotta funktionen. Räkna också ut gränsvärdet T, samt lägg in detta värde som en horisontell linje i plotten. En horisontell linje på nivån K i intervallet [T 0, T 1 ] kan erhållas med kommandona >> U = [T0 T1]; >> V = [K K]; >> plot(u,v) 2 Eftersom T är stor, kan vi bortse från att det eventuellt finns n rep + 1 intervall i E 0,r 1 inkluderade i 0,r 1(T ), nämligen om simuleringen avslutas i E 0,r 1, dvs X (T ) = E 0,r 1. 3 Enligt sats 5.7 i TK, avsnitt 5.5, är tiden i E ij varje gång exponentialfördelad med väntevärde ( a ij,ij ) 1, där a ij,ij är diagonalelementet i intensitetsmatrisen svarande mot E ij. 5

Appendix function [k] = disk_sim(p) Funktionen [k] = disk_sim(p) genererar ett slumptal k från en diskret fördelning med sannolikhetsfunktion p (som ska vara en ändlig radvektor) med hjälp av inversa transformationsmetoden. L = length(p); F = cumsum(p); F_shift = [0 F(1:L-1)]; u = rand*ones(1,l); k = find((u <= F)&(u>F_shift)); Beräkna fördelningsfunktionen Hitta det värde k där födelningsfunk- tionen hoppar förbi u function [tau,x,t_hopp] = markovkont_sim(a,t,x0) Funktionen [tau,x,t_hopp] = markovkont_sim(a,t,x0) simulerar en Markovprocess i kontinuerlig tid med intensitetsmatris A under tidsperioden [0,T], med start i tillståndet X0. Utparametrar: tau - vektor som anger tiden processn varit i de olika tillstånden T_hopp - vektor som anger tidpunkter för processens hopp (T_hopp(1)=0) X - vektor som anger processens värde under de olika tidsintervall som definieras av T_hopp Generera övergångsmatris (Pt) för den inbäddade Markovkedjan samt plocka ut diagonalelementen i A (med omvänt tecken) i en vektor a N = size(a,1); a = -diag(a); A_diag = diag(a); Pt = inv(a_diag)*a+eye(n); Påbörja simulering X = [X0]; X_nu = X0; T_hopp = [0]; T_nu = 0; tau = zeros(1,n); while T_nu<T X_next = disk_sim(pt(x_nu,:)); Generera nästa tillstånd hopptid = exprnd(1/a(x_nu)); Tidsavstånd till nästa hopp tau(x_nu) = tau(x_nu) + hopptid; T_next = T_nu + min(hopptid,t-t_nu); T_hopp = [T_hopp T_next]; X = [X X_next]; X_nu = X_next; T_nu = T_next; end; 6

function [pi] = pi_kont(a); Funktionen [pi] = pi_kont(a) bestämmer den stationära fördelningen pi till en Markovprocess i kontinuerlig tid med intensitetsmatris A N = size(a,1); u = zeros(1,n+1); u(1,n+1) = 1; B = [A ;ones(1,n)]; pi = (B\(u )) ; function [A] = A_tillflab(n,r,mu) Funktionen [A] = A_tillflab(n,r,mu) genererar en intensitets- matris A för tillförlitlighetsproblem med n komponenter, där reparatören tillkallas då r komponenter är trasiga. Reparationsintensiteten ges av mu, och komponenterna går sönder med intensiteten 1 (=lambda). Tillstånden är numrerade i ordning E_{00},...,E_{0,r-1},E_{11},...,E_{1n} function [K_medel,Y,Z,T_hopp] = kostnad(n,r,a,b,c,mu,t) Funktionen [K_medel,Y,Z,T_hopp] = kostnad(n,r,a,b,c,mu,t) simulerar ett Markovskt tillförlitlighetssystem bestående av n komponenter under T tidsenheter, där reparatören tillkallas då r enheter är trasiga. Övriga inparametrar: mu - reparationsintensitet a - kostnad per tidsenhet för avbrott (n trasiga komponenter) b - kostnad att tillkalla reparatör c - kostnad per tidsenhet att anlita reparatör Utparametrar: K_medel - totalkostnad per tidsenhet T_hopp - anger tidpunkter då systemet ändras (T_hopp(1) = 0) Y - anger antal trasiga komponenter i de olika tidsintervall som definieras av T_hopp Z - = -1 i de tidsintervall då reparatören är tillkallad, annars = -2 Simulera systemet under T tidsenheter, A = A_tillflab(n,r,mu); N = size(a,1); X0 = 1; [tau,x,t_hopp] = markovkont_sim(a,t,x0); Räkna ut n_rep - antal hopp Markovprocessen gör från E_{0,r-1} (ordningsnummer r) till E_{1r} (ordningsnummer 2*r), dvs antal gånger reparatören tillkallas NX = size(x,1); rep_tillkallas = r*ones(1,nx); rep_kommit = 2*r*ones(1,NX); X_shift = [0 X(1:NX-1)]; 7

n_rep = sum((x_shift == rep_tillkallas)&(x == rep_kommit)); Räkna ut medelkostnaden K_medel = ( a*tau(n) + b*n_rep + c*sum(tau(r+1:n)) )/T; Beräkna antal trasiga komponenter samt när reparatören är tillkallad Y = (X <= r).*(x-1) + (X>r).*(X-r); Z = (X>r)-2; function [K_medel] = kostnad_limit(n,r,a,b,c,mu) Funktionen [K_medel] = kostnad_limit(n,r,a,b,c,mu) beräknar medelkostnaden vid jämvikt, K_medel för ett Markovskt system med n komponenter, där reparatören tillkallas då den r:te komponenten går sönder. a - kostnad per tidsenhet för avbrott (n trasiga komponenter) b - kostnad att tillkalla reparatör c - kostnad per tidsenhet att anlita reparatör Beräkna intensitetsmatrisen för systemet A = A_tillflab(n,r,mu); Beräkna stationär lösning N = size(a,1); pi = pi_kont(a); Beräkna medelkostnad K_medel = a*pi(n) + b*pi(r)*(-a(r,r)) + c*sum(pi(r+1:n)); 8