SO-projekt MAT/IT. Eksponentielle Modeller - Gærceller

Relaterede dokumenter
Eksponentielle modeller

Eksponentielle modeller

Matematik A og Informationsteknologi B

Vi har valgt at analysere vores gruppe ud fra belbins 9 grupperoller, vi har følgende roller

Eksponentielle modeller

Tværfagligt Projekt. Matematik og IT

Matematik A / IT B Roskilde Tekniske Gymnasium. SO Projekt Mat / IT Tema: Gærcellevækst med Eksponentielle Modeller & IT Produkter

Brugervejledning til Graph

Graph brugermanual til matematik C

Mathias Turac

Kapitel 3 Lineære sammenhænge

Michael Jokil

Bedste rette linje ved mindste kvadraters metode

Eksponentielle sammenhænge

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje.

Kapitel 7 Matematiske vækstmodeller

Computerundervisning

Eksponentielle funktioner for C-niveau i hf

2 Erik Vestergaard

HTX, RTG. Rumlige Figurer. Matematik og programmering

Læringsprogram. Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4

Regneark Excel fortsat

Computerundervisning

Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 8. Juni 2015

matx.dk Enkle modeller

Dernæst vil der komme et vindue frem, hvor man kan ændre på x- og y-aksen samt andre indstillinger så som farve og skrift.

Funktioner. 2. del Karsten Juul

Funktioner - supplerende eksempler

Om at finde bedste rette linie med Excel

Sammenhæng mellem variable

Tak for kaffe! Tak for kaffe! Side 1 af 16

Visualiseringsprogram

H Å N D B O G M A T E M A T I K 2. U D G A V E

Mini SRP. Afkøling. Klasse 2.4. Navn: Jacob Pihlkjær Hjortshøj, Jonatan Geysner Hvidberg og Kevin Høst Husted

Undervisningsbeskrivelse

Klasse 1.4 Michael Jokil

For at få tegnet en graf trykkes på knappen for graftegning. Knap for graftegning

FUNKTIONER. Eks. hvis man sætter 3 ind på x s plads bliver værdien 2*3 + 5 = 11. Sætter man 4 ind på x s plads vil værdien blive 2*4 + 5 = 13

Modellering af elektroniske komponenter

Dokumentation af programmering i Python 2.75

APPENDIX A INTRODUKTION TIL DERIVE

Vejledning til WordMat på Mac

Projektopgave Rumlige figurer. Matematik & Programmering Lars Thomsen Klasse 3.4 HTX Roskilde Vejledere: Jørn & Karl 05/

Opgave 1 - Lineær Funktioner. Opgave 2 - Funktioner. Opgave 3 - Tredjegradsligning

Beviserne: Som en det af undervisningsdifferentieringen er a i lineære, eksponentiel og potens funktioner er kun gennemgået for udvalgte elever.

Numerisk differentiation og integration med Python

Kompendium i faget. Matematik. Tømrerafdelingen. 2. Hovedforløb. Y = ax 2 + bx + c. (x,y) Svendborg Erhvervsskole Tømrerafdelingen Niels Mark Aagaard

ØVEHÆFTE FOR MATEMATIK C LINEÆR SAMMENHÆNG

Velkommen til Flemmings store Maplekursus 1. lektion. Skift mellem tekst- og matematikmode

x + 4 = 3x - 2 Redegør for opstilling af formler til løsning af praktiske problemer. Vis, hvordan en formel kan omskrives.

1. Tal. Du skal redegøre for løsningsregler for ligninger. Forklar, hvordan følgende ligning kan løses grafisk: x + 4 = 3x - 2

Pointen med Differentiation

Lektion 7 Funktioner og koordinatsystemer

Fortløbende summer NMCC Danmark Muldbjergskolen 8.P

Undervisningsbeskrivelse

Matematik B. Anders Jørgensen

Matematik B-niveau 31. maj 2016 Delprøve 1

Undervisningsbeskrivelse

Matema10k. Matematik for hhx C-niveau. Arbejdsark til kapitlerne i bogen

Løsningsforslag MatB Jan 2011

Excel tutorial om lineær regression

Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin Institution Uddannelse Fag og niveau Lærer Hold

