Pojęcie bazy Schaudera
Rozważamy zbiór wszystkich funkcji ciągłych określonych na przedziale [0,1] i o wartościach w zbiorze liczb rzeczywistych. Zazwyczaj zbiór ten oznacza się symbolem C[0,1] (litera C pochodzi od słowa „ciągły” – „continuous”). Zbiór C[0,1] ma tę właściwość, że jeżeli dodamy do siebie skończoną liczbę dowolnych funkcji z tego zbioru pomnożonych przez dowolne liczby rzeczywiste, to znów otrzymamy funkcję należącą do zbioru C[0,1]. Zbiory o takich własnościach nazywa się przestrzeniami liniowymi funkcji, skończone sumy funkcji pomnożonych przez pewne liczby – kombinacjami liniowymi funkcji.
Chcemy teraz wskazać pewien nieskończony podzbiór zbioru C[0,1] taki, że dowolną funkcję ze zbioru C[0,1] możemy z dowolną dokładnością przybliżyć przez kombinację liniową funkcji z tego podzbioru. Podzbiór, który wskażemy, nosi nazwę \textit{bazy Schaudera} przestrzeni liniowej C[0,1] i został podany w 1927 roku przez polskiego matematyka Juliusza Schaudera. Można sobie wyobrażać, że przestrzeń liniowa C[0,1] jest zbudowana z nieskończonej liczby dobrze określonych „atomów”, tak jak nasz świat materialny składa się z atomów (jest to tylko analogia i jak każda analogia ma swoje granice…).
Funkcje bazowe
Nasze „atomy” będziemy oznaczać symbolem sn,k, gdzie n jest dowolną nieujemną liczbą całkowitą, a k dla danego n jest jedną z liczb całkowitych 0,…,2n−1. Aby pomóc wyobraźni, można sobie powiedzieć, że n oznacza „pokolenia”, a k kolejne „dzieci” w danym pokoleniu. A zatem w zerowym pokoleniu mamy tylko jednego „rodzica” s0,0; z pierwszym pokoleniu są dwoje dzieci s1,0 i s1,1; w drugim pokoleniu jest czworo dzieci s2,0, s2,1, s2,2 i s2,3; w trzecim ośmioro dzieci s3,0, s3,1, s3,2, s3,3, s3,4, s3,5, s3,6 oraz s3,7; i tak dalej. A oto wykres przedstawiający, jak chcemy zdefiniować poszczególne funkcje należące do bazy Schaudera.
Jak widzimy, wszystkie funkcje łączy wielkie podobieństwo: wyglądają jak indiańskie wigwamy o zawsze tej samej wysokości, ale o w każdym kolejnym pokoleniu „szczuplejsze” o połowę i z „czubkiem”, który przesuwa się w sposób regularny. Czasami mówi się o nich „funkcje daszkowe” lub „funkcje namiotowe”. Funkcje te mają wartość zero poza przedziałami, gdzie „stoi” wigwam. Te przedziały to
[0,1]
[0,12][12,1]
[0,14][14,24][24,34][34,1]
i tak dalej.
A wierzchołki wigwamów znajdują się w punktach
12
1434
18385878
i tak dalej.
Przedziały [k2n,k+12n] i ich środki k+1/22n, gdzie k=0,…,2n−1, spotyka się tak często w matematyce, że otrzymały one nazwy: przedziały i liczby diadyczne.
Do tego zbioru funkcji dorzucimy jeszcze funkcję stałą χ(x)=1 i funkcję ℓ(x)=x.
W ten sposób otrzymaliśmy ciąg funkcji ciągłych (pierwszą funkcją jest χ, potem jest ℓ, dalej s0,0, s1,0, s1,1, s2,0 i tak dalej) charakteryzujący się tym, że każda funkcja ma taki punkt, w którym przyjmuje wartość 1 i w którym wszystkie następne funkcje przyjmują wartość 0. Stąd wynika, że żadnej funkcji z naszego ciągu nie można otrzymać jako liniowej kombinacji pozostałych funkcji.
Przybliżanie funkcji przez funkcje bazowe
Pokażemy teraz, w jaki sposób można przybliżać dowolną funkcję f z przestrzeni liniowej C[0,1] przez kombinacje liniowe „atomów” z naszego ciągu funkcji. Zrobimy to na konkretnym przykładzie funkcji f(x)=−1+2x2+sin5x.
Najpierw utworzymy taką kombinację liniową funkcji χ i ℓ, aby wartości funkcji f i tej kombinacji liniowej były takie same w punktach x=0 i x=1. Wystarczy w tym celu znaleźć współczynniki liczbowe a o b kombinacji liniowej, rozwiązując układ równań
{f(0)=aχ(0)+bℓ(0)f(1)=aχ(1)+bℓ(1),
czyli
{f(0)=af(1)=a+b.
Znajdujemy, że a=f(0), a b=f(1)−f(0), a więc wstępnym przybliżeniem funkcji f jest funkcja f0(x)=f(0)χ(x)+[f(1)−f(0)]ℓ(x), która zgadza się z funkcją f w punktach 0 i 1.
Różnica między funkcją f a jej wstępnym przybliżeniem jest równa g0(x)=f(x)−f0(x).
Następnie chcielibyśmy użyć do przybliżania także funkcji s0,0, aby uzyskać przybliżenie pokrywające się z funkcją f w punktach 0, 1 i 12. Zrobimy to w ten sposób, że przybliżymy funkcję g0, czyli różnicę funkcji f i wstępnego przybliżenia f0, za pomocą funkcji h0(x)=g0(12)s0,0(x). Zauważmy, że funkcja h0 zgadza się z funkcją g0 w punktach 0, 1 i 12, a to oznacza, że funkcja f1(x)=f0(x)+h0(x) zgadza się w tych samych punktach z funkcją f i funkcja f1 jest naszym następnym przybliżeniem.
Poniższy wykres przestawia funkcje f, f1 i g1(x)=f(x)−f1(x).
Z kolei chcemy uwzględnić w przybliżeniu funkcji f także funkcje z następnego pokolenia funkcji bazowych. Najpierw przybliżamy poprzednią różnicę g1(x)=f(x)−f1(x) za pomocą funkcji h1(x)=g1(14)s1,0+g1(34)s1,1. Funkcje g1 i h1 zgadzają się w punktach 0, 1, 12, 14, 34, co oznacza, że funkcja f2(x)=f1(x)+h1(x)=f0(x)+h0(x)+h1(x) w tych samych punktach zgadza się z funkcją f. Funkcja f2 jest naszym nowym przybliżeniem.
Wykres przestawia funkcje f, f2 i g2(x)=f(x)−f2(x). Zwróć uwagę, jak maleje różnica między funkcją f a kolejnymi przybliżeniami.
Postępując systematycznie uwzględniamy w naszym przybliżeniu dalsze pokolenia funkcji bazowych. Dla drugiego pokolenia otrzymujemy przybliżenie różnicy g2(x)=f(x)−f2(x) za pomocą funkcji h2(x)=g2(18)s2,0+g2(38)s2,1+g2(58)s2,2+g2(78)s2,3. Funkcje g2 i h2 zgadzają się w punktach 0, 1, 12, 14, 34, 18, 38, 58 i 78, a więc funkcja f3(x)=f2(x)+h2(x)=f0(x)+h0(x)+h1(x)+h2(x) w tych punktach zgadza się z funkcją f.
Różnica między funkcją f a jej przybliżeniami stopniowo maleje i możemy dowolnie ją ograniczać. Do budowy przybliżeń wykorzystywaliśmy jedynie funkcje z opisanego na początku ciągu funkcji. Każde uwzględnione pokolenie funkcji bazowych „wysubtelnia” przybliżenie. W granicy otrzymujemy przedstawienie funkcji f z przestrzeni liniowej funkcji ciągłych C[0,1] za pomocą nieskończonej sumy funkcji bazowych przemnożonych przez współczynniki liczbowe. Każda funkcja f z C[0,1] ma tylko jedno takie przedstawienie. Czy widzisz, dlaczego każdy współczynnik liczbowy mogliśmy wybrać tylko w jeden sposób?
Ten artykuł został sfinansowany dzięki wsparciu pozyskanemu przez Poznańską Fundację Matematyczną z Fundacji mBanku na realizację projektu „Potęga matematyki”.