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

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

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

bli bekant med summor av stokastiska variabler.

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

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

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

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

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

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

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

Datorövning 1: Fördelningar

repetera begreppen sannolikhetsfunktion, frekvensfunktion och fördelningsfunktion

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

Stokastiska processer och simulering I 24 maj

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

Markovkedjor. Patrik Zetterberg. 8 januari 2013

Stokastiska processer

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

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

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

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

TAMS79: Föreläsning 10 Markovkedjor

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

Datorövning 1 Fördelningar

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

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

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

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

Introduktion till MATLAB

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

Kap 2. Sannolikhetsteorins grunder

Lektionsanteckningar 11-12: Normalfördelningen

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

Laboration 3: Enkla punktskattningar, styrkefunktion och bootstrap

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

2 februari 2016 Sida 1 / 23

Demonstration av laboration 2, SF1901

TANA17 Matematiska beräkningar med Matlab

Laboration 1: Beskrivande statistik

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

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

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Exempel. Vi observerar vädret och klassificerar det i tre typer under en följd av dagar. vackert (V) mulet (M) regn (R)

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

Markovprocesser SF1904

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

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

Laboration 1: Grundläggande sannolikhetsteori, simulering och dataanalys

Finansiell Statistik (GN, 7,5 hp,, HT 2008) Föreläsning 3

Föreläsning 5. Funktioner av slumpvariabler. Ett centralt resultat.

Inledning till statistikteorin. Skattningar och konfidensintervall för μ och σ

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

1 Syfte. 2 Moment hos och faltning av fördelningar MATEMATISK STATISTIK, AK FÖR L, FMS 033, HT Angående grafisk presentation

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

Matematisk statistik 9hp Föreläsning 5: Summor och väntevärden

Markovprocesser SF1904

Datorövning 1: Fördelningar

Laboration 2: Sannolikhetsteori och simulering

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

TANA17 Matematiska beräkningar med Matlab

3 Maximum Likelihoodestimering

1 Syfte. 2 Moment hos och faltning av fördelningar MATEMATISK STATISTIK, AK FÖR L, FMS 033, HT Angående grafisk presentation

Fö relä sning 2, Kö system 2015

Weibullanalys. Maximum-likelihoodskattning

Laboration 3: Parameterskattning och Fördelningsanpassning

TANA17 Matematiska beräkningar med Matlab

2 Matrisfaktorisering och lösning till ekvationssystem

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

4 Diskret stokastisk variabel

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

TAIU07 Matematiska beräkningar med Matlab

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

ANVISNINGAR TILL INLÄMNINGSUPPGIFTER I TILLFÖRLITLIGHETSTEORI. På inlämningsuppgiften ska alltid namn och elevnummer finnas med.

Kapitel 3 Diskreta slumpvariabler och deras sannolikhetsfördelningar

SF1901: Sannolikhetslära och statistik

Föreläsning 5, Matematisk statistik Π + E

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

Laboration 4: Hypotesprövning och styrkefunktion

Matematisk statistik 9 hp Föreläsning 3: Transformation och simulering

Markovprocesser SF1904

Markovprocesser SF1904

Laboration 4: Lineär regression

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Föreläsning 5, FMSF45 Summor och väntevärden

TENTAMEN I SF1906 (f d 5B1506) MATEMATISK STATISTIK GRUNDKURS,

Institutionen för teknikvetenskap och matematik, S0001M LABORATION 2

Föreläsning 12: Regression

Laboration 2: Sannolikhetsteori och simulering

Laboration 3. Ergodicitet, symplektiska scheman och Monte Carlo-integration

Variabler och konstanter

SF1901 Sannolikhetsteori och statistik I

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

BIOSTATISTISK GRUNDKURS, MASB11, VT-16, VT2 ÖVNING 3, OCH INFÖR ÖVNING 4

Envägs variansanalys (ANOVA) för test av olika väntevärde i flera grupper

