Matematik og databehandling 2012 Miniprojekt C
Transcription
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