Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 15 mei 2014

Vergelijkbare documenten
Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 8 mei 2014

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 13 mei 2014

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 6 mei 2014

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 april 2014

DOBBELSTEEN 2.0. Stap-voor-stap instructie

Opdracht 3: Baanintegratie: Planeet in een dubbelstersysteem

Programmeermethoden NA. Week 5: Functies (vervolg)

De Sense HAT programmeren Je eerste computerprogramma

Een spoedcursus python

Eindexamen natuurkunde 1-2 vwo 2007-I

Beweging. De beginvoorwaarden voor het numerieke programma zijn als volgt: x(0) = 0 m y(0) = 2,0 m. Plaats: vx(0) = 4,0 m/s vy(0) = 0 m/s.

BIOFYSICA: Toets I.4. Dynamica: Oplossing

algoritmiek - antwoorden

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA

Programmeermethoden NA. Week 6: Lijsten

OEFENINGEN PYTHON REEKS 5

Lineaire algebra I (wiskundigen)

1.5.1 Natuurlijke, gehele en rationale getallen

Tentamen Programmeren in C (EE1400)

7. Hamiltoniaanse systemen

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 29 april 2014

5.1 De numerieke rekenmethode

Programmeermethoden NA. Week 3: Controlestructuren

PLANETENSTELSELS - WERKCOLLEGE 1. Opdracht 1a: Introductie Python

Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking

Het hele scherm besturen

Inleiding Programmeren 2

Opdracht 1: Introductie Python

Rekenvaardigheden voor het vak natuurkunde

Programmeren in Excel VBA. Karel Nijs 2010/09

Objectgeoriënteerd Programmeren: WPO 4B

Programmeren onder RISC OS: de snelstart. in BBC-Basic

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013

Rekenvaardigheden voor het vak natuurkunde

Aanvullende toets Gameprogrammeren Woensdag 5 januari 2011, uur

Uitwerkingen toets 12 juni 2010

PG blok 4 werkboek bijeenkomst 4 en 5

Hoofdstuk 1: Een eerste Visual Basic project

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:

Paden en punten bewerken

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Inleiding Programmeren 2

Algoritmen en programmeren: deel 1 - overzicht

Inleiding Programmeren 2

Introductie in R.

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

PLANETENSTELSELS - COMPUTER PRACTICUM 1 EN 2. Inleveren opdrachten en eisen verslag

[13] Rondjes draaien (loops)

Veel succes! 1. Gegeven is de volgende klasse:

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

BEGINNER JAVA Inhoudsopgave

Een eerste applicatie

Informatica: C# WPO 5

Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen

PYTHON REEKS 1: BASICS. Mathias Polfliet

Informatica: C# WPO 7

Tips Wiskunde Kwadratische vergelijkingen: een uitgebreid stappenplan

Tentamen Programmeren in C (EE1400)

NetBeans tutorial, Rik Eshuis, Kees Huizing versie 2.2 Augustus 2009

Toetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II. Duur: 70 minuten Datum: sept 2018

10.0 Voorkennis. Herhaling van rekenregels voor machten: a als a a 1 0[5] [6] Voorbeeld 1: Schrijf als macht van a:

Tentamen Moleculaire Simulaties - 8C November uur

Hoofdstuk 1 Beweging in beeld. Gemaakt als toevoeging op methode Natuurkunde Overal

Tentamen Programmeren in C (EE1400)

Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27

TECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica

Vakgroep CW KAHO Sint-Lieven

Tentamen lineaire algebra voor BWI maandag 15 december 2008, uur.

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

1 Complexe getallen in de vorm a + bi

Tentamen Simulaties van Biochemische Systemen - 8C110 en 8CB19 4 Juli uur

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

Hoofdstuk 9: Menu s toevoegen

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Handleiding website. Inloggen Start uw internet browser en ga naar Laatst bijgewerkt: 17 mei 2008

WI1708TH Analyse 2. College 1 10 november Challenge the future

Objectgeoriënteerd Programmeren: WPO 2

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

Korte handleiding Maple, bestemd voor gebruik bij de cursus Wiskunde

Handleiding: Gebruikersinterface met Python

Voortgangstoets NAT 6 VWO 45 min. Week 5 SUCCES!!!

Stappenplan Scannen. Hoe te scannen: Start het programma ABBYY Finereader op

Practicum Ox intro. Practicum Ox intro. VU Numeriek Programmeren 2.5. Charles Bos. Vrije Universiteit Amsterdam. 3 april /18

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent

Snake met Scratch. Stap voor stap. Pagina 1 van 15

Seven segments of Pi

VAN HET PROGRAMMEREN. Inleiding

WISKUNDE 1. Aansluitmodule wiskunde MBO-HBO

Handleiding Pétanque Competitie Beheer. (versie 1.1) April 2014

Zelf een spel maken met GameMaker Les 1: Laat iets bewegen!

extra oefeningen - antwoorden

Hoofdstuk 5: Functies voor getallen en teksten

Programmeren PYTHON OEFENTENTAMEN 2. Schrijf jouw antwoorden op dit tentamen. Tijd: 2 uur. Maximaal aantal punten: 32. Naam: Studentnummer:

Cursus Algoritmiek najaar 2005

Inleiding Programmeren 2

Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Transcriptie:

Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE, 15 mei 2014

Bijeenkomst 8 Onderwerpen Het sneller maken van een programma Het gebruik van tijd, gebeurtenissen (muisklik,indrukken toets van het toetsenbord) in een loop Informatie over de competitie 15 mei 2014 1

