Aproksymacja

Aproksymacja (łac. approximare – przybliżać) – budowanie rozwiązań przybliżonych[1], zwłaszcza wtedy, gdy ścisłego rozwiązania nie da się przedstawić dokładnie w postaci analitycznej[2].

Przykład to zastąpienie pewnej funkcji f ( x ) {\displaystyle f(x)} inną, zazwyczaj prostszą φ ( x ) , {\displaystyle \varphi (x),} umożliwiającą efektywne rozwiązanie postawionego problemu. Przykłady takich sytuacji to:

  • obliczanie całek oznaczonych z funkcji, które nie dają się scałkować ściśle;
  • rozwiązywanie równań różniczkowych – zarówno zwyczajnych, jak i cząstkowych – kiedy poszukuje się niewiadomych funkcji;
  • opracowywanie wyników pomiarów znanych tylko na dyskretnym zbiorze punktów, np. w meteorologii.

Aproksymacja może być dokonywana na różne sposoby i dlatego można poszukiwać aproksymacji optymalnej w ściśle określonym sensie.

Sformułowanie uproszczone

Ogólnie rzecz ujmując, aproksymacja polega na przybliżaniu pewnej funkcji f ( x ) , {\displaystyle f(x),} w obszarze Ω {\displaystyle \Omega } jej określoności, za pomocą innej, prostszej funkcji przybliżającej φ ( x ) , {\displaystyle \varphi (x),} określonej w tym samym obszarze, której wartości zależą od pewnej liczby parametrów. Najczęściej jako funkcje φ ( x ) , {\displaystyle \varphi (x),} stosuje się wielomiany uogólnione w postaci

φ ( x ) = a 1 φ 1 ( x ) + a 2 φ 2 ( x ) + + a n φ n ( x ) , {\displaystyle \varphi (x)=a_{1}\varphi _{1}(x)+a_{2}\varphi _{2}(x)+\,\dots \,+a_{n}\varphi _{n}(x),}
(a)

w której funkcje φ i ( x ) {\displaystyle \varphi _{i}(x)} tworzą tzw. bazę aproksymacji

B ( x ) = [ φ 1 ( x ) , φ 2 ( x ) , φ n ( x ) ] , {\displaystyle \mathbf {B} (x)=[\varphi _{1}(x),\,\varphi _{2}(x),\,\dots \,\varphi _{n}(x)],}

zaś a i {\displaystyle a_{i}} są liczbowymi współrzędnymi funkcji φ ( x ) {\displaystyle \varphi (x)} względem przyjętej bazy. Dobór tych współczynników może się odbywać na różne sposoby, przy czym powinien on być taki, aby błąd aproksymacji był jak najmniejszy.

Jednym z praktycznych sposobów budowania aproksymacji w pewnym sensie optymalnej, jest metoda minimalizacji błędu przybliżenia, określonego iloczynem skalarnym różnicy funkcji φ ( x ) , f ( x ) {\displaystyle \varphi (x),\,f(x)}

R ( a 1 , a 2 , a n ) = [ φ ( x ) f ( x ) ] [ φ ( x ) f ( x ) ] = [ φ ( x ) f ( x ) ] 2 , {\displaystyle R(a_{1},\,a_{2},\,\dots \,a_{n})={\Big \langle }{\big [}\varphi (x)-f(x){\big ]}\cdot {\big [}\varphi (x)-f(x){\big ]}{\Big \rangle }={\Big \langle }{\big [}\varphi (x)-f(x){\big ]}^{2}{\Big \rangle },}
(b)

przy czym ten iloczyn może być definiowany na dwa sposoby[3]:

g h = Ω g ( x ) h ( x ) d Ω {\displaystyle \langle g\cdot h\rangle =\int _{\Omega }g(x)h(x)d\Omega \quad {}} lub g h = i = 1 n g ( x i ) h ( x i ) , x i Ω . {\displaystyle {}\quad \langle g\cdot h\rangle =\sum _{i=1}^{n}g(x_{i})h(x_{i}),\;\;x_{i}\in \Omega .}
(c)

