Mathematik: Tanzende Kreise
Released by matroid on Fr. 08. April 2022 21:55:10 [Statistics]
Written by Triceratops - 367 x read [Outline] Printable version Printer-friendly version -  Choose language   
Spiele+Rätsel

\(\begingroup\)

Tanzende Kreise

Wie komplexe Systeme aus einer einfachen Regel entstehen können

In diesem Artikel schauen wir uns eine Simulation von Kreisen an, die folgende Regel befolgen: wenn sich zwei Kreise nahe genug sind, "tanzen" sie miteinander. Genauer gesagt sollen sie um den Mittelpunkt ihrer Mittelpunkte rotieren. Obwohl diese Regel so einfach ist, können daraus komplexe Systeme entstehen. Wir werden uns auch besonders schöne Konstellationen anschauen. Wenn die Kreise unterschiedliche Orientierungen haben, können sogar "schwarze Löcher" entstehen.


Der Artikel enthält einige Videos. Das Laden kann daher etwas dauern.

Die Tanzregel

Gegeben ist eine Menge von Kreisen in der Ebene. Sie haben unterschiedliche Positionen und Radien und bewegen sich zunächst nicht. Wir führen lediglich eine Regel ein: Wenn sich zwei Kreise "nahe genug" sind, dann sollen sie "miteinander tanzen". Genauer gesagt sei $d > 0$ eine feste Zahl, der Schwellenwert fürs "Tanzen". Wenn der Abstand* von zwei Kreisen $C,D$ kleiner als $d$ ist, dann sollen $C,D$ (zunächst im Uhrzeigersinn) um $M$ rotieren, wobei $M$ der Mittelpunkt ihrer Mittelpunkte $A,B$ ist:
\begin{tikzpicture}[nodes={inner sep=0pt}] \coordinate (A) at (0,0); \coordinate (B) at (3,0); \coordinate (M) at (+1.5,0); \draw[thick,fill=cyan!50!white] (A) circle(1cm); \draw[thick,fill=red!50!white] (B) circle(0.5cm); \node at (A) [left=4pt] {\footnotesize $A$}; \node at (M) [below=4pt] {\footnotesize $M$}; \node at (B) [right=4pt] {\footnotesize $B$}; \draw[thin,gray] (A) -- (B); \fill (A) circle(2pt); \fill (B) circle(2pt); \fill (M) circle(2pt); \draw[thick,->,dashed] (A) arc[start angle=180, end angle=90,radius=1.5cm]; \draw[thick,->,dashed] (B) arc[start angle=0, end angle=-90,radius=1.5cm]; \end{tikzpicture} \qquad\quad \begin{tikzpicture}[nodes={inner sep=0pt}] \coordinate (A) at (1.5,1.5); \coordinate (B) at (+1.5,-1.5); \coordinate (M) at (+1.5,0); \draw[thick,fill=cyan!50!white] (A) circle(1cm); \draw[thick,fill=red!50!white] (B) circle(0.5cm); \node at (A) [left=4pt] {\footnotesize $A$}; \node at (M) [right=4pt] {\footnotesize $M$}; \node at (B) [right=4pt] {\footnotesize $B$}; \draw[thin,gray] (A) -- (B); \fill (A) circle(2pt); \fill (B) circle(2pt); \fill (M) circle(2pt); \draw[thick,->,dashed] (A) arc[start angle=90, end angle=0,radius=1.5cm]; \draw[thick,->,dashed] (B) arc[start angle=270, end angle=180,radius=1.5cm]; \end{tikzpicture} \qquad\quad \begin{tikzpicture}[nodes={inner sep=0pt}] \coordinate (A) at (3,0); \coordinate (B) at (0,0); \coordinate (M) at (+1.5,0); \draw[thick,fill=cyan!50!white] (A) circle(1cm); \draw[thick,fill=red!50!white] (B) circle(0.5cm); \node at (A) [right=4pt] {\footnotesize $A$}; \node at (M) [below=4pt] {\footnotesize $M$}; \node at (B) [left=4pt] {\footnotesize $B$}; \draw[thin,gray] (A) -- (B); \fill (A) circle(2pt); \fill (B) circle(2pt); \fill (M) circle(2pt); \draw[thick,->,dashed] (A) arc[start angle=0, end angle=-90,radius=1.5cm]; \draw[thick,->,dashed] (B) arc[start angle=180, end angle=90,radius=1.5cm]; \end{tikzpicture}
*Der Abstand bezieht sich hier nicht auf die Mittelpunkte der Kreise, sondern auf deren Rand. Er ist also der Abstand der Mittelpunkte minus die Summe der beiden Radien. Spannend wird es dann, wenn wir mehr als zwei Kreise haben, weil die Regel dann auf einen einzelnen Kreis gleich mehrfach Anwendung finden kann:
\begin{tikzpicture}[nodes={inner sep=0pt}] \coordinate (A) at (0,0); \coordinate (B) at (5,0); \coordinate (C) at (2,1); \draw[thick,fill=cyan!50!white] (A) circle(0.3cm); \draw[thick,fill=red!50!white] (B) circle(0.5cm); \draw[thick,fill=green!50!white] (C) circle(0.2cm); \draw[thin,gray] (A) -- (C) -- (B); \draw[thick,->,dashed] (A) arc[start angle=210, end angle=120,radius=1.118cm]; \draw[thick,->,dashed] (C) arc[start angle=30, end angle=-60,radius=1.118cm]; \draw[thick,->,dashed] (B) arc[start angle=-15, end angle=-105,radius=1.581cm]; \draw[thick,->,dashed] (C) arc[start angle=165, end angle=75,radius=1.581cm]; \end{tikzpicture}
Eine graue Linie zwischen zwei Kreisen soll bedeuten, dass ihr Abstand im Moment kleiner als der Schwellenwert ist. Der Abstand zwischen dem roten und dem blauen Kreis ist also zu groß. Der grüne Kreis hat aber zwei "Tanzpartner" und ist gleich von zwei Rotationen gleichzeitig betroffen. Wir müssen aber eine Reihenfolge der Rotationen festlegen. Wir vereinbaren daher Folgendes: Die Kreise sind angeordnet, etwa $C_1,\dotsc,C_n$, und die obige Regel wird immer für das Paar $(C_i, C_j)$ ausgeführt, wobei wir erst $i=1,\dotsc,n$ und dann $j=i+1,\dotsc,n$ laufen lassen. Wir drehen dabei pro Frame immer um einen sehr kleinen Winkel. Das Endergebnis kann im Detail anders aussehen, wenn wir die Reihenfolge der Kreise und der Indizes oder des kleinen Winkels ändern, aber das soll uns hier nicht kümmern. Wir können auch zulassen, dass jeder Kreis eine eigene Orientierung hat (im oder entgegen den Uhrzeigersinn). Wenn wir im ersten Beispiel etwa dem roten Kreis eine andere Orientierung geben, fängt die Rotation so an:
\begin{tikzpicture}[nodes={inner sep=0pt}] \coordinate (A) at (0,0); \coordinate (B) at (3,0); \coordinate (M) at (+1.5,0); \draw[thick,fill=cyan!50!white] (A) circle(1cm); \draw[thick,fill=red!50!white] (B) circle(0.5cm); \node at (A) [left=4pt] {\footnotesize $A$}; \node at (M) [below=4pt] {\footnotesize $M$}; \node at (B) [right=4pt] {\footnotesize $B$}; \draw[thin,gray] (A) -- (B); \fill (A) circle(2pt); \fill (B) circle(2pt); \fill (M) circle(2pt); \draw[thick,->,dashed] (A) arc[start angle=180, end angle=120,radius=1.5cm]; \draw[thick,->,dashed] (B) arc[start angle=0, end angle=60,radius=1.5cm]; \end{tikzpicture}

