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



Relaterede dokumenter
HTX, RTG. Rumlige Figurer. Matematik og programmering

Fag: Matematik A og Informationsteknologi B

Undervisningsbeskrivelse

1 Indholdsfortegnelse

Eksponentielle modeller

Undervisningsbeskrivelse

Visualiseringsprogram

Hvis man ønsker mere udfordring, kan man springe de første 7 opgaver over. Skitser det omdrejningslegeme, der fremkommer, når grafen for f ( x)

Integralregning Infinitesimalregning

Eksponentielle modeller

Undervisningsbeskrivelse

Michael Jokil

Undervisningsbeskrivelse

Projektopgave 1. Navn: Jonas Pedersen Klasse: 3.4 Skole: Roskilde Tekniske Gymnasium Dato: 5/ Vejleder: Jørn Christian Bendtsen Fag: Matematik

Rumlige figurer. Matematik A og Programmering C - projekt

Undervisningsbeskrivelse

Indhold Carstensen, Frandsen, Studsgaard, MAT B HF, Systime 2006, s , 92.

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Rumlige figurer. SO-projekt Matematik og Programmering klasse 3.4 Vejledere: Karl og Jørn. Af: Asger, Christian og Kalle

Undervisningsbeskrivelse

Mujtaba og Farid Integralregning

Undervisningsbeskrivelse

Eksaminationsgrundlag for selvstuderende

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Studieplan. Stamoplysninger til brug ved prøver til gymnasiale uddannelser. Oversigt over gennemførte undervisningsforløb

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Hvis man ønsker mere udfordring, kan man springe de første 7 opgaver over. Skitser det omdrejningslegeme, der fremkommer, når grafen for f ( x)

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

ROSKILDE TEKNISK GYMNASIUM Matematik og IT projekt i klasse 3.4 af: Casper Lykke Larsen - Lars-Emil Jakobsen - Thomas Denckert Hernes

Undervisningsbeskrivelse

Eksaminationsgrundlag for selvstuderende Skolens eksaminationsgrundlag:

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Eksamensspørgsma l Mat B

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Matematik A og Informationsteknologi B

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Eksamensspørgsmål til matematik B på HF Den juni eller 23 kursister. 1. Polynomier. 2. Polynomier.

Undervisningsbeskrivelse Valghold Matematik A

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Rumfang af væske i beholder

Undervisningsbeskrivelse for Matematik A 2. E 2011/2012

Undervisningsbeskrivelse

Grafregnerkravet på hf matematik tilvalg

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Mundtlige spørgsmål til 2v + 2b. mat B, sommer Nakskov Gymnasium & Hf.

Matematik A. Studentereksamen

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

Undervisningsbeskrivelse

1 Ligninger. 2 Ligninger. 3 Polynomier. 4 Polynomier. 7 Vækstmodeller

Undervisningsbeskrivelse

Klasseundervisning, opgaveløsning ved tavle, samt som selvstændige

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Andreas Møinichen og Aske Märcher

Numerisk differentiation og integration med Python

Undervisningsbeskrivelse

Graph brugermanual til matematik C

Undervisningsbeskrivelse

Når eleverne skal opdage betydningen af koefficienterne i udtrykket:

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Matematik A. Studentereksamen

Optimale konstruktioner - når naturen former. Opgaver. Opgaver og links, der knytter sig til artiklen om topologioptimering

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Transkript:

Projektopgave Rumlige figurer Lars Thomsen HTX Roskilde Vejledere: Jørn & Karl 05/10-2009

Indholdsfortegnelse 0. Summary:... 4 1. Opgaveanalyse:... 5 1.1 Overordnet:... 5 1.2 Konkrete krav til opgaven:... 5 1.3 Analyse:... 5 1.4 Overblik over løsningsmodel:... 6 2. Løsning & Dokumentering (matematik):... 6 2.1 Design af rumlig figur:... 6 2.2 Fastlæggelse af funktionsudtryk:... 7 2.2.1 Interval 1:... 7 2.2.2 Interval 2:... 8 2.2.3 Interval 3:... 8 2.2.4 Interval 4:... 9 2.2.5 Interval 5:... 9 2.2.6 Overblik:... 10 2.3 Glat overgang mellem to funktioner:... 10 2.3.1 Vurdering:... 11 2.4 Bestemmelse af volumen for omdrejningslegeme:... 12 2.4.1 Interval 1:... 12 2.4.2 Interval 2:... 12 2.4.3 Interval 3:... 13 2.4.4 Interval 4:... 13 1.5.5 Interval 5:... 14 2.4.6 Overblik:... 14 3. Visualisering af omdrejningslegeme (programmering):... 15 3.1 Planlægning:... 15 3.2 Kravspecifikationer:... 15 3.3 Design:... 15 Side 2 af 19