1.1 Diskret (Sannolikhets-)fördelning

Transkript:

LUNDS UNIVERSITET MATEMATIKCENTRUM MATEMATISK STATISTIK LABORATION 2: FÖRGRENINGSPROCESSER MATEMATISK STATISTIK AK, MAS 101:A, VT-01 1 Förberedelser Syftet med denna laboration är att du skall bli mer förtrogen med vissa egenskaper hos förgreningsprocesser. Läs igenom avsnitt 11.5 i Blom, bok A samt kapitel 2 och avsnitt 4.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 Geometriskt fördelad avkomma Vi betraktar en förgreningsprocess X (0), X (1), X (2),..., där X (n) anger antalet individer efter n generationer, n = 1, 2,.... Vi antar att antalet avkomlingar Y till en bestämd individ är geometriskt fördelad, med sannolikhetsfunktion p Y (k) = p(1 p) k, k = 0, 1, 2,.... 1 Det syns inte i den lista du får upp på skärmen att samtliga filer är av typen.m.

Förberedelseuppgift 1 Bestäm den sannolikhetsgenererande funktionen P Y (s) då Y är geometriskt fördelad. P Y (s) = Eftersom {X (n), n = 0, 1,...} är en Markovkedja kan dess övergångsmatris bestämmas: Förberedelseuppgift 2 Bestäm övergångssannolikheten p ij = P(X (n) = j X (n 1) = i) då Y är geometriskt fördelad. (Ledning: Om X (n 1) = i kan vi skriva X (n) = Y 1 + Y 2 +... + Y i, där Y j är antal avkommor till den j:te individen i generation n 1, j = 1,..., i. Summan av i stycken oberoende geometriskt fördelade s.v. har en negativ binomialfördelning.) p ij = Förberedelseuppgift 3 Bestäm den sannolikhetsgenererande funktionen P n (s) för de absoluta sannolikheterna vid tidpunkterna n = 1, 2, 3, då Y är geometriskt fördelad. P 1 (s) = P 2 (s) = P 3 (s) = Förberedelseuppgift 4 Bestäm extinktionssannolikheten p = 0.3 p = 0.5 p = 0.8 då Y är geometriskt fördelad. = Ett sätt att simulera Markovkedjor är att simulera realiseringar av {X (n), n 0}, med hjälp av övergångsmatrisen P. Eftersom summan i varje rad i P är 1, representerar en rad en fördelning för en diskret s.v. Genom att dra ett slumptal från denna fördelning drar vi således det tillstånd till vilken processen går. Ett annat sätt som är möjligt för förgreningsprocesser är att erhålla det tillstånd som X (n) befinner sig i vid tidpunkt n givet att X (n 1) = i, genom att simulera det antalet avkomlingar som i individer ger upphov till, dvs X (n) = Y 1 + Y 2 + + Y i. Funktionen branch_geom (se appendix eller använd help branch_geom) använder den senare metoden. Kommandot >> [X] = branch_geom(0.55,20,4) gör exempelvis att 20 generationer beräknas och plottas för en förgreningsprocess som har fyra stamfäder och ett Ge(0.55)-fördelat antal avkommor till varje individ. Utparametern X innehåller i detta fall (X (0), X (1),..., X (20)), så att exempelvis 10:e elementet i X anger X (9), antalet individer efter 9 generationer. Uppgift 1 Simulera processen med p < 0.5 och p > 0.5. Jämför simuleringarna. Kan du ge en förklaring till skillnaderna? Vad händer när p är nära 0.5? Dör processen ut? Skriv ner resultaten och bifoga plottar. Det är lämpligt att med kommandot subplot rita flera delplottar per papper för vart och ett av de värden på p (och X (0)) du väljer, exempelvis >> subplot(2,2,1) >> branch_geom(0.45,20,5) >> subplot(2,2,2) >> branch_geom(0.45,20,5)... 2