Simulation

Ihr könnt euch die Simulation der tanzenden Kreise hier anschauen und selbst damit herumspielen: dancing-circles.netlify.app Neue Kreise kann man per Klick auf den Canvas hinzufügen (bzw. Tippen bei mobilen Geräten). Über das Menü lassen sich verschiedenste Sachen einstellen, zum Beispiel Größe und Orientierung des nächsten Kreises, den (globalen) Schwellenwert, aber man kann auch ein paar nette grafische Anpassungen machen. Alle Bilder und Videos aus diesem Artikel stammen von dieser Seite. Der Code ist dort verlinkt und setzt sich aus einfachem HTML, CSS und Vanilla JavaScript zusammen. Das Tanzen wird in der Methode applyDance() in der Circle-Klasse umgesetzt.
Kreise außerhalb des Canvas werden entfernt, um Speicherlecks zu verhindern. Die Animation wird in main.js mithilfe von requestAnimationFrame umgesetzt (hier etwas vereinfacht dargestellt):

Zwei Kreise

Bei zwei Kreisen derselben Orientierung passiert nicht viel. Entweder sind sie sich nahe genug und tanzen dann miteinander, oder sie bleiben unbewegt (wenn nicht gerade noch andere Kreise aus anderen Regionen der Simulation irgendwann dazustoßen):
Wenn die Orientierungen aber unterschiedlich sind, hauen sie zusammen ab:
Außerdem nähern sie sich immer näher an. Sie konvergieren gegen denselben Punkt. Dieser ist allerdings recht weit entfernt, sodass man ihn nur bei kleinen Kreisen noch auf dem Canvas sehen kann.