3.4 Implementering:... 16 3.4.1 Visualisering af omdrejningslegeme:... 16 3.5 Test & Afprøvning:... 18 3.5.1 Test:... 19 4. Konklusion:... 19 Side 3 af 19

0. Summary: This project is an interdisciplinary assignment between math and programming. The project roughly consists of 3 elements. First of all I have to design an object that I want to work with in this project. The object has to be designed in a certain way so that mathematical calculations can be done and so that a visualization of the object is do-able. The mathematical calculations consist of: 1) proving that a smooth transition between two different functions exist, and 2) calculate the volume of the object by integration. The programming aspect in this project is that I have to visualize the object in 3D with a certain precision. This project went well and I ended up having a solid program, programmed in text-mode in software called VPython. The volume of my object was calculated to be say. which is quite realistic I would Side 4 af 19

1. Opgaveanalyse: 1.1 Overordnet: Dette tværfaglige projekt mellem matematik og programmering går i korte træk ud på at designe et rumligt emne, visualisere emnet via programmering og lave matematiske beregninger på det. De to overordnede aspekter i dette projekt, programmeringen og de matematiske beregninger, afhænger kraftigt af hinanden. 1.2 Konkrete krav til opgaven: Der skal argumenteres for den valgte problem stilling, Der skal designes og beskrives en rumlig figur, Der skal opstilles og dokumenteres matematiske udtryk som repræsenterer figuren, Figurens volumen skal bestemmes, Programmeringsforløbet skal beskrives, - herunder analyse, design, implementering, dokumentation og afprøvning. 1.3 Analyse: Jeg skal designe en rumlig figur, som relaterer til mit teknikfag byg hvor vi pt. har et projekt kørende kaldet Fritidshus. Projektet går ud på at designe et fritidshus, både konstruktionsmæssigt såvel som indretningsmæssigt. Kravet til emnet er, at figurens lændesnit skal være symmetrisk. Jeg har så valgt mit emne på baggrund af det indretningsmæssige, hvor jeg har taget udgangspunkt i en ganske elementær bordlampe. Jeg har forsøgt at skitsere min ide til designet af bordlampen herunder; Jeg har så ydermere valgt at fokusere på selve fundamentet af lampen, som vist med rød skravering på figuren her til venstre. Emnet skal have en eller flere overgange mellem to funktioner, hvor der grafisk ikke må være noget knæk. Og som det fremgår af skitsen, ses kun ét grafisk knæk nederst på emnet foden. Side 5 af 19

For at fastlægge et funktionsudtryk for mit emne, skal jeg have fastlagt nogle punkter i et koordinatsystem, som først og fremmest tydeliggøre emnets form, men som også inddeler emnet i intervaller, til hvilke jeg skal bestemme funktionsudtryk, så emnet kan visualiseres og beregnes på matematisk vis. 1.4 Overblik over løsningsmodel: I dette projekt er der følgende hovedpunkter, jeg skal have løst: 1. Design af rumlig figur. 2. Fastlæggelse af funktionsudtryk.(matematik) 3. Bevise at en glat overgang mellem to funktioner findes.(matematik) 4. Visualisering af emnet i form af et omdrejningslegeme.(programmering) 5. Bestemmelse af omdrejningslegemets volumen.(matematik) 2. Løsning & Dokumentering (matematik): 2.1 Design af rumlig figur: Først skal jeg altså have designet min figur. Jeg har allerede bestemt emnet selve lampe-foden så nu vil jeg præcisere designet ved at tegne det ind i et koordinatsystem. Jeg har fastlagt 5 punkter, som udgør et symmetrisk tværsnit af emnet. Punkterne er valgt på baggrund af, at jeg ville have et realistisk emne i henhold til en virkelig lampe, men også et realistisk emne således at matematiske beregninger er mulige. Figur 1 Side 6 af 19

Punkterne er fastlagt således at hele grafen er inddelt i 5 intervaller. 5 intervaller jeg hver især vil bestemme et funktionsudtryk for. 2.2 Fastlæggelse af funktionsudtryk: Jeg skal fastlægge 5 funktionsudtryk, et for hvert interval. De 5 intervaller er illustreret på figur 1. Jeg har valgt at arbejde med 3 overordnede funktionstyper. Fælles for funktioner er koefficienterne, og. - Er lig hældningskoefficienten for funktionen. - Er lig skæringen med -aksen. - er lig en konstant, som kan tilføjes til sidst i funktionsudtrykket, som forskyder funktionen hen af -aksen. Lineær funktion: o Andengradspolynomie: o Trigonometrisk funktion: o o 2.2.1 Interval 1: Som det tydeligt fremgår af grafen, er funktionen for det første interval en lineær funktion. Funktionen skærer -aksen i, altså er funktionen følgende; Side 7 af 19