Minimalizacja tak określonego błędu wymaga, aby

1 2 R a k = a k ( φ f ) 2 = ( φ f ) a k φ = ( φ f ) φ k = φ φ k f φ k = i = 1 n φ k φ i a i φ k f = 0 , k = 1 , 2 , n . {\displaystyle {\begin{aligned}{\tfrac {1}{2}}{\tfrac {\partial R}{\partial a_{k}}}&={\tfrac {\partial }{\partial a_{k}}}\langle (\varphi -f)^{2}\rangle \\&={\big \langle }(\varphi -f)\cdot {\tfrac {\partial }{\partial a_{k}}}\varphi {\big \rangle }\\&={\big \langle }(\varphi -f)\cdot \varphi _{k}{\big \rangle }\\&=\langle \varphi \cdot \varphi _{k}\rangle -\langle f\cdot \varphi _{k}\rangle \\&=\sum _{i=1}^{n}\langle \varphi _{k}\cdot \varphi _{i}\rangle a_{i}-\langle \varphi _{k}\cdot f\rangle =0,\quad k=1,\,2,\,\dots \,n.\end{aligned}}}
(d)

Opisany powyżej sposób aproksymacji funkcji f ( x ) {\displaystyle f(x)} za pomocą wielomianu φ ( x ) {\displaystyle \varphi (x)} polegał na sformułowaniu i wykorzystaniu konkretnych warunków minimalizacji błędu określonego wzorem (b). Warunki te przybrały postać układu równań (d), w których współczynniki przy niewiadomych a i {\displaystyle a_{i}} określone zostały funkcjonałami φ k φ i , φ k f {\displaystyle \langle \varphi _{k}\cdot \varphi _{i}\rangle ,\;\langle \varphi _{k}\cdot f\rangle } ze względu na funkcje φ k . {\displaystyle \varphi _{k}.}

Sformułowanie ogólne

Ogólne sformułowanie aproksymacji w przestrzeni liniowej F {\displaystyle F} wymaga określenia warunków, jakie ta aproksymacja ma spełniać. Jeżeli przez F ¯ {\displaystyle {\bar {F}}} oznaczymy podzbiór ( F ¯ F ) {\displaystyle ({\bar {F}}\subset F)} zbioru F , {\displaystyle F,} będący również przestrzenią liniową, to aproksymacja będzie polegać na tym, aby dla każdego elementu f F {\displaystyle f\in F} znaleźć taki element f ¯ F ¯ , {\displaystyle {\bar {f}}\in {\bar {F}},} dla którego zachodzą równości

l k ( f ¯ ) = l k ( f ) , {\displaystyle l_{k}({\bar {f}})=l_{k}(f),\quad {}} dla k = 1 , 2 , n , {\displaystyle {}\quad k=1,\,2,\,\dots \,n,}

w których l k {\displaystyle l_{k}} są pewnymi funkcjonałami liniowymi, określającymi warunki dokonywanej aproksymacji.

Zatem zagadnienie aproksymacji wymaga określenia trzech zbiorów:

  • funkcji F , {\displaystyle F,} funkcji aproksymowanych,
  • funkcji F ¯ , {\displaystyle {\bar {F}},} funkcji aproksymujących,
  • ciągu l 1 , l 2 , l n {\displaystyle l_{1},\,l_{2},\,\dots \,l_{n}} funkcjonałów liniowych.

Najczęściej jako F ¯ , {\displaystyle {\bar {F}},} wybiera się zbiór wielomianów uogólnionych o postaci

φ ( x ) = i = 1 n a i φ i ( x ) {\displaystyle \varphi (x)=\sum _{i=1}^{n}a_{i}\varphi _{i}(x)}

utworzonej z funkcji bazowych φ 1 , φ 2 , φ n F . {\displaystyle \varphi _{1},\,\varphi _{2},\,\dots \,\varphi _{n}\in F.} W tym przypadku F ¯ {\displaystyle {\bar {F}}} staje się n-wymiarową podprzestrzenią F . {\displaystyle F.}