Pointen med Funktioner

Afstande, skæringer og vinkler i rummet

Emneopgave: Lineær- og kvadratisk programmering:

Arbejdet på kuglens massemidtpunkt, langs x-aksen, er lig med den resulterende kraft gange strækningen:

Løsninger til eksamensopgaver på A-niveau 2019 ( ) ( )

Brugervejledning til Graph (1g, del 1)

Matematik Grundforløbet

Differentialregning. Et oplæg Karsten Juul L P

Afstande, skæringer og vinkler i rummet

f(x)=2x-1 Serie 1

Undervisningsbeskrivelse

Der er facit på side 7 i dokumentet. Til opgaver mærket med # er der vink eller kommentarer på side 6.

Undervisningsbeskrivelse

Start-mat. for stx og hf Karsten Juul

Matematik A-niveau STX 24. maj 2016 Delprøve 2 VUC Vestsjælland Syd.

Oversigt. funktioner og koordinatsystemer

Løsninger til eksamensopgaver på B-niveau 2017

Undervisningsbeskrivelse

[FUNKTIONER] Hvornår kan vi kalde en sammenhæng en funktion, og hvilke egenskaber har disse i givet fald. Vers. 2.0

brikkerne til regning & matematik funktioner preben bernitt

GrundlÄggende variabelsammenhänge

Eksponentielle sammenhænge

5/11/2015. Programmering. Hussein Al-Saidi ROSKILDE TEKNINSK GYMNASIE VEJLEDER: CHRISTOFFER S.

Funktioner. 1. del Karsten Juul

MATEMATIK C. Videooversigt

Matematik A-niveau 22. maj 2015 Delprøve 2. Løst af Anders Jørgensen og Saeid Jafari

Undervisningsbeskrivelse for: hf15b 0813 Matematik C, 2HF

Matematik opgave Projekt afkodning Zehra, Pernille og Remuss

Matematiske modeller Forsøg 1

Daniells element Louise Regitze Skotte Andersen

Undervisningsbeskrivelse

Matematik A, STX. Vejledende eksamensopgaver

Læringsprogram. Numeriske metoder. Matematik A Programmering C Studieområdet. Roskilde Tekniske Gymnasium Klasse 3.4

Transkript:

SO-projekt MAT/IT Eksponentielle Modeller - Gærceller ROSKILDE TEKNISKE SKOLE KLASSE 2.4 9. december 2013 Lavet af: Frederik Bagger og Rune Kofoed-Nissen

Indholdsfortegnelse Forord... 2 Opgaveanalyse... 3 Læsevejledning... 3 Analyse... 4 1 Analyse af datasættet... 5 2 Lineære fase... 5 3 Eksponentielle fase... 7 3.1 Udtrykket... 7 3.2 Fasen... 7 3.3 Analyse og sammenligning af funktionsudtryk... 9 3.4 Udregning af fordoblingskonstant for g(x)... 10 Grafen sammen med datasættet... 11 3 Delkonklusion... 12 3.1 Model og virkelighed... 12 Program udvikling... 13 4 Krav... 13 5 Design... 13 5.1 Menu system... 13 6 Implementering og tests... 14 6.1 1. Fase Visual Graph... 14 6.2 2. Fase Config fil... 15 6.3 3. Fase Brugerflade... 16 6.4 4. Fase Export til enkelt program fil... 16 7 Delkonklusion / Opsummering... 16 Krav... 16 Konklusion... 18 Vurdering af projektarbejde... 18 9 Bilag... 19 9.1 Program gennemgang... 19 1

Forord Denne rapport indeholder vores refleksioner og behandling af et datasæt, som viser væksten af gærceller. Under arbejdet med dette projekt, har vi udviklet et IT-produkt, som giver vores bruger mulighed for selv at kunne analysere dette datasæt eller et andet, som brugeren selv har indsat. Projektarbejde er udført i november-december måned. 2

