Vissza a főoldalra Vissza a Tudományos érdekességek oldalra
A π
meghatározása téglányösszegek módszerével (2002.02.20.) |
Ma, a nagyteljesítményű személyi számítógépek korában már akár otthonunkban is lehetőség nyílik olyan feladatok megoldására, amelyekről 50 éve csak álmodoztak a matematikusok és más kutatók. Az egységnyi sugarú kör területét egy jól programozható módszerrel fogjuk kiszámítani, amelyet muszály is programozni, hiszen a kívánt pontossággal arányban nő az elvégzendő számítások mennyisége.
Általános iskolai tanulmányokra emlékezve talán még eszünkbe juthat egy területbecslési eljárás, amelynél egy síkidomot négyzethálós papírra rajzolva megszámolhatjuk a körvonalak által körbezárt négyzetek számát és így megkapjuk a síkidom körülbelüli területét. Az alábbi ábra szemlélteti, hogy minél finomabb négyzethálót használunk, annál pontosabban kapjuk a terület értékét. A "matematikusok fejedelme", Gauss(1777-1855) is egy ehhez hasonló,
négyzetrácson alapuló módszert dolgozott ki a π meghatározására.
Számítási eljárásunkat egy negyedkörre fogjuk levezetni. A negyedkör területének ismeretében a teljes kör területe már könnyen számítható, hiszen:
Tkör = 4 · Tnegyedkör.
A teljes körből az ábrán látható módon kiemelünk egy negyedet és ennek a területére próbálunk meg számítási eljárást találni. Az ábrán a piros vonalak egységnyi hosszúságúak, mert ezek a kör sugarai. Első lépésként a kör egységnyi sugarát osztjuk fel n részre (az ábrán n = 10). Így kapjuk az o osztásértéket, amely a sugár n-ed része (az ábrán így o = 0,1). Az o osztásérték adja meg a négyzetháló finomságát. Minél nagyobb n értéket választunk, annál kisebb lesz az o, így annál pontosabbak lesznek a számításaink. Persze n növelésével négyzetes arányban nő a számítási mennyiség, amelyet el kell végeznünk.
A negyedkör által letakart négyzetháló vízszintes sorait az ábrán kék számokkal jelöltük meg: x Î [1,2,3 … n] (az ábrán 1-től 10-ig). Tehát ezek a számok 1-től n-ig terjednek, hiszen a vízszintes sorok száma n. (Mert a kör sugarát n részre osztottuk fel.) Annyi teendőnk maradt csupán, hogy minden egyes sorban megszámoljuk, mennyi négyzet van a körvonalon belül, és az eredményeket összeadjuk.
Egy sor hosszának meghatározása. A fenti ábrán a vízszintes sorok felső vonalának és a körívnek a metszéspontjait levetítve kapjuk a sorok körív belsejébe eső hosszát (zöld), amely az 1. sornál a1, a 2. sornál a2, az x-edik sornál pedig ax. Az ábrán bejelöltük a vízszintes sorok felső vonalának a kör középpontjától számított "magasságát" is (kék), amely az 1. sornál h1, a 2. sornál h2, az x-edik sornál pedig hx.
Könnyen belátható, hogy az egyes sorok magassága:
hx = x · o,
ahol x Î [1,2,3 … n].
Tehát a h magasságot megkapjuk, ha a sor x számát (az ábrán a kék számok) megszorozzuk az o osztásértékkel.
Ahhoz, hogy megtudjuk, egy adott x. sor mennyi kis négyzetet tartalmaz, ki kell számolnunk a sorhoz tartozó ax értéket. Majd elhagyva az ax tört részét (tizedesvessző utáni részét) megkapjuk a tartalmazott négyzetek számát. Az ax értéket a következőképpen számítjuk:
Látható, hogy mindegyik sorra fel kell írnunk a Püthagorasz-tételt, amiből kifejezhetjük a sor hosszát, ax-et. A tartalmazott négyzetek számát jelöljük sx-szel, így az x. sorban levő négyzetek száma:
sx = Int(ax / o),
ahol az Int művelet a zárójelben levő kifejezés egész részének képzését jelenti. Ezekután a negyedkörben elhelyezkedő négyzetek száma:
Σs = s1 + s2 + … + sn.
Tehát az egyes sorokra kapott s értékeket összegezzük. A negyedkör területe:
Tnegyedkör = Σs · o2,
ahol o2 a kis kitöltőnégyzet területe.
Ezzel megkaptuk a kör területét szögfüggvények használata nélkül, alkalmaztunk viszont négyzetreemelést és gyökvonást.
A módszert számítógépes program formájában megvalósítva a következő eredményeket kapjuk:
Az o osztásérték (1/n) | A π számított értéke | A számítási idő |
|
|
|
0,1 | 2,9065233514 | < 0,01s |
0,01 | 3,1204190318 | < 0,01s |
0,001 | 3,1395554689 | < 0,01s |
0,0001 | 3,1413914776 | < 0,01s |
0,00001 | 3,1415726164 | 0,16s |
0,000001 | 3,1415906524 | 1,49s |
0,0000001 | 3,1415924536 | 14,96s |
0,00000001 | 3,1415926336 | 2min, 29s |
A táblázatból láthatjuk, hogy itt alulról közelítjük meg π értékét. Megfigyelhető még, hogy a pontosság egy tizedesjeggyel való növelése a számítási időt kb. kilencszeresére növeli. Így kiszámíthatjuk, hogy mennyi ideig tart egy bizonyos pontosságú számítás. Például tíz tizedesjegynyi pontossághoz az alábbi számítógép- és program-konfigurációval kb. 27 órás számításra volna szükség.
(A tesztelés egy Turbo Pascal 6.0 nyelven, DOS alá írt programmal lett végezve 350MHz-es órajelű Pentium II processzort tartalmazó gépen Windows ME operációs rendszer alatt. A DOS alá írt (16 bites) programok természetesen nem használják ki a fenti konfigurációban (32 bites) rejlő teljesítményt.) Itt a programlista és a futtatható program is letölthető.
Tudomány és Technika (test@t-es-t.hu)