Uppgift 2 Simulera processen med p < 0.5 för olika värden på p. Uppskatta sannolikheten att processen dör ut och jämför med det teoretiska värdet. (Använd valfritt X (0). Om X (0) = 1 är det teoretiska värdet, och om X (0) > 1 blir det teoretiska värdet något annat.) 4 Poissonfördelad avkomma Antag att antalet avkomlingar Y till en bestämd individ är Poissonfördelat, med sannolikhetsfunktion p Y (k) = e m m k /k!, k = 0, 1, 2,.... Förberedelseuppgift 5 Bestäm den sannolikhetsgenererande funktionen P Y (s) då Y är Poissonfördelad. P Y (s) = Förberedelseuppgift 6 Bestäm övergångssannolikheten p ij då Y är Poissonfördelad. p ij = Förberedelseuppgift 7 Bestäm extinktionssannolikheten då Y är Poissonfördelad med väntevärde m (här kan du behöva göra en numerisk lösning som ges av t.ex. Maple). m = 0.5 m = 1 m = 2 = För Poissonfördelade avkommor använder man istället branch_poisson (se appendix), som fungerar analogt. Det som skiljer är första inparametern, som nu anger väntevärdet för antal avkommor till en viss individ. Kommandot >> [X] = branch_poisson(1.2,25,4) simulerar alltså 25 generationer av en förgreningsprocess med 4 stamfäder och Po(1.2)-fördelat antal avkommor till varje individ. Uppgift 3 Simulera förgreningsprocessen med lämpligt X (0) för såväl m < 1 som m > 1. Jämför simuleringarna. Kan du ge en förklaring till skillnaderna hos realiseringarna. Vad händer när m är nära 1? Dör processen ut? Skriv ner resultaten och redovisa plottar. Använd gärna subplot för att se variationen mellan olika simuleringar som har samma inparametrar. Uppgift 4 Skatta extinktionssannolikheten för något m sådant att processen ej säkert dör ut, och jämför med det teoretiska värdet. (Samma kommentar vad beträffar valet av X (0) som i Uppgift 2.) 3

5 Förväntad tid till extinktion Vi ska nu studera tiden till extinktion 2, T i = min{n; X (n) = 0} givet X (0) = i, som naturligtvis beror av i, antalet stamfäder 3. Vi forsätter att anta Y Po(m), och extinktionstiden kommer även att bero av m. I de följande två delavsnitten studerar vi förväntad tid till extinktion E(T i ), dels teoretiskt, dels genom simulering. 5.1 Simulering Funktionen sim_extid kan användas för att skatta E(T i ). Med kommandot >> [T_medel T] = sim_extid(20,0.8,100,4) utförs 20 simuleringar av en förgreningsprocess med Y Po(0.8) och fyra stamfäder. De 20 extinktionstiderna läggs i T, och deras aritmetiska medelvärde i T_medel. Om någon population inte dött ut efter 100 generationer avbryts simuleringen. Uppgift 5 (Förväntad tid till extinktion som funktion av m.) För att få en uppfattning om hur den förväntade tiden till extinktion beror av m, fixera i = X (0) och beräkna skattningar av E(T i ) för olika m-värden. Plotta sedan upp de skattade värdena som funktion av m. Vad händer om m > 1? >> m = [... ] ange vektor med m-värden >> X0 =... fixera antal stamfäder >> antal_iter =... minst 100 iterationer för god noggrannhet >> [T_medel(1)] = sim_extid(antal_iter,m(1),100,x0) >> [T_medel(2)] = sim_extid(antal_iter,m(2),100,x0)... >> plot(m,t_medel) >> hold on För vart och ett av m-värdena kan du nu pricka in enskilda extinktionstider T i, för att få en uppfattning om hur stor spridningen är kring väntevärdet E(T i ). Med fem extinktionstider per m-värde fås exempelvis: >> [T_medel T] = sim_extid(5,m(1),100,x0) >> plot(m(1)*ones(1,5),t, * ) >> [T_medel T] = sim_extid(5,m(2),100,x0) >> plot(m(2)*ones(1,5),t, * )... >> hold off 2 Observera att vi använder beteckningen T i för extinktionstid i stället för Y i, som används i TK, avsnitt 4.5, eftersom Y i redan är upptaget i denna laboration som antal avkommor till i:te individen i en generation. 3 Vi kan tolka X (0) = i som att vi sätter igång i stycken förgreninsprocesser, med var sin stamfader, oberoende av varandra. Hela populationen dör ut då den sista av delpopulationerna dör ut, dvs T i = max{t 11,..., T 1i }, (1) där T 1j, 1 j i är extinktionstiden för den j:te delpopulationen, och alla T 1j har samma fördelning som T 1, eftersom de var och en har en stamfader. 4

