Aproximarea funcţiilor prin metoda celor mai mici pătrate Prof.dr.ing. Universitatea "Politehnica" Bucureşti, Facultatea de Inginerie Electrică Suport didactic pentru disciplina Metode numerice, 2017-2018 1/30 Cuprins 1 2 2/30
Interpolare vs. aproximare Date 0.1 Interpolare 0.1 Date Aproximare 0 0-0.1-0.1-0.2-0.2-0.3-0.3-0.4 1 2 3 4 5 6 7 8 9 10-0.4 1 2 3 4 5 6 7 8 9 10 Interpolare Aproximare Se dă un set de date (x k, y k ), k = 0,...,m, unde y k = f(x k ). Se caută o aproximare notată g(x), unde g(x k ) y k. 3/30 Ideea metodei Funcţia de aproximare se caută a.î: g(x) f(x) minimă Deoarece f este cunoscută într-un număr discret de puncte norma discretă (de exemplu norma Euclidiană discretă). Metoda celor mai mici pătrate (CMMP) caută g a.î: E = (f(x k ) g(x k )) 2 minimă (1) 4/30
Regresia liniară g(x) = c 0 + c 1 x c 0 =?, c 1 =?. 5 Exemplu: m = 3: (1,3), (2,1), (4,4). 4.5 Regresie liniara prin cmmp E(c 0, c 1 ) = (y 0 c 0 c 1 x 0 ) 2 + + (y 1 c 0 c 1 x 1 ) 2 + + (y 2 c 0 c 1 x 2 ) 2 = = (3 c 0 c 1 ) 2 + + (1 c 0 2c 1 ) 2 + + (4 c 0 4c 1 ) 2. y 4 3.5 3 2.5 2 1.5 1 0.5 0 0 1 2 3 4 5 x 5/30 Regresia liniară E(c 0, c 1 ) = (y 0 c 0 c 1 x 0 ) 2 + (y 1 c 0 c 1 x 1 ) 2 + (y 2 c 0 c 1 x 2 ) 2 = E c 0 = 0, E c 1 = 0. = (3 c 0 c 1 ) 2 + (1 c 0 2c 1 ) 2 + (4 c 0 4c 1 ) 2. (2) { 3c0 + 7c 1 = 8, 7c 0 + 21c 1 = 21 c 0 = 1.5, c 1 = 0.5. (3) 5 Regresie liniara prin cmmp 4.5 4 3.5 y 3 2.5 2 g(1) = 2, g(2) = 2.5, g(3) = 3.5; min E = (3 2) 2 +(1 2.5) 2 +(4 3.5) 2 1.5 1 0.5 0 0 1 2 3 4 5 x 6/30
Regresia liniară E(c 0, c 1 ) = (y 0 c 0 c 1 x 0 ) 2 + (y 1 c 0 c 1 x 1 ) 2 + (y 2 c 0 c 1 x 2 ) 2 = E c 0 = 0, E c 1 = 0. = (3 c 0 c 1 ) 2 + (1 c 0 2c 1 ) 2 + (4 c 0 4c 1 ) 2. (2) { 3c0 + 7c 1 = 8, 7c 0 + 21c 1 = 21 c 0 = 1.5, c 1 = 0.5. (3) 5 Regresie liniara prin cmmp 4.5 4 3.5 y 3 2.5 2 g(1) = 2, g(2) = 2.5, g(3) = 3.5; min E = (3 2) 2 +(1 2.5) 2 +(4 3.5) 2 1.5 1 0.5 0 0 1 2 3 4 5 x 6/30 Regresia liniară Set oarecare de date: E(c 0, c 1 ) = (y k c 0 c 1 x k ) 2, (4) { E c 0 = 0, E c 1 = 0. { 2(y k c 0 c 1 x k ) = 0, 2x k(y k c 0 c 1 x k ) = 0. (5) { c0 (m+1)+c m 1 x k = y k, c m 0 x k + c m 1 x2 k = x ky k. Sistem normal (6) 7/30
Regresia liniară Soluţia se poate calcula explicit: unde c 0 = d 0 d, c 1 = d 1 d, (7) ( m ) 2 d = (m+1) xk 2 x k, (8) d 0 = d 1 ( m xk 2 = (m+1) )( ( m )( ) y k ) x k x k y k, (9) ( m )( ) x k y k x k y k. (10) 8/30 Regresia liniară - alt raţionament Condiţiile de interpolare pentru datele din tabel şi g(x) = c 0 + c 1 x: c 0 + c 1 x k = y k, k = 1,...,m, (11) sistem supradeterminat de ecuaţii. Dacă notăm 1 x 0 y 0 1 x 1 A =.., y = y 1., (12) 1 x m y m atunci (11) se scriu compact unde c = [c 0 c 1 ] T, iar sistemul normal este Ac = y, (13) A T Ac = A T y. (14) 9/30
Regresia liniară - alt raţionament Reluăm exemplul simplu: m = 3: (1,3), (2,1), (4,4). 1 1 1 3 A = 1 2, y = 1 1 1 4 1 4 A T A = [ 3 7 7 21 ], A T y = [ 8 21, (15) ]. (16) { 3c0 + 7c 1 = 8, 7c 0 + 21c 1 = 21 c 0 = 1.5, c 1 = 0.5. (17) 10/30 Cazul general Metoda celor mai mici pătrate nu este limitată la polinoame de gradul întâi. Exemplu: g(x) = c 0 ln(x)+c 1 sin(x)+c 2 x. 1 Se minimizează funcţia definită de E = (f(x k) g(x k )) 2 ; 2 Se impun condiţiile de minimizare; 3 Se rezolvă un sistem algebric liniar de dimensiune 3. 11/30
Cazul general În general, se caută o aproximare de forma unui polinom generalizat n g(x) = c j ϕ j (x), (18) j=0 unde ϕ i (x) se numesc funcţii de bază. OBS: n+1 < m+1 E(c 0, c 1,..., c n ) = (g(x k ) f(x k )) 2 = n c j ϕ j (x k ) y k j=0 (19) 2. 12/30 Cazul general E(c 0, c 1,..., c n ) = (g(x k ) f(x k )) 2 = n c j ϕ j (x k ) y k j=0 Punctul de minim al acestei funcţii este un punct critic: (20) E c i = 0, i = 0,...,n. (21) Înlocuind expresia (20) în (21) rezultă ( n ) ϕ i (x k )ϕ j (x k ) c j = y k ϕ i (x k ), i = 0,...,n. (22) j=0 Sistem normal dificil de rezolvat dacă ϕ k nu sunt alese potrivit. 2. 13/30
Cazul general - alt raţionament Condiţiile de interpolare pentru datele din tabel şi g(x) g(x k ) = y k, k = 1,...,m, (23) sistem supradeterminat de ecuaţii. Notăm ϕ 0 (x 0 ) ϕ 1 (x 0 ) ϕ n (x 0 ) ϕ 0 (x 1 ) ϕ 1 (x 1 ) ϕ n (x 1 ) A =......, y = ϕ 0 (x m ) ϕ 1 (x m ) ϕ n (x m ) atunci (23) se scriu compact y 0 y 1.. y m, (24) Ac = y, (25) unde c = [c 0, c 1... c n+1 ] T. Sistemul normal: A T Ac = A T y. (26) 14/30 clasice Sistemul normal de rezolvat are, în cazul regresiei liniare forma N = [ m+1 x k x k x2 k Nc = t (27) ] [, t = y ] k m x. (28) ky k 15/30
clasice Sistemul normal de rezolvat Nc = t (29) are, în cazul regresiei parabolice g(x) = c 0 + c 1 x + c 2 x 2, forma: m+1 m x k x2 k N = m x y k k, t = m x ky k x2 k x2 k m x3 k x3 k m x4 k m x2 k y k. (30) OBS: Generalizarea este uşoara pentru n > 2, dar sistemul este slab condiţionat. :( 16/30 clasice Sistemul normal de rezolvat Nc = t (29) are, în cazul regresiei parabolice g(x) = c 0 + c 1 x + c 2 x 2, forma: m+1 m x k x2 k N = m x y k k, t = m x ky k x2 k x2 k m x3 k x3 k m x4 k m x2 k y k. (30) OBS: Generalizarea este uşoara pentru n > 2, dar sistemul este slab condiţionat. :( Remedii? 16/30
clasice Remedii: 1 Folosirea unor alte funcţii de bază; 2 O altă strategie pentru CMMP, care nu rezolvă sistemul normal. 17/30 - polinoame Chebyshev În cazul în care se caută polinoamelor algebrice, atunci folosirea polinoamelor Chebyshev, definite recursiv ca: T 0 (x) = 1, (31) T 1 (x) = x, (32) T j (x) = 2xT j 1 (x) T j 2 (x), (33) generează un sistem de ecuaţii mult mai bine condiţionat. OBS: Există un algoritm mai eficient de evaluare a aproximării g(x) cu polinoame Chebyshev, decât rezolvarea sistemului normal [Cheney07]. 18/30
ortonormale Ideal (din p.d.v. al condiţionării) - varianta în care matricea coeficienţilor este matricea unitate, adică dacă ϕ i (x k )ϕ j (x k ) = δ ij, unde δ ij = { 1 dacă i = j 0 dacă i j, (34) ceea ce înseamnă că funcţiile de bază sunt ortonormale. c j = y k ϕ j (x k ), j = 0,...,n. (35) 19/30 ortonormale Dacă notăm cu G spaţiul vectorial al funcţiilor generat de funcţii de bază ϕ j (x) G = g : c 0, c 1,... c n, astfel încât g(x) = n c j ϕ j (x), (36) j=0 atunci o bază ortonormală se poate construi de exemplu printr-o procedură Gram-Schmidt. 20/30
- paşi principali Date: tabelul de valori; valorile în care se doreşte evaluarea polinomului de aproximare. Se aleg: funcţiile de bază (în consecinţă şi gradul polinomului de aproximare). Se calculează: valorile polinomului de aproximare în punctele dorite. 21/30 - paşi principali CMMP_SistemNormal 1. Asamblează A şi y 2. Calculează N = A T A şi t = A T y 3. Rezolvă sistemul pătrat Nc = t c 4. Evaluează polinomul de aproximare g(x) în punctul dorit 22/30
- paşi principali Obs: În cazuri particulare, se poate evita calculul explicit al coeficienţilor c. Se poate ca tabelul de valori să includă numere complexe. În acest caz: N = A H A, t = A H y unde A H (notată uneori şi cu A ) este transpusa hermitiană adica (a H ) ij = a ji. Sistemul normal A H Ac = A H y este nesingular dcaă şi numai dacă A este de rang complet [Trefethen97]. 23/30 Probleme de CMMP neliniare Până acum polinoamele de interpolare = combinaţii liniare de coeficienţi necunoscuţi. Dar dacă: Pentru setul de date (x k, y k ), k = 0, m se caută g(x) = e cx? Metoda CMMP minimizează funcţia E(c) = (e cx k y k ) 2 (37) Minimul are loc pentru E (c) = 0, deci 2 (e cx k y k ) e cx k x k = 0, (38) 24/30
Probleme de CMMP neliniare Pentru setul de date (x k, y k ), k = 0, m se caută g(x) = e cx. CMMP duce la (e cx k y k ) e cx k x k = 0, (39) ecuaţie neliniară în c rezolvare de ecuaţii neliniare; metode de minimizare. 25/30 Probleme de CMMP neliniare Pentru setul de date (x k, y k ), k = 0, m se caută g(x) = e cx. Acestea sunt probleme de CMMP neliniare. OBS: Reformulare ca o problemă de CMMP liniară: Pentru setul de date (x k, ln(y k )), k = 0, m se caută h(x) = cx. Valoarea c din problema reformulată nu este soluţia ecuaţiei neliniare (39), dar aproximarea e h(x) s-ar putea să fie satisfăcătoare. 26/30
Concluzii Se caută aproximarea unor date dintr-un tabel de valori; CMMP găseşte o funcţie a.î. distanţa dintre ea şi tabelul de date să fie minimă (în normă Euclidiană); Aceasta problemă este echivalentă cu rezolvarea unui sistem de ecuaţii supradimensionat Ac = y; Acesta se poate aduce la un sistem de ecuaţii normal, cu matricea coeficienţilor pătrată; Condiţionarea sistemului normal depinde de alegerea funcţiilor de bază; 27/30 Concluzii Polinoamele algebrice clasice se pot folosi pentru regresii liniare sau parabolice; Pentru ordine mai mari e mai bine să se folosească polinoame Chebyshev; O procedură eficientă poate folosi polinoame ortogonale adaptate setului de date; Găsirea ordinului optim se poate facând o analiză statistică. 28/30
Concluzii CMMP poate fi privită ca o metodă de rezolvare a unui sistem supradeterminat, care a fost notat Ac = y. Minimizarea normei Euclidiene discrete este echivalentă cu minimizarea normei reziduului r = Ac y. Există şi alţi algoritmi CMMP, care nu asamblează sistemul normal (bazaţi pe factorizare QR sau SVD). 29/30 Lectură obligatorie [Ioan98] D. Ioan et al., Metode numerice in ingineria electrica, Ed. Matrix Rom, Bucuresti, 1998. (Capitolul 13) Cartea se găseşte la biblioteca UPB, puteţi verifica accesând catalogul http://www.library.pub.ro/. 30/30