Poszukiwanie elementu f ¯ F ¯ , {\displaystyle {\bar {f}}\in {\bar {F}},} aproksymującego f F {\displaystyle f\in F} polega na zbudowaniu takiego wielomianu φ F ¯ {\displaystyle \varphi \in {\bar {F}}}

φ = a 1 φ 1 + a 2 φ 2 + + a n φ n , {\displaystyle \varphi =a_{1}\varphi _{1}+a_{2}\varphi _{2}+\,\dots \,+a_{n}\varphi _{n},}
(e)

który spełnia równości

l k ( φ ) = i = 1 n l k ( φ i ) a i = l k ( f ) , k = 1 , 2 , n . {\displaystyle l_{k}(\varphi )=\sum _{i=1}^{n}l_{k}(\varphi _{i})a_{i}=l_{k}(f),\quad k=1,\,2,\,\dots \,n.}
(f)

tworzące układ równań służących do określenia współczynników kombinacji liniowej (e).

Jeżeli za φ i ( x ) F {\displaystyle \varphi _{i}(x)\in F} przyjmiemy dowolne funkcje liniowo niezależne, to macierz układu równań najczęściej będzie bardzo pełna. W celu wygenerowania takiego układu równań, który odznaczałby się macierzą rzadką, budujemy aproksymację w f ¯ F ¯ {\displaystyle {\bar {f}}\in {\bar {F}}} zawężoną do interpolacji[4], w następującej postaci

f ¯ = c 1 ϕ 1 ( x ) + c 2 ϕ 2 ( x ) + c n ϕ n ( x ) , {\displaystyle {\bar {f}}=c_{1}\phi _{1}(x)+c_{2}\phi _{2}(x)+\,\dots \,c_{n}\phi _{n}(x),}
(g)

w której bazę takiej aproksymacji stanowią funkcje ϕ i ( x ) {\displaystyle \phi _{i}(x)} o tej własności, że l k ϕ i = δ k i . {\displaystyle l_{k}\phi _{i}=\delta _{ki}.} Stąd wynika

l k f ¯ = l k ( i = 1 n c i ϕ i ) = i = 1 n c i l k ϕ i = c k {\displaystyle l_{k}{\bar {f}}=l_{k}\left(\sum _{i=1}^{n}c_{i}\phi _{i}\right)=\sum _{i=1}^{n}c_{i}l_{k}\phi _{i}=c_{k}\quad {}} oraz f ¯ = k = 1 n ( l k f ¯ ) ϕ k . {\displaystyle {}\quad {\bar {f}}=\sum _{k=1}^{n}(l_{k}{\bar {f}})\phi _{k}.}
(h)

Funkcję ϕ s ( x ) , s = 1 , 2 , n {\displaystyle \phi _{s}(x),\;s=1,\,2,\,\dots \,n} otrzymuje się na podstawie kombinacji (e)

ϕ s ( x ) = k = 1 n a i ( s ) φ s ( x ) , {\displaystyle \phi _{s}(x)=\sum _{k=1}^{n}a_{i}^{(s)}\varphi _{s}(x),}

której współczynniki a i ( s ) {\displaystyle a_{i}^{(s)}} są określone równaniami (f), w których funkcja f ( x ) {\displaystyle f(x)} zostaje zastąpiona przez kolejne funkcje ϕ s ( x ) , s = 1 , 2 , n . {\displaystyle \phi _{s}(x),\;s=1,\,2,\,\dots \,n.} Funkcje te nazywane są funkcjami bazowymi Lagrange’a.

Przykład 1

Funkcję f ( x ) = x 2 {\displaystyle f(x)=x^{2}} można aproksymować w przedziale ( 0 , 1 ) R 1 , {\displaystyle (0,\,1)\in R^{1},} funkcją liniową przyjmując, że

φ ( x ) = a 1 φ 1 ( x ) + a 2 φ 2 ( x ) = a 1 + a 2 x {\displaystyle \varphi (x)=a_{1}\varphi _{1}(x)+a_{2}\varphi _{2}(x)=a_{1}+a_{2}x}