Uppgift 6 (Förväntad tid till extinktion som funktion av X (0).) Gör samma sak som i föregående uppgift, men håll m fixt och variera X (0). 5.2 Teoretisk beräkning Vi inför tillstånden E i = i individer i en generation, i = 0, 1, 2,... och delar upp tillståndsrummet enligt G 1 G 2 = {E 1, E 2,...} {E 0 }. Nu är extinktionstiden T i den tid det tar att nå G 2 givet att vi startar i E i G 1. Observera att G 2 innehåller ett enda absorberande tillstånd E 0, som vi aldrig lämnar när vi väl kommit dit. Avsnitt 4.5 i TK behandlar just övergångstider mellan grupper av tillstånd. Eftersom en förgreningsprocess med Poissonfördelad avkomma har oändligt tillståndsrum måste vi först approximera P = (p ij ) i,j=0 med en ändlig matris P N = (p ij ) N i,j=0, som alltså innehåller alla övergångssannolikheter mellan E i och E j då 0 i, j N. Sedan gör vi blockuppdelningen ( ) P0 S P N =, R Q där P 0 = (p 00 ) = (1), Q = (p ij ) N i,j=1 innehåller övergångssannolikheterna mellan tillstånden i {E 1,..., E N } 4, R alla övergångssannolikheter från {E 1,..., E N } till G 2 osv. 5 Nu ger Sats 4.9 i TK, avsnitt 4.5, att E(T i ) i:te radsumman i (I Q) 1, där I är enhetsmatrisen av storlek N. Approximationstecknet i sista formeln kommer sig av att vi ersatt P med P N. Ju större N, desto bättre approximation (och mer tidskrävande matrisräkningar). Förberedelseuppgift 8 Beräkna för hand E(T 1 ) då Y Po(0.3) och N = 1, 2. (Själva matrisinverteringen kan du exempelvis göra i MATLAB.) N = 1 : P N = Q = (I Q) 1 = E(T 1 ) N = 2 : P N = Q = (I Q) 1 = E(T 1 ) Med hjälp av extid beräknas E(T i ) enligt metoden ovan. Läs hjälptexten till denna funktion noga (se appendix eller använd help extid). Med kommandot >> [ET] = extid([0.6 0.7 0.8 0.9 0.95],[2 4 8 16],50, m ) 4 Eftersom vi trunkerat får vi alltså inte med övergångssannolikheterna mellan alla tillstånd i G 1. 5 Observera att S = (0, 0,..., 0), eftersom E 0 är ett absorberande tillstånd. 5

