Килим Серпінського — Вікіпедія

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

Побудова

[ред. | ред. код]

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

Килим Серпінського:
Фаза 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              }          }      }  }

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. W. Sierpinski. Sur une courbe cantorienne qui contient une image biunivoquet et continue detoute courbe donnée. //Comptes rendus hebdomadaires des séances de l'Académie des sciences. - Paris. – Tome 162, Janvier - Juin 1916. - Pp. 629 – 632. - [[https://web.archive.org/web/20210824050957/https://gallica.bnf.fr/ark:/12148/bpt6k3115n.f631 Архівовано 24 Серпня 2021 у Wayback Machine.]]

Посилання

[ред. | ред. код]