🔄  Ediția următoare

Acest subcapitol este, momentan, o schiță și/sau necesită modificări semnificative.

Suplimentar, acesta este prevăzut să se schimbe în edițiile următoare astfel încât să se adapteze mai bine nevoilor întâlnite în cadrul materiei de Metode Numerice.

Aproximare în sensul CMMP#

Vom folosi acum polinoamele ortogonale explicate anterior pentru a aproxima funcții numerice - tratăm doar cazul continuu.

Spațiul \(L^2_{\omega}\)#

Considerăm \(\omega\) o funcție pondere aleasă astfel încât să putem defini produsul scalar între două funcții \(f\) și \(g\) folosind formula bine cunoscută: \(\left\langle f,g\right\rangle=\int_{-1}^1f(x)\cdot g(x)\cdot\omega(x)\,dx\).

În acest context, definim spațiul funcțiilor \(L^2\) (uneori notat și \(L_2\)) folosind:

\[ \boxed{L^2_{\omega}(a,b)=\left\{f:(a,b)\rightarrow\mathbb{R}\,\,\big|\,\,\int_{-1}^1f^2(x)\cdot\omega(w)\,dx\lt \infty\right\}} \]

Putem, alternativ, să plecăm de la definiția normei euclidiene în raport cu \(\omega\), anume \(||f||_{\omega}=\sqrt{\langle f,f\rangle_{\omega}}\). Atunci, spațiul \(L^2_{\omega}(a,b)\) poate fi scris și sub forma:

\[ \boxed{L^2_{\omega}(a,b)=\Big\{f:(a,b)\rightarrow\mathbb{R}\,\,\big|\,\,||f||_{\omega}\lt \infty\Big\}} \]

