Tänään on jälleen kerran pii-päivä (14. maaliskuuta, joka on kuin piin alkuluvut: 3 ja 14). Ennen kuin siirrymme tämänvuotiseen pii-juhlaan, kerron lyhyesti joitakin tärkeimpiä asioita tästä mahtavasta luvusta.
- Yksikön ulkopuolella pii-päivän pitäisi luultavasti olla 22. heinäkuuta (22/7) – tämä murtoluku on yllättävän hyvä arvio piin arvosta.
- Piin arvon voi löytää massan ja jousen avulla.
- Piin arvo liittyy paikalliseen painovoimakenttään.
- Piin arvon voi löytää satunnaislukujen avulla (tämä on suosikkini).
- Ja lopuksi – pi:n, e:n, 1:n, 0:n ja i:n (mielikuvitusluku) välillä on yhteys.
Mutta tänään aion laskea pi:n numeerisen integraalin avulla. Mitä se edes tarkoittaa? Aloitan esimerkillä – miten löydät puoliympyrän pinta-alan?
Ympyrän pinta-ala on pi kertaa säde neliöllä. Tämä on ympyrän puolikas, jonka säde on 1 (ei yksiköitä) siten, että sen pinta-ala olisi pi/2. Jos löydän pinta-alan jollain muulla menetelmällä, voin vain kertoa tämän pinta-alan 2:lla ja saada pi. Se on suunnitelma.
Mutta miten löydät jonkin muodon – tai minkä tahansa muodon – pinta-alan? Tässä kohtaa laskutoimitukset tulevat tarpeeseen. Voin löytää puoliympyrän pinta-alan laskemalla yhteen joukon suorakulmioiden pinta-alat. Kävi ilmi, että suorakulmion pinta-ala on melko helppo löytää. Piirrän vain muutaman suorakulmion tuohon puoliympyrään, jotta näet, mitä tarkoitan.
Kunkin näistä laihoista suorakulmioista pinta-ala löytyy kaavalla ”pohja kertaa korkeus”. Suorakulmion korkeus on ”y” ja pohja ”dx”, jossa dx on vain jokin mielivaltainen pituus x-akselilla. Voin löytää korkeuden todellisen arvon, koska suorakulmion yläreuna osuu ympyrään, jossa tämä korkeus löytyy ympyrän yhtälöstä.
Nyt minun tarvitsee vain laskea yhteen kaikki nämä suorakulmiot – pam, siinä on puolen ympyrän pinta-ala. Voin kirjoittaa tämän pinta-alojen summana näin:
Mutta odota! Eikö tämä ole huono approksimaatio ympyrän (puoliympyrän) todelliselle pinta-alalle? Kyllä, se on todellakin totta – mutta se riippuu todella näiden pienten pinta-alaltaan suorakulmioiden leveydestä. Itse asiassa, jos otan rajan, kun leveys (dx) menee nollaan, saan tarkan pinta-alan. Tämä on itse asiassa integraalin määritelmä laskennassa – mutta säästän sen toiselle päivälle. Sen sijaan teemme numeerisen laskutoimituksen yksinkertaisesti laskemalla yhteen joukon suorakulmioiden pinta-alat. Tämän voi tietysti tehdä käsin, mutta se voi käydä tylsäksi. Sen sijaan tehdään tämä tietokoneohjelmalla. Jep.
Tässä on numeerinen laskenta pythonilla. Voit mennä eteenpäin ja ajaa koodin painamalla ”toista”-painiketta, mutta annan alla muutamia koodikommentteja.
Voit muuttaa koodia, jos se tekee sinut onnelliseksi – tässä on muutama huomioitava asia.
- Tämä on numeerinen laskenta. Se tarkoittaa, että ohjelma käsittelee vain numeroita. Teknisesti ottaen pinta-alalla pitäisi olla yksikköinä m2 tai jotain vastaavaa, mutta ei tässä. Vain numeroita.
- Pythonin silmukoissa se sisältää kaiken, mikä on tabulaattoriviivoitettuna osana silmukkaa. Kun dedentti on poistettu, se ei ole enää silmukassa.
- Rivin 18 pitäisi näyttää oudolta, koska se on sitä. Jos tätä pidetään algebrallisena yhtälönä, A:n pitäisi kumoutua, koska se on yhtälön molemmilla puolilla – mutta tämä ei ole yhtälö. Pythonissa (ja useimmissa muissa kielissä) ”=” tarkoittaa ”tee yhtä suureksi kuin”. Tämä rivi ottaa A:n vanhan arvon, lisää siihen uudet asiat ja tekee siitä sitten A:n uuden arvon.
Tämän alkulaskun dx on 0,1. Se tarkoittaa, että on vain 20 suorakulmiota, jotka lasketaan yhteen ja saadaan puoliympyrän pinta-ala. Tällä saan likimääräiseksi pi-arvoksi 3,10452 – joka ei selvästikään ole tarkka pi. Voin tietysti tehdä paremman arvion tekemällä pienempiä suorakulmioita. Tätä kannattaa kokeilla muuttamalla yllä olevaa koodia (vinkki: muuta dx:n arvoa). Koska en kuitenkaan voi päästää tätä menemään, tässä on piirros pi:n arvosta eri askelkoolla.
Ehkä se ei ehkä ole paras mahdollinen piirros – mutta se riittää toistaiseksi. Jos haluat tutustua tämän plotin koodiin, tässä. Loppujen lopuksi arvo kuitenkin lähestyy pi:n odotusarvoa. Tällä menetelmällä et ehkä saa miljoona numeroa pi:tä, mutta ehkä voit ainakin oppia jotain integroinnista.