Kaksi kaavaa piin laskemiseksi

1. Kerran muinoin keksin pii'lle kaavan

lim(2^(n 1)B(n,2n-1)(1 (2n-1)/3 (2n-1)(2n-3)/(3*5) ... (2n-1)(2n-3)*..*(n 3)/(3*5*..*(n-1))) ->pii.

Tässä B(n,2n-1) tarkoittaa binomikertoimen käänteislukua. n on parillinen. Parittomille n tulee hieman toisenlainen kaava.Laskennan helpottamiseksi ylläolevaa kaavaa voi vielä vähän yksinkertaistaa.
Piin laskeminen 1 milj. desimaalin tarkkuudella vei aikaa n. 5 tuntia. (2.6 GHz prosessorin tietokoneella). Kaava on siitä huono että tämä alkaa olla yläraja laskentatarkkuudelle, sillä esim. 10 milj numeron laskeminen veisi aikaa jo 3 viikkoa. Tämä piin lauseke on hyvin helppo ohjelmoida kun on ensiksi tehnyt ohjelmat suurten lukujen laskemiseksi, yhteenlaskun, kertolaskun ja jakojaskun.

2. Talvella johdin edellisestä kaavan

pii=2 2*S(j!/(2j 1)!! , j=1,2,3...

Tässä S tarkoittaa sitä mitä yleensä merkitään sigmalla.
Tällä kaavalla laskin kokeeksi piin 100 000 desimaalia, ja tehtävästä se selvisi 1 min. 52 sek'ssa. Tämä on noin kaksi kertaa nopeampi kuin kaava 1. Pienten pii-arvojen laskemiseksi nämä ovat nopeita kaavoja. Esim 4000 desimaalia tulee silänräpäyksessä.
Ilmianna
Jaa

9 Vastausta


Hienoa että olet ollut puuhakas matematiikan saralla mutta mitä helvettiä me muut hyödymme höpötyksestäsi?
Ilmianna
Jaa
Jos kerran olet keksinyt sarjan, joka suppenee piihin, niin suppeneeko se varmasti? Mistä tuollainen päähänpälkähdys on tullut? Miten sen suppenemisen perustelee? Onko käytössä tarpeeksi järeää koneistoa tuon raja-arvon löytämiseksi? Vai onko kyseessä vain laskennallisesti huomattu tosiasia? Tai mikä vielä tärkeämpää, onko se uusi keksintö, vai ainoastaan jokin oppikirjasta kopioitu esimerkki? Uuden keksiminen on tietysti ilahduttavaa , mutta ennen kuin sitä menee mainostamaan millään palstalla, niin kannattaa ottaa selvää lauseen todenperäisyydestä.
Kommentoi
Ilmianna
Jaa
1 VASTAUS:
Piistä voi kehittää laskentakaavoja erilaisin geometrisin menetelmin. Muistaakseni joskus kauan sitten piti kotitehtävänä koulussa johtaa piille kaava käyttäen siniä ja/tai kosinia. Siihen kaavaan voikin sitten vaikka sijoittaa niiden sarjakehitelmät, ja varmasti saadaan sarja joka suppenee piihin.

Helpoimmat tavat on varmasti jo keksitty, mutta ei se estä keksimästä pyörää aina uudelleen.
Kommentoi
Ilmianna
Jaa
+Lisää kommentti
Tuosta ensimmäisestä kaavasta ei saa kyllä mitään
selkoa. Mutta tarkoitatko toisella kaavalla

pii=2 2*S(j!/(2j 1)!! , j=1,2,3...

kenties tällaista:

2 2*(1!/3!! 2!/5!! 3!/7!! ...)

Se tosiaan suppenee nopeasti, mutta ei kyllä
lähellekään piitä:

1!/3!! = 1/720
2!/5!! = 2.9897587696e-199

joten arvo 10:llä desimaalilla on

2.0027777778

mikä ei ole lähellekään piitä!
Kommentoi
Ilmianna
Jaa
1 VASTAUS:
Merkintä 3!! ei tarkoita kolmen kertoman kertomaa. Kolmen kertoman kertoma merkittäisiin (3!)!.
Kyseessä on niin kutsuttu double factorial, ks.

http://mathworld.wolfram.com/DoubleFactorial.html

Tietääkö kukaan onko tuolle suomenkielistä termiä, kaksoiskertoma tms?
Kommentoi
Ilmianna
Jaa
+Lisää kommentti
Painaa taskulaskimesta sitä jakkara-merkkiä ja vot!

Uusi kaava laskea liku 2(kaksi):

15*2/6*2/5=2
Ilmianna
Jaa
No on se hyvä, että joku osaa tuonkin laskea riittävän tarkasti, kun tulee käyttöä.

Eikun tsemppiä vaan sinne.
Ilmianna
Jaa
Laita se ohjelma esille, jollei se ole jotenkin salainen. Voisi olla kiinnostava tsiikata.
Kommentoi
Ilmianna
Jaa
1 VASTAUS:
Ei ohjelma ole mitenkään salainen, mutta en tiedä miten toimitaan. Ilmeisesti tarkoitat C- ja konekieliohjelmaa, etkä varsinaista näistä tulevaa tuotetta joka sitten laskee piin.
Kommentoi
Ilmianna
Jaa
+Lisää kommentti

Vastaa alkuperäiseen viestiin

Kaksi kaavaa piin laskemiseksi

1. Kerran muinoin keksin pii'lle kaavan

lim(2^(n 1)B(n,2n-1)(1 (2n-1)/3 (2n-1)(2n-3)/(3*5) ... (2n-1)(2n-3)*..*(n 3)/(3*5*..*(n-1))) ->pii.

Tässä B(n,2n-1) tarkoittaa binomikertoimen käänteislukua. n on parillinen. Parittomille n tulee hieman toisenlainen kaava.Laskennan helpottamiseksi ylläolevaa kaavaa voi vielä vähän yksinkertaistaa.
Piin laskeminen 1 milj. desimaalin tarkkuudella vei aikaa n. 5 tuntia. (2.6 GHz prosessorin tietokoneella). Kaava on siitä huono että tämä alkaa olla yläraja laskentatarkkuudelle, sillä esim. 10 milj numeron laskeminen veisi aikaa jo 3 viikkoa. Tämä piin lauseke on hyvin helppo ohjelmoida kun on ensiksi tehnyt ohjelmat suurten lukujen laskemiseksi, yhteenlaskun, kertolaskun ja jakojaskun.

2. Talvella johdin edellisestä kaavan

pii=2 2*S(j!/(2j 1)!! , j=1,2,3...

Tässä S tarkoittaa sitä mitä yleensä merkitään sigmalla.
Tällä kaavalla laskin kokeeksi piin 100 000 desimaalia, ja tehtävästä se selvisi 1 min. 52 sek'ssa. Tämä on noin kaksi kertaa nopeampi kuin kaava 1. Pienten pii-arvojen laskemiseksi nämä ovat nopeita kaavoja. Esim 4000 desimaalia tulee silänräpäyksessä.

5000 merkkiä jäljellä

Peruuta