Când vom discuta despre aproximarea în sensul celor mai mici pătrate, ne vom referi numai la aproximările acelor funcții ce aparțin spațiului \(L^2_{\omega}`\).

Aproximarea continuă în sensul CMMP#

Prin aproximarea în sensul celor mai mici pătrate a unei funcții \(f\in L^2_{\omega}\) înțelegem căutarea unui polinom \(p_n\in\mathbb{P}_n\) de grad \(n\in\mathbb{N}\), denumit cel mai bun aproximant în sensul celor mai mici pătrate (prescurtat, CMMP), care satisface următoarea egalitate:

\[ \varepsilon_{\omega}=||f-p_n||_{\omega}=\min_{r_n\in\mathbb{P}_n}||f-r_n||_{\omega} \]

Așadar, am notat:

  • \(p_n\) - cel mai bun aproximant în sensul CMMP, adică funcția căutată;

  • \(f:(a,b)\subset\mathbb{R}\rightarrow\mathbb{R}\) - funcția pe care încercăm să o aproximăm;

  • \(\omega:(a,b)\subset\mathbb{R}\rightarrow\mathbb{R}\) - o funcție pondere în raport cu care vrem să calculăm aproximarea;

  • \(\varepsilon_{\omega}\) - eroarea dintre funcția aproximantă și funcția aproximată.

Denumirea de "cele mai mici pătrate" provine din cazul particular în care \(\omega(x)=1\), situație care presupune de fapt minimizarea erorii:

\[ \varepsilon=||f-p_n||=\sqrt{\int_a^b\Big[f(x)-p_n(x)\Big]^2\,dx} \]

Observați că, pentru acest caz particular, se integrează o diferență ridicată la pătrat - de aici extragem și denumirea.

Legătura cu polinoamele ortogonale#

Fie \(U=\{u_1,u_2,\dots, u_n\}\) o bază ortogonală a subspațiului \(\mathbb{P}_{n-1}\). În acest context, avem certitudinea că polinomul \(p_n(x)\) poate fi scris sub forma unor proiecții ale lui \(f\) pe polinoamele din subspațiul \(U\), adică:

\[ \boxed{p_n(x)=\frac{\langle f,u_1\rangle}{||u_1||^2}u_1(x)+\frac{\langle f,u_2\rangle}{||u_2||^2}u_2(x)+\dots+\frac{\langle f,u_n\rangle}{||u_n||^2}u_n(x)} \]

Observați similitudinea dintre această scriere pentru polinoame ortogonale și vectori ortogonali. Nu este matematica frumoasă?

Cum pot fi însă obținute elementele mulțimii \(U\)? Cu alte cuvinte, cum putem face rost de o bază ortogonală?

Modificarea algoritmului Gram-Schmidt#

Așa cum ați sesizat, există o oarece legătură între vectorii subspațiului \(\mathbb{R}^n\), \(n\in\mathbb{N}^*\), și polinoamele subspațiului \(\mathbb{P}_{n-1}\).

Așadar nu suntem mirați de faptul că algoritmul Gram-Schmidt poate fi alterat pentru a obține o bază ortogonală \(U=\{u_1,u_2,\dots,u_n\}\) pornind de la o bază oarecare \(V=\{v_1,\dots,v_n\}\) a subspațiului \(\mathbb{P}_{n-1}\).

Astfel, urmând pașii explicați în cadrul factorizării Gram-Schmidt, se obține:

  • Pentru pasul inițial - se normalizează \(v_1\) și se obține \(u_1\):

\[ u_1=\frac{1}{||v_1||}v_1 \]
  • Pentru pasul general - se utilizează formula:

    \[ u_{k+1}=\frac{1}{||v_{k+1}-p_k||}\left(v_{k+1}-p_k\right),\,\forall k\in\overline{1,n-1} \]

    unde \(p_k\) simplifică notațiile și reprezintă proiecția lui \(v_{k+1}\) pe \(\{u_1,u_2,\dots,u_k\}\). Forma completă a lui \(p_k\) este de fapt:

    \[ p_k=\left\langle v_{k+1},u_1\right\rangle+\left\langle v_{k+1},u_2\right\rangle+\dots+\left\langle v_{k+1},u_k\right\rangle,\,\forall k\in\overline{1,n-1} \]

Utilizarea bazelor cunoscute#

La liceu, derivarea unei funcții a fost predată sub forma unei limite - dar de câte ori ați folosit de fapt acea definiție? Mai mereu foloseați regulile pentru derivare!

Asemănător, în cazul nostru, se poate utiliza o bază \(U\) deja predefinită - cu alte cuvinte, se poate utiliza o familie de polinoame ortogonale cunoscută, precum polinoamele Cebâșev sau polinoamele trigonometrice descrise anterior.

Discuția va continua acum pentru familiile cunoscute.

Utilizarea polinoamelor Cebâșev#

Amintim că produsul scalar al polinoamele Cebâșev, așa cum au fost ele descrise anterior, poate lua trei valori diferite - mai precis, pentru polinoamele \(T_i\) și \(T_j\):

\[ \left\langle T_i,T_j\right\rangle=\begin{cases} 0,&i\neq j\\ \pi,&i=j=0\\ \dfrac{\pi}{2},&i=j\neq0 \end{cases} \]

Vrem să simplificăm și mai mult acest produs scalar și să îl forțăm să se împartă pe numai două ramuri. Din acest motiv, întrucât înmulțirea unui polinom ortogonal cu o constantă nu îl face să își piardă ortogonalitatea față de celelalte, vom transforma polinomul \(T_0\) pentru ca \(\langle T_0,T_0\rangle=\frac{\pi}{2}\).

Se poate arăta ușor că noua familie de polinoame va arăta deci astfel:

Indicele polinomului Polinomul Cebâșev original Polinomul Cebâșev modificat
\(T_0(x)\) \(1\) \(\dfrac{1}{\sqrt{2}}\)
\(T_1(x)\) \(x\) \(x\)
\(T_2(x)\) \(2x^2-1\) \(2x^2-1\)
\(T_3(x)\) \(4x^3-3x\) \(4x^3-3x\)
\(T_4(x)\) \(8x^4-8x^2+5x\) \(8x^4-8x^2+5x\)
\(T_5(x)\) \(16x^6-20x^3+5x\) \(16x^6-20x^3+5x\)

Am reușit! Produsul scalar al polinoamelor Cebâșev modificate este:

\[ \boxed{\left\langle T_i,T_j\right\rangle=\begin{cases} 0,&i\neq j\\ \dfrac{\pi}{2},&i=j \end{cases}} \]

Vom mai avea nevoie de funția pondere specifică acestor polinoame, \(\omega(x)=\dfrac{1}{\sqrt{1-x^2}}\), respectiv de intervalul de definiție a integralei ce caracterizează produsul scalar al funcțiilor ortogonale, anume \((-1,1)\). Acestea nu suferă modificări.

Ne putem întoarce acum la aproximarea în sensul celor mai mici pătrate a unei funcții \(f:\mathbb{R}\rightarrow\mathbb{R}\) cu un polinom \(p_n\in\mathbb{P}_n\), \(n\in\mathbb{N}\). Dat fiind faptul că am convenit ca baza \(U\) să fie aleasă în funcție de polinoamele ortogonale Cebâșev modificate, adică \(U=\left\{T_0,T_1,\dots,T_n\right\}\), polinomul \(p_n\) poate fi scris sub forma:

\[ p_n(x)=\frac{\langle f,T_0\rangle}{||T_0||^2}T_0(x)+\frac{\langle f,T_1\rangle}{||T_1||^2}T_1(x)+\dots+\frac{\langle f,T_n\rangle}{||T_n||^2}T_n(x) \]

Alternativ, dacă notăm \(\alpha_k=\dfrac{\langle f,T_k\rangle}{||T_k||^2}\), \(\forall k\in\overline{0,n}\), ajungem la scrierea simplificată:

\[ \boxed{p_n(x)=\alpha_0T_0(x)+\alpha_1T_1(x)+\dots+\alpha_nT_n(x)} \]

Pentru a calcula însă acești coeficienți, ne vom folosi în primul rând de faptul că \(||\cdot||^2=\langle\cdot,\cdot\rangle\), ceea ce înseamnă că \(||T_k||^2=\langle T_k, T_k\rangle=\frac{\pi}{2}\), \(\forall k\in\overline{1,n}\). Putem deci să îl definim pe \(\alpha_k\) după formula:

\[ \boxed{ \alpha_k=\frac{2}{\pi}\langle f,T_k\rangle=\frac{2}{\pi}\int_{-1}^1f(x)\cdot T_k(x)\cdot\frac{1}{\sqrt{1-x^2}}\,dx }\,,\,\,\forall k\in\overline{0,n} \]

Utilizarea polinoamelor trigonometrice#

Asemănător polinoamelor Cebâșev, vom regla polinoamele trigonometrice pentru a avea un produs scalar consistent. Amintim că, inițial, acest produs era:

\[ \left\langle u_i,u_j\right\rangle=\begin{cases} 0,&i\neq j\\ 2\pi,&i=j=0\\ \pi,&i=j\neq0 \end{cases} \]

Din acest motiv, forțăm ca \(\langle u_0,u_0\rangle=\pi\).

Noua familie de polinoame ortogonale va arăta astfel:

Indicele polinomului Polinomul trigonometric original Polinomul trigonometric modificat
\(u_0(x)\) \(1\) \(\dfrac{1}{\sqrt{2}}\)
\(u_1(x)\) \(\sin(x)\) \(\sin(x)\)
\(u_2(x)\) \(\cos(x)\) \(\cos(x)\)
\(u_3(x)\) \(\sin(2x)\) \(\sin(2x)\)
\(u_4(x)\) \(\cos(2x)\) \(\cos(2x)\)
\(u_5(x)\) \(\sin(3x)\) \(\sin(3x)\)

Practic, am realizat următorul produs scalar:

\[ \boxed{\left\langle T_i,T_j\right\rangle=\begin{cases} 0,&i\neq j\\ \pi,&i=j \end{cases}} \]

Vom mai avea nevoie de funția pondere specifică acestor polinoame, \(\omega(x)=1\), respectiv de intervalul de definiție a integralei ce caracterizează produsul scalar al funcțiilor ortogonale, anume \([0,2\pi]\) - și acestea rămân neschimbate.

Avem tot ce ne trebuie pentru a aproxima în sensul celor mai mici pătrate o funcție \(f:\mathbb{R}\rightarrow\mathbb{R}\) cu un polinom \(p_n\in\mathbb{P}_n\), \(n\in\mathbb{N}\). Dat fiind faptul că am convenit ca baza \(U\) să fie aleasă în funcție de polinoamele ortogonale trigonometrice modificate, adică \(U=\left\{u_0,u_1,\dots,u_n\right\}\), polinomul \(p_n\) poate fi scris sub forma:

\[ p_n(x)=\frac{\langle f,u_0\rangle}{||u_0||^2}u_0(x)+\frac{\langle f,u_1\rangle}{||u_1||^2}u_1(x)+\dots+\frac{\langle f,u_n\rangle}{||u_n||^2}u_n(x) \]

Alternativ, dacă notăm \(\alpha_k=\dfrac{\langle f,u_k\rangle}{||u_k||^2}\), \(\forall k\in\overline{1,n}\), ajungem la scrierea simplificată:

\[ \boxed{p_n(x)=\alpha_0u_0(x)+\alpha_1u_1(x)+\dots+\alpha_nu_n(x)} \]

Pentru a calcula însă acești coeficienți, ne vom folosi în primul rând de faptul că \(||\cdot||^2=\langle\cdot,\cdot\rangle\), ceea ce înseamnă că \(||u_k||^2=\langle u_k,u_k\rangle=\pi\), \(\forall k\in\overline{1,n}\). Deci \(\alpha_k\) se scrie:

\[ \boxed{ \alpha_k=\frac{1}{\pi}\langle f,u_k\rangle=\frac{1}{\pi}\int_{-1}^1f(x)\cdot u_k(x)\,dx }\,,\,\,\forall k\in\overline{0,n} \]

Aproximarea discretă în sensul CMMP#

Toate conceptele discutate în acest subcapitol pot fi extinse în lumea discretă, însă această carte (această ediție?) nu va trata această situație. Pentru informații referitoare la discretizarea aproximării în sensul CMMP, consultați subcapitolul dedicat.

Licență#

The book "Metode Numerice", written by Valentin-Ioan Vintilă, is licensed under CC BY-NC-SA 4.0