2.2.2 Interval 2: Til dette interval har jeg valgt en trigonometrisk funktion. Jeg har brugt cosinuskurven til at lave en funktion for dette interval. Funktionen ser således ud; Jeg ganger cosinuskurven med 3 for at lave den 3 gange så stor. Det vil sige at kurven breder sig over 3 gange så meget på -aksen. Jeg har så også lagt en konstant til således at funktionens oprindelige skæring med -aksen er blevet forskudt 6 op af -aksen. Jeg har så valgt at fitte mig frem til koefficienterne inde i cosinus parantesen. 2.2.3 Interval 3: Til funktionen for dette interval har jeg valgt et andengradspolynomie. Her har jeg igen fittet mig frem til hældningskoefficienten. Jeg har så valgt at forskyde toppunktet hen i punktet, hvilke forklarer de to værdier i funktionsudtrykket. Side 8 af 19

2.2.4 Interval 4: Til funktionen for dette interval har jeg igen valgt et andengradspolynomie. Denne gang vender parablen nedad, da fortegnet på funktionen er ændret. Jeg har så forskudt toppunktet til punktet for intervalgrænsen, altså. Og igen har jeg fittet mig frem til hældningskoefficienten. 2.2.5 Interval 5: Til dette interval har jeg valgt en trigonometrisk funktion. Jeg har brugt sinuskurven til at lave funktionen, som ser således ud; Side 9 af 19

2.2.6 Overblik: For at skabe et lille overblik over situationen med funktionerne, har jeg stillet funktionerne op i en gaffelfunktion og tegnet graf herunder; 2.3 Glat overgang mellem to funktioner: Jeg skal bevise at der, i forbindelse med i det mindste en af overgangene mellem to af funktionerne, ikke må være noget grafisk knæk. Det kan jeg vise ved at bestemme differentialkvotienten til de to funktioner jeg vælger og derefter sætte dem lig hinanden. Jeg har valgt den første glatte overgang mellem funktionerne, som skærer i punktet ; Først vil jeg bestemme differentialkvotienten til, hvilket jeg altså bestemmer ved at differentiere funktionen. Kigger man på funktionen, fremgår det, at det er en trigonometrisk funktion med en sammensat funktion i den indre. Regnereglen for differentiation af en sammensat funktion går ud på, at man differentierer den ydre funktion med den indre funktion urørt, dvs. ganget med den indre funktions differentialkvotient. Side 10 af 19

Og så skal jeg også bruge regnereglen for differentiation af en trigonometrisk funktion; Regnereglerne taget i brug, giver mig så følgende differentialkvotient for ; > Så vil jeg bestemme differentialkvotienten til, hvor den ydre er en potensfunktion og den indre er en sammensat funktion. Jeg bruger samme regel som før brugt samt regnereglen for differentiation af potenser, hvor man hiver potensen ned og ganger det med og trækker 1 fra potensen; Det giver mig følgende differentialkvotient for ; > For at vise den glatte overgang findes, skal jeg så sætte de to differentialkvotienter lig hinanden. > Jeg har så beregnet ligningen via programmel. Det burde have givet, da det var det punkt, hvori den glatte overgang burde finde sted. Men det resultat jeg kom frem til må siges at være tilnærmelsesvis tæt nok på. 2.3.1 Vurdering: Jeg kan ydermere vurdere på den glatte overgang, da jeg jo ved at differentialkvotienterne bør være lig hinanden. Og programmet Graph kan beregne dette for mig. Figur 2 Og som man kan se på figuren herover, er der igen den marginale afvigelse, men det er tilnærmelsesvis tæt nok på. Derfor kan jeg konstatere at den glatte overgang altså findes. Side 11 af 19