beräknas exempelvis E(T i ) för alla 20 möjliga kombinationer av m {0.6, 0.7, 0.8, 0.9, 0.95} och X (0) {2, 4, 8, 16}. Vid beräkningarna används trunkering med N = 50 enligt ovan. Sista inparametern m medför att E(T i ) plottas som funktion av m för var och en av de fyra X (0)- värdena. Man får alltså fyra kurvor. Uppgift 7 (Förväntad tid till extinktion som funktion av m.) Beräkna E(T i ) som funktion av m (med fixt X (0)), plotta resultatet och jämför med Uppgift 5. (Det kan vara bra att jämföra för minst två värden på N, så att du ser att approximationen är god.) Om i stället sista inparametern i extid ändras till X0, så plottas E(T i ) som funktion av i = X (0). Det innebär att >> [ET] = extid([0.6 0.7 0.8 0.9 0.95],[2 4 8 16],50, X0 ) ger fem kurvor, svarande mot de fem värdena på m i den första inparametern. Antalet stamfäder, X (0) = i, anges på en logaritmisk skala i plottarna. Skälet till detta är det asymptotiska sambandet E(T i ) B ln(i) (2) där betyder att kvoten mellan höger- och vänsterled går mot 1 då i. Här är B = B(m) en konstant som beror av m. Det betyder att förväntad tid till extinktion för en process som säkert dör ut ökar mycket långsamt om den tillförs fler individer i början, dvs om i = X (0) görs större 6. Uppgift 8 (Förväntad tid till extinktion som funktion av X (0).) Beräkna E(T i ) som funktion av X (0) för några m-värden, plotta resultatet och jämför med Uppgift 6. Välj lämpligen X (0) = 1, 2, 4, 8,..., med en så pass stor övre gräns att sambandet (2) syns. Kontrollera med två olika värden på N, så att du ser att approximationen är god. (Observera att alla värden på X (0) måste vara mindre än N, annars trunkeras starttillståndet E i bort när P N bildas.) 6 Med hjälp av (1) kan vi kan vi ge en motivering till (2). Man kan visa att med en stamfader så har extinktionstidens fördelning i svansarna samma ungefär utseende som en exponentialfördelning: F T1j (x) = 1 exp( x(1 + o(1))/b) då x är stor. Här är B = B(m) en positiv konstant och o(1) 0 då x. Eftersom T i är maximum av i stycken T 1j fås, för varje > 0: P (T i (1 + )B ln(i)) = F T1j ((1 + )B ln(i)) i = ( 1 exp ( (1 + ) ln(i)(1 + o(1))) ) i ( 1 1 i 1+ ) i 1 P (T i (1 )B ln(i)) = F T1j ((1 )B ln(i)) i = ( 1 exp ( (1 ) ln(i)(1 + o(1))) ) i ( 1 1 i 1 ) i 0 då i. Vi har allstå visat P(1 < T i /(B ln(i)) < 1 + ) 1 för varje > 0. Med lite mera jobb kan man även visa (2). 6

Appendix function [X]=branch_geom(p,antal_gen,X0) Funktionen [X]=branch_geom(p,antal_gen,X0) simulerar och plottar antal_gen st generationer av en förgreningsprocess med X0 individer i första generationen och antalet avkommor till varje individ är fördelat som Ge(p). X=[X0]; x=x0; for i=1:antal_gen, x=sum(geornd(p,1,x)); X=[X,x]; stairs([0:antal_gen],x); axis([-1 antal_gen+1-0.5 max(x)+0.5]); function [X]=branch_poisson(m,antal_gen,X0) Funktionen [X]=branch_poisson(m,antal_gen,X0) simulerar och plottar antal_gen st generationer av en förgreningsprocess med X0 individer i första generationen och antalet avkommor till varje individ är fördelat som Po(m) X=[X0]; x=x0; for i=1:antal_gen, x=sum(poissrnd(m,1,x)); X=[X,x]; stairs([0:antal_gen],x); axis([-1 antal_gen+1-0.5 max(x)+0.5]); function [T_medel,T] = sim_extid(antal_iter,m,max_gen,x0) Funktionen [T_medel, T] = sim_extid(antal_iter,m,max_gen,x0) simulerar extinktionstiden för en förgreningsprocess med Po(m)-fördeladat antal avkommor. Övriga parametrar: antal_iter - antal simuleringar T - vektor som innehåller antal_iter exink- tionstider 7

