De Kunst van het Wetenschappelijk Rekenen


Veel Voorkomende Vragen



© 2003-2004 Piet Hut and Jun Makino Terug naar ACS home page.

Enkele veel voorkomende vragen:
Wat is het doel van het ACS project?

Ons doel, op langere termijn, is om een brug te slaan tussen deskundigen en amateurs met een gemeenschappelijke interesse in het toegankelijk maken van wetenschappelijke methoden op een praktische manier. Onze aanpak heeft veel gemeen met dat van de open-source bewegingen, waarvan het Linux project een bekend voorbeeld vormt.

Natuurwetenschap is allicht het oudste en grootste open-source project dat er ooit opgezet is. Vanaf de tijd van Galileo hebben meer dan twaalf generaties van wetenschappers samengewerkt om een schat aan nauwkeurige kennis te vergaren dat voor iedereen toegankelijk is, en traditionele grenzen tussen culturen en geloofsopvattingen ontsteigt.

Het ACS project is er op gericht om ons erfgoed van de achtiende eeuwse verlichtigsbeweging weer nieuw leven in te blazen. In die tijd werden ontwikkelde leken met open armen ontvangen in wetenschappelijke kringen, en werden zij aangemoedigd om wetenschappers te asissteren in hun onderzoekingen. Wat toen plaatsvond in salons met demonstratieve experimenten kan nu via het internet en op draagbare computers gebeuren.


Hoe kan ik met een N-lichamen code gaan spelen?

Een snelle manier om de smaak te pakken te krijgen is om ons oudere boek te lezen, Sterren Laten Bewegen. Dit boek vormt een volledige inleiding in 250 paginas, toegelicht met computer codes in C++. Het begint met eenvoudige integratieschemas, en leidt vandaar tot het Hermite schema. De lezers van het boek worden aangemoedigd om al snel zelf te gaan experimenteren met situaties zoals het laten ineenstorten van een oorspronkelijk koud systeem en de vorming van dubbelsterren. De lezers kunnen daarbij de codes vrijelijk aanpassen aan hun eigen interesse.

Een veel gedetailleerder behandeling van het N-lichamen probleem kunt u aantreffen in onze Kali code serie, die tot vele tientallen boekdelen zal uitgroeien. In deze serie boeken ontwikkelen we een professioneel software systeem voor simulaties van dichtbevolkte sterrenstelsels. Ook hier beginnen we helemaal aan het begin, met eenvoudige integrators voor het twee-lichamen probleem, voordat we een grote verscheidenheid aan integrators voor het algemene N-lichamen probleem aanbieden en verkennen.

Omdat velen van onze lezers allicht niet vertrouwd zijn met onze voorkeurstaal Ruby, hebben we een uitgebreide inleiding tot Ruby verwoven met onze discussie van de wis- en natuurkunde and andere aspecten van wat nodig is om het sterrenkundige N-lichamenprobleem te doorgronden.


Waarom gebruiken we Ruby?

Ruby combineert de flexibiliteit van een `scripting language' met de veelzijdigheid en robuustheid van een volledig `object-oriented' computer taal. Voor een grootschalig software project, zoals de Kali code, is het absoluut noodzakelijk om data in te kapselen, zoals dat bijvoorbeeld in C++ gebeurt. Het grote probleem hierbij is de vraag welke data structuren je het beste kunt bouwen, voor dit soort inkapselen. Wanneer je aan een nieuw project begint, weet je vooralsnog niet wat de beste structuren zullen zijn, totdat je een tijdlang ervaring opgedaan hebt met prototypes. In een vrij starre taal zoals C++ is het vrijwel onmogelijk om zomaar even snel iets in elkaar te draaien. In Ruby, daarentegen, is dat veel gemakkelijker. Dit soort flexibiliteit maakt Ruby ideaal voor het ontwerpen en ontwikkelen van goed doordachte en eenvoudig leesbare code, zonder dat je gedwongen wordt om de oude sporen van vorige edities te blijven volgen.


Is Ruby snel genoeg?

