Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [Zo ongeveer opgelost] Pi en e berekenen  (gelezen 4059 keer)

Offline Thijsg

  • Lid
  • Steunpunt: Nee
[Zo ongeveer opgelost] Pi en e berekenen
« Gepost op: 2010/04/05, 16:10:41 »
Hallo allemaal,

Laatst las ik op Wikipedia een manier om het getal e (2,718281828459...) te berekenen. Dat blijkt te kunnen met:
1/0! + 1/1! + 1/2! + 1/3! + 1/4! enz.
Dit heb ik eens ingevoerd in het stamboomprogramma Aldfaer, maar ik wilde het toch op een normale manier doen. Ik heb gekozen voor Bash, want daar heb je naast een terminal alleen een sh-bestandje voor nodig. Beginnen is dus makkelijk. Helaas kom ik maar tot 18 cijfers achter de komma, want Bash kan maar in 64 bits tellen.

Is het mogelijk om met Bash cijfers tot in het schier oneindige te berekenen? Zo niet, wat is daar een goed alternatief voor? Voorlopig ben ik alleen geïnteresseerd in een beetje rekenen, dus hoef ik niet veel te weten.

Als het berekenen van e gelukt is, zou ik ook wel eens willen kijken naar pi. Op Wikipedia staat daar het volgende: http://nl.wikipedia.org/wiki/Algoritmes_om_pi_te_bepalen. Dit is geschreven in C. Is het mogelijk om dit in Bash te doen? Zo niet, hoe kan ik dit scriptje (of programma) uitvoeren?

Groeten,
Thijs
« Laatst bewerkt op: 2010/04/05, 22:40:03 door Thijsg »

Offline Rachid

  • Vertaalteam
    • rachidbm
    • Mijn blog
  • Steunpunt: Nee
Re: Bash: Pi en e berekenen
« Reactie #1 Gepost op: 2010/04/05, 21:21:53 »
De scripttaal bash is handig om programmaatjes aan te sturen en commando's uit te voeren e.d. Echt rekenen is het niet voor bedoelt.
Voor dit soort dingen zou ik toch naar een programmeertaal kijken. Er zijn er heel veel.
Voor die dingetjes uitrekenen maakt het niet zo heel veel uit welke taal je pakt.
Verder is matlab bedoeld om wiskundige berekeningen te doen. Maar ik weet niet of dat te uitgebreid is voor wat jij wilt.


Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline Thijsg

  • Lid
  • Steunpunt: Nee
Re: Bash: Pi en e berekenen
« Reactie #2 Gepost op: 2010/04/05, 21:46:14 »
De scripttaal bash is handig om programmaatjes aan te sturen en commando's uit te voeren e.d. Echt rekenen is het niet voor bedoelt.
Voor dit soort dingen zou ik toch naar een programmeertaal kijken. Er zijn er heel veel.
Voor die dingetjes uitrekenen maakt het niet zo heel veel uit welke taal je pakt.
Verder is matlab bedoeld om wiskundige berekeningen te doen. Maar ik weet niet of dat te uitgebreid is voor wat jij wilt.
Bij Mathlab zie ik termen als trial staan, en verder is het denk ik ook te uitgebreid.

Ik zal een andere programmeertaal moeten zoeken, maar heb geen idee hoe dat moet. Bash kan uitgevoerd worden met een terminal en een bestandje, dat vind ik wel heel handig; ik houd het graag simpel. Hoe kan ik beginnen met Python of C? Welke software moet ik dan downloaden om een bestandje uit te kunnen voeren.

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: Bash: Pi en e berekenen
« Reactie #3 Gepost op: 2010/04/05, 21:59:59 »
Python staat standaard geinstalleerd, gewoon python typen in de terminal :).

Offline Thijsg

  • Lid
  • Steunpunt: Nee
Re: Bash: Pi en e berekenen
« Reactie #4 Gepost op: 2010/04/05, 22:04:05 »
Python staat standaard geinstalleerd, gewoon python typen in de terminal :).
Kan ik daarin ook bestandjes uitvoeren? Dat heb ik namelijk nog niet ontdekt.

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: Bash: Pi en e berekenen
« Reactie #5 Gepost op: 2010/04/05, 22:06:08 »
Dat kan inderdaad ook. Gewoon een nieuw tekstbestand aanmaken met de .py extensie, daarin uw code zetten en uitvoeren met python scriptnaam.py in de terminal.

De interactieve shell is heel handig als ge snel dingen wilt testen.

Offline Thijsg

  • Lid
  • Steunpunt: Nee
Re: Bash: Pi en e berekenen
« Reactie #6 Gepost op: 2010/04/05, 22:19:04 »
Mijn eerste code XD:
n = 5+6
print n

Bedankt voor het opstapje, ik ga eens kijken of ik verder kom.

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: Bash: Pi en e berekenen
« Reactie #7 Gepost op: 2010/04/05, 22:20:56 »
print 5 + 6
Werkt ook gewoon :). Het is niet nodig om zulke dingetjes in een variabele te steken.

Kijk eens op de wiki, enkele leden hebben een boek vertaald naar het nederlands.

Offline Thijsg

  • Lid
  • Steunpunt: Nee
