Przykłady.

Ten notatnik będę być może rozbudowywał w trakcie trwania wykładu. Proszę zaglądać w miarę systematycznie.

Trójkąt Sierpińskiego.

Bierzemy dowolny trójkąt i dzielimy go na cztery za pomocą prostych przechodzących przez środki boków. Wnętrze środkowej części odrzucamy i w odniesieniu do pozostałych trzech trójkątów operację powtarzamy. I tak w nieskończoność. W ten sposób otrzymamy zstępujący $(\Delta_n)$ ciąg podzbiorów zwartych płaszczyzny. Ich część wspólną $\Delta_\infty$ nazywamy trójkątem Sierpińskiego.

In [1]:
def S(x,t):
    return [(1/2)*x[0]+t[0], (1/2)*x[1]+t[1]]

def T(x):
    return [S(x, [0,0]), S(x, [1/2, 0]), S(x, [1/4, 3**(1/2)/4])  ]
    
from random import * 

G=[[random(), random()] for i in range(100000)]

F=[x for x in G if  x[1]<= - 3**0.5*abs(x[0]-0.5)+3**0.5/2]

F=[T(x)[0] for x in F]+[T(x)[1] for x in F]+ [T(x)[2] for x in F]  
In [2]:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
xax=[x[0] for x in F]
yax=[x[1] for x in F]
plt.scatter(xax,yax,marker='.', s=0.15, color='purple')
plt.title('$\Delta_1$: pierwszy krok konstrukcji trójkąta Sierpińskiego')
plt.show()

Przypomnijmy, że przestrzeń metryczną $X$ (ogólniej, przestrzeń topologiczną) nazywamy spójną jeśli nie istnieje podzbiór właściwy $A\subset X$, który jest jednocześnie domknięty i otwarty. Przestrzeń $X$ nazywamy continuum jeśli jest zwarta i spójna. Trójkąt Sierpińskiego $\Delta_\infty$ jest przykładem continuum. By to ustalić, wystarczy wykonać następujące ćwiczenie

Ćwiczenie 1p.

  • Wykazać, że jeśli $(A_n)$ jest zstępującym ciągiem zbiorów niepustych i zwartych, tzn. $A_n\supseteq A_{n+1}$ w przestrzeni metrycznej $X$, to część wspólna $A_\infty =\bigcap_{n=1}^\infty A_n$ jest także niepusta i zwarta.

  • Wykazać, że jeśli nadto zbiory $A_n$ są spójne, to $A_\infty$ jest także zbiorem spójnym. $\blacklozenge$

Uwaga.

Podzbiór $A$ przestrzeni metrycznej $(X,d)$ jest spójny, jeśli $A$, jako przestrzeń metryczna, jest spójna. Np. Niech $X=\mathbb R$. Zbiór $A=[0,1] \cup [2,3]$ z pewnością nie jest spójny, jednak ani $[0,1]$ ani też $[0,2]$ nie są podzbiorami otawrtymi w $X$. Są one otwarte jako podzbiory $A$. $\blacklozenge$

Trójkąt Sierpińskiego $\Delta$ dla trójkąta równobocznego wierzchołkach $(0,0)$, $(1,0)$, $(1/2, \sqrt{3}/2)$ możemy także zdefiniować za pomocą równania: $$ \Delta= \frac 1 2 \Delta \cup \left(\frac 1 2,0\right)+\frac 1 2 \Delta \cup \left(\frac 1 4,\frac {\sqrt{3}}4\right) +\frac 1 2 \Delta. $$

Oczywiście za tym równaniem stoi układ kontrakcji. Jakich?

In [3]:
def S(x,t):
    return [(1/2)*x[0]+t[0], (1/2)*x[1]+t[1]]

def T(x):
    return [S(x, [0,0]), S(x, [1/2, 0]), S(x, [1/4, 3**(1/2)/4])  ]

F=[[0,0]]
for i in range(10):
    F=[T(x)[0] for x in F]+[T(x)[1] for x in F]+ [T(x)[2] for x in F]   
In [4]:
xax=[x[0] for x in F]
yax=[x[1] for x in F]
plt.scatter(xax,yax,marker='.', s=0.15, color='purple')
plt.title('Trójkąt Sierpińskiego')
plt.show()