Drei Kreise

Es gibt drei Typen von "Dreiecken": Damit meine ich Konfigurationen von drei Kreisen derselben Orientierung und derselben Größe, die immer wieder miteinander tanzen. Beim ersten Typ sind alle drei Kreise immer miteinander verbunden.
Beim zweiten Typ gibt es stets zwei Verbindungen. Es gibt dabei einen Kreis, der in der Mitte "schwingt".
Beim dritten Typ gibt es abwechselnd eine oder zwei Verbindungen. Hier ist mir zum Beispiel nicht klar, ob das System periodisch ist. Von Rundungsfehlern in der Simulation ganz zu schweigen. In den Rotationen kommen ja trigonometrische Funktionen (wenngleich auch nur von rationalen Vielfachen von $\pi$) vor.
Hier deutet sich bereits etwas an, was man bei komplexeren Konstellationen noch besser sehen wird: Die Kreise werden "durchgereicht". Konkret wird hier immer Kreis 1 von Kreis 2 zu Kreis 3 zu gebracht, danach vertauschen sich die Rollen usw. Es gibt hiervon noch eine Variante (wenn man so will, vielleicht einen vierten Typ), bei dem es zwar auch nur eine oder zwei Verbindungen gibt, aber die zwei Verbindungen sich erst einmal ändern, bevor es wieder nur eine gibt. Die Wechsel treten dabei sehr schnell auf. Diese Variante ist relativ nahe zu Typ 1 und tritt immer dann auf, wenn das Dreieck beinahe gleichseitig ist.
Das sind alles zunächst einmal nur Beobachtungen. Ich habe sie nicht wirklich bewiesen. Findet ihr noch weitere Typen? Wenn man Kreise unterschiedlicher Größe nimmt, ist das ganze auch nicht mehr so eindeutig und die obigen Typen können sich abwechseln.

Änderung der Orientierung

Wenn man einen Kreis mit einer anderen Orientierung ins Spiel bringt, und zwei Kreise mit unterschiedlicher Orientierung nicht sofort davon sausen, entsteht ein interessantes Pendel:
Allerdings wird die Drehbewegung hier immer kleiner. Die Kreise kommen zwar nie zum Stillstand, aber sie konvergieren gegen denselben Punkt. Wir haben damit unser erstes "Schwarzes Loch" erschaffen – mehr dazu später.

Vier Kreise

Bei vier Kreisen ist eine Klassifikation nicht so einfach (vielleicht sogar aussichtslos?). Hier ein paar schöne Beispiele. Besonders schön finde ich das "Doppel-Duo":
und die "Schlange":
Hier darf jeder mal im Mittelpunkt stehen (ein paar Schnitte sind drin, damit man es schneller sieht):
Hier gibt es zunächst eine schöne regelmäßige Rauten-Formation, die sich dann aber immer mal wieder auflöst und neu entsteht:
Meistens ist aber schon bei vier Kreisen das Verhalten nicht vorhersehbar:

Chaos

Bei noch mehr Kreisen ist das System völlig chaotisch. Wenn man den Schwellenwert vergrößert, nimmt das Chaos sogar noch weiter zu:
Wenn die Kreise verschiedene Größen haben, wirkt das ganze wie eine Maschine, bei der die großen Kreise von den kleinen weitergereicht werden:
Wenn die Kreise einen Radius von 1 Pixen haben – rein mathematisch könnte man sie natürlich auch durch Punkte ersetzen – sieht das ganze wie ein Netzwerk aus, über das Informationen ausgetauscht werden.
Ohne die Linien hingegen sieht es aus wie ein Haufen Ameisen, die "irgendetwas organisieren" (wer weiß schon was genau!). Hier noch einmal eine kurze Erinnerung daran, dass diese ganzen komplexen Systeme aus einer einzigen Regel entstanden sind!

Schwarze Löcher