Re: Bash: Pi en e berekenen
« Reactie #8 Gepost op: 2010/04/05, 22:23:25 »
print 5 + 6
Werkt ook gewoon :). Het is niet nodig om zulke dingetjes in een variabele te steken.

Kijk eens op de wiki, enkele leden hebben een boek vertaald naar het nederlands.
Ah, inderdaad, bedankt. Ik had eerst "5+6" staan, maar dat lukte niet.

Offline Rachid

  • Vertaalteam
    • rachidbm
    • Mijn blog
  • Steunpunt: Nee
Re: [Zo ongeveer opgelost] Pi en e berekenen
« Reactie #9 Gepost op: 2010/04/06, 12:02:51 »
BTW, je kunt python toch net zoals bash starten.
Dus bovenaan zet je: #!/usr/bin/python  ipv bin/bash
En een chmod +x script.py

Daarna kun je em net zo aanroepen als bash scritpts.
./script.py
Succes verder ;)
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline Thijsg

  • Lid
  • Steunpunt: Nee
Re: [Zo ongeveer opgelost] Pi en e berekenen
« Reactie #10 Gepost op: 2010/04/06, 12:07:42 »
Bedankt maar "python Pi.py" vind ik toch handiger. Mensen schijnen beter woorden te kunnen onthouden dan dat ze dat kunnen bij tekens. ;) Overigens is het mij al gelukt om het getal e tot 1999 cijfers achter de komma te berekenen. 8)

Offline Typhoner

  • Lid
    • http://typhoner.blogspot.com/
  • Steunpunt: Nee
Re: [Zo ongeveer opgelost] Pi en e berekenen
« Reactie #11 Gepost op: 2010/04/10, 11:59:25 »
Bedankt maar "python Pi.py" vind ik toch handiger. Mensen schijnen beter woorden te kunnen onthouden dan dat ze dat kunnen bij tekens. ;) Overigens is het mij al gelukt om het getal e tot 1999 cijfers achter de komma te berekenen. 8)

De vraag is: schat je de fout ook nog af?  :rolleyes:

Offline rick.blub

  • Lid
  • Steunpunt: Nee
Re: [Zo ongeveer opgelost] Pi en e berekenen
« Reactie #12 Gepost op: 2010/04/10, 14:48:59 »
Grappig idee :lol:
Zou je voor de geïnteresseerden onder ons het script eens willen posten?  :rolleyes:
Volop Ubuntu 12.04 gebruiker.

Offline Thijsg

  • Lid
  • Steunpunt: Nee
Re: [Zo ongeveer opgelost] Pi en e berekenen
« Reactie #13 Gepost op: 2010/04/10, 15:43:20 »
Grappig idee :lol:
Zou je voor de geïnteresseerden onder ons het script eens willen posten?  :rolleyes:
Natuurlijk. ;)

E1:#!/usr/bin/python
# -*- coding: utf-8 -*-
f=open("/Thijs/Lossebestanden/Scriptjes/E1.txt","w")
d=1
import decimal
decimal.getcontext().prec = 2000
c = decimal.Decimal(1)
for a in range(1000):
a=a+1
c=c*a
d=d+(1/c)
print >>f, a,"-",d
print a,"-",d
Pi1:#!/usr/bin/python
# -*- coding: utf-8 -*-
#BBP-Algoritme van Bailey, Borwein en Plouffe
f=open("/Thijs/Lossebestanden/Scriptjes/Pi1.txt","w")
a=0
c=0
i=0
import decimal
decimal.getcontext().prec = 2000
b = decimal.Decimal(1)
for a in range(2000):
# c=b/16**a
# d=(4*b)/((8*a)+1)
# e=(2*b)/((8*a)+4)
# f=(1*b)/((8*a)+5)
# g=(1*b)/((8*a)+6)
# h=c*(d-e-f-g)
h=(b/16**a)*(((4*b)/((8*a)+1))-((2*b)/((8*a)+4))-((1*b)/((8*a)+5))-((1*b)/((8*a)+6)))
i=i+h
a=a+1
print >>f, a,"-",i
print a,"-",i
Pi2:#!/usr/bin/python
# -*- coding: utf-8 -*-
#Algoritme van Carl Friedrich Gauss en Adrien-Marie Legendre
f=open("/Thijs/Lossebestanden/Scriptjes/Pi2.txt","w")
import decimal
decimal.getcontext().prec = 2000
e = decimal.Decimal(1)
a=e
b=(e/2)**(e/2)
c=(e/4)
d=e
for k in range(20):
k=k+1
print k,",",(a+b)**2/(4*c)
print >>f,(a+b)**2/(4*c)
g=a
h=b
i=c
j=d
a=(g+h)/2
b=(g*h)**(e/2)
c=c-(j*(g-((g+h)/2))**2)
d=2*j

Als je deze bestandjes kopieert naar een .py-bestandje, kan je het uitvoeren met "python E1.py". /Thijs/Lossebestanden/Scriptjes/[Bestand].txt is de uitvoer, die kan je zelf aanpassen. Dat geldt ook voor het aantal decimalen (decimal.getcontext().prec = 2000)nauwkeurig en voor het aantal berekeningen (for a in range(1000):).