Sierpinski-Teppich

Aus testwiki
Zur Navigation springen Zur Suche springen

Der Sierpinski-Teppich ist ein Fraktal, das auf den polnischen Mathematiker Wacław Sierpiński zurückgeht und das dieser in einer ersten Beschreibung im Jahre 1916 vorgestellt hat. Es ist verwandt mit dem Sierpinski-Dreieck und dem Menger-Schwamm.[1][2]

Konstruktionsskizze

Schrittweise Konstruktion des Sierpinski-Teppichs

Aus einem Quadrat wird in der Mitte ein 19 der Fläche entfernt. Aus den um das Loch verbliebenen 8 quadratischen Feldern wird wiederum je ein 19 der Fläche entfernt und so weiter.

Stufe 0 Stufe 1 Stufe 2 Stufe 3 Stufe 4 Stufe 5

Die fraktale Dimension des Sierpinski-Teppichs beträgt ln8ln31,8928 – insbesondere ist sein Flächeninhalt (im Lebesgue-Maß) gleich 0.[3]

Die Konstruktion ähnelt stark der Konstruktion der Cantor-Menge, dort wird aus einer Strecke der mittlere Teil entfernt, oder dem Sierpinski-Dreieck, bei dem aus einem Dreieck der Mittelteil entfernt wird.

Die Verallgemeinerung des Sierpinski-Teppichs in 3 Dimensionen ist der Menger-Schwamm.[4]

Mathematische Zusammenhänge

Als klassisches Fraktal ist der Sierpinski-Teppich ein Musterbeispiel für exakte Selbstähnlichkeit: Die in jedem Schritt erzeugten Teilquadrate enthalten verkleinerte exakte Kopien des gesamten Fraktals. Eine passende Skalierung eines beliebigen quadratischen Teils des Fraktals erscheint wie das Gesamtobjekt selbst. Es ist somit skaleninvariant.

Nach k Iterationsschritten bleiben 8k Teilquadrate gleicher Seitenlänge übrig und es werden 8k17 Quadrate verschiedener Seitenlänge entfernt.

Die folgende Tabelle zeigt die Anzahlen der verschiedenen Teilquadrate des Sierpinski-Teppichs nach k Iterationsschritten für k4:

Anzahl der Teilquadrate
Iterationsschritt übriggeblieben neu gelöscht insgesamt gelöscht insgesamt
k 8k 8k − 1 (8k − 1) / 7 (8k + 1 − 1) / 7
0 1 0 0 1
1 8 1 1 9
2 64 8 9 73
3 512 64 73 585
4 4096 512 585 4681

Flächeninhalt

Mit jedem Iterationsschritt verringert sich der gesamte Flächeninhalt, der am Anfang A0=a2 beträgt, um 19, oder anders ausgedrückt, er multipliziert sich mit dem Faktor 89. Der Flächeninhalt des verbliebenen Sierpinski-Teppichs lässt sich als Folge darstellen: Ist a die Seitenlänge des ursprünglichen Quadrats, so gilt für die explizite Darstellung Ak=(89)ka2 und für die rekursive Darstellung Ak+1=Ak19(89)ka2, A0=1. Er teilt sich auf 8k Teilquadrate mit der Seitenlänge a3k auf. Der Flächeninhalt der übriggebliebenen Teilquadrate geht gegen 0, wenn die Anzahl k der Schritte sehr groß wird und gegen unendlich geht. Formal lässt sich das mit limkAk=limk(89)ka2=0 ausdrücken.

Zusammenhang mit dem Quadratgitter

Quadratgitter

Der Sierpinski-Teppich steht im Zusammenhang mit dem Quadratgitter, das die euklidische Ebene vollständig mit kongruenten Quadraten ausfüllt (siehe Abbildung). Dieses Quadratgitter ist spiegelsymmetrisch, punktsymmetrisch, drehsymmetrisch und translationssymmetrisch und eine sogenannte platonische Parkettierung (englisch: uniform tiling).

Das Quadratgitter ist eine feinere Zerlegung des Sierpinski-Teppichs nach dem Iterationsschritt k. Dabei werden die gelöschten Quadrate des Iterationsschritts i, deren Seitenlänge um den Faktor 3ki größer als die Seitenlänge der übriggebliebenen Quadrate ist, jeweils in (3ki)2=9ki kongruente Quadrate mit dieser Seitenlänge zerlegt. Das äußere Gebiet, das theoretisch ins Unendliche der zweidimensionalen Ebene geht, wird ebenfalls in solche Quadrate zerlegt. Der Sierpinski-Teppich nach dem Iterationsschritt k überdeckt ziemlich offensichtlich 9k Quadrate des Quadratgitters.

Programmierung

Das folgende Java-Applet zeichnet einen Sierpinski-Teppich mit Hilfe einer rekursiven Methode:[5]

import java.awt.*;
import java.applet.*;

public class SierpinskiCarpet extends Applet
{
    private Graphics graphics = null;

    public void init()
    {
        graphics = getGraphics(); // Erzeugt ein Grafikobjekt für das Zeichnen im Applet.
        resize(729, 729); // Größe des Fensters auf Breite und Höhe 3^6 = 729 setzen
    }

    public void paint(Graphics graphics)
    {
        // Rekursion starten
        drawSierpinskiCarpet(0, 0, getWidth(), getHeight()); // Aufruf der rekursiven Methode
    }

    private void drawSierpinskiCarpet(int x, int y, int breite, int hoehe)
    {
        if (breite >= 3 && hoehe >= 3) // Wenn Breite und Höhe mindestens 3 Pixel, dann Quadrat ausfüllen und in 8 Teilquadrate zerlegen
        {
            int b = breite / 3;
            int h = hoehe / 3;
            graphics.fillRect(x + b, y + h, b, h); // Quadrat ausfüllen
            for (int k = 0; k < 9; k++) // for Schleife für das Zerlegen in 8 Teilquadrate
            {
                if (k != 4) // Das mittlere Teilquadrat wird nicht ausgefüllt.
                {
                    int i =(k -1)/ 3; // Spaltenindex des Teilquadrats
                    int j = k % 3; // Zeilenindex des Teilquadrats
                    drawSierpinskiCarpet(x + i * b, y + j * h, b, h); // Rekursive Aufrufe der Methode für das Zerlegen des aktuellen Quadrats in 8 Teilquadrate mit 1/3 der Breite und Höhe.
                }
            }
        }
    }
}

Topologie

In der Topologie betrachtet man den Sierpinski-Teppich als Unterraum des mit der euklidischen Metrik versehenen 2. Er stellt ein im 2 nirgends dichtes, lokal zusammenhängendes, metrisches Kontinuum dar und gilt – zusammen mit dem Sierpinski-Dreieck – nicht zuletzt deswegen als besonders bemerkenswerter topologischer Raum.[1]

Literatur

Einzelnachweise

  1. 1,0 1,1 P. S. Alexandroff: Einführung in die Mengenlehre und in die allgemeine Topologie. 1984, S. 191–192.
  2. Claudi Alsina, Roger B. Nelsen: Perlen der Mathematik. 2015, S. 225–226.
  3. Wolfram MathWorld: Sierpiński Carpet
  4. Larry Riddle, Agnes Scott College: Sierpinski Carpet
  5. Rosetta Code: Sierpinski carpet

Vorlage:Commons