Einträge mit dem Tag ‘Zahlen’

Tags:

Ich bin in den letzten Wochen ein wenig in die axiomatische Mengenlehre gerutscht. Das meiste ist ziemlich einfach und einleuchtend. Auch bei habe ich nicht zweimal hingesehen.

Bei allerdings schon.

Stimmt aber. Sauber aus den Axiomen hergeleitet und konsistent.

Kein Kommentar

Lexika sind gefährlich: es gibt lauter Querverweise, und wenn man ihnen folgt, kann man sich schnell verirren. Vor allem, wenn es sich um ein so riesiges Lexikon wie die Wikipedia handelt.
Heute bin ich auf bei Pratchett gestartet -- eigentlich wollte ich nur wissen, wie Rincewind auf deutsch heißt -- und über die Sprache Ook! bei den esoterischen Programmiersprachen gelandet. Einige davon kannte ich bereits: zum Beispiel Whitespace, bei der das gesamte Programm nur aus Leerzeichen, Tabulatoren und Zeilenumbrüchen besteht; oder die extrem spartanische Sprache Brainfuck.

Neu war mir dagegen Malbolge: diese Sprache ist sozusagen die achte Hölle für Programmierer, denn sie ist darauf ausgelegt, möglichst schwer beherrschbar zu sein. So hat es zum Beispiel zwei Jahre gedauert, bis das erste Malbolge-Programm entwickelt war. Wohlgemerkt: es geht hier nicht um irgendetwas Praxistaugliches, sondern um ein Mini-Programm, das nichts weiter tut als Hello World auszugeben.

Irgendwie bin ich außerdem bei eher unhandlichen mathematischen Konzepten gelandet, zum Beispiel bei der Ackermannfunktion: die Idee ist hier, eine möglichst schnell wachsende Funktion zu konstruieren. In der Praxis gelten exp(x) und die Fakultät (n!) schon als schnell wachsend, aber de Ackermannfunktion stellt diese noch in den Schatten, indem sie die Reihe a+b, a·b, ab, ... sinnvoll fortsetzt.

Ja, und von dort war es auch nicht mehr weit bis zu den aberwitzig großen Zahlen. Ich rede hier nicht von so Winzigkeiten wie etwa der Zahl der Atome im Universum -- im Netz findet man unter anderem die Schätzung 1078. Das ist zwar eine Eins mit 78 Nullen, aber die läßt sich ja mithilfe der in der Physik üblichen Exponentialschreibweise noch ganz kompakt darstellen. Zur Not paßt 1000000000000000000000000000000000000000000000000000000000000000000000000000000 sogar ausgeschrieben noch in eine Zeile.

Grahams Zahl -- laut Guinness' Buch der Rekorde die größte in einem mathematischen Beweis verwandte Zahl -- ist von anderem Kaliber. Man schreibt sie kurz als G64, wobei natürlich G noch definiert werden muß. Lange Erklärungen spare ich mir hier, nur soviel sei gesagt: G0=4, aber G1 ist bereits so groß, daß es sich auch in der Exponentialdarstellung nicht mehr aufschreiben läßt. G2 ist dann entsprechend viel gigantischer, und so weiter.

Gute Nacht!

[Edit: 1054<1078]

Kein Kommentar

Heute habe ich gelernt: auch Mathematiker kennen die Lange Gerade. Außerdem: die Sorgenfrey-Ebene ist total unzusammenhängend. Das habe ich mir nicht ausgedacht.

Kein Kommentar

Wirklich witzige Google-Anfragen kann ich aus letzter Zeit leider nicht vermelden. Festzustellen bleibt lediglich, daß sich immer wieder Leute hierhin verirren, die auf ihre Fragen fast eine Antwort bekommen -- dann aber keinen Kommentar hinterlassen, sondern wortlos wieder abziehen. Wer nach povray mandelbulb sucht, will doch sicher den Code für das Fraktal in einer Form haben, die von PoV-Ray gelesen werden kann? Naja, vielleicht hilft es ja doch noch jemandem, wenn auch der ursprüngliche Besucher längst weg ist (siehe unten).

Außerdem: mein Hauptblog läßt sich wunderbar über Google finden; das Nibelungen-Projekt aber nur über die Blog-Suche. Das finde ich ein bißchen frustrierend, weil es für die Besucherzahlen alles andere als förderlich ist. Naja, vielleicht sollte ich trotzdem noch ein paar Seiten ablichten und vor allem auch transkribieren, damit die Suchmaschinen ein bißchen mehr Text zum Zerkauen haben.

So, das war's auch schon für heute. Ach ja, der Code:

#declare iteratex = function (x, y, z, a) {
a + pow(f_sphere(x,y,z,0),4)*sin(f_ph(y,z,x)*8)
*cos(f_th(y,z,x)*8)}
#declare iteratey = function(x, y, z, b) {
b + pow(f_sphere(x,y,z,0),4)*sin(f_ph(y,z,x)*8)
*sin(f_th(y,z,x)*8)}
#declare iteratez = function(x, y, z, c) {
c + pow(f_sphere(x,y,z,0),4)*cos(f_ph(y,z,x)*8)
}
isosurface {
function {
f_sphere(iteratex(iteratex(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), x),
iteratey(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), y),
iteratez(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), z), x),
iteratey(iteratex(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), x),
iteratey(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), y),
iteratez(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), z), y),
iteratez(iteratex(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), x),
iteratey(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), y),
iteratez(iteratex(x,y,z,x), iteratey(x,y,z,y), iteratez(x,y,z,z), z), z), 2)
}
}

[Edit: Typo in den Metadaten]

Kein Kommentar

Heute gibt es mal wieder ein neues Eckchen (das untere rechte nämlich) in der Reihe des Mandelbulb-Mosaiks. Inzwischen sind die wesentlichen Teile beisammen, und man könnte sich langsam Gedanken über den nächsten Schritt machen, etwa näher heranzugehen. Eine noch höhere Ordnung ist ohne Software-Optimierung wohl nicht sinnvoll.

Kein Kommentarenglish

Diesmal hat es wieder ein bißchen länger gedauert, deshalb gibt es auch ein größeres Stück: die rechte obere Ecke ist fertig -- jedenfalls so weit das Fraktal reich; den Hintergrund reiche ich irgendwann noch nach.

Los ging's übrigens hier, und die ganze Serie findet man per Tag.

Kein Kommentarenglish

Heute habe ich nur eine kleine Briefmarke im oberen Bereich gerechnet, aber dafür ging's auch recht schnell.

Kein Kommentarenglish

Heute ist das Puzzle ein kleines Stückchen weiter.

Kein Kommentarenglish

Vor einiger Zeit hatte ich angekündigt, für ein neues Bild der Mandelbulb eine weitere Iterationsstufe zu berechnen. Leider hat sich PoV-Ray dabei als noch langsamer als befürchtet erwiesen. Damit ich nicht völlig allein meinem Rechner beim Rechnen zusehen muß, gibt es hier eine Vorschau mit drei Iterationsschritten -- nach gut einer Woche kann man schonmal ein bißchen sehen, wie das aussehen wird, wenn es fertig ist. Damit das Bild richtig wirkt, sollte man es sich in groß ansehen.

Zugegeben, ein paar Schritte mehr könnten nicht schaden, die Details auf den Bildern von Daniel White sind (bei zehn Schritten) viel feiner.

2 Kommentareenglish

Neulich hatte ich mehr zu Mandelbulb, einem dreidimensionalen Fraktal aus der Verwandtschaft des Apfelmännchens versprochen. Jetzt ist -- nach mehreren Tagen Rechenzeit auf einer Zweiprozessormaschine -- endlich der erste Film fertig.

Doch zunächst möchte ich etwas über Folgen erzählen. Folgen sind, nun ja: einfach Aneinanderreihungen von Zahlen; dabei soll das Aneinanderreihen natürlich gewissen Regeln folgen.

Versuchen wir zum Beispiel, eine Zahl immer wieder zu quadrieren: 2, 4, 16, 256, 32768, ...  -- dann bekommen wir ziemlich schnell ziemlich große Zahlen. Das muß aber nicht so sein -- fangen wir doch einfach mit einer kleineren Zahl an, zum Beispiel so: 1, 1, 1, ... -- zugegeben, das ist etwas langweilig: 12=1, da ist wenig Abwechslung. Vielleicht besser so: 0.1, 0.01, 0.0001, ... -- jetzt wird die Folge sogar immer kleiner. Also: wenn wir auf diese Weise eine Zahl kleiner als Eins fortlaufen quadrieren, so werden die Zahlen immer kleiner; Zahlen größer als Eins werden immer größer, und die Eins selbst bleibt gleich. Daran ändert sich übrigens nicht viel, wenn wir auch negative Anfangswerte zulassen -- das Minuszeichen fällt im ersten Schritt weg, und dann geht es weiter wie bekannt. Wenn wir uns also den Zahlenstrahl aus der Schule aufmalen, dann könnte das etwa so aussehen:

Zahlenstrahl

Alles, was zwischen -1 und +1 liegt, bleibt endlich; alle anderen Zahlen werden durch das Quadrieren immer größer. Wir könnten jetzt unsere Rechenvorschrift (das Quadrieren) komplizierter machen, aber lustige Bilder werden wir auf diese Weise nicht erhalten: der Zahlenstrahl ist ja nur eine einzige Linie, was kann man daraus schon groß machen? Schöner wäre es, wenn wir eine Fläche hätten, etwa so:

C-Ebene

Nur: wie verteilen wir unsere Zahlen darauf? Das ist in der Mathematik zum Glück kein Problem: wir denken uns einfach neue Zahlen aus, so daß wir nicht nur links von der Eins die Null und rechts die Zwei haben, sondern auch über und unter der Eins noch Zahlen hinschreiben können. Jetzt müssen wir nur noch überlegen, wie wir diese Zahlen quadrieren können, und das machen wir so:

C-MultWir denken unz zu jeder Zahl eine Art Uhrzeiger. Wenn wir die Zahl quadrieren wollen, dann quadrieren wir zuerst einfach seine Länge. Außerdem drehen wir den Zeiger ein Stück weiter: aus ein Uhr wird zwei Uhr, aus drei Uhr wird sechs Uhr, und aus vier Uhr wird acht Uhr. Bevor jetzt jemand fragt: bei den Mathematikern gehen die Uhren linksherum; und in diesem speziellen Fall fängt man auch gerne rechts statt oben an mit null Uhr.

Diese Definition mag ein bißchen seltsam wirken, aber sie hat einen großen Vorteil: wenn wir uns Zahlen auf dem guten alten Zahlenstrahl ansehen, dann liegen die ja auf null Uhr (die positiven) oder auf sechs Uhr (die negativen); und wenn wir die jetzt nach der neuen Regel quadrieren, dann drehen wir die positiven gar nicht (sie stehen ja, wie gesagt, auf null Uhr), und die negativen von sechs auf zwölf Uhr -- oder eben wieder null. Also: nach dem Quadrieren landen alle Zahlen vom Zahlenstrahl wieder auf der positiven Hälfte des Strahls, und weil wir ja die Zeigerlängen außerdem quadrieren, erhalten wir das selbe Ergebnis wie bei der Rechnung nach Schulregeln.

C-KonvergenzJetzt gehen wir nochmals zu den Folgen zurück und quadrieren munter drauflos. Das Ergebnis ist recht einleuchtend: unsere Zeigerzahlen drehen sich wild im Kreis, aber alle Zeiger länger als Eins wachsen ins unermeßliche, während die kürzeren ins Nichts schrumpfen.

Damit haben wir immerhin ein kleines Bild, wenn auch kein besonders aufregendes: einen Kreis mit dem Radius eins nämlich, der alle die Zahlen bezeichnet, die beim Quadrieren immer weiter schrumpfen.

Es mag einleuchten, daß man mit einer komplizierteren Rechenvorschrift auch komplexere Bilder erzeugen kann. Wer jetzt aber glaubt, daß man eine die Regel sehr viel komplizierter machen muß, der hat sich getäuscht: wie wäre es zum Beispiel, wenn wir unsere Zahl immer abwechselnd quadrieren und addieren? Das ginge dann so: 12=1, 1+1=2, 22=4, 4+1=5, 52=25; also: 1, 2, 4, 5, 25, ... und die Zahlen werden immer größer. Bei den negativen gibt es aber eine kleine Überraschung: -22=4, 4+(-2)=2, 22=4, 4+(-2)=2... hier kommen wir über die Zwei nicht hinaus! Wir werden also, wenn wir wieder alle konvergenten Folgen (also die, die endlich bleiben) schwarz anmalen, keinen Kreis erhalten: die +1 müßte ja weiß bleiben, die -2 hingegen wäre schwarz. Ein Oval vielleicht? Es ist auf Anhieb nicht klar, was mit unseren Uhrenzahlen[1] passieren würde, und so hilft es nur, den Computer zuhilfe zu nehmen und das Bild auszurechnen -- und dann passiert das:

Mandelset

Ich finde es überraschend und sehr erstaunlich, daß aus einer so einfachen Formel ein so komplexes Gebilde entsteht, und gerade diese Einfachheit macht für mich einen Großteil der Schönheit des Apfelmännchens aus: bekommt man doch soviel mehr heraus, als man hineingesteckt hat.

Zu guter Letzt möchte ich noch meinen Film von der dreidimensionalen Variante zeigen. Wie man hier rechnet, erkläre ich aber erst im nächsten Blogeintrag. Wenn das Fraktal hier recht glatt erscheint (während doch das zweidimensionale Apfelmännchen arg pieksig wirkt), so liegt das nicht in der Natur der Sache; vielmehr habe ich, um überhaupt in sinnvoller Zeit zu einem Ergebnis zu kommen, nur die ersten zwei Schritte der Folgen berechnet. Um ein realistischeres Bild zu erhalten, hätte ich zehn Schritte rechnen müssen. Und an der pixeligen Struktur arbeite ich auch noch...

[1]Der aufmerksame Leser mag bemerken, daß wir oben zwar das Quadrieren, nicht aber die Addition der Uhrenzahlen definiert haben. Letztere ist aber recht einfach: um zwei Zeiger zu addieren, verschieben wir einen von ihnen so, daß sein Fußpunkt an der Spitze des anderen zu liegen kommt; seine Richtung soll er dabei nicht verändern. Die Summe der beiden ist dann ein neuer Zeiger, der vom Fußpunkt des unverschobenen zur Spitze des verschobenen Zeigers geht. Wer mit dem Konzept der Vektorrechnung vertraut ist, wird hier die Vektoraddition erkennen[2].

[2]Und wer mit dem Konzept der komplexen Zahlen vertraut ist, wird diese in unseren Uhrenzahlen erkennen.

1 Kommentarenglish