Килим Серпінського

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Sierpinski6.png

Ки́лим Серпі́нського — це плоский фрактал, вперше описаний Вацлавом Серпінським в 1916 році. Килим є одним із прикладів множини Кантора у двох вимірах (у більших вимірах — хмари Кантора). Серпінський продемонстрував, що цей фрактал є універсальною кривою, де будь-який можливий одномірний граф, спроектований на двовимірну площину, гомеоморфний до підмножини серветки Серпінського. Для кривих, які не можуть бути зображені на двовимірній поверхні без самоперетинань, відповідна універсальна крива — губка Менгера, узагальнення для більших вимірів.

Побудова[ред.ред. код]

Побудова килима Серпінського починається із квадрата. Квадрат розрізається на 9 конгруентних підквадратів, що утворюють сітку три на три, і центральний підквадрат видаляється. Та ж процедура нескінченно рекурсивно застосовується до вісьмох квадратів, що залишилися. На ілюстрації нижче показані перші ітерації процесу побудови.

Килим Серпінського:
Menger 0.PNG Menger 1.PNG Menger 2.PNG Menger 3.PNG Menger 4.PNG Menger 5.PNG
Фаза 0 Фаза 1 Фаза 2 Фаза 3 Фаза 4 Фаза 5

Броунівський рух на килимі Серпінського[ред.ред. код]

Тема броуновського руху на килимі Серпінського в останні роки привернула науковий інтерес. Мартін Барлоу й Річард Басс показали, що випадкове блукання на килимі Серпінського поширюється з меншою швидкістю ніж необмежене випадкове блукання на площині. Для останнього випадку середня відстань пропорційна n1/2 після «n» кроків, а випадкове блукання на дискретному килимі Серпінського дає середню відстань, пропорційну n1/β для деякого β > 2. Мартін Барлоу й Річард Басс також показали, що це випадкове блукання задовольняє сильнішим нерівностям великого відхилення (так званим «субгаусовим нерівностям») і задовольняє овальній нерівності Харнака, при цьому не задовольняючи параболічній. Існування цього прикладу було відкритою проблемою багато років.

Комп'ютерна програма[ред.ред. код]

Наступний Java-аплет малює килим Серпінського за допомогою методу, що рекурсивно викликає себе:

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

public class SierpinskiCarpet extends Applet {
    private Graphics g=null;
    private int d0=729; // 3^6

    public void init() {
        g=getGraphics();
        resize(d0,d0);
    }

    public void paint(Graphics g) {
        //  start recursion:
        drawSierpinskiCarpet ( 0, 0, getWidth(), getHeight() );
    }

    private void drawSierpinskiCarpet(int xTL, int yTL, int width, int height) {
        if (width>2 && height>2) {
            int w=width/3, h=height/3;
            g.fillRect ( xTL+w, yTL+h, w, h );
            for (int k=0;k<9;k++) if (k!=4) {
                int i=k/3, j=k%3;
                drawSierpinskiCarpet ( xTL+i*w, yTL+j*h, w, h ); // recursion
            }
        }
    }
}

Див. також[ред.ред. код]

Посилання[ред.ред. код]