Nee. Ruby is op zich te langzaam voor serieuze wetenschappelijke toepassingen. Gelukkig is het vrij eenvoudig om een paar regels van een Ruby programma te vervangen door een klein stukje C programma, wat het uitvoeren van die regels heel veel sneller maakt. Omdat programmas over het algemeen de meeste tijd besteden in een klein onderdeel van de totale code, is het in de praktijk vrij gemakkelijk om de snelheid van een Ruby programma op hetzelfde peil te brengen als dat van een equivalent C programma. Zie Vol. 11: Speedup voor een aantal gedetailleerde voorbeelden.


Waarom schrijven we zoveel boekdelen?

De meeste wetenschappelijke boeken beschrijven een tak van wetenschap pas nadat er orde op zaken is gebracht, en de meeste losse eindjes aan elkaar geknoopt zijn. Op deze manier krijgen studenten een beeld voorgeschoteld van een net paadje dat rechtlijnig op zijn doel afloopt. Zo'n beeld heeft hoegenaamd niks te maken met de historische ontdekkingstochten langs allerlei kronkelpaden, met veel gissen en missen. Bovendien leren studenten met zo'n aanpak niet hoe je van je fouten kunt leren. Ons doel is om nu juist een gids te zijn van kronkelpaden. Wanneer je vertrouwd raakt met het process van het tasten in het duister, kun je pas echt beginnen om onderzoek te doen.

Ons oorspronkelijk plan was om de hele Kali serie in tien delen te laten uitkomen. Maar toen we eenmaal ons eerste deel, Moving Stars Around, af hadden en op het web hadden geplaatst in oktober 2003, werd het ons duidelijk dat: 1) totdat je probeert expliciet op te schrijven wat je tot dan toe alleen maar impliciet weet, heb je er werkelijk geen idee van hoeveel je wel niet weet; en 2) terwijl je aan het opschrijven bent, leer je bovendien veel nieuws, zodat je kennis nog verder groeit, vrijwel in hetzelfde tempo als waarmee je aan het schrijven bent.

Als gevolg van dit alles denken we nu dat we wel vele tientallen boeken zullen gaan schrijven, in de Kali serie.


Waar komt de naam Kali vandaan?

We hebben de naam ontleend aan het woord kali uit het Sanskriet, dat donker betekend, zoals in de uitdrukking kali yuga, de duistere tijden waar we ons nu in bevinden volgens de Hindoe mythologie. Hetzelfde woord wordt ook gebruikt als naam voor de godin Kali, die altijd als volkomen zwart afgebeeld wordt. The uitdrukking donker of duister leek ons toepasselijk voor ons project waarin we tot nog toe niet gearticuleerde kennis aan het licht willen brengen. Dit process, van het expliciet uitdrukken van wat voornamelijk een soort ambachtelijke kennis is, kan allicht niet direct leiden tot een logische reeks van precies geformuleerde uitdrukkingen. In plaats daarvan gebruiken een dialoogvorm, waarin we hopenlijk de informele en vaak minder zichtbare aspecten, inherent in elk ambacht, toch nog redelijk bespreekbaar kunnen maken.


Ik ben een sterrenkunde student. Is dit iets voor mij?

Jazeker: studenten zijn onze eerste doelgroep. We schrijven deze boeken eigenlijk voor onszelf, maar dan wel voor vroegere versies van onszelf, d.w.z. voor onszelf in onze jongere jaren, toen we nog student waren (en maar wat graag dit soort boeken in onze handen hadden gekregen). We hopen dat deze boeken en computer programmas nuttig blijken te zijn voor jullie eigen onderzoek. En verder hopen we ook dat jullie zelf bijdragen zullen maken tot het materiaal wat we hier gepresenteerd hebben. Wanneer jullie zelf variaties op de codes maken, met nieuwe toepassingen, kun je ons altijd aanschieten, door een emailtje naar ons te sturen. Voorzover we de tijd kunnen vinden, zullen we proberen jullie email allemaal te beantwoorden. Verder kun je aankondigingen vinden van zomerscholen, en andere activiteiten die we binnen het kader van ACS uitvoeren, op de web pagina Nieuws.

