Apfelmännchen im Browser

Edit: Leider funktioniert das hier beschriebene Applet derzeit nicht, deshalb habe ich den Link dazu entfernt.

Darstellung der Mandelbrotmenge

Mandelbrotmenge

Nachdem ich vor kurzem ein sehr primitives Java-Applet mit Erklärung (Quellcode hier) geschrieben habe, mit dem sich das „Apfelmännchen“ (das heißt die Mandelbrotmenge) darstellen lässt, habe ich hier noch ein wesentlich komfortableres und funktionsreicheres Applet geschrieben, mit dem sich die Mandelbrotmenge untersuchen lässt. (Die ganzen Bilder der Mandelbrot-Menge hier im Blog sind auch damit berechnet.)

Weiterlesen

Farbmischung und Schuhsohle

Licht, das wir im Alltag sehen, setzt sich meistens aus einer Vielzahl unterschiedlicher Wellenlängen zusammen. Im Wellenlängenbereich den unser Auge wahrnehmen kann (ca. 380 nm bis 760 nm) entspricht jede Wellenlänge einer Farbe. Licht, das aus nur einer Wellenlänge besteht (kommt praktisch fast nur bei Gasentladungslampen und Lasern vor) hat dabei sehr kräftige Farben (Spektralfarben) und wird „monochromatisches Licht“ genannt.

Licht jeder anderen Farbe ist aus verschiedenen Wellenlängen zusammengesetzt. Für die Mischung jeder dieser Farben aus Licht unterschiedlicher Wellenlängen (additive Farbmischung) gibt es im Prinzip beliebig viele Möglichkeiten. Um darzustellen wie eine Farbe zustande kommen kann gibt es eine sogenannte Normfarbtafel.

Wie so eine Farbtafel aussieht sieht man beispielsweise in der Wikipedia. Da die Form ein bisschen an einen Schuh erinnert, wird sie manchmal auch als „Schuhsohle“ bezeichnet.

Auf der Farbtafel sind die monochromatischen Farben als Kurve eingezeichnet, wobei die beiden Enden die Grenzen des sichtbaren Wellenlängenbereichs darstellen. Alle anderen Farben liegen im Inneren dieser Kurve. Wenn man nun zwei monochromatische Lichtstrahlen (entsprechen unterschiedlichen Punkten auf der Kurve) im Verhältnis eins zu eins mischt, dann erhält man genau die Farbe, die auf der Farbtafel in der Mitte zwischen den beiden Punkten liegt. Wenn mehr Licht einer Farbe verwendet wurde, liegt der Punkt auf der Farbtafel entsprechend näher an der entsprechenden Farbe. Natürlich können auf diese Weise auch mehr als zwei Lichtwellenlängen oder Farben gemischt werden.

Eine genauere Beschreibung gibt es in der Wikipedia unter den Stichworten Farbmetrik und Normvalenzsystem.

Mehr zur Beschreibung von Licht folgt demnächst hier.

Die Erleuchtung – Licht messen und beschreiben

Licht spielt nicht nur im naturwissenschaftlichen Unterricht sondern auch im Alltag für uns eine wichtige Rolle (die meisten werden diesen Text mithilfe von Licht aufnehmen). Nachdem in der Schule selten wirklich übersichtlich dargestellt wird, was Helligkeit, Lichtstärke, Lichtstrom und diverse weitere Größen eigentlich sind und je nach Fach und Lehrer diese Größen auch nicht immer ganz korrekt verwendet werden, will ich mich in der nächsten Zeit unter anderem mit der Messung und Beschreibung von Licht beschäftigen.

Hier sind wie üblich die einzelnen Beiträge verlinkt:

Mandelbrotmenge einfach selbst programmiert

Darstellungen der Mandelbrotmenge (auch „Apfelmännchen“ genannt) sind mit das Schönste was die Mathematik zu bieten hat. Nachdem ich vor kurzem schon die mathematischen Grundlagen (.pdf-Datei) erklärt habe, will ich mich hier der Programmierung eines einfachen Java-Applets zur Anzeige des „Apfelmännchens“ widmen. Sowohl den vollständigen Programmcode als auch das eingebettete Applet finden Sie unten.

Wer weniger an der Technik als vielmehr am Herumspielen mit der Mandelbrotmenge interessiert ist, dem kann ich mein aufwändigeres Applet u.a. mit Zoomfunktion empfehlen.

An Mathematik brauchen wir nur die beiden Formeln (1) und (2) aus der Erklärung, die wir wie in der .pdf Datei unter „Wie kann ich das programmieren“ beschrieben berechnen. Hier sind die hier wesentlichen Abschnitte noch einmal als Auszug:

Die Formeln:

xn+1 = xn2 – y n2 + a
yn+1 = 2xnyn + b

Dies lässt sich nun ohne Kenntnis von komplexen Zahlen berechnen, wenn a und b bekannt sind (x0 = y0 = 0).

Die Beschreibung:

Um die Mandelbrot-Menge darstellen zu können, berechnet man für jeden Punkt des Bildes die Folge mit seinen Koordinaten a (üblicherweise nach rechts) und b (nach oben) entsprechend den Gleichungen oben. Dazu setzt man eine maximale Anzahl an Iterationen (das heißt Anzahl an Folgengliedern die berechnet werden) und prüft nach jeder Iteration ob x2+y2>4 ist. Falls ja, ist der Punkt mit den Koordinaten a und b definitiv nicht Teil der Mandelbrot-Menge. Wenn diese Bedingung nach einer bestimmten Anzahl an Iterationen noch nicht erfüllt ist, kann man mit hoher Wahrscheinlichkeit davon ausgehen, dass er Teil der Mandelbrot-Menge ist (je höher die Anzahl der Iterationen desto sicherer das Ergebnis). Die Punkte, die zur Mandelbrot-Menge gehören, werden dann (meist schwarz) eingefärbt.

Dabei muss man aufpassen, dass man bei der Berechnung des zweiten Terms nicht schon mit dem neuen Ergebnis aus der ersten Berechnung arbeitet. Umgesetzt in Java sieht die Funktion zur Berechnung, ob ein Punkt (wahrscheinlich) zur Mandelbrotmenge gehört dann folgendermaßen aus:
Weiterlesen

Apfelmännchen für die Schule

Die als „Apfelmännchen“ bekannte Mandelbrot-Menge ist wahrscheinlich eines der schönsten Fraktale überhaupt. Die Berechnung, die zum Apfelmännchen führt, enthält jedoch komplexe Zahlen und ist deshalb normalerweise für Nichtmathematiker – insbesondere auch für Schüler – nicht nachvollziehbar.

Zomm in Visualisierung der Mandelbrot-Menge

Zoom in eigener Berechnung

Ich hoffe jedoch, dass sich mit solchen, für jedermann schön anzusehenden Fraktalen, auch die Begeisterung für Mathematik wecken lässt. Deshalb habe ich versucht eine, für interessierte Schüler schon in der Mittelstufe verständliche, Einführung zu verfassen. Sie sollte zum Einen als kleine Ergänzung des Schulstoffs im Mathematikunterricht geeignet sein, zum Anderen beschreibt sie aber auch, mit welchen Mitteln die Mandelbrot-Menge berechnet und dargestellt werden kann, ganz ohne dass man sich komplexen Zahlen beschäftigen muss. Damit kann man sich beispielsweise im Informatikunterricht ganz auf den Programmaufbau und das Programmieren konzentrieren.

Der Text ist in mehrere Abschnitte unterteilt: Nach einer kurzen Erklärung der imaginären Einheit wird die Definition der Mandelbrot-Menge angegeben und so umgeformt, dass alles mit reellen Zahlen berechnet werden kann. Dann wird erklärt, wie sich das alles in einem Programm umsetzen lässt (hier gibt es noch eine ausführlichere Erklärung mit Quellcode und lauffähigem Java-Applet). Abschließend gibt es noch Anregungen, welche Verbesserungen am Programm noch vorgenommen werden könnten. Und für alle diejenigen, die die Tiefen der Mandelbrot-Menge einfach selbst erkunden wollen, gibt es von mir noch ein entsprechendes Programm, das im Browser läuft.

Die Erklärung des Apfelmännchens für Schüler kann hier als .pdf-Datei heruntergeladen werden.

Vom „Apfelmännchen“: Die Mandelbrot-Menge

Darstellung der Mandelbrotmenge

Die Mandelbrot-Menge ist ein Fraktal, das oft als das formenreichste geometrische Gebilde überhaupt bezeichnet wird. In die Randbereiche einer Darstellung dieser Menge (oft als „Apfelmännchen“ bezeichnet) kann man beliebig weit hinein zoomen und immer wieder neue, feinere Muster erkennen.

Da auf aktuellen Computern solche Bilder in Sekundenschnelle berechnet werden können, kann auch jeder selbst Fraktale erkunden oder sich mit den mathematischen Grundlagen dieser Gebilde auseinandersetzen.

Teil der Mandelbrot-Menge

Randbereich des Apfelmännchens

In der nächsten Zeit möchte ich zu diesem Thema verschiedene Beiträge verfassen, und hoffe, dass ich damit insbesondere Interessierte ohne besondere Fachkenntnisse auf diesem Gebiet für dieses und andere Fraktale begeistern kann.

Meine Beiträge zum Thema:

Programmierwettbewerbe

Wer gerne einfach so für sich programmiert, obwohl – oder gerade weil – er es nicht tun muss, hat oft wenig Austausch mit anderen. Eine Möglichkeit sich mit Anderen zu vergleichen und eventuell auch Gleichgesinnte zu treffen sind unterschiedliche Wettbewerbe.

Exemplarisch habe ich hier drei recht unterschiedliche Informatik- beziehungsweise Programmierwettbewerbe zusammengestellt:

Bundeswettbewerb Informatik

