Matematik og databehandling 2012 Miniprojekt C

16
14
12
10
10
8
6
x5
4
2
0
2
4
6
t
8
10
12
Matematik og databehandling 2012
Miniprojekt C:
Differentialligningsmodeller
onsdag 10/10
Lokaler og vejledning
Følgende lokaler er til rådighed kl. 10–17 for gruppearbejde:
3-11 (A2-70.01), 3-12 (A2-70.02), vandrehallen samt grupperum:
Thorvaldsensvej 40: 16–29 og
Thorvaldsensvej 57, 2. sal: D302, D304, E302, E304, G304, I304, K304, A306, L306.
Der er adgang til vejledning i marmorhallen onsdag 10/10 kl. 11–17 samt fredag 12/10 kl. 13–14.
Aflevering af besvarelsen
Besvarelsen afleveres på papir mandag 22/10 kl. 12.00–12.30
i marmorhallen. Sammen med besvarelsen skal I aflevere to identisk udfyldte eksemplarer af
forsiden, som udleveres sammen med Miniprojektet. I får det ene eksemplar tilbage som kvittering
for at I har afleveret.
Besvarelsens form
Skriv gerne besvarelsen i hånden, da det er besværligt at skrive matematiske symboler i tekstbehandling. Besvarelsen skal bestå af:
• Besvarelsen af de enkelte opgaver. Angiv præcise mellemregninger samt forklaringer på,
hvad I har gjort. Det gælder også de resultater, I har opnået ved brug af R (beregninger,
grafer mm.).
• Vedlæg udskrifter af
– de vigtigste R-kommandoer, I har benyttet,
– relevant output fra R inklusiv de grafer I har tegnet for at løse opgaverne.
Dette kan gøres ved at kopiere grafer og andet output over i Word. Udskrifterne skal
placeres sammen med jeres håndskrevne løsninger af de pågældende delspørgsmål og ikke
som separate bilag. Besvarelsen skal være sammenhængende og skal kunne læses uden at
man skal blade frem og tilbage i den.
Ved bedømmelsen af besvarelsen lægges der vægt på ovenstående.
Eksamenssnyd
Gruppen skal selv løse opgaverne. Samarbejd gerne med andre grupper,
men afskrift er eksamenssnyd. Bemærk at alle gruppens medlemmer skriver under på, at de har
arbejdet med på hele projektet og har forstået og godkendt den samlede rapport.
Godkendelse og evt. genaflevering af besvarelsen
Hver besvarelse bedømmes enten
som “godkendt” eller “ikke godkendt”, og der kræves 75 point ud af 100 for at en besvarelse bliver
godkendt. I får de rettede og kommenterede besvarelser tilbage fra jeres øvelseslærer. Der vil
være mulighed for at genaflevere ikke-godkendte besvarelser. De praktiske detaljer vedrørende
genaflevering vil blive udsendt pr. email.
1
Miniprojekt C
Matematik og databehandling 2012
Dette miniprojekt består af 4 opgaver, der kan løses uafhængigt af hinanden
Opgave 1 (35%)
Stoffet SCIENCE-12 produceres i en vækstbeholder. Lad L = L(t) være den mængde SCIENCE12 (målt i gram), der findes i beholderen til tiden t (målt i dage fra produktionens start).
(a) Beholderen kan maksimalt rumme Lmax gram SCIENCE-12, hvor Lmax er en parameter. Vi
betragter følgende to differentialligningsmodeller for mængden af SCIENCE-12 i beholderen
dL
= 5(Lmax − L)
dt
L
dL
= 5L 1 −
dt
Lmax
(1)
(2)
(i) Vis, at der for begge modeller (1) og (2) gælder, at mængden af SCIENCE-12 i
beholderen vokser med tiden, når mængden er mindre end Lmax .
(ii) Find den fuldstændige løsning til hver af differentialligningerne (1) og (2). (Parameteren
Lmax vil indgå i løsningsudtrykkene.)
Benyt disse fuldstændige løsninger til at vise, at der for hver af modellerne (1) og (2)
gælder L(t) → Lmax når t → ∞.
(iii) Lad Lmax = 80. Find for hver af differentialligningerne (1) og (2) den løsning L = L(t),
som opfylder L(0) = 16.
Tegn vha. R graferne for disse to løsninger L = L(t) for 0 ≤ t ≤ 1 i samme koordinatsystem.
(b) Det antages nu, at beholderen maksimalt kan rumme Lmax = 80 gram SCIENCE-12. Det
antages endvidere, at der hele tiden tappes en vis del af den mængde SCIENCE-12, der er i
beholderen. Idet q > 0 betegner “tappe-parameteren”, leder disse antagelser til differentialligningen
L
dL
= 5L 1 −
− qL.
(3)
dt
80
(i) Lad q = 2. Vis, at differentialligningen (3) kan skrives på formen
L
dL
= 3L 1 −
.
dt
48
(ii) Lad q = 1. Omskriv differentialligningen (3) til en logistisk differentialligning af formen
dL
L
= rL 1 −
dt
K
og bestem værdierne af parametrene r og K.
(c) Der tages nu hensyn til, at produktionen af SCIENCE-12 sker ved medvirken af et katalysatorstof. (Derimod ses der bort fra beholderens størrelse.) Dette leder til differentialligningen
dL
= 0.8 K 2 L0.75 ,
dt
(4)
hvor K = K(t) er mængden af katalysatorstoffet (målt i gram) til tiden t. Til at starte med
er der 5 gram katalysatorstof i beholderen.
(i) Det antages, at katalysatorstoffet nedbrydes med en konstant brøkdel pr. tid, hvilket
leder til differentialligningen
dK
= −βK,
(5)
dt
hvor β > 0 er en parameter. Find den løsning K = K(t) til differentialligningen (5),
som opfylder K(0) = 5. (Parameteren β vil indgå i løsningsudtrykket.)
2
Miniprojekt C
Matematik og databehandling 2012
(ii) Indsæt løsningen K = K(t) fundet i (c)(i) i differentialligningen (4). Bestem derefter
den løsning L = L(t) til differentialligningen (4), som opfylder L(0) = 16. (Parameteren
β vil indgå i løsningsudtrykket.)
(iii) Lad L = L(t) være løsningen fundet i (ii). Tegn vha. R graferne for L = L(t) for
0 ≤ t ≤ 1 for parameterværdierne β = 2, 3 og 4 i samme koordinatsystem.
Bestem grænseværdien limt→∞ L(t) udtrykt ved β.
Det oplyses, at der efter 0.4 dage er dannet 70 gram SCIENCE-12. Bestem β.
[Vink: I får brug for R-funktionen uniroot .]
Opgave 2 (25%)
En sø tilføres i en periode et forurenende stof. Endvidere strømmer der rent vand ind i søen og
forurenet vand ud af søen. Til at starte med oplyses følgende:
• Søens volumen på 3000 m3 ændrer sig ikke i løbet af perioden.
• Til et givet tidspunkt t (målt i måneder) tilføres det forurenende stof med en hastighed på
f (t) gram pr. måned. Her er f (t) en indtil videre ukendt funktion.
• Gennemstrømningen af vand i søen er på 600 m3 pr. måned.
Vi betegner mængden (målt i gram) af det forurenende stof i søen til tiden t med M = M (t).
Oplysningerne ovenfor leder til differentialligningen
600
dM
+
M = f (t).
dt
3000
(6)
(a) Det oplyses, at
f (t) = 0.1 t + 1.5.
Bestem den fuldstændige løsning til differentialligningen (6).
(b) Ved periodens begyndelse er der 40 gram af stoffet i søen. Bestem et udtryk for mængden
M = M (t) af stoffet i søen til tiden t, idet det fortsat antages, at f (t) = 0.1 t + 1.5. Tegn
vha. R grafen for M (t) for 0 ≤ t ≤ 30.
I resten af Opgave 2 antages det, at der (pga. meget nedbør) strømmer mere vand ind i søen end
ud af søen. Mere specifikt oplyses følgende:
• Søens volumen er 3000 m3 ved periodens begyndelse.
• Til et givet tidspunkt t (målt i måneder) tilføres det forurenende stof med en hastighed på
f (t) gram pr. måned. Her er f (t) en indtil videre ukendt funktion.
• Udstrømningen af (forurenet) vand fra søen er på 600 m3 pr. måned.
• Indstrømningen af rent vand til søen er på 750 m3 pr. måned.
Mængden (målt i gram) af det forurenende stof i søen til tiden t betegnes fortsat med M = M (t).
(c) Bestem søens volumen som funktion af tiden t. Lav derefter som i Anvendelseseksempel C.8
et kompartmentdiagram over ændringen i forureningen i søen, og benyt dette til at vise,
at de nævnte antagelser leder til differentialligningen
dM
4
+
M = f (t).
dt
20 + t
(d) Det antages, at
f (t) = 0.18(20 + t).
Bestem den fuldstændige løsning til differentialligningen (7).
3
(7)
Miniprojekt C
Matematik og databehandling 2012
Opgave 3 (10%)
Vi betragter to populationer af hhv. gnuer og løver. Populationernes størrelser til tiden t betegnes hhv. G(t) og L(t). Til beskrivelse af populationernes udvikling har man opstillet følgende
samhørende differentialligninger:

