Det är återigen Pi-dagen (den 14 mars – vilket är som de första siffrorna i Pi: 3 och 14). Innan jag går in på årets firande av pi vill jag bara sammanfatta några av de viktigaste sakerna om detta fantastiska tal.
- Utanför USA borde Pi-dagen antagligen vara den 22 juli (22/7)-denna bråkdel är en förvånansvärt bra uppskattning av pi.
- Du kan hitta värdet av pi med en massa och en fjäder.
- Värdet av pi är relaterat till det lokala gravitationsfältet.
- Du kan hitta värdet av pi med hjälp av slumpmässiga tal (detta är min favorit).
- Och slutligen – det finns ett samband mellan pi, e, 1, 0 och i (det imaginära talet).
Men i dag ska jag beräkna pi med ett numeriskt integral. Vad innebär det egentligen? Låt mig börja med ett exempel – hur hittar man arean av en halvcirkel?
En cirkels area är pi gånger radien i kvadrat. Detta är hälften av en cirkel med radien 1 (inga enheter) så att den skulle ha en area på pi/2. Om jag hittar arean med någon annan metod kan jag bara multiplicera denna area med 2 och få pi. Det är planen.
Men hur hittar man arean av en viss form – eller vilken form som helst för den delen? Det är här som kalkyl kommer väl till pass. Jag kan hitta arean av halvcirkeln genom att addera arean av ett gäng rektanglar. Det visar sig att det är ganska enkelt att hitta arean av en rektangel. Låt mig bara rita några rektanglar i halvcirkeln så att du kan se vad jag menar.
Avdelningen av var och en av dessa tunna rektanglar kan hittas med formeln ”bas gånger höjd”. En rektangel har en höjd på ”y” och en bas på ”dx” där dx bara är någon godtycklig längd längs x-axeln. Jag kan hitta det faktiska värdet på höjden eftersom rektangelns topp träffar cirkeln där denna höjd kan hittas från ekvationen för en cirkel.
Nu behöver jag bara lägga ihop alla dessa rektanglar – pang, det är arean av en halv cirkel. Jag kan skriva detta som en summa av areor så här:
Men vänta! Är inte detta en dålig approximation av den faktiska arean av en cirkel (halvcirkel)? Ja, det är faktiskt sant – men det beror verkligen på bredden på dessa små rektanglar. Om jag tar gränsen när bredden (dx) går mot noll får jag faktiskt den exakta arean. Detta är faktiskt definitionen av integralen i kalkyl – men jag ska spara det till en annan dag. Istället ska vi göra en numerisk beräkning genom att helt enkelt addera arean av ett gäng rektanglar. Du kan naturligtvis göra detta för hand – men det kan bli tråkigt. Istället ska vi göra detta med ett datorprogram. Japp.
Här är numerisk beräkning i python. Du kan gå vidare och köra koden genom att trycka på ”play”-knappen, men jag kommer att ge några kodkommentarer nedan.
Du kan ändra koden om det gör dig nöjd – här är några saker att tänka på.
- Detta är en numerisk beräkning. Det innebär att programmet endast behandlar siffror. Tekniskt sett borde arean ha enheterna m2 eller något liknande men inte här. Endast siffror.
- För slingor i python ingår allt som är tabindenterat som en del av slingan. Så fort du dementerar är det inte längre i en slinga.
- Linje 18 borde se konstig ut eftersom den är det. Om du anser att detta är en algebraisk ekvation borde A:et upphävas eftersom det finns på båda sidor av ekvationen – men detta är inte en ekvation. I python (och de flesta andra språk) betyder ”=” ”göra lika med”. Den här raden tar det gamla värdet av A, lägger till de nya sakerna och gör det sedan till det nya värdet av A.
Denna inledande beräkning har en dx på 0,1. Det betyder att det bara blir 20 rektanglar att lägga ihop och få fram halvcirkelns area. Med detta får jag ett ungefärligt pi-värde på 3,10452 – vilket uppenbarligen inte är exakt pi. Naturligtvis kan jag göra en bättre uppskattning genom att göra rektanglar med mindre bredd. Du bör prova detta genom att ändra koden ovan (tips: ändra värdet för dx). Men eftersom jag inte kan släppa det här är här en plott av värdet på pi för olika stegstorlekar.
Det kanske inte är den bästa plotten – men den är bra nog för tillfället. Om du vill kolla in koden för denna plot kan du göra det här. Men i slutändan närmar sig värdet det förväntade värdet för pi. Den här metoden kanske inte ger dig en miljon siffror av pi, men du kanske åtminstone kan lära dig något om integration.