SO-projekt MAT/IT Eksponentielle Modeller - Gærceller Opgaveanalyse Ifølge opgaveoplægget til dette projekt skal vi indkredse en eksponentiel fase i et datasæt, behandle datasættet ved at opstille funktionsudtryk, lave vækstkurver, sammenligning af egne modeller og vurdering af modeller. Der er desuden en række krav til det produkt, som der skal fremstilles til understøttelse af rapporten. Dette produkt skal være en IT-løsning med grafisk brugergrænseflade, som kan hjælp brugeren med behandling af et datasæt. IT-produktet, inklusiv dokumentation og valg af licens, skal publiceres på WWW. Udviklingen af IT-produktet skal desuden dokumenteres og medtages i rapporten. Læsevejledning Rapporten indeholder dokumentation af behandlingen af det udleverede datasæt og dokumentation af udviklingen af et IT-produkt. I afsnittet Analyse kan du finde diskussioner og udregninger, der er foretaget i arbejdet med behandlingen af datasættet. Analyseafsnittet er delt op i mindre delafsnit, som er numerisk opdelt, således overskueligheden er på sit maksimum. Efter analyseafsnittet følger dokumentationen af IT-produktet, som er fremstillet i sammenhæng med projektet her (som det fremgår af opgaveoplægget). 3

Analyse og behandling Vi har fået givet et datasæt fra et forsøg med gærceller i flydende næringsstofopløsninger. Ifølge teorien vil der være en fase, hvor at gærcellerne tilnærmelsesvis forøges eksponentielt. Inden denne fase vil der være hvor at gærceller akklimatisere og antallet derfor ikke vokser særligt. Vores hypotese er altså at der er en eksponentiel fase i datasættet, og at der inden denne fase er en tilnærmelsesvis lineær fase, hvis stigning er lav i forhold til den eksponentielle fase. Denne hypotese vil vi be- eller afkræfte i takt med at vi får opsat udtryk og modeller for datasættet. (Datasættet ses herunder) Tid i minutter 0 min (1) 15 20 min (2) 16 40 min (3) 18 60 min (4) 19 80 min (5) 22 100 min (6) 24 140 min (7) 31 160 min (8) 42 180 min (9) 49 200 min (10) 67 220 min (11) 78 240 min (12) 90 260 min (13) 105 280 min (14) 109 300 min (15) 122 320 min (16) 125 Antal gærceller (Tal efter minutter er nummerorden af observationer, vi forklarer hvorfor på næste side) 4

1 Analyse af datasættet Vi kan se at der er målinger hvert tyvende minut med undtagelse mellem 100 minutter og 140 minutter. Vi går ud fra at der er tale om observationer foretaget hvert tyvende minut og ikke data fra en konstant afmåling, hvor at datasættet giver udtryk for det givne interval. Dette kan også give en forklaring på den manglende observation for 120 minutter. Når vi ser nærmere på datasættet, ser vi at antallet af gærceller ikke har en ens stigning for hver observation. Der er for eksempel kun en stigning på én gærcelle mellem 3. og 4. observation og hele 25 gærceller mellem 8. og 9 observation. Det vil derfor være uhensigtsmæssigt at lave en tendenslinje på baggrund af en eksponentiel stigning. FIGUR 1 - DATASÆTTET I ET ALMINDELIG KOORDINATSYSTEM VED HJÆLP AF VPYTHON 2 Lineære fase Vi kan se at der tilnærmelsesvis er tale om en lineær stigning fra 1. observation indtil 6. observation. Denne lineære stigning kan udtrykkes ved Hvor at a er hældningskoefficienten og b er skæringen med y-aksen. Når vi ser på datasættet indsat i et almindeligt koordinatsystem, hvor at x-aksen er Tid og y-aksen er Antal gærceller, kan vi se at det passer overens. Som det ses på datasættet, er der tale om en stigning, men dog er den minimal. Vi går derfor ud fra at det er denne fase, hvor at gærcellerne akklimatisere og ikke vokser særligt, som det er beskrevet i teorien. Vi kan nu finde frem til en funktionsforskrift ved at finde hældningskoefficienten a. Vi har gjort dette for hvert punkt fra 1. observation indtil 6. observation og derefter taget gennemsnittet af hældningskoefficienterne. Vi får gennemsnittet til at være 5