Dieser Wettbewerb startet jedes Jahr im September (ich habe hier schon darüber berichtet) und läuft über mehrere Runden. In jeder Runde muss eine Reihe von Aufgaben bearbeitet werden, wobei nicht nur auf die Funktionalität des Codes sondern vor allem auch auf die Dokumentation der Lösung Wert gelegt wird. Die Programmiersprache kann fast beliebig gewählt werden.

Dieser Wettbewerb richtet sich nur an Interessierte, die noch keine entsprechende Ausbildung begonnen haben (schwerpunktmäßig an Schüler). In den späteren Runden ist keine Gruppenarbeit mehr erlaubt und die Aufgaben müssen komplett eigenständig bearbeitet werden. Zu gewinnen gibt es am Ende unter anderem Geldpreise und Stipendien.

Edit: Meine Kommentare zum aktuellen Wettbewerb gibt es hier.

Robocode

Robocode ist ein Spiel bei dem in Java virtuelle Roboter dafür programmiert werden, auf Wettbewerben gegeneinander kämpfen zu können. Zum englischen Spiel steht auch ein (inoffizielle?) deutsche Seite bereit. Das Ganze ist recht einsteigerfreundlich gestaltet, sodass auch Programmierer mit wenig Erfahrung schnell funktionierende Roboter entwickeln können. Um sich mit den anspruchsvolleren Demobots messen zu können braucht es dann allerdings schon etwas länger.

Hier kann grundsätzlich jeder mitmachen und Gruppen können ohne viel Aufwand auch selbst Wettbewerbe gegeneinander veranstalten.

Al Zimmermann’s Programming Contests

Edit: Die Website des „Al Zimmermann’s Programming Contests“ scheint nicht mehr in Betrieb zu sein. Als Alternative mit ähnlichen Wettbewerben empfehle ich die Seite „Infinite Search Space“.

Bei diesem Wettbewerb wird – ein bis zwei Mal jährlich – genaugenommen eine mathematische Aufgabe gestellt, die jeder lösen darf wie er möchte. Praktisch erfordert die perfekte Lösung dieser Aufgabe allerdings deutlich mehr Rechenleistung als irgendeinem Wettbewerbsteilnehmer zur Verfügung stehen dürfte. Je besser die Lösung ist, desto mehr Punkte gibt es für eine Teilaufgabe. Es kommt also darauf an, ein möglichst effizientes Programm zu schreiben (dabei schadet ein bisschen Mathematik sicherlich nicht) und dieses dann längere Zeit rechnen zu lassen.

Hier ist die Zusammenarbeit (der Austausch von Code und Lösungen) mit anderen angemeldeten Teilnehmern verboten, die Zusammenarbeit mit Freunden, die nicht selbst teilnehmen, ist dagegen ausdrücklich erlaubt. Zu gewinnen gibt es hier für die besten beiden Teilnehmer mathematische Skulpturen.

Ein Blog in der -roll

Ich habe neulich meine Blogroll aufgeräumt. Nachdem “Heureka!” wegen Inaktivität aussortiert wurde, findet sich dort im Moment nur noch ein echtes Blog: Astrodicticum simplex (Ich werde bei Gelegenheit mal wieder ein paar dazu setzen). Da längere Kommentare in der Blogroll dazu führen würden, dass sie diese Bezeichnung nicht mehr verdient und auch praktische Erwägungen gegen Romane in der Sidebar sprechen könnten, hier eine kleine, nicht repräsentative Rezension des verbliebenen Blogs:

Eigentlich ist es wohl ein Astronomie-Blog – und würde mich als solches wahrscheinlich wenig interessieren: Ich will an dem Zeugs über das ich etwas wissen will lieber rumfrickeln können anstatt mir zu unmenschlichen Tageszeiten Nackenkrämpfe zu holen (ok, sicher mehr Klischee als Realität bei Astronomen und auch die wenigsten Physiker stehen heute noch den ganzen Tag neben ihren Experimenten, aber was soll ‘s). Tatsächlich ist die Astronomie im Blog aber fast nebensächlich, es geht um Höheres:

Oft schreibt der Autor über sehr allgemein naturwissenschaftliche Themen. Zur Zeit rezensiert (oder -seziert?) er kapitelweise das Buch “Der Drache in meiner Garage”, dass sich unter anderem mit der Rechtfertigung der (Natur-)Wissenschaften und Angriffen auf dieselben beschäftigt (in der Zusammenfassung sind die Rezensionen aller Kapitel verlinkt). Und in diesem Bereich bewegen sich auch viele seiner anderen Posts. Das heißt er schreibt beharrlich gegen Relativitätstheorie-Leugner, Astrologen und alle möglichen und unmöglichen (sonstigen) Parawissenschaftler an.

Und wenn er sie nicht gerade  verteidigt, bemüht er sich auch mal selbst um die Vermittlung von Wissenschaften. Einer der Höhepunkte war für mich eine Beitragsserie zu Chaos/Chaostheorie (im letzten Beitrag sind alle vorherigen verlinkt).