i definiując dwa funkcjonały, na przykład w postaci iloczynów skalarnych

l k ( φ ) = φ k φ = 0 1 φ k ( x ) φ ( x ) d x , k = 1 , 2. {\displaystyle l_{k}(\varphi )=\langle \varphi _{k}\cdot \varphi \rangle =\int _{0}^{1}\!\!\varphi _{k}(x)\cdot \varphi (x)\,dx,\quad k=1,\,2.}

Warunki (f) przyjmują postać

φ k φ 1 a 1 + φ k φ 2 a 2 = φ k f , k = 1 , 2. {\displaystyle \langle \varphi _{k}\cdot \varphi _{1}\rangle a_{1}+\langle \varphi _{k}\cdot \varphi _{2}\rangle a_{2}=\langle \varphi _{k}\cdot f\rangle ,\quad k=1,\,2.}

Dla obliczenia współczynników a 1 , a 2 {\displaystyle a_{1},\,a_{2}} otrzymujemy układ równań

[ 1 1 2 1 2 1 3 ] [ a 1 a 2 ] = [ 1 3 1 4 ] a 1 = 1 6 , a 2 = 1. {\displaystyle {\begin{bmatrix}1&{\tfrac {1}{2}}\\{\tfrac {1}{2}}&{\tfrac {1}{3}}\end{bmatrix}}{\begin{bmatrix}a_{1}\\a_{2}\end{bmatrix}}={\begin{bmatrix}{\tfrac {1}{3}}\\{\tfrac {1}{4}}\end{bmatrix}}\quad \to \quad a_{1}=-{\tfrac {1}{6}},\;a_{2}=1.}

Przykład 2

Aproksymację funkcji f ( x ) {\displaystyle f(x)} określonej w przedziale [ a , b ] {\displaystyle [a,\,b]} można zastąpić aproksymacją funkcji F ( ξ ) , ( x = b + a 2 + b a 2 ξ ) {\displaystyle F(\xi ),\;(x={\tfrac {b+a}{2}}+{\tfrac {b-a}{2}}\xi )} w przedziale standardowym [ 1 , 1 ] . {\displaystyle [-1,\,1].} Bazę aproksymacji zbudujemy w postaci uogólnionego wielomianu stopnia n {\displaystyle n}

φ ( ξ ) = a 0 w 0 ( ξ ) + a 1 w 1 ( ξ ) + + a n w n ( ξ ) , {\displaystyle \varphi (\xi )=a_{0}w_{0}(\xi )+a_{1}w_{1}(\xi )+\,\dots \,+a_{n}w_{n}(\xi ),}

utworzonego z funkcji dowolnych, ale wzajemnie ortogonalnych, spełniających w przedziale standardowym, warunki

1 1 w k ( ξ ) w i ( ξ ) d ξ = 0 , {\displaystyle \int _{-1}^{1}\!\!w_{k}(\xi )w_{i}(\xi )d\xi =0,\quad {}} gdy i k . {\displaystyle {}\;i\neq k.}

Funkcjonał l k , {\displaystyle l_{k},} występujący w (f) przyjmiemy w postaci

l k ( F ) = w k F = 1 1 w k ( ξ ) F ( ξ ) , k = 0 , 1 , n . {\displaystyle l_{k}(F)=\langle w_{k}\cdot F\rangle =\int _{-1}^{1}w_{k}(\xi )F(\xi ),\quad k=0,\,1,\,\dots \,n.}

Mamy również

l k ( φ ) = w k φ = 1 1 w k ( ξ ) φ ( ξ ) = 1 1 w k ( ξ ) i = 1 n a i w i ( ξ ) d ξ = 1 1 a k w k 2 ( ξ ) d ( ξ ) = w k w k a k , k = 0 , 1 , n . {\displaystyle {\begin{aligned}l_{k}(\varphi )&=\langle w_{k}\cdot \varphi \rangle \\&=\int _{-1}^{1}w_{k}(\xi )\varphi (\xi )\\&=\int _{-1}^{1}\!\!w_{k}(\xi )\sum _{i=1}^{n}a_{i}w_{i}(\xi )d\xi \\&=\int _{-1}^{1}\!\!a_{k}w_{k}^{2}(\xi )d(\xi )\\&=\langle w_{k}\cdot w_{k}\rangle a_{k},\quad k=0,\,1,\,\dots \,n.\end{aligned}}}