Vi har nu den gennemsnitlige hældningskoefficient, men vi kan endnu ikke opstille en model, før vi kender skæringen med x-aksen. Vi kunne godt gå ud fra at den først observation på 0. minut er skæringen med x-aksen, men vi ønsker at finde en mere præcis skæring. Det gør vi ved at bruge ligningen for en ret linje for alle punkterne med den allerede udregnede hældningskoefficient. Vi gør det ved alle vores punkter i. Derefter udtager vi b-værdierne (såfremt de følger, ellers omskriver vi) og tager gennemsnittet. Vi får Vi kan nu opsætte et udtryk for den lineære fase, definere definitionsmængden og derefter indtegne det ind i vores koordinatsystem. Definitionsmængden er givet for det interval, som vi har valgt til vores lineære fase. FIGUR 2 LINEÆRE FASE Når man sammenligner grafen for den lineære fase f ( ) og punkterne fra datasættet (se figur 2), kan vi se at grafen passer udmærket. Afvigelse mellem punkterne og grafen er derfor minimal. Vi har nu vist, at der findes en tilnærmelsesvis lineær fase i vores datasæt, hvis stigning ikke er særlig høj i forhold til senere observationer i samme datasættet. 6

3 Eksponentielle fase Teorien siger at der vil være en eksponentiel fase i væksten af gærceller. Dog kan vi ikke gå ud fra at den eksponentielle fase ligger i den tidsramme, som det udleverede datasæt dækker over. Derfor undersøger vi først om den eksponentielle fase er inden for tidsrammen 3.1 Udtrykket Vi vil nu vise hvordan at vi er nået frem til hvor den eksponentielle fase ligger. Denne fase kan udtrykkes med dette udtryk: Hvor at = fremskrivningsfaktoren = begyndelsesværdien (se boksen til højre) Dette udtryk bruges til at beskrive eksponentielle udviklinger, som oftest foregår over tid, for eksempel renter eller, som vi arbejder med her, gærcellevækst i næringsstofopløsninger. 3.2 Fasen For at finde frem til den eksponentielle fase, har vi fundet fremskrivningsfaktorerne mellem alle punkterne i datasættet. Det har vi gjort således: Dette udtryk bruges til at beregne fremskrivningsfaktoren a ud fra to vilkårlige punkter i en eksponentiel udvikling. En fremskrivningsfaktor er det tal, som har en variabel potens. Fremskrivningsfaktoren bestemmer om grafen for funktionen er faldende, stigende, hvor hurtigt den stiger eller hvor hurtigt den falder. Billedet til højre viser de fremskrivningsfaktorer, som vores program har fundet frem til. Vi vil ikke komme ind på selve kildekoden af programmet her. Det gennemgår vi i senere afsnit. FIGUR 3 - FREMSKRIVNINGSFAKTORER Man kan sagtens finde et gennemsnit af alle fremskrivningsfaktorerne og lave en eksponentiel tendenslinje, men da vi ved at der kun er tale om en fase der er eksponentiel, har vi valgt ikke at gøre dette. Vi ser at der er 5 fremskrivningsfaktorer, 6, 8,10,11 og 12, som ligger tæt på hinanden. Den niende og den syvende fremskrivningsfaktor passer ikke ind i mønstret, dem ser vi bort fra, eftersom at de kan skyldes en forkert afmåling eller andre usikkerheder i forsøget. Vi starter med at lave to nye fremskrivningsfaktorer mellem observation 6 og 8 og mellem observation 8 og 10. 7

Vi får: Vi finder nu gennemsnittet af de to ovenstående fremskrivningsfaktorer og de tre yderligere fremskrivningsfaktorer. Det gør vi med nedenstående udtryk. Hvor at = gennemsnits fremskrivningsfaktor = antallet af emner = fremskrivningsfaktor Vi indsætter og udregner: Det er så vores fremskrivningsfaktor, som vi kan bruge til at lave et udtryk for den eksponentielle fase. Vi skal nu finde b, hvilket er skæringen på y-aksen. Til det kan vi sætte et punkt ind i vores nuværende funktionsudtryk: Alt vi skal gøre nu, er at indsætte alle punkterne (undtagen dem vi ser bort fra) og tage gennemsnittet af dem. Derefter vil vi have en b-værdi, som vi kan indsætte i vores funktionsudtryk. Fra opgaveoplægget fremgår det at det er den eksponentielle fase, som skal være i fokus. Derfor flytter vi y-aksen hen til det første punkt i datasættet, som vi har lagt vores eksponentielle fase i. Punktet (100,0) er derfor origo nu. Da b værdien kan variere afhængig af hvilket punkt man vælger, har vi valgt at sætte dem alle ind og tage gennemsnittet. Vi ser igen bort fra de to observationer, 7 og 9. VI kan nu indsætte vores b-værdi i vores funktionsudtryk og opskrive definitionsmængden. Vi kan nu indsætte det i et koordinatsystem. 8

