Voor Pi-dag, bereken Pi zelf met behulp van twee botsende ballen


Dit is het minst mijn negende jaar van schrijven over Pi-dag – hier is mijn bericht uit 2010. Natuurlijk heet het Pi-dag omdat de datum, 3/14, vergelijkbaar is met de eerste drie cijfers van pi (3.1415 …). Op dit punt heb ik een hele bibliotheek aan leuke dingen opgebouwd ter ere van Pi Day.

Hier is een nieuwe. Je kunt de cijfers van pi berekenen met elastische botsingen tussen twee objecten van verschillende massa's en een muur. Laat me het uitleggen met dit diagram.

Rhett Allain

Er zijn twee ballen, A en B. Ball A heeft een grotere massa en beweegt initieel. Het botst met bal B, zodat bal B versnelt en bal A slechts een klein beetje vertraagt ​​(dit is een perfect elastische botsing). Hierna begint bal B te bewegen naar de muur en stuitert het uiteindelijk terug naar bal A voor een volgende botsing. Dit gaat door totdat bal A van de muur af beweegt in plaats van er naartoe, en er geen botsingen meer zijn.

Nu voor het pi-gedeelte. Als je weet dat de massa van bal A 100 keer groter is dan die van bal B, zijn er 31 botsingen. Als de massaverhouding 10.000 tot 1 is, zijn er 314 botsingen. Ja, dat zijn de eerste 3 cijfers van pi. Als je een massaverhouding van 1 miljoen tot 1 had, zou je 3.141 botsingen krijgen. (Denk eraan dat de eerste paar cijfers van pi 3.1415 zijn …) Over het algemeen, als je "d" cijfers van pi wilt, dan heb je massa A gedeeld door massa B nodig om 100 te worden verhoogd tot de d-1 kracht.

Dit is geen erg efficiënte methode voor het berekenen van de cijfers van pi, maar het lijkt te werken. Hier is een geweldige video van 3Brown1Blue die deze situatie verklaart. Ook is hier een oudere video van Numberphile die ook over dit probleem gaat.

Dit is gek geweldig. Ik begrijp niet eens hoe het werkt. Maar dat is niet waarom ik hier ben. In plaats daarvan laat ik je zien hoe je dit fenomeen kunt modelleren met een numerieke berekening. Het gaat leuk worden.

Ik denk dat het eerste dat je moet aanpakken is: wat is in hemelsnaam een ​​elastische botsing? Er zijn echt twee dingen om te overwegen bij een botsing. Er is het momentum van de objecten, waar momentum het product is van massa en snelheid. Als er geen externe krachten op de twee objecten botsen (of de botsing gebeurt over een zeer kort tijdsbestek), is het totale vector-momentum van de objecten vóór de botsing gelijk aan het momentum na de botsing. We noemen dit behoud van momentum.

De andere te overwegen hoeveelheid bij een botsing is de kinetische energie. Net als momentum hangt dit ook af van de massa en snelheid van het object. Maar er zijn twee belangrijke verschillen. Ten eerste is de kinetische energie evenredig met het product van massa en de snelheid in het kwadraat. Ten tweede, momentum is een vector en heeft dus richting, maar kinetische energie is een scalair zonder richting.

Bij de meeste botsingen is het momentum behouden, maar kinetische energie niet. Bij speciale botsingen die elastische botsingen worden genoemd, blijven zowel het momentum als de kinetische energie behouden. Dit zijn de botsingen die we nodig hebben om pi te berekenen.

Hoewel het inderdaad mogelijk is om momentum en kinetische energie te gebruiken om uit te vinden hoe vaak twee ballen botsen, zal ik dat niet doen. In plaats daarvan ga ik dit doen als een numeriek model. In een numeriek model maak je een aantal basisberekeningen en vervolgens breek je het probleem gewoon in een aantal kleine stappen. In dit geval zijn de kleine stappen korte tijdsintervallen, waarvan ik aanneem dat het constant is. Vertrouw me, dit werkt.

Maar hoe modelleer je een botsing? Eén manier is om te doen alsof de ballen veren in zich hebben (wat niet helemaal verkeerd is). Als de straal van twee ballen elkaar overlapt, zal er een veerkracht zijn die hen uit elkaar duwt. De grootte van deze veerkracht is evenredig aan de mate waarin de twee objecten elkaar overlappen. Omdat deze veerkracht de enige kracht is die op de twee objecten inwerkt, wordt het momentum behouden. En omdat de energie opgeslagen in de veer geen energieverlies heeft, zal kinetische energie ook worden geconserveerd. Het is een perfect elastische botsing.

Hoe zit het met de botsing met de muur? In dat geval is het net als de botsing tussen twee ballen, maar met één verschil. Ik laat de muur zijn positie of momentum niet veranderen – je weet wel … omdat het een muur is.

Nu voor de numerieke berekening. Hier is een botsing tussen twee ballen met een massaverhouding van 100. Als u het opnieuw wilt uitvoeren, klikt u op de knop Afspelen. Als u de code wilt zien en bewerken, klikt u op het potlood.

Het werkt. Er zijn 31 botsingen in dit model – dit zijn de eerste twee cijfers van pi. Wat als u drie cijfers wilt? Je kunt proberen de massa te veranderen, maar het werkt niet. Het probleem is dat wanneer de grote massa heel dicht bij de muur komt met de kleine massa daartussen, de dingen niet gebeuren zoals jij het wilt. Je kunt de kleine massa tegelijkertijd laten interageren met zowel de muur als de grote massa. Hoewel dit realistisch is, geeft het ons niet de beste berekening van pi.

Dus, hoe repareer je het? Ik heb een aantal opties (en je kunt dit als je huiswerkopdracht proberen). De eerste methode zou zijn om dit numerieke, op veren gebaseerde model vast te stellen. Ik denk dat als je de tijdstap (dt) en de veerconstante (k) wijzigt terwijl de ballen botsen, je een beter antwoord krijgt. Dit is wat je zou doen. Naarmate de ballen dichter bij elkaar komen, maakt u een kleinere tijdstap en een grotere veerconstante. Dit zou de botsing met de balbal nauwkeuriger maken in de gevallen waarin de kleinere bal wordt verpletterd.

De volgende optie is om het springgebaseerde collision-model te verlaten. In plaats daarvan zou je de snelheden van de ballen analytisch na elke botsing kunnen berekenen. Verrassend genoeg is een eendimensionale, perfect elastische botsing niet zo'n eenvoudig probleem om op te lossen. Maar maak je geen zorgen, ik deed het voor je en behandelde alle details. Ik heb zelfs een python-functie gemaakt die de twee objecten met de beginsnelheden neemt en de snelheden na de botsing retourneert. Ja, ik heb je echt een voorsprong gegeven bij dit laatste probleem. Misschien zal ik dit bewaren voor de pi-dag van volgend jaar.


Meer Great WIRED Stories