2.4 Bestemmelse af volumen for omdrejningslegeme: Jeg skal bestemme volumenet for mit emne, altså omdrejningslegemet drejet omkring -aksen. Volumenet af et omdrejningslegeme beregnes ved integration. Formlen ser således ud; Man skal altså have bestemt stamfunktionen og derefter beregne stamfunktionen i henhold til de to intervalgrænser og gange med pi, hvilket så giver volumenet af omdrejningslegemet for den givne funktion. Jeg har så mine 5 intervaller samt funktioner, som jeg hver især vil beregne volumenet for og derefter lægge dem sammen, hvilket så bør give volumenet af hele mit emne. 2.4.1 Interval 1: Funktionen for dette interval ser således ud: For at bestemme stamfunktionen til denne bruger jeg følgende regel for stamfunktion til en konstant; Det bruger jeg så til at bestemme stamfunktionen og beregner så stamfunktionen; 2.4.2 Interval 2: Funktionen for dette interval ser således ud: For at bestemme stamfunktionen til denne funktion bruger jeg følgende regel; Side 12 af 19

2.4.3 Interval 3: Funktionen for dette interval ser således ud: 2.4.4 Interval 4: Funktionen for dette interval ser således ud: Side 13 af 19

1.5.5 Interval 5: Funktionen for dette interval ser således ud: For at bestemme stamfunktionen til denne funktion bruger jeg følgende regel; 2.4.6 Overblik: Jeg har nu beregnet volumenet af hele omdrejningslegemet, men i de forskellige intervaller. Så for at få volumenet af hele omdrejningslegemet, lægger jeg dem sammen: Side 14 af 19

3. Visualisering af omdrejningslegeme (programmering): 3.1 Planlægning: Jeg skal lave et program, som kan visualisere mit emne. Jeg har valgt at lave ét program, som viser både grafen for gaffelfunktionen samt omdrejningslegeme i et 3-dimensionelt koordinatsystem. Jeg har valgt at benytte mig af programmet VPython. VPython er et slags add-on modul til programmet Python, som gør det muligt at programmere i 3D. Programmet er ganske gratis og kan bruges med stor frihed. I programmet er både en IDLE og et text-mode modul. 3.2 Kravspecifikationer: Kravene til mit program er i bund og grund ganske simple. Først og fremmest skal programmet virke upåklageligt, altså det skal kunne køres fejlfrit hver gang. For det andet skal mit program kunne vise emnet i form af et omdrejningslegeme på en ganske tydelig og præcis måde. Det inkluderer henholdsvis, og -akser. Derudover ønsker jeg også programmet har et vis overblik, altså ingen slamkodning. 3.3 Design: Hvad angår design i henhold til brugergrænseflade og lignende, er der jo som sådan intet af i mit program, da jeg har valgt at lave det hele i text-mode. Som sådan er der ikke et fast design for programmet. Jeg ønsker dog at stille det op i text-mode således at det skaber et naturligt overblik over kodningen. Jeg har forsøgt at skitsere mine tanker om et design til selve programmeringen af omdrejningslegemet ned og lavet et flow-diagram over det; Side 15 af 19

Figur 3 Det skal altså fungere således, at en løkke kører og gentager sig selv i henhold til de underordnede 5 betingelser og stopper så, når den overordnede betingelse ikke længere er sand. For hver af de 5 underordnede betingelser laver den så en kurve rundt om -aksen som har og -værdien i radius, således at den altså følger funktionsudtrykket. 3.4 Implementering: Når man arbejder med VPython skal visual modulet importeres til programmet. Altså starter man med at skrive henholdsvis; From visual import * stjernen indikerer at det er hele modulet, der skal importeres. 3.4.1 Visualisering af omdrejningslegeme: Jeg har delt koden op i 3 dele. Akserne Funktionen Omdrejningslegeme Side 16 af 19