Układ równań (f) redukuje się do najprostszej postaci

w k F = w k w k a k a k = w k F w k w k , k = 0 , 1 , n . {\displaystyle \langle w_{k}\cdot F\rangle =\langle w_{k}\cdot w_{k}\rangle a_{k}\quad \to \quad a_{k}={\tfrac {\langle w_{k}\cdot F\rangle }{\langle w_{k}\cdot w_{k}\rangle }},\;\;k=0,\,1,\,\dots \,n.}

Funkcjonały w k w k , k = 0 , 1 , 2 , n {\displaystyle \langle w_{k}\cdot w_{k}\rangle ,\;k=0,\,1,\,2,\,\dots \,n} mają przykładowo wartości

  • w k w k = 2 2 k + 1 , {\displaystyle \langle w_{k}\cdot w_{k}\rangle ={\tfrac {2}{2k+1}},\quad {}} gdy funkcje w k ( x ) {\displaystyle w_{k}(x)} są wielomianami Legendre’a[3] stopnia k , {\displaystyle k,}
  • w k w k = 1 , {\displaystyle \langle w_{k}\cdot w_{k}\rangle =1,\quad {}} gdy w 0 ( ξ ) = 1 2 , w k ( ξ ) = cos ( k π ξ ) , k = 1 , 2 , , n , {\displaystyle {}\;w_{0}(\xi )={\tfrac {1}{\sqrt {2}}},\;\;w_{k}(\xi )=\cos(k\pi \xi ),\;k=1,\,2,\,\dots ,\,n,}
  • w 0 w 0 = π , w k w k = π 2 , k = 1 , 2 , n , {\displaystyle \langle w_{0}\cdot w_{0}\rangle =\pi ,\;\;\langle w_{k}\cdot w_{k}\rangle ={\tfrac {\pi }{2}},\;k=1,\,2,\,\dots \,n,\quad {}} gdy funkcje w k ( x ) {\displaystyle w_{k}(x)} są wielomianami Czebyszewa[3] stopnia k . {\displaystyle k.}

Zdefiniowanie najlepszej aproksymacji

  • W przestrzeniach unormowanych

Niech dana będzie przestrzeń liniowa X {\displaystyle X} z normą {\displaystyle \|\cdot \|} i niech V X {\displaystyle V\subset X} będzie podprzestrzenią liniową X {\displaystyle X} skończonego wymiaru. Zadanie najlepszej aproksymacji polega na znalezieniu takiego v V {\displaystyle v^{*}\in V} (elementu najlepszej aproksymacji dla danego x X {\displaystyle x\in X} ), że zachodzi:

v V x v x v {\displaystyle \forall {v\in V}\quad \|x-v^{*}\|\leqslant \|x-v\|}

Należy przez to rozumieć, że element v {\displaystyle v^{*}} jest elementem „najbliższym” do aproksymowanego x {\displaystyle x} spośród wszystkich elementów v V . {\displaystyle v\in V.}

Zadanie najlepszej aproksymacji jest zawsze rozwiązywalne, tzn. dla każdego x X {\displaystyle x\in X} istnieje element najlepszej aproksymacji v , {\displaystyle v^{*},} ale niekoniecznie jest on jedyny. Należy zauważyć, że element najlepszej aproksymacji zależy od normy, jaka została przyjęta w przestrzeni X . {\displaystyle X.}

  • W przestrzeniach unitarnych

Niech X {\displaystyle X} będzie przestrzenią z iloczynem skalarnym , {\displaystyle \langle \cdot ,\cdot \rangle } i niech norma w X {\displaystyle X} będzie generowana tym iloczynem: x = x , x . {\displaystyle \|x\|={\sqrt {\langle x,x\rangle }}.}