T_medel - medelvärdet av extinktionstiderna i T max_gen - maximalt tillåtet antal generationer i simuleringarna X0 - antal urmödrar (dvs processens startvärde) T = []; maxkoll = 0; i = 0; while (i < antal_iter) & (maxkoll == 0) i = i+1; j = 0; x = X0; while (j < max_gen) & (x > 0) x = sum(poissrnd(m,1,x)); j = j+1; if x == 0 T = [T j]; else maxkoll = 1; disp([ Simuleringen avbruten, ty i en simulering hade inte processen... dött ut efter num2str(max_gen) antal generationer ]); T_medel = mean(t); function [EY] = oevergaangstid(p,i,g_2) Funktionen [EY] = oevergaangstid(p,i,g_2) bestämmer, för en Markovkedja med övergångsmatris P och tillstånd E_1, E_2,..., väntevärdet för övergångstiden från mellan E_i och G_2, där G_2 är en grupp av tillstånd (som inte innehåller E_i). Exempel på anrop: oevergaangstid(p,3,[2 4 6 7]), som ger väntevärdet för övergångstiden från E_3 till {E_2, E_4, E_6, E_7} Beräkna först delmatrisen Q svarande mot alla övergångar i G_1 N = size(p,1); G = 1:N; Vektor med hela tillståndsrummet G_1 = setdiff(g,g_2); Definiera indexen till tillst i G_1 N_1 = length(g_1); Q = P(G_1,G_1); Beräknar EY som radsumman för raden svarande mot E_i i (I-Q)^(-1) I = eye(n_1); v = zeros(n_1,1); 8

i_q = find(g_1==i*ones(1,n_1)); v(i_q,1) = 1; EY = sum((i-q) \v); Hittar index för den rad i Q som svarar mot E_i v blir en enhetsvektor med etta i position i_q function [ET] = extid(m_vec,x0_vec,n,plottyp) Funktionen [ET] = extid(m,x0_vec,n,plottyp) beräknar väntevärdet för tiden till extinktion hos en förgreningsprocess med Poissonfördelad avkomma Po(m), för varierande värden på m och antalet urmödrar X(0). Inparametrar: m_vec - vektor som anger vilka väntevärden hos Poissonfördel- ningen som ska beaktas X0_vec - vektor som anger vilka värden X(0) ska ha N - N+1 är ordningen på den trunkerade övergångsmatrisen plottyp - m : plotta väntev. till ext. mot värdena i m_vec X0 : plotta väntev. till ext. mot värdena i X0_vec Utparameter: ET - matris där position (i,j) anger väntevärdet för extinktionstiden om avkomman har fördelning Po(m_vec(j)) och antlet urmödrar är i Låt T_i vara tiden till extinktion givet X(0) = i, dvs i st urmödrar. Om plottyp = X0 ritas E(T_i) upp som funktion av värdena i X0_vec, en kurva för vart och ett av m-värdena i m_vec. X0-skalan är logaritmerad i plotten, pga det asymptotiska sambandet E(T_i) approx B*ln(i) som gäller med god noggrannhet då i är stor. Om plottyp = m ritas E(T_i) upp som funktion av värdena i m_vec, en kurva för vart och ett av X(0)- värdena i X0_vec. Se vidare funktionerna oevergaangstid och P_poisson hur själva beräkningen av E(T_i) görs for j = 1:length(m_vec); P = P_poisson(m_vec(j),N); for i = 1:length(X0_vec); ET(i,j) = oevergaangstid(p,x0_vec(i)+1,[1]); end if plottyp == m for i = 1:length(X0_vec) plot(m_vec,et(i,:)); 9

hold on; hold off; elseif plottyp == X0 for j = 1:length(m_vec) semilogx(x0_vec,et(:,j)); hold on; hold off; 10