Jeg vil fortælle om og kort forklare kodningen herunder. 3.4.1.1 Akserne: x_akse = cylinder(pos=(-5,0,0), axis=(40,0,0), radius=(0.1), color=color.red) y_akse = cylinder(pos=(0,-15,0), axis=(0,30,0), radius=(0.1), color=color.green) z_akse = cylinder(pos=(0,0,-15), axis=(0,0,30), radius=(0.1), color=color.blue) enhedskegle_x = cone(pos=(35,0,0), axis=(0.5,0,0), radius=(0.2)) enhedskegle_y = cone(pos=(0,15,0), axis=(0,0.5,0), radius=(0.2)) enhedskegle_z = cone(pos=(0,0,15), axis=(0,0,0.5), radius=(0.2)) Først har jeg defineret de 3 akser som en cylinder der starter i en vis position og har længden ud af axis. Ydermere har de også fået farve og en passende radius. Der er så placeret en enhedskegle for enden af hver akse, som bestemmer retningen på de 3 akser. 3.4.1.2 Funktionen: kurve = curve() s = 0 while (s <= 30.5): if (s <= 2.5): funkfion_1 = kurve.append(pos=(s,6,0), color=color.green) elif (s >= 2.5 and s <= 7.5): funkfion_2 = kurve.append(pos=(s,3*cos(0.31448*s+0.78349)+6,0), color=color.blue) elif (s >= 7.5 and s <= 14.5): funkfion_3 = kurve.append(pos=(s,0.081632*(s-7.5)**2+3,0), color=color.red) elif (s >= 14.5 and s <= 25.5): funkfion_4 = kurve.append(pos=(s,-0.041322*(s-25.5)**2+12,0), color=color.cyan) elif (s >= 25.5 and s <= 30.5): funkfion_5 = kurve.append(pos=(s,3*sin(0.24857*s-4.7798)+9,0), color=color.yellow) s = s + 0.5 Her har jeg lavet en løkke, som gentager sig selv indtil betingelsen ikke længere er sand. Inde i løkken er flere if-statements, som deler løkken ind i intervaller, som hver især har en funktion at udvise i det givne interval. 3.4.1.3 Omdrejningslegeme: kurve1 = curve() kurve2 = curve() kurve3 = curve() kurve4 = curve() kurve5 = curve() p = 0.0 while (p <= 30.5): if (p <= 2.5): funktion_1 = kurve1.append(pos=(p,6*cos(p*13),6*sin(p*13)), color=color.green) elif (p <= 7.5): Side 17 af 19

funktion_2 = kurve2.append(pos=(p,(3*cos(0.31448*p+0.78349)+6)*cos(p*13),(3*cos(0.31448*p+0.78349)+6)*sin(p*1 3)), color=color.blue) elif (p <= 14.5): funktion_3 = kurve3.append(pos=(p,(0.081632*(p-7.5)**2+3)*cos(p*13),(0.081632*(p- 7.5)**2+3)*sin(p*13)), color=color.red) elif (p <= 25.5): funktion_4 = kurve4.append(pos=(p,(-0.041322*(p-25.5)**2+12)*cos(p*13),(-0.041322*(p- 25.5)**2+12)*sin(p*13)), color=color.cyan) elif (p <= 30.5): funktion_5 = kurve5.append(pos=(p,(3*sin(0.24857*p-4.7798)+9)*cos(p*13),(3*sin(0.24857*p- 4.7798)+9)*sin(p*13)), color=color.yellow) p = p + 0.0001 Denne kode er som sådan forklaret på figur 3 lidt herover. 3.5 Test & Afprøvning: Programmet ser således ud, når der køres: Figur 4 Side 18 af 19

3.5.1 Test: Mine opstillede krav: - Velfungerende og fejlfrit. Mit program fungerer ganske upåklageligt. - Tydelig visualisering af omdrejningslegeme. Som det fremgår af figur 3, er visualiseringen fuldendt og ganske tydelig inddelt i de 5 intervaller med hver sin funktion hver sin farve. - Overblik ingen slamkodning. Jeg fik lavet et ganske overskueligt program. Koden er umiddelbart lige til og nem at finde rundt i. 4. Konklusion: I projektet har jeg som sådan fået to umiddelbart resultater, jeg kan vurdere. Først skulle jeg bevise at en glat overgang mellem to forskellige funktioner fandt sted ved et givet punkt. Der skulle jeg altså sætte de to differentialkvotienter for de to funktioner lig hinanden. Differentialkvotienterne beregnede jeg via programmel, men med forklaring af den anvendte teori. Jeg fandt altså ud af, at en glat overgang fandt sted i punktet mellem funktionerne til interval 2 og interval 3, som var henholdsvis en trigonometrisk funktion og et andengradspolynomie. Jeg skulle også bestemme rumfanget af omdrejningslegemet. Jeg valgte så at dele integralerne op i de 5 intervaller og beregne rumfanget af de 5 integraler og så til sidst lægge dem sammen. Igen brugte jeg programmel til at beregne stamfunktionen, men fik kort forklaret regneteknikken bag. Jeg begrænsede decimalerne for volumen af de 5 intervaller til 2 decimaler. Det kan have givet en lille fejlmargin på resultatet, men ikke noget af den store betydning. Jeg vurderede at 2 decimaler var ganske tilpas. Jeg skulle også lave et program, som kunne visualisere dette omdrejningslegeme. Det fik jeg lavet, og endda et godt program. Det overholdte samtlige krav, jeg havde opstillet. Hvad angår fastlæggelsen af funktionsudtrykkene kunne jeg også have valgt at beregne koefficienterne analytisk, men jeg vurderede at det var fint at fitte mig frem til dem via Graph. Side 19 af 19