Kapitel 2
Diskret stokasticitet
Projekt 2.3, Talltita
Mooney and Swift"A Course in Mathematical Modeling"
talltita
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
2
talltita
Uppgift 2.3, Talltita
Projektet handlar om attkonstruera en stokastiskmodell för en populationmed talltita (Black-capped chickadee) iConnecticut.
tatit1
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
3
talltita
Data har samlats in under flera år och till hjälp föruppgiften
finnsföljandetabell.
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
4
Uppgift 1
Beräkna medelvärde och standardavvikelse för bådeRecruitment’ och ‘Survival Rate’ (från tabellen).
talltita
Medelvärde: xm= (Σx)/n
Standardavvikelse: s = √s2Varians: s2 = Σ((x-xm)2/(n-1))
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
5
I Excel beräknasenkelt medelvärdena,och för standard-avvikelse finns enfärdig funktion:=STDEV(…).
I parentesen skrivs deceller in sominnehåller alla x somska ingå i beräkningenav standardavvikelsen.
talltita
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
6
Medelvärde och standardavvikelse kanockså räknas ut med hjälp av MatLab:
Skriv in alla värden för Recruitmentoch Death Rate som två vektorer (x).
Med kommandot mean(x) räknasmedelvärdet ut.
Med kommandot std(x) beräknasstandardavvikelsen.
talltita
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
7
talltita
Utdrag från MatLab:
>> rm=[-47.8 70.3 100.6 35.3 62 89.3 34.3 57.813 112.8 239.4 -9.3 61.7 99.6 57.9 49.2 48.961.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 standardavvikelseför ‘Recruitment’
Medel och standardavvikelseför ‘Death Rate’
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
8
Uppgift 2
talltita
Använd medelvärdena för ‘Recruitment’ och ‘Deathrates’ (1 minus ‘Survival Rates’) till att konstruera endeterministisk modell.
Lös ekvationen analytiskt och rita in resultatet i ettdigram för åren 1959-1982. Jämför med observeradedata.
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
9
talltita
x(n) = x(n-1)+63,57-0,408x(n-1)
Medelvärdena i Excel från uppgift 1:
x(n) = x(n-1) + födda + immigranter – döda
födda + immigranter = ‘Recruitment’ = bdöda = dx(n-1)d = ‘Death rate’ = 1-’Survival Rate
     x(n) = x(n-1)+b-dx(n-1)
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
10
talltita
Modell: x(n) = x(n-1)+63,57-0,408x(n-1)
Deterministisk modell jämfört med observerade data:
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
11
Uppgift 3
talltita
Konstruera en modell med demografisk stokasticitet.Antag att ‘Recruitment’ och ‘Death rates’ är normal-fördelade med medelvärde och standardavvikelseungefär som i uppgift 1.
Kör 50 simuleringar för åren 1959 till 1982. Visaresultatet i multiple line graph’ och side-by-sidebox plot.
Jämför resultatet med observerade data. Jämförresultatet från den stokastiska modellen med dendeterministiska.
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
12
talltita
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)
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
13
För varje tidssteg ska MatLab räkna utantalet (x(n)), men använda slumpade b-och d-värden varje gång.
Kommandot för slumpade tal från ennormalfördelning är: randn. Dennanormalfördelning måste justeras tillmedelvärdet och standardavvikelsen för boch d:
b=std(för b)*randn+mean(för b)
d=std(för d)*randn+mean(för d)
talltita
x(n) = x(n-1)+b-dx(n-1)
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
14
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 uppgift2.
talltita
x(n) = x(n-1)+b-dx(n-1)
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
15
Alltihop ska dessutom göras om 50 gånger, ochresultatet ska bli en matris, N, med 24 rader och 50kolumner:
for sum=1:50x=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;    endendend
talltita
x(n) = x(n-1)+b-dx(n-1)
För att inte fåett negativtantal skrivsdenna if-satsin så attpopulationenstannar på 0om den skullerasa i antal.
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
16
% 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.361.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:50x=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; endendend
talltita
Allt skrivs nu ihop i MatLab och sparas som en m-fil:
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
17
talltita
‘plot(N)’ i MatLab ger ett linjediagram över simuleringen:
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
18
talltita
boxplot(N)’ i MatLab ger följande diagram:
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
19
talltita
Den stokastiska modellen visar 50 olikahändelseförlopp, där säkert flera stämmer överensmed observerade data och några inte gör det.
En samlad bild av alla 50 versionerna tyder ändå på enminskning av populationsstorleken jämfört medutgångsläget, vilket stämmer med observerade data.
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
20
talltita
Den stokastiska modellen innehåller mer information änden deterministiska, så som att individantalet med störstasannolikhet hamnar någonstans mellan 100 och 200stycken år 1982, men att det också finns en liten risk attdet inte finns några individer alls kvar eller att det finnsen liten möjlighet (!?) att populationen uppnår 300individer.
2003-09-10
NBIC24 Matematiska modeller i kemi och biologi
21
tatit1