Het vectoriseren van code Vectoriseren betekent dat (wiskundige) operaties worden toegepast op een volledig array en niet met behulp van een for-loop op de elementen daarvan. Dit kan omdat alle elementen van een array van hetzelfde type zijn, in een lijst hoeft dat niet het geval te zijn. De snelheidswinst kan enorm zijn. 15 mei 2014 2

Voorbeeld Gegeven zijn n massa s ([kg]) die bewegen in een plat vlak met een daarop werkende bekende kracht (zwaartekracht) ([N]) De massa s zijn opgeslagen in een array m ([kg]), de posities in de arrays x en y ([m]), de snelheden in de arrays vx, vy ([m/s], de versnellingen in de arrays ax en ay ([m/s 2 ]) en de bekende krachten in arrays Fx en Fy Stel dat de posities, snelheden en versnellingen op een zeker tijdstip bekend zijn. Dan vinden we posities, snelheden en versnellingen van de massa s na een tijdstap dt als volgt: 15 mei 2014 3

for i in range ( 0, n ): x[i] = x[i] + vx[i] dt oud oud y[i] = y[i] + vy[i] dt oud oud vx[i] = vx[i] + ax[i] dt oud oud vy[i] = vy[i] + ay[i] dt oud oud 15 mei 2014 4

Fx[i] en Fy[i] worden bepaald (zij hangen bijvoorbeeld af van vx[i] en vy[i]). ax[i] = ay[i] = Fx[i] m[i] Fy[i] m[i] 15 mei 2014 5

En nu gevectoriseerd: x y vx vy = x oud = y oud = vx oud = vy oud + vx oud + vy oud + ax oud + ay oud dt dt dt dt 15 mei 2014 6

Fx en Fy worden bepaald (zij hangen bijvoorbeeld af van vx en vy). ax = ay = Fx m Fy m 15 mei 2014 7

Voorbeelden vb-1.xhtml: arrays, eenvoudige operaties die werken op arrays vb-2.xhtml: arrays en reshape, astype, where en select vb-3.xhtml: arrays en het gebruik van een voorwaarde als index vb-4.xhtml: arrays en Project Euler, probleem 1 15 mei 2014 8

Waarheidstabel p q p q p q True True True True True False True False False True True False False False False False p q betekent p of q en p q betekent p en q. Past Numpy dit toe op alle elementen van een vector dan worden respectievelijk + en gebruikt. 15 mei 2014 9

Over spelen gesproken... Typische loop in een spel running = True while running...... if (er een gebeurtenis plaats vindt, bijv. een klik op de ESC-toets) running = False 15 mei 2014 10

Quit de loop keys = pg.keys.get pressed() if keys[pg.k ESCAPE]: running = False for event in pg.event.get( ): if event.type = pg. QUIT: running = False if dead: running = False 15 mei 2014 11

Tijd Plaats vlak voordat de loop wordt ingegegaan de opdracht: t = 0.001*pg.time.get ticks( ) t0 = t en vervolgens in de loop: t = 0.001*pg.time.get ticks( ) dt = t t0 t0 = t 15 mei 2014 12

Huishouden Wanneer een scherm (met inhoud) is gemaakt gebruik dan de opdracht: pg.display.flip( ) en aan het einde van de loop (of het begin): pg.event.pump( ) anders kan je programma gaan hangen. En vergeet niet de schermfunctie blit te gebruiken wanneer plaatjes geladen moeten worden. 15 mei 2014 13

Spyder IDE (Integrated Development Engine) of Spyder Bij het maken van grotere programma s kan het gebruik van een andere ontwikkelomgeving zoals Spyder of Pycharm, handig zijn. Voor kleine programma s, zoals die voor Project Euler is IDLE prima. 15 mei 2014 14

Opgave: Asteoriden Maak je eigen spel: Asteoriden! Laat het schip onder in het scherm starten Voeg controle toe over de bewegingen (door gebruik te maken van de pijltjestoetsen) Vermijd het vallen van de asteoriden vanuit de top Plaatjes zijn te vinden op Blackboard 15 mei 2014 15

Opgave: Probeer Project Euler, probleem 87 op te lossen Hoeveel natuurlijke getallen kleiner dan 50 miljoen kunnen worden geschreven als de som van het kwadraat van een priemgetal, de derde macht van een priemgetal en de vierde macht van een priemgetal bijv: 28 = 2 2 + 2 3 + 3 4 33 = 3 2 + 2 3 + 2 4 49 = 5 2 + 2 3 + 2 4 47 = 2 2 + 3 3 + 2 4 Deze opgave kan ook niet gevectoriseerd gemaakt worden. Ga verder met andere opgaven uit Project Euler 15 mei 2014 16

Hints Bepaal eerst de priemgetallen tot 50 miljoen Bepaal alle mogelijke sommen Bepaal de totalen Verwijder dubbele totalen met de set( ) functie en bepaal dan het aantal elementen van de verzameling. 15 mei 2014 17

AE2105 Programming Competition Using multiple files and programming style

Competitie regels Een inzending die voldoende origineel is en van voldoende niveau is wordt beloond met een halve bonuspunt. Er kan alleen worden gewerkt of met een team bestaand uit maximaal twee personen. Er vallen per groep twee prijzen te verdienen (dus 4 2 = 8 prijzen) Inzendingen worden via Blackboard met elkaar gedeeld. De run time en de code zijn van belang (gebruik meerdere bestanden).