FIGUR 4 - GRAFEN FOR DEN EKSPONENTIELLE FASE G(X), GULE PUNKTER ER SET BORT FRA Vi kan se at grafen passer fint ind over punkterne, men vi vil gerne sammenligne grafen med en tendenslinje udregnet ved hjælp af en anden metode. 3.3 Analyse og sammenligning af funktionsudtryk Vi prøver nu at sammenligne vores graf med en tendenslinje fundet med programmet Graph, som bruger mindste kvadraters metode til udregning af tendenslinjer. Funkionsudtrykket for tendenslinjen ser ud som følgende: Begge grafer er vist indenfor definitionsmængden. FIGUR 5 - UDREGNET GRAF (G(X)): RRØN TENDENSLINJE (T(X)): RØD Tendenslinjen skærer y-aksen lavere og stiger mere end vores egen graf. Udover at dette er tydeligt på figur 5, kan vi også se det på funktionsudtrykket, fordi at begyndelsesværdien er lavere og fremskrivningsfaktoren er højere end vores eget udtryk. Udover dette ligner graferne meget 9

hinanden, og vi kan derfor ikke siger mere ud fra deres grafiske visualisering. Vi opstiller derfor et datasæt for dem begge og udregner den procentuelle afvigelse for hvert punkt. x-værdierne forbliver den samme. Procentuel afvigelse g(x) Procentuel afvigelse t(x) x-værdi Oprindelig y-værdi g(x) Tendens Afvigelse i procent x-værdi Oprindelig y-værdi t(x) Tendens Afvigelse i procent 0 24 26,2417 9,3 % 60 42 44,1804 5,2 % 100 67 62,5252 6,7 % 120 78 74,382 4,6 % 140 90 88,4872 1,7 % 160 105 105,2672 0,3 % Gennemsnitlig afvigelse: 4,6 % 0 24 24,4324 1,8 % 60 42 42,9598 2,3 % 100 67 62,5835 6,6 % 120 78 75,5369 3,2 % 140 90 91,1713 1,3 % 160 105 110,0416 4,8 % Gennemsnitlig afvigelse: 3,3 % Læg mærke til at observation 7 og 9 IKKE er medtaget. Dette skyldes at vu så bort fra dem, da vi udregnede fremskrivningsfaktoren for g(x). Vi ser derfor også bort fra disse ved udregningen af afvigelsen for t(x). Vi kan se at den gennemsnitlige afgivelse er lavest med Graphs tendenslinje t(x). Vores egen graf har et generelt lavt gennemsnit, men den højeste afvigelse er større end den største afvigelse for t(x). Dette kan skyldes de forskellige metoder, der er taget i brug. Vores funktionsudtryk, g(x), er baseret på gennemsnitsberegninger, mens tendenslinjen fra Graph er udregnet ved hjælp af mindste kvadraters metode. Vi kan så på baggrund af vores analyse af de to udtryk, konkludere at vores eget funktionsudtryk for den eksponentielle fase ligger tilfredsstillende tæt på punkterne fra datasættet med en gennemsnitlig procentuel afvigelse på 4,3 procent. Denne procentuelle afvigelse ville dog have været mindre, hvis vi havde taget mindste kvadraters metode i brug, men da vi ikke har noget kendskab til denne metode, er vi tilfredse med det opnående funktionsudtryk g(x). 3.4 Udregning af fordoblingskonstant for g(x) Vi vil nu finde en fordoblingskonstant. Det gør vi for at finde ud af hvor mange minutter der går før at antallet af gærceller vil fordobles i den eksponentielle fase. Som bekendt ser formlen for fordoblingskonstanten T 2 sådan ud: Vi udregner og får 10