„Ein Schwarzes Loch ist ein Objekt, dessen Masse auf ein extrem kleines Volumen konzentriert ist und infolge dieser Kompaktheit in seiner unmittelbaren Umgebung eine so starke Gravitation erzeugt, dass nicht einmal das Licht diesen Bereich verlassen oder durchlaufen kann.” (Wikipedia)
Wir können "schwarze Löcher" auch mit unserer Simulation erzeugen. Dabei stellen wir uns vor, dass die Masse eines Kreises proportional zu seiner Fläche ist, und die Masse des schwarzen Loches die Summe der Massen aller in ihm einverleibten Kreise ist. Das erste Beispiel hatten wir bereits beim Dreieck gesehen, wo ein Kreis eine andere Orientierung hat. Noch offensichtlicher und eindrucksvoller wird das ganze allerdings, wenn wir mit einer komplexeren Konstellation von Kreisen starten, die zum Beispiel alle im Uhrzeigersinn orientiert sind, und dann einen Kreis $S$ mit der Orientierung entgegen den Uhrzeigersinn in die Mitte setzen. Zunächst einmal scheint $S$ hier einfach nicht reinzupassen. Er wird "bekämpft". Aber früher oder später zieht er alle Kreise in seinen Bann. Das passiert selbst dann, wenn $S$ kleiner als all die anderen Kreise ist; dann dauert es halt länger.
Außen vor bleiben natürlich nur die Kreise, die wirklich zu weit entfernt sind. Wenn man aber neue Kreise innerhalb des Schwellenwertes hinzufügt, werden sie vom schwarzen Loch aufgesogen. Das Loch wird dadurch für eine gewisse Zeit relativ instabil. Irgendwann beruhigt es sich aber wieder.
Je mehr Masse das schwarze Loch hat, desto höher ist auch seine Gravitation. Die Kreise werden jetzt noch schneller eingesogen, und das schwarze Loch wird auch nicht mehr so instabil dabei. So gewinnt das schwarze Loch also immer mehr an Masse dazu.
Das schwarze Loch wird zu einem "bunten Loch", wenn man im Menü die Schweife der Kreise anzeigen lässt. Wunderschön, oder?

Abschluss

Ich finde es eindrucksvoll, was für komplexe und auch verblüffend schöne Systeme aus der einfachen "Tanzregel" entstehen können. Probiert die Simulation gerne einmal selbst aus. Ihr könnt eure besten Kreaktionen auch gerne in den Kommentaren teilen. Feature Requests nehme ich auch gerne entgegen. Es kann gut sein, dass ich die Seite irgendwann noch einmal updaten werde. In dem Fall versuche ich, den Artikel entsprechend anzupassen. Mir ist leider entfallen, ob die ganze Idee wirklich von mir kommt oder ich sie irgendwo aufgeschnappt habe. Wenn jemand weiß, ob es die Simulation der tanzenden Kreise schon in einer ähnlichen Form gab (vermutlich!), lasst es mich bitte wissen. So oder so ist natürlich die Beobachtung, dass komplexe und chaotische Systeme aus sehr einfachen Regeln entstehen können, spätestens seit Conways Game of Life wohlbekannt.

\(\endgroup\)
Get link to this article Get link to this article  Printable version Printer-friendly version -  Choose language     Kommentare zeigen Comments  
pdfFür diesen Artikel gibt es keine pdf-Datei


Arbeitsgruppe Alexandria Dieser Artikel ist nicht im Verzeichnis der Arbeitsgruppe Alexandria eingetragen.
[Die Arbeitsgruppe Alexandria katalogisiert die Artikel auf dem Matheplaneten]

 
 
Aufrufzähler 367
 
Aufrufstatistik des Artikels
Insgesamt 4 externe Seitenaufrufe zwischen 2022.06 und 2022.07 [Anzeigen]
DomainAnzahlProz
https://matheplanet.com4100%100 %

Aufrufer der letzten 5 Tage im Einzelnen
Insgesamt 1 Aufruf in den letzten 5 Tagen. [Anzeigen]
DatumAufrufer-URL
2022.07.02 03:50https://matheplanet.com

[Top of page]

"Mathematik: Tanzende Kreise" | 3 Comments
The authors of the comments are responsible for the content.

Re: Tanzende Kreise
von: Diophant am: Fr. 08. April 2022 22:37:36
\(\begingroup\)Cool (und klasse umgesetzt), vielen Dank dafür! Gesehen habe ich so etwas noch nie. Gruß, Diophant\(\endgroup\)
 

Re: Tanzende Kreise
von: Slash am: Sa. 09. April 2022 00:49:56
\(\begingroup\)Klasse Artikel! Genau mein Ding. 👍 😎 Gruß, Slash\(\endgroup\)
 

Re: Tanzende Kreise
von: easymathematics am: Mo. 11. April 2022 16:46:58
\(\begingroup\)Sehr schön gemacht. Danke hierfür.\(\endgroup\)
 

 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2022 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]