Ćwiczenie 2p.

Ile wynosi pole powierzchni trójkąta Sierpińskiego?

Bardzo podobna konstrukcja jednowymiarowa prowadzi do zbioru znanego jako zbiór Cantora. Należy zadany odcinek podzielić na trzy części i odrzucić wnętrze środkowej. Potem postąpić w taki sam sposób w odniesienu do pozostałych dwu odcinków itd. Otrzymany ciąg zbiorów zwartych $(C_n)$ jest zstępujący, więc ma część wspólną $C_\infty$. $C_\infty$ jest także granicą ciągu $(C_n)$ względem odległości Hausdorffa. Oczywiście zbiór Cantora jest rozwiązaniem równania

$$ C=\frac 1 3C\cup \frac 2 3 +\frac 1 3 C. $$
In [5]:
def T(x):
    return [(1/3)*x, 2/3+(1/3)*x]

F=[0]

for i in range(10):
    F=[T(x)[0] for x in F]+[T(x)[1] for x in F]

x = F
y = [0 for x in F] 
plt.scatter(x,y, marker='.', s=0.15 , color='purple')
plt.title('Zbiór Cantora')
plt.show()

Jak widać, przedstawienie zbioru Cantora nie jest zbyt imponujące i pewnie zostanie zmienione.

Stwierdzenie 1p.

Liczba $x$ należy do zbioru Cantora wtedy i tylko wtedy, gdy przedstawia się w postaci szeregu $$ \sum_{n=1}^\infty \frac {\varepsilon_n}{3^n}, $$ gdzie ciąg $(\varepsilon_n)$ ma wyrazy równe $0$ bądź $2$.

Dowód. Utwórzmy zbiór $$ G=\left\{\sum_{n=1}^\infty \frac {\varepsilon_n}{3^n}\colon (\varepsilon_n)\in\{0,2\}^\infty\right\}. $$ Nietrudno sprawdzić, że wszystkie jego wyrazy leżą w przedziale $[0,1]$. Ponadto spełnia on równanie

$$ G=\frac 1 3G\cup \frac 2 3 +\frac 1 3 G. $$

Ćwiczenie 2p.

Wykazać, że zbiór $G$ jest domknięty

Wtedy na podstawie twierdzenia 4h i uwagi po twierdzeniu wiemy, że $G$ i $C_\infty$ muszą być tożsame jako punkt stały tej samej kontrakcji określonej na $(H([0,1]), H)$. $\square$

Ćwiczenie 3p.

Wykazać, że długość, albo inaczej, miara Lebesgue'a zbioru $C_\infty$ jest równa $0$.

Stwierdzenie 2p.

Istnieje funkcja ciągłą niemalejąca $\gamma\colon [0,1] \stackrel{\text{'na'}}{\to} [0,1]$, która na każdym przedziale o wnętrzu rozłącznym z $C_\infty$ jest stała.

Dowód. Rozpatrzmy funkcję $h\colon C_\infty\to [0,1]$ określoną w taki sposób, że jeśli $\displaystyle{x=\sum^\infty_{n=1} \frac{\varepsilon_n}{3^n}}$, to $\displaystyle{h(x)=\sum^\infty_{n=1} \frac{\frac{\varepsilon_n} 2}{2^n}}$. Jest jasne, że funkcja $h$ jest niemalejąca i ciagła. Funkcję $\gamma$ można teraz określić wzorem $\gamma(x)=\sup\{h(u)\colon u \in C_\infty\cap [0,x]\}$. Oczywiście należałoby wykazać jej ciągłość. $\square$

Ćwiczenie 4p.

Spróbuj sobie wyobrazić jak działa $\gamma$. Podaj jej alternatywny opis.

Poniżej graficzne przedstawienie pewnego przybliżenia funkcji $\gamma$

In [6]:
def C(x):
    return [(1/2)*x, 1/2+(1/2)*x]

G=[0]
for i in range(10):
    G=[C(x)[0] for x in G]+[C(x)[1] for x in G]

y=G
plt.plot(x,y)
plt.title('Wykres funkcji $\gamma$')
plt.show()