Wtedy dla danego x X {\displaystyle x\in X} element najlepszej aproksymacji v {\displaystyle v^{*}} jest jedyny i jest określony następująco:

v V     x v , v = 0. {\displaystyle \forall {v\in V}\ \ \langle x-v^{*},v\rangle =0.}

Zagadnienia aproksymacji funkcji

Aproksymację stosuje się w sytuacjach, gdy nie istnieje analityczna postać funkcji, która pozwalałaby na wyznaczenie wartości dla dowolnego z jej argumentów, a jednocześnie wartości tej nieznanej funkcji są dla pewnego zbioru jej argumentów znane. Z przypadkiem takim mamy do czynienia np. w meteorologii przy sporządzaniu map synoptycznych na podstawie wyników pomiarów terenowych.

Aproksymowanie funkcji może polegać na przybliżaniu jej za pomocą kombinacji liniowej tzw. funkcji bazowych[5]. Od funkcji aproksymującej, przybliżającej daną funkcję nie wymaga się, aby przechodziła ona przez jakieś konkretne punkty, tak jak to ma miejsce w interpolacji. Z matematycznego punktu widzenia aproksymacja funkcji f {\displaystyle f} w pewnej przestrzeni Hilberta H {\displaystyle H} jest zagadnieniem polegającym na poszukiwaniu pewnej funkcji g G , {\displaystyle g\in G,} gdzie G {\displaystyle G} jest podprzestrzenią H ( G H ) {\displaystyle H\,(G\subset H)} takiej, by odległość (w sensie obowiązującej w H {\displaystyle H} normy) między f {\displaystyle f} a g {\displaystyle g} była jak najmniejsza.

Aproksymacja funkcji powoduje pojawienie się błędów, zwanych błędami aproksymacji[6]. Dużą zaletą aproksymacji w stosunku do interpolacji jest to, że aby dobrze przybliżać, funkcja aproksymująca nie musi być wielomianem wysokiego stopnia (w ogóle nie musi być wielomianem). Przybliżenie w tym wypadku rozumiane jest jako minimalizacja pewnej funkcji błędu. Prawdopodobnie najpopularniejszą miarą tego błędu jest średni błąd kwadratowy, ale możliwe są również inne funkcje błędu, jak choćby błąd średni.

Istnieje wiele metod aproksymacyjnych. Jednymi z najbardziej popularnych są: aproksymacja średniokwadratowa i aproksymacja jednostajna oraz aproksymacja liniowa, gdzie funkcją bazową jest funkcja liniowa.

Funkcja aproksymująca może być przedstawiona w różnej postaci. Najczęściej jest to postać:

  • wielomianu (tzw. aproksymacja wielomianowa),
  • funkcji sklejanych,
  • funkcji matematycznych uzyskanych na drodze statystyki matematycznej (przede wszystkim regresji),
  • sztucznych sieci neuronowych.

Aproksymację można formułować również przy rozwiązywaniu zagadnień dwu- i trójwymiarowych.

Zobacz też

Przypisy

  1. aproksymacja, [w:] Encyklopedia PWN [dostęp 2023-03-18] .
  2. B.P. Demidowicz, I.A. Maron, Metody numeryczne, cz. 2, PWN, Warszawa 1965.
  3. a b c J. Legras, Praktyczne metody analizy numerycznej, WNT, Warszawa 1974.
  4. M.J. Ciałkowski, K. Magnucki, Zarys metody elementów skończonych, Wyd. Politechniki Poznańskiej, Poznań 1982.
  5. Fortuna, Macukow i Wąsowski 1993 ↓, s. 74.
  6. Fortuna, Macukow i Wąsowski 1993 ↓, s. 73.

Bibliografia

  • Zenon Fortuna, Bohdan Macukow, Janusz Wąsowski: Metody numeryczne. Warszawa: Wydawnictwa Naukowo-Techniczne, 1993. ISBN 83-204-1551-9.
  • GND: 4002498-2
  • BNCF: 20412
  • SNL: approksimasjon
  • DSDE: approksimation