Het is weer Pi-dag (14 maart, wat overeenkomt met de eerste cijfers van pi: 3 en 14). Voordat ik inga op de viering van pi dit jaar, wil ik eerst een paar van de belangrijkste dingen over dit geweldige getal samenvatten.
- Buiten de VS zou pi-dag waarschijnlijk 22 juli moeten zijn (22/7)-deze breuk is een verrassend goede schatting van pi.
- Je kunt de waarde van pi vinden met een massa en een veer.
- De waarde van pi is gerelateerd aan het lokale zwaartekrachtsveld.
- Je kunt de waarde van pi vinden met behulp van willekeurige getallen (deze is mijn favoriet).
- En tot slot-er is een relatie tussen pi, e, 1, 0 en i (het imaginaire getal).
Maar vandaag ga ik pi berekenen met een numerieke integraal. Wat houdt dat eigenlijk in? Laat ik beginnen met een voorbeeld: hoe vind je de oppervlakte van een halve cirkel?
De oppervlakte van een cirkel is pi maal de straal in het kwadraat. Dit is de helft van een cirkel met een straal van 1 (geen eenheden), zodat deze een oppervlakte zou hebben van pi/2. Als ik de oppervlakte vind met een andere methode, kan ik gewoon deze oppervlakte vermenigvuldigen met 2 en pi krijgen. Dat is het plan.
Maar hoe vind je de oppervlakte van een vorm – of van welke vorm dan ook? Dit is waar calculus van pas komt. Ik kan de oppervlakte van de halve cirkel vinden door de oppervlakte van een aantal rechthoeken bij elkaar op te tellen. Het blijkt dat het vrij eenvoudig is om de oppervlakte van een rechthoek te vinden. Ik teken een paar rechthoeken in die halve cirkel, zodat je kunt zien wat ik bedoel.
De oppervlakte van elk van deze magere rechthoeken kan worden gevonden met de formule “basis maal hoogte”. Een rechthoek heeft een hoogte van “y” en een basis van “dx” waarbij dx gewoon een willekeurige lengte langs de x-as is. Ik kan de werkelijke waarde van de hoogte vinden omdat de top van de rechthoek de cirkel raakt waar deze hoogte kan worden gevonden uit de vergelijking van een cirkel.
Nu hoef ik alleen nog maar al deze rechthoeken bij elkaar op te tellen-boom, dat is de oppervlakte van een halve cirkel. Ik kan dit schrijven als een som van oppervlakten zoals dit:
Maar wacht! Is dit niet een slechte benadering van de werkelijke oppervlakte van een cirkel (halve cirkel)? Ja, dat is waar, maar het hangt echt af van de breedte van deze kleine rechthoekjes. In feite, als ik de limiet neem als de breedte (dx) naar nul gaat, dan zal ik de exacte oppervlakte krijgen. Dit is eigenlijk de definitie van de integraal in calculus – maar dat bewaar ik voor een andere dag. In plaats daarvan zullen we een numerieke berekening uitvoeren door eenvoudig de oppervlakte van een aantal rechthoeken op te tellen. Je zou dit natuurlijk met de hand kunnen doen, maar dat kan saai worden. Laten we het in plaats daarvan met een computerprogramma doen. Yup.
Hier is numerieke berekening in python. Je kunt de code uitvoeren door op de “play” knop te drukken, maar ik zal hieronder wat code commentaar geven.
Je kunt de code veranderen als dat je gelukkig maakt-er zijn een paar dingen om te overwegen.
- Dit is een numerieke berekening. Dat betekent dat het programma alleen met getallen werkt. Technisch gezien zou de oppervlakte eenheden van m2 of iets dergelijks moeten hebben, maar niet hier. Alleen getallen.
- Voor lussen in python geldt dat alles waar tab-indentatie op staat, deel uitmaakt van de lus. Zodra je dedent, het is niet langer in een lus.
- Line 18 moet raar kijken, want het is. Als je dit als een algebraïsche vergelijking beschouwt, zou de A moeten opheffen omdat hij aan beide kanten van de vergelijking staat-maar dit is geen vergelijking. In python (en de meeste andere talen), betekent “=” “maak gelijk aan”. Deze regel neemt de oude waarde van A, voegt de nieuwe dingen toe en maakt er dan de nieuwe waarde van A van.
Deze initiële berekening heeft een dx van 0.1. Dat betekent dat er slechts 20 rechthoeken zijn om op te tellen en de oppervlakte van de halve cirkel te krijgen. Hiermee krijg ik een geschatte pi waarde van 3.10452-wat duidelijk niet de exacte pi is. Natuurlijk kan ik een betere schatting maken door rechthoeken met een kleinere breedte te maken. Je zou dit moeten proberen door de code hierboven te veranderen (hint: verander de waarde voor dx). Maar omdat ik dit niet kan laten gaan, is hier een plot van de waarde van pi voor verschillende stapgroottes.
Misschien is dit niet de beste plot, maar het is goed genoeg voor nu. Als u de code voor deze plot wilt bekijken, kunt u hier terecht. Maar uiteindelijk benadert de waarde wel de verwachte waarde van pi. Met deze methode krijg je misschien geen miljoen cijfers van pi, maar misschien kun je in ieder geval iets leren over integratie.