Practicumopdracht met python#
# Namen:
In dit practicum doen we onderzoek naar de restitutiecoefficient. Wat dat is? Dat legt de docent in het onderstaande filmpje uit.
import numpy as np
import matplotlib.pyplot as plt
from IPython.lib.display import YouTubeVideo
YouTubeVideo('5_anUf6DfKs', width = 600, height = 450)
De restitutiecoefficient is dus een maat voor het stuiteren van bijvoorbeeld een stuiterbal. In formule vorm wordt de restitutiecoefficient gegeven door \(C_r=\sqrt{\frac{h}{H}}\), waarin \(H\) de valhoogte is van de stuiterbal voor de botsing en \(h\) de maximaal bereikte hoogte na de botsing.
Welke eenheid heeft de restitutiecoefficient?
Antwoord:
Voor het bepalen van de hoogte zou je een liniaal kunnen gebruiken.
Geef twee redenen waarom dat niet optimaal is.
Antwoord:
Om de hoogte nauwkeurig te bepalen, gebruiken we onze telefoon en de app Phyphox. In die app zit een zogenaamde akoestische chronometer: een stopwatch die werkt op geluid. Bij een ‘tik’ start de meting, bij een tweede ‘tik’ stopt de stopwatch. Je kunt ook de akoestische chronometer zo instellen dat deze de tijd tussen opeenvolgende tikken weergeeft. Ideaal voor wat wij willen!
Leg uit waarom we de tijd tussen meerdere tikken willen meten.
Antwoord:
Nu moeten we nog wel de tijd omrekenen naar hoogte. Als een object valt van een hoogte \(H\), wordt de tijd die het object erover doet om de grond te raken gegeven door: \(H=\frac{1}{2}gt^2\). De maximale hoogte op basis van de tijd tussen twee tikken wordt daarmee gegeven door \(h_{max}=\frac{1}{8}gt^2\).
Leg uit hoe de tweede formule volgt uit de eerste.
Antwoord:
Met de onderstaande berekening wordt de gemeten tijd omgezet in de hoogte.
def h_berekening(t):
return 1/8*9.81*t**2
Voer de volgende opdrachten uit:
Open de Phyphox app op de telefoon, gebruik de akoestische chronometer en doe een testmeting.
Bespreek op basis van je testmeting vanaf welke starthoogte je gaat meten, en eventuele andere punten die je opvallen.
Zet je metingen hieronder op de punten (vervang de punten dus voor je metingen, maar laat de kommas staan).
t = np.array([.. , .. , .. , .. , ..])
h = h_berekening(t)
plt.figure() #aanmaken van de grafiek
plt.plot(h,'k.') #het weergeven van de metingen
plt.xlabel('aantal stuiters') #label op horizontale as
plt.ylabel('hoogte (m)') #label op verticale as
plt.ylim(0,max(h)*1.2) #bereik aangeven
plt.show() #tonen van de grafiek
De grafiek is alvast voor je gemaakt. Wat zijn de dingen die je opvallen aan de grafiek? Is het een rechte lijn? Kun je op basis van deze grafiek al inschatten of de restitutiecoefficient een constante waarde heeft?
Antwoord
Nu hebben we de juiste metingen en kunnen we de restitutiecoefficient uitrekenen. Je hebt, als het goed is, vijf metingen en kunt dus vier maal de restitutiecoefficient uitrekenen. Gelukkig hoeven we dat niet zelf met de hand te doen, Python doet dat in ene keer voor ons.
e = np.sqrt(h[1:]/h[:-1])
print(np.round(e,2))
Op basis van deze set metingen, is de restitutiecoefficient constant? Welke conclusie kun je trekken uit de analyse?
Antwoord
Voer verder onderzoek uit naar bijvoorbeeld de hoogte, of andere ballen. Formuleer eerst een onderzoeksvraag en geef van te voren een verwachting aan.
Uitwerkingen Hieronder vind je een voorbeeldmeting.
# 1) Eenheidsloos
# 2) Kunt vaak maar een meting tegelijk doen, nauwkeurig aflezen is moeilijk
# 3) Een goed resultaat krijg je met herhaalde metingen. Ook kun je onderzoeken of de restitutiecoefficient afhangt van bijv. de hoogte
# 4) De tijd die gemeten wordt, is de tijd omhoog en omlaag. Dus t = 2*sqrt(2H/g). Vrij maken van H geeft: H=1/8gt^2
# 5)
import numpy as np
import matplotlib.pyplot as plt
def h_berekening(t):
return 1/8*9.81*t**2
t = np.array([0.500 , 0.456 , 0.416 , 0.381 , 0.346])
h = h_berekening(t)
plt.figure()
plt.plot(h,'k.')
plt.xlabel('aantal stuiters')
plt.ylabel('hoogte (m)')
plt.ylim(0,max(h)*1.2)
plt.show()
# 6) Een dalende lijn, lijkt net niet recht.
e = np.sqrt(h[1:]/h[:-1])
print(np.round(e,2))