dG
2


 dt = 1.5 G − aG − 0.005 GL
(8)


 dL = −0.6 L + 0.0002 GL,
dt
hvor a > 0 er en parameter.
(a) En ligevægt for de samhørende differentialligninger (8) er en vektor
konstante funktioner G(t) = G∗ og L(t) = L∗ er løsninger til (8).
G∗ L∗ ,
således at de
Bestem udtrykt ved parameteren a samtlige ligevægte for (8).
∗
∗
∗
Afgør for hvilke værdier af a, der findes en ligevægt G
L∗ , som opfylder G > 0 og L > 0.
160
t=0
130
140
150
L
170
180
190
(b) Lad a = 0.0002. For begyndelsesbetingelserne G(0) = 2000 og L(0) = 150 er nedenfor vist et
fasediagram for de samhørende differentialligninger (8), dvs. en graf for gnu- og løvebestanden
af tiden t.
som vektorfunktionen G(t)
L(t)
2000
2500
3000
3500
G
Benyt grafen til at afgøre om gnu- hhv. løvebestanden vokser eller aftager til starttidspunktet
(t = 0).
Benyt derefter de samhørende differentialligninger (8) til at beregne G′ (0) og L′ (0), og benyt
disse værdier til at afgøre om gnu- hhv. løvebestanden vokser eller aftager til starttidspunktet.
4
Miniprojekt C
Matematik og databehandling 2012
Opgave 4 (30%)
[Denne opgave i databehandling berører ikke emner fra matematikken i Modul C.]
Åge plejer at fordrive den mørke tid på året med at spille terningespil, alene eller sammen med
Yrsa. Han kan desværre ikke finde de 5 terninger, som han plejer at bruge. Nu har han imidlertid
installeret programmet R og vil prøve at spille terningespil ved at bruge R.
Åges spil benytter funktionen terning defineret som
terning <- function(n){ floor(runif(n,1,7)) }
Denne funktion gengiver et slag med n terninger, idet runif(n,1,7) giver n tilfældige tal i
intervallet ]1, 7[ og floor afrunder disse til heltal mellem 1 og 6 inkl.
(a) Åges første spil går ud på at kaste 5 terninger og notere hvor mange 6’ere der er. Efter
nogen tids kodning har han konstrueret følgende stumper R-kode:
Kode 1:
antal <- 0
for (k in 1:5) {
if ( terning(5)[k]==6 ) antal <- antal + 1
}
antal
Kode 2:
antal <- 0
slag <- terning(5)
for (k in 1:5) {
if ( slag[k]==6 ) antal <- antal + 1
}
antal
Kode 3:
slag <- terning(5)
antal <- sum(slag==6)
antal
(i) Hvilken af de tre stumper kode giver ikke en korrekt gengivelse af Åges spil? Forklar
hvorfor.
(ii) Lav en funktion hvor_mange, der bestemmer antal 6’ere i et terningkast med 5 terninger.
Funktionen skal have følgende opbygning
hvor_mange <- function(){
# indsæt en korrekt kodestump blandt Kode 1, Kode 2 og Kode 3
}
Når den kaldes, skal antallet af 6’ere udskrives, f.eks.
> hvor_mange()
[1] 2
>
Aflevér en udskrift af funktionen hvor_mange samt resultatet af nogle kørsler.
5
Miniprojekt C
Matematik og databehandling 2012
(iii) Modificér funktionen hvor_mange så den får to parametre:
• side (den side af terningen der ønskes optalt),
• n (antallet af terninger).
Parameteren side skal have standardværdien 6, mens parameteren n skal have standardværdien 5.
F.eks. skal kaldet hvor_mange(3,4) angive hvor mange 3’ere der er i et kast med 4
terninger, mens hvor_mange() (stadigvæk) skal angive antallet af 6’ere i et kast med
5 terninger.
Aflevér en udskrift af funktionen hvor_mange med tilhørende forklaringer samt resultatet af nogle kørsler.
(b) Åges andet spil går ud på følgende: man kaster med 5 terninger indtil summen af øjnene
fra kastet er mindst 25. Når summen af øjnene er mindst 25, skal man vide hvor mange
terningekast der er brugt og hvad hver af de 5 terninger viser.
(i) Lav en R-funktion, stor_sum, der simulerer dette spil og returnerer hvor mange
terningekast der er brugt og hvad hver af de 5 terninger viser.
Man kan lade sig inspirere af nedenstående “pseudo-kode” og “oversætte” de enkelte
linjer til “rigtig” R-kode.
stor_sum <- function() {
# lav et kast med 5 terninger og gem det i variablen slag
# sæt variablen antal_kast til 1
# så længe summen af terningekastet er mindre end 25, gør følgende {
#
sæt variablen slag lig med et nyt kast med 5 terninger
#
tæl variablen antal_kast 1 op
# }
# udskriv variablen antal_kast
# udskriv variablen slag
}
Et muligt output for funktionen kunne være
> stor_sum()
[1] 13
[1] 6 4 5 4 6
Det betyder, at først i sit 13’ende terningekast opnåede Åge en sum på mindst 25, og
at kastet der gav denne sum var 6 4 5 4 6.
Aflevér en udskrift af funktionen med tilhørende forklaringer samt resultatet af nogle
kørsler.
Valgfrit: Funktionen’s output kan gøres pænere ved at bruge den indbyggede R-funktion cat: f.eks. giver
slag <- c(6,4,5,4,6)
antal_kast <- 13
cat("Du slog", slag ,"med sum", sum(slag),"\nDu brugte", antal_kast, "terningekast\n")
følgende output:
Du slog 6 4 5 4 6 med sum 25
Du brugte 13 terningekast
6
Miniprojekt C
Matematik og databehandling 2012
(ii) Modificér funktionen stor_sum, så den nu får en parameter, der angiver den ønskede
mindste sum for slaget. Den modificerede funktion skal se ud som
stor_sum <- function(mindste_sum){
...
}
Funktionen skal altså simulere kast med 5 terninger indtil summen af øjnene er mindst
mindste_sum. Det første kast som giver en sum på mindst mindste_sum og kastets
nummer skal udskrives.
Summen af øjnene på 5 terninger er højst 30. Sørg for at din modificerede udgave af
funktionen stor_sum opfører sig fornuftigt ved f.eks. kaldet stor_sum(31).
Aflevér R-koden med tilhørende forklaringer samt resultatet af nogle kørsler inkl.
stor_sum(31).
(c) Åges tredje spil går ud på at slå efter “Chancen” i Yatzy: Det gælder om at samle flest
mulige point på maksimalt tre kast, hvor det er tilladt at tage terninger fra efter første og
andet kast og dermed kaste med færre terninger i andet og tredje kast.
Åge har valgt en enkel strategi: han tager kun 6’ere fra i første og andet kast og håber så
det bedste i tredje kast. Funktionen chance følger denne strategi i et generelt yatzy-spil
med ntern terninger og maksimalt nslag kast:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
chance <- function(ntern,nslag){
if ( ntern==0 ) 0
else {
slag <- terning(ntern)
print(slag)
if ( nslag==1 ) sum(slag)
else {
antal6 <- sum(slag==6)
6*antal6 + chance(ntern-antal6,nslag-1)
}
}
}
(i) Forklar
Forklar
Forklar
Forklar
i
i
i
i
ord
ord
ord
ord
hvorfor funktionen chance er rekursiv.
hvad der sker i linje 2.
hvad der sker i linje 6.
hvad der sker i linje 8 og 9.
(ii) Åge spiller mod Yrsa, som bruger en anden strategi for chancen: hun tager både 5’ere
og 6’ere fra i alle kast, på nær det sidste. Lav med udgangspunkt i chance en rekursiv
funktion yrsachance der slår efter chancen ifølge Yrsa’s strategi.
Aflevér en udskrift af funktionen yrsachance med tilhørende forklaringer samt resultatet af nogle kørsler.
(iii) Afgør om Yrsa eller Åge har den bedste strategi ved at sammenligne output fra
kørslerne
sum(replicate(1000,chance(5,3)))/1000
sum(replicate(1000,yrsachance(5,3)))/1000
[Vink: Fjern eventuelt linje 5 i chance (og yrsachance) inden kørslerne.]
7