Der går altså 79,8354 minutter indtil at antallet af gærceller er fordoblet. Vi tjekker resultatet ved at sætte og løse ligningen. Resultatet skal gerne være det dobbelte af begyndelsesværdien, altså 52,4834, eftersom at. Vi tjekker efter med Graph for at se om vores resultat er korrekt (se billedet til højre). Vi ser at vores resultat stemmer overens med Graph. Grafen sammen med datasættet Vi kan nu tegne graferne og vise dem sammen med resten af datasættet. Den lineære fase kan indsættes, som den er, da det først punkt ligger i. Dog skal vi finde en ny begyndelsesværdi for g(x) eftersom at vi flyttede y-aksen under beregningerne. Vi finder en ny begyndelsesværdi ved at isolere b i funktionsudtrykket og indsætte koordinaterne for det første punkt på grafen, g(100). Vi indsætter den nye begyndelsesværdi i funktionsudtrykket for g(x) og tegner begge grafer. FIGUR 6 - F(X) OG G(X) 11

3 Delkonklusion Teorien lød på at væksten af gærceller i flydende næringsstofopløsninger vil stige eksponentielt i en fase, og at der inden denne fase vil være en periode hvor at gærcellerne næsten ikke vokser (lineær fase). I afsnit 2 fandt vi frem til en fase, som udviklede sig lineært voksende, men i en lav hastighed (forøgelse per tid) i forhold til senere tidspunkter i datasættet. Denne fase ligger i og kan udtrykkes med I afsnit 2 fandt vi frem til en fase, som udviklede sig eksponentielt i forhold til resten af datasættet. Denne fase ligger i og kan udtrykkes med Vi er altså nået frem til at teorien stemmer overens og at den eksponentielle fase ligger inden for det tidsrum, som det udleverede datasæt dækker over. Derfor kan vi bekræfte at der findes en eksponentiel fase i cellernes udvikling. 3.1 Model og virkelighed Af vores opsatte modeller fremgår det, at der er en eksponentiel fase i det udleverede datasæt, men det kan stå til diskussion hvorvidt de er præcise eller ej i forhold til virkeligheden. Muligheden for at forsøgsresultaterne, og dermed datasættet, er ukorrekte står altid åben, men eftersom at dette var en hypotese, som vi ikke kunne undersøge, blev vi nød til at gå ud fra at datasættet var en refleksion af virkeligheden. Da dette var vores forudsætning, var sammenligningen med det oprindelige datasæt og vores egen model(afsnit 3.3) vores eneste reelle mulighed for en sammenligning med virkeligheden. At komme videre derfra ville have krævet en undersøgelse af forsøgsopstillingen for forsøget og de forskellige usikkerheder og mulige fejlkilder, som kan have forværret forsøgsresultaterne. Vi kan derfor kun gå ud fra at vores model er så tæt på virkeligheden som muligt. 12

Program udvikling 4 Krav - Programmet skal indeholde svar på visse projektkrav og mange af disse svar skal i realtime udregnes når programmet bruges. - Programmet skal indeholde en venlig brugerflade. - Programmet skal indeholde en indstilling menu hvor visse dele af programmet kan ændres på direkte. - Programmet skal kunne køres af en bruger uden brug for installation af vores valgte værktøjer. 5 Design Til udvikling af programmet vil vi bruge Python 1 med modulerne Visual.graph 2 (en del af visual som kan vise grafer og punkter i et 2D koordinatsystem) til visning af grafen og EasyGUI 3 til menu brugerfladen. Vi vil lave en fuldt funktionel brugerflade. Til dette har vi lavet et menu system. 5.1 Menu system Legend: Blå: Menu Orange: Start Rød: Tilbage i systemet Lilla: Indstillings input Main Menu Kør Indstillinger Afslut Tilbage Graftype Grafisk Datasæt Tilbage Baggrund Forgrund x-akse y-akse Kør knappen tager dig til grafen. I graftype kan man skifte mellem standard, enkelt- og dobbeltlogaritmisk graf. I datasæt kan man ændre, tilføje og fjerne punkter. I de grafiske indstillinger kan man ændre teksten ved x- og y-aksen, baggrunds farve og forgrunds farve. Alle menuer lader brugeren gå tilbage i systemet. Vores menu system er baseret på hvordan det er gjort i moderne videospil. Med en knap der tager dig til en menu med indstillinger der er opdelt alt efter hvad de ændre. 1 http://www.python.org/ - Python 2 http://vpython.org/ - Visual 3 http://easygui.sourceforge.net/ - EasyGUI 13

