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
inną, zazwyczaj prostszą
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.
Ogólnie rzecz ujmując, aproksymacja polega na przybliżaniu pewnej funkcji
w obszarze
jej określoności, za pomocą innej, prostszej funkcji przybliżającej
określonej w tym samym obszarze, której wartości zależą od pewnej liczby parametrów. Najczęściej jako funkcje
stosuje się wielomiany uogólnione w postaci
| | ![{\displaystyle \varphi (x)=a_{1}\varphi _{1}(x)+a_{2}\varphi _{2}(x)+\,\dots \,+a_{n}\varphi _{n}(x),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3b6f04f9da39d0b69fdfd9ea36106e30ad0bb5c0)
| | (a) |
w której funkcje
tworzą tzw. bazę aproksymacji
![{\displaystyle \mathbf {B} (x)=[\varphi _{1}(x),\,\varphi _{2}(x),\,\dots \,\varphi _{n}(x)],}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3cf9bc2f714eda86b9f705769546febdd6f6ea92)
zaś
są liczbowymi współrzędnymi funkcji
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
| | ![{\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 },}](https://wikimedia.org/api/rest_v1/media/math/render/svg/64749e98daed0b7654a122ca41341f707aaff115)
| | (b) |
przy czym ten iloczyn może być definiowany na dwa sposoby[3]:
| | lub ![{\displaystyle {}\quad \langle g\cdot h\rangle =\sum _{i=1}^{n}g(x_{i})h(x_{i}),\;\;x_{i}\in \Omega .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/72b8fa366a5ece70f2b6bc467aff8bafd0e7376e)
| | (c) |
Minimalizacja tak określonego błędu wymaga, aby
| | ![{\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}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ad344788954b6e4ae0e462c572dc21f8e7789998)
| | (d) |
Opisany powyżej sposób aproksymacji funkcji
za pomocą wielomianu
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
określone zostały funkcjonałami
ze względu na funkcje
Ogólne sformułowanie aproksymacji w przestrzeni liniowej
wymaga określenia warunków, jakie ta aproksymacja ma spełniać. Jeżeli przez
oznaczymy podzbiór
zbioru
będący również przestrzenią liniową, to aproksymacja będzie polegać na tym, aby dla każdego elementu
znaleźć taki element
dla którego zachodzą równości
dla ![{\displaystyle {}\quad k=1,\,2,\,\dots \,n,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b2dc3d11a6bd48368e6d97cf475a5643c8d4ad95)
w których
są pewnymi funkcjonałami liniowymi, określającymi warunki dokonywanej aproksymacji.
Zatem zagadnienie aproksymacji wymaga określenia trzech zbiorów:
- funkcji
funkcji aproksymowanych, - funkcji
funkcji aproksymujących, - ciągu
funkcjonałów liniowych.
Najczęściej jako
wybiera się zbiór wielomianów uogólnionych o postaci
![{\displaystyle \varphi (x)=\sum _{i=1}^{n}a_{i}\varphi _{i}(x)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bce8f1a8648ae6ebf92f08481203875d59e993f6)
utworzonej z funkcji bazowych
W tym przypadku
staje się n-wymiarową podprzestrzenią
Poszukiwanie elementu
aproksymującego
polega na zbudowaniu takiego wielomianu
| | ![{\displaystyle \varphi =a_{1}\varphi _{1}+a_{2}\varphi _{2}+\,\dots \,+a_{n}\varphi _{n},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/de0af48b2cc0476d920ad6d07379c383e2b8e9f1)
| | (e) |
który spełnia równości
| | ![{\displaystyle l_{k}(\varphi )=\sum _{i=1}^{n}l_{k}(\varphi _{i})a_{i}=l_{k}(f),\quad k=1,\,2,\,\dots \,n.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4045b5ad3e4795cdf91b168cdf35aaf8c9ef80a2) | | (f) |
tworzące układ równań służących do określenia współczynników kombinacji liniowej (e).
Jeżeli za
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
zawężoną do interpolacji[4], w następującej postaci
| | ![{\displaystyle {\bar {f}}=c_{1}\phi _{1}(x)+c_{2}\phi _{2}(x)+\,\dots \,c_{n}\phi _{n}(x),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7f7e23b15de58dcd32e9145c94003044ab30f661)
| | (g) |
w której bazę takiej aproksymacji stanowią funkcje
o tej własności, że
Stąd wynika
| | oraz ![{\displaystyle {}\quad {\bar {f}}=\sum _{k=1}^{n}(l_{k}{\bar {f}})\phi _{k}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1afae9bb080a5ca5d8c22971b89a9c5cf73b98b2) | | (h) |
Funkcję
otrzymuje się na podstawie kombinacji (e)
![{\displaystyle \phi _{s}(x)=\sum _{k=1}^{n}a_{i}^{(s)}\varphi _{s}(x),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/13a42be0b9920ca407845441b3f5cacfbbe970e0)
której współczynniki
są określone równaniami (f), w których funkcja
zostaje zastąpiona przez kolejne funkcje
Funkcje te nazywane są funkcjami bazowymi Lagrange’a.
Przykład 1
Funkcję
można aproksymować w przedziale
funkcją liniową przyjmując, że
![{\displaystyle \varphi (x)=a_{1}\varphi _{1}(x)+a_{2}\varphi _{2}(x)=a_{1}+a_{2}x}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fc08889e7a25263ea84619ce2ed25473ad208121)
i definiując dwa funkcjonały, na przykład w postaci iloczynów skalarnych
![{\displaystyle l_{k}(\varphi )=\langle \varphi _{k}\cdot \varphi \rangle =\int _{0}^{1}\!\!\varphi _{k}(x)\cdot \varphi (x)\,dx,\quad k=1,\,2.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a0b27aa715bf1b01b269d8e95cd93377b114e438)
Warunki (f) przyjmują postać
![{\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.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/33619f58bedfd92a7506b3d57e106041e0854704)
Dla obliczenia współczynników
otrzymujemy układ równań
![{\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.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/dc907c1d02973bb5c618e5ebd2fccefbcd048ca7)
Przykład 2
Aproksymację funkcji
określonej w przedziale
można zastąpić aproksymacją funkcji
w przedziale standardowym
Bazę aproksymacji zbudujemy w postaci uogólnionego wielomianu stopnia
![{\displaystyle \varphi (\xi )=a_{0}w_{0}(\xi )+a_{1}w_{1}(\xi )+\,\dots \,+a_{n}w_{n}(\xi ),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8e01e0cd8f34eb68d35b3d3b5b9cc919c3b92835)
utworzonego z funkcji dowolnych, ale wzajemnie ortogonalnych, spełniających w przedziale standardowym, warunki
gdy ![{\displaystyle {}\;i\neq k.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a7d3bf111b7344f4c02f4819f17ffb44ac3f20b9)
Funkcjonał
występujący w (f) przyjmiemy w postaci
![{\displaystyle l_{k}(F)=\langle w_{k}\cdot F\rangle =\int _{-1}^{1}w_{k}(\xi )F(\xi ),\quad k=0,\,1,\,\dots \,n.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/705b9828465c8c62460364ac49b05a4b5aec15d6)
Mamy również
![{\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}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/34bdb5db31680c2fcab3db72fb3a9e44b93b13c0)
Układ równań (f) redukuje się do najprostszej postaci
![{\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.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e24220085bbbb3ba703ce3f1a8105a29f0768773)
Funkcjonały
mają przykładowo wartości
gdy funkcje
są wielomianami Legendre’a[3] stopnia ![{\displaystyle k,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/44e185ab9c990830d5055fa3ae698a4225ce67e0)
gdy ![{\displaystyle {}\;w_{0}(\xi )={\tfrac {1}{\sqrt {2}}},\;\;w_{k}(\xi )=\cos(k\pi \xi ),\;k=1,\,2,\,\dots ,\,n,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7f3dbfad142b6853be98bca9cadd96c8411f6028)
gdy funkcje
są wielomianami Czebyszewa[3] stopnia ![{\displaystyle k.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bcb6778a29f576eb23da1dbddffb73b2571359ac)
Zdefiniowanie najlepszej aproksymacji
- W przestrzeniach unormowanych
Niech dana będzie przestrzeń liniowa
z normą
i niech
będzie podprzestrzenią liniową
skończonego wymiaru. Zadanie najlepszej aproksymacji polega na znalezieniu takiego
(elementu najlepszej aproksymacji dla danego
), że zachodzi:
![{\displaystyle \forall {v\in V}\quad \|x-v^{*}\|\leqslant \|x-v\|}](https://wikimedia.org/api/rest_v1/media/math/render/svg/70ac7fec7e66e189e17239c36b3d240c3c6af487)
Należy przez to rozumieć, że element
jest elementem „najbliższym” do aproksymowanego
spośród wszystkich elementów
Zadanie najlepszej aproksymacji jest zawsze rozwiązywalne, tzn. dla każdego
istnieje element najlepszej aproksymacji
ale niekoniecznie jest on jedyny. Należy zauważyć, że element najlepszej aproksymacji zależy od normy, jaka została przyjęta w przestrzeni
- W przestrzeniach unitarnych
Niech
będzie przestrzenią z iloczynem skalarnym
i niech norma w
będzie generowana tym iloczynem:
Wtedy dla danego
element najlepszej aproksymacji
jest jedyny i jest określony następująco:
![{\displaystyle \forall {v\in V}\ \ \langle x-v^{*},v\rangle =0.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1cb6a34c3c0575dd2cf9d838fa95d610a3761f19)
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
w pewnej przestrzeni Hilberta
jest zagadnieniem polegającym na poszukiwaniu pewnej funkcji
gdzie
jest podprzestrzenią
takiej, by odległość (w sensie obowiązującej w
normy) między
a
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
- ↑ aproksymacja, [w:] Encyklopedia PWN [online], Wydawnictwo Naukowe PWN [dostęp 2023-03-18] .
- ↑ B.P. Demidowicz, I.A. Maron, Metody numeryczne, cz. 2, PWN, Warszawa 1965.
- ↑ a b c J. Legras, Praktyczne metody analizy numerycznej, WNT, Warszawa 1974.
- ↑ M.J. Ciałkowski, K. Magnucki, Zarys metody elementów skończonych, Wyd. Politechniki Poznańskiej, Poznań 1982.
- ↑ Fortuna, Macukow i Wąsowski 1993 ↓, s. 74.
- ↑ 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. Brak numerów stron w książce
- SNL: approksimasjon
- DSDE: approksimation