Diskret stokasticitet Projekt 2.3, Talltita Kapitel 2 Diskret stokasticitet Projekt 2.3, Talltita Mooney and Swift "A Course in Mathematical Modeling"
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 Uppgift 2.3, Talltita Projektet handlar om att konstruera en stokastisk modell för en population med talltita (Black-capped chickadee) i Connecticut. NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 Data har samlats in under flera år och till hjälp för uppgiften finns följande tabell. NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 Uppgift 1 Beräkna medelvärde och standardavvikelse för både ‘Recruitment’ och ‘Survival Rate’ (från tabellen). Medelvärde: xm= (Σx)/n Standardavvikelse: s = √s2 Varians: s2 = Σ((x-xm)2/(n-1)) NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 I Excel beräknas enkelt medelvärdena, och för standard-avvikelse finns en färdig funktion: =STDEV(…). I parentesen skrivs de celler in som innehåller alla x som ska ingå i beräkningen av standardavvikelsen. NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 Medelvärde och standardavvikelse kan också räknas ut med hjälp av MatLab: Skriv in alla värden för ‘Recruitment’ och ‘Death Rate’ som två vektorer (x). Med kommandot mean(x) räknas medelvärdet ut. Med kommandot std(x) beräknas standardavvikelsen. NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 Utdrag från MatLab: >> rm=[-47.8 70.3 100.6 35.3 62 89.3 34.3 57.8 13 112.8 239.4 -9.3 61.7 99.6 57.9 49.2 48.9 61.1 73.4 43.6 87.7 49.2 72.1]'; mean(rm) std(rm) death=[.1 .36 .15 .43 .42 .36 .41 .49 .31 .51 .39 .46 .5 .57 .25 .46 .5 .5 .3 .46 .52 .37 .45 .52]'; mean(death) std(death) ans = 63.5696 ans = 52.4401 ans = 0.4079 ans = 0.1177 Medel och standardavvikelse för ‘Recruitment’ Medel och standardavvikelse för ‘Death Rate’ NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 Uppgift 2 Använd medelvärdena för ‘Recruitment’ och ‘Death rates’ (1 minus ‘Survival Rates’) till att konstruera en deterministisk modell. Lös ekvationen analytiskt och rita in resultatet i ett digram för åren 1959-1982. Jämför med observerade data. NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 x(n) = x(n-1) + födda + immigranter – döda födda + immigranter = ‘Recruitment’ = b döda = dx(n-1) d = ‘Death rate’ = 1-’Survival Rate’ x(n) = x(n-1)+b-dx(n-1) x(n) = x(n-1)+63,57-0,408x(n-1) Medelvärdena i Excel från uppgift 1: NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 Deterministisk modell jämfört med observerade data: Modell: x(n) = x(n-1)+63,57-0,408x(n-1) NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 Uppgift 3 Konstruera en modell med demografisk stokasticitet. Antag att ‘Recruitment’ och ‘Death rates’ är normal-fördelade med medelvärde och standardavvikelse ungefär som i uppgift 1. Kör 50 simuleringar för åren 1959 till 1982. Visa resultatet i ‘multiple line graph’ och ‘side-by-side box plot’. Jämför resultatet med observerade data. Jämför resultatet från den stokastiska modellen med den deterministiska. NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 Utgå från modellen i uppgift 2: x(n) = x(n-1)+b-dx(n-1) Med hjälp av MatLab beräknas b och d (uppgift 2): rm=[-47.8 70.3 100.6 35.3 62 89.3 34.3 57.8 13 112.8 239.4 -9.3 61.7 99.6 57.9 49.2 48.9 61.1 73.4 43.6 87.7 49.2 72.1]'; mean(rm) std(rm) death=[.1 .36 .15 .43 .42 .36 .41 .49 .31 .51 .39 .46 .5 .57 .25 .46 .5 .5 .3 .46 .52 .37 .45 .52]'; mean(death) std(death) NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi x(n) = x(n-1)+b-dx(n-1) 2003-09-10 För varje tidssteg ska MatLab räkna ut antalet (x(n)), men använda slumpade b- och d-värden varje gång. Kommandot för slumpade tal från en normalfördelning är: randn. Denna normalfördelning måste justeras till medelvärdet och standardavvikelsen för b och d: b=std(för b)*randn+mean(för b) d=std(för d)*randn+mean(för d) NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi x(n) = x(n-1)+b-dx(n-1) 2003-09-10 För varje tidssteg ska MatLab räkna ut antalet (x(n)), för sammanlagt 24 tidssteg (inklusive x(0) ). Resultatet blir en vektor, N, med 24 rader: x=273.8; for tid=1:24 N(tid,1)=x; b=std(rm)*randn+mean(rm); d=std(death)*randn+mean(death); x=x+b-d*x; end Vektorerna ‘rm’ och ‘death’ är sparade från uppgift 2. NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi x(n) = x(n-1)+b-dx(n-1) 2003-09-10 Alltihop ska dessutom göras om 50 gånger, och resultatet ska bli en matris, N, med 24 rader och 50 kolumner: for sum=1:50 x=273.8; for tid=1:24 N(tid,sum)=x; b=std(rm)*randn+mean(rm); d=std(death)*randn+mean(death); x=x+b-d*x; if x<0; x=0; end end end För att inte få ett negativt antal skrivs denna if-sats in så att populationen stannar på 0 om den skulle rasa i antal. NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi Allt skrivs nu ihop i MatLab och sparas som en m-fil: 2003-09-10 % Talltita: Recruitment=rm, Death rate=death. rm=[-47.8 70.3 100.6 35.3 62 89.3 34.3 57.8 13 112.8 239.4 -9.3 61.7 99.6 57.9 49.2 48.9 61.1 73.4 43.6 87.7 49.2 72.1]'; mean(rm); std(rm); death=[.1 .36 .15 .43 .42 .36 .41 .49 .31 .51 .39 .46 .5 .57 .25 .46 .5 .5 .3 .46 .52 .37 .45 .52]'; mean(death); std(death); for sum=1:50 x=273.8; for tid=1:24 N(tid,sum)=x; b=std(rm)*randn+mean(rm); d=std(death)*randn+mean(death); x=x+b-d*x; if x<0; x=0; end end end NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 ‘plot(N)’ i MatLab ger ett linjediagram över simuleringen: NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 ‘boxplot(N)’ i MatLab ger följande diagram: NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 Den stokastiska modellen visar 50 olika händelseförlopp, där säkert flera stämmer överens med observerade data och några inte gör det. En samlad bild av alla 50 versionerna tyder ändå på en minskning av populationsstorleken jämfört med utgångsläget, vilket stämmer med observerade data. NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 Den stokastiska modellen innehåller mer information än den deterministiska, så som att individantalet med största sannolikhet hamnar någonstans mellan 100 och 200 stycken år 1982, men att det också finns en liten risk att det inte finns några individer alls kvar eller att det finns en liten möjlighet (!?) att populationen uppnår 300 individer. NBIC24 Matematiska modeller i kemi och biologi
NBIC24 Matematiska modeller i kemi och biologi 2003-09-10 NBIC24 Matematiska modeller i kemi och biologi