6 Implementering og tests 6.1 1. Fase Visual Graph Implementering Det første vi skulle finde ud af, var hvordan vi skulle bruge datasættene i koden. Til dette satte vi det ind som en liste. Så når vi skal finde et tal fra dataerne ville vi bruge Data[i][j], hvor i er punkt nummer og j er x eller y koordinaten. På Visuals hjemmeside er der også en side for Visual.Graph 4. Via det har vi fundet frem til at slå punkterne ind i koordinatsystemet. graf1=gcurve(color=color.red) for j in range(len(data)): gdots(pos=(data[j][0],data[j][1]), Test Ud af dette fik vi følgende: 4 http://vpython.org/contents/docs/graph.html - VPython 14

6.2 2. Fase Config fil Implementering På dette tidspunkt fandt vi ud af at der var en masse indstillinger til grafens udseende. Vi kiggede derfor på hvordan videospil håndterede permanente ændringer i indstillinger. Hvilket nemlig er via en config fil. Altså en fil som indeholder alle indstillinger som kan ændres i spillet. Så vil resten af programmet tage informationer fra denne config fil når den skal bruge noget fra den. Så vi lavede en config fil som indeholdte dataerne så vi ikke behøvede at skrive dem ind i alle vores scripts, men de bare kan tage dem fra et fælles sted og grafens grafik indstillinger. Vi fandt så en metode på nettet som kunne erstatte enkelte linjer i en anden fil. Vi genskabte den så, så den passede til vores behov. def configurer(line_num, text): lines = open('config.py', 'r').readlines() lines[line_num] = text out = open('config.py', 'w') Data=[(0,15), (20,16), (40,18), (60,19), (80,22), (100,24), (140,31), (160,42), (180,49), (200,67), (220,78), (240,90), (260,105), (280,109), (300,122), (320,125),] out.writelines(lines) out.close() SCRIPTET TIL ÆNDRING AF LINJER I CONFIG FILEN. NÅR MAN SÅ VILLE ÆNDR E EN LINJE SKAL MAN BARE SKRIVE: CONFIGURER(LINE_NUM,TEXT) HVOR LINE_NUM ER LINJENUMMERET MAN VIL ÆNDRE OG TEXT ER DET MAN VIL HAVE TIL AT STÅ DER. Test Scriptet virker som det skal. Det eneste der kan være lidt irriterende er at hele linjen erstattes, og ikke bare en sætning i den. Så man skal også sørger for at scriptet genskriver nogle nødvendige ord og tegn. akser=gdisplay( logy=false, logx=false, ytitle="celler", xtitle="tid", title='cellevækst', background=color.black, foreground=color.white OPSTÆTNING AF INDEHOLDET AF CONFIG FILEN. HVER INDSTILLING ER LAGT PÅ HVER SIN LINJE, SÅ DEN ENKELTE KAN ÆNDRES. 15

6.3 3. Fase Brugerflade Implementering Vi kiggede på forskellige brugerflade moduler til Python. Vi endte med at vælge EasyGUI 5 på grund af dens simplicitet. På EasyGUIs hjemmesider fandt vi guider til at lave simple vinduer med knapper, hvor efter hvilken knap man valgte, ville den udfører den ønskede handling. msgbox( test ) Test Vi stødte ind i nogle problemer med vinduer som modtager en brugerskrevet input. En fejl i selve EasyGUI modulet gav en fejl. Efter mange test og indsnævring fandt vi ud af at fejlen opstår hvis en fil med EasyGUI script har forbindelse med en hvilken som helst anden fil som importere modulet Visual.graph. Dette gjorde at vi blev nød til at fjerne feature hvor der i skrive feltet allerede stod den nuværende indstilling. Plus at vi blev nød til at lave en one-way forbindelse til de andre filer som skulle importere Visual.graph fra vores brugerflade fil. I denne fase stødte vi også på mange andre mindre fejl som dog blev ordnet uden nogen brug for stor omskrivning. 6.4 4. Fase Export til enkelt program fil Til dette fandt vi modulet py2exe 6. Vi kom dog meget hurtigt ind i en memory leak fejlmeddelelse. Efter mange test og research fandt vi desværre ud af at det var en fejl i Visual som producerede fejlen. Vi konkluderede at vi ikke ville kunne udføre dette ønske at exportere programmet til en enkelt fil som alle ville kunne køre. 7 Delkonklusion / Opsummering Programmet endte bedre end vi havde forventet. Dog finder vi det ærgerligt at vi ikke kunne eksportere programmet til en enkelt fil. Grundet dette kan vi ikke forvente at en bruger vil kunne køre programmet, da de først skal igennem en langvarig proces i at hente og installere Python og de påkrævede moduler. Derfor har vi lavet en introduktion med billeder, som kan findes i bilag (afsnit 9.1). 7.1 Krav - Programmet skal indeholde svar på visse projektkrav og mange af disse svar skal i realtime udregnes når programmet bruges. 5 http://easygui.sourceforge.net/ - EasyGUI 6 http://www.py2exe.org/ - Py2exe 16

Dette er nogenlunde blevet lavet. Dog er nogle af udregningerne skrevet ind i en anden python fil som ikke åbnes i forbindelse med programmet. - Programmet skal indeholde en venlig brugerflade. Dette krav er fuldent. - Programmet skal indeholde en indstilling menu hvor visse dele af programmet kan ændres på direkte. Denne del er næsten fuldent, da vi aldrig fandt en metode hvori man kunne ændre i datasættet i programmet. - Programmet skal kunne køres af en bruger uden brug for installation af vores valgte værktøjer. Dette krav er ikke fuldent, men heller ikke muligt med de nuværende værktøjer vi bruger. 17

Konklusion Vi fundet frem til en eksponentiel fase, som fremgår af det udleverede datasæt, og har bekræftet hypotesen. Vi har dokumenteret vores behandling af datasættet ved hjælp af relevant teori og de brugte formler. Derudover at har vi udviklet et IT-produkt, som understøtter vores projekt. Programmet har til formål at give brugeren mulighed for at ændre på nogle generelle indstillinger med hensyn til den grafiske visning af den graf, som vi har fundet frem til under vores behandling af det udleverede datasæt. Vurdering Arbejdet med dette projekt blev udført i 2-mandsgrupper, hvilket vi begge mener at have fungeret fint. Der har været en klar arbejdsopdeling gennem hele projektet, dog med et par hængepartier omkring planlægning af opgaver. Det første vi gik i gang med var programmeringsopgaverne, hvor at vi i stedet burde have smidt de første elevtimer hen mod matematik delafleveringen. Det resulterede i en sen igangsættelse af den matematiske analyse og behandling af datasættet og dermed satte det en del stress på delafleveringen. Efter den delaflevering var afleveret, har vi dog arbejdet på højtryk for at få det bedste resultat ud af vores arbejde, og vi er derfor begge tilfredse med udkommet af projektet, trods den dårlige planlægning. Mulige forbedringer En god tidsplan, som var blevet fulgt til ende, ville have kunnet forbedre projektarbejdet markant. Oveni tidsplanen ville en klar arbejdsdeling omkring nogle delopgaver, have givet en forbedring. Dermed ikke de opgaver, som det generelle fokus var på, men derimod de mindre opgaver, som udregning af fordoblingskonstant og så videre. Altså de opgaver, som vi begge har forstand på. 18

9 Bilag 9.1 Program gennemgang Når programmet først er startet op vil man se hovedmenuen: Ved at klikke indstillinger kommer man ind på denne menu: 19

Graftype: Grafik: Input skærm for alle grafik indstillinger: Datasæt indstillinger blev dog aldrig implementeret 20

Efter man har klikket kør i hovedmenuen, vil menu vinduet lukke ned og graf vinduet dukke op: 21