We raden jullie ook aan om zelf groepjes te vormen om daarin met elkaar je ervaring met het werken aan ACS te delen. Hoewel wij je af en toe best met raad en daad willen bijstaan, zullen jullie toch veel meer tijd aan elkaar kunnen besteden dan wij mogelijkerwijs kunnen uittrekken. Bovendien, hoe interessanter jullie groepswerk zal worden, hoe meer het ons zal lonen om met jullie aan tafel te gaan zitten om te helpen om de nieuwe interessante ideeen te implementeren waar jullie ongetwijfeld mee naar voren zullen komen.


Ik ben een sterrenkundige, en al gepromoveerd. Is dit iets voor mij?

Oh ja, zo lang je maar geinteresseerd ben in stersystemen met hoge dichtheden. Of je nu een waarnemer bent of een theoreet, het Kali project zal je vanaf 2005 meer en meer stukken gereedschap aan kunnen bieden om simulaties uit te voeren in een gebruikersvriendelijke omgeving. Onze presentatie is erop gericht om op eigen benen te staan, zonder veel achtergrondkennis te verwachten, afgezien van enkele algemene basisbegrippen in de astrofysica. Als je merkt dat er plekken zijn in onze uitleg waarin we te weinig details geven, dan zouden we het op prijs stellen als je contact met ons opneemt, om het ons te laten weten.


Ik ben een amateur sterrenkundige. Is dit iets voor mij?

Absoluut! Het is onze bedoeling dat je onze software kunt gaan gebruiken om zo een virtueel heelal te verkennen op je eigen computer, net zoals je het werkelijke heelal verkent met je telescoop. We hebben ons best gedaan om deze presentatie zoveel mogelijk los te laten staan van andere boeken, zodat je alles direct kunt lezen, zonder verdere benodigdheden. Hoewel we meer en meer suggesties zullen gaan vermelden voor het vinden van verdere achtergrondinformatie, is het echt onze bedoeling dat de boeken en programmas hier op zichzelf al direct bruikbaar zijn.

Als je op belangrijke begrippen stuit die wij gebruiken zonder dat we ze duidelijk uiteenzetten, dan stellen wij het op prijs als je ons daar even een berichtje over stuurt. Afhankelijk van hoe druk we het hebben, zal het al of niet mogelijk zijn om jullie allemaal individueel te bedanken. Maar ook al zouden we geen tijd hebben om je persoonlijk te bedankten, dan zullen we toch zeker je suggesties waarderen en serieus nemen.


Hoe kan ik meehelpen?

Omdat het ACS project nog vrijwel in de kinderschoenen staat, besteden we voorlopig onze meeste aandacht aan het schrijven van genoeg boekdelen om een volledig functioneel systeem op te zetten voor het werken met N-lichamen simulaties. We hopen deze beginfase ergens in 2005 af te kunnen ronden. Vanaf die tijd zullen er meer en meer gelegenheden zijn om ons te helpen in ons project om een virtueel sterrenkundig laboratorium op te zetten.

Zulke hulp kan vaste vormen aannemen als software ontwikkeling om ons project verder te ondersteunen, in een breed spectrum dat een wijd terrein bestrijkt: van gespecializeerde gebieden in numerieke methoden in de astrofysica tot heel algemene methodes op het gebied van graphics en user interfaces, en ook het paralellizeren van programmas. Verder zullen we ook zeker nog heel wat hulp nodig hebben in het overzetten van ons software systeem naar verschillende types computer en operating systems.

Alnaargelang ons project verder zal groeien, en het aantal gebruikers toe zal nemen, zullen we ook meer en meer vrijwilligers nodig hebben om ons te helpen om standaard vragen te beantwoorden, en om beginnende gebruikers een handje te helpen. Bovendien zal het ook prettig zijn als we wat meer hulp krijgen om een groter gedeelte van het materiaal hier vanuit het Engels in het Nederlands te vertalen, om zo een wijder publiek te kunnen bereiken.

Als je interesse hebt om een serieuze contributie te maken op een of meerdere van deze gebieden, dan zouden we het zeer op prijs stellen als je ons daarover aanschrijft.


Terug naar deACS home page.