∑ ∑ - cjmat
Transkrypt
∑ ∑ - cjmat
Janusz Chojnacki Instytut Techniki Kolegium Karkonoskie Metody Numeryczne Laboratorium 7 Aproksymacja Średniokwadratowa Podstawy teoretyczne Załóżmy, że chcemy znaleźć postać funkcji liniowej dla danego zbioru danych (tabela7.1) Wykres takiej funkcji nazywamy prostą regresji. Tabela 7.1 i 1 2 3 4 5 6 x(i) 0.1 0.4 0.5 0.7 0.7 0.9 y(i) 0.61 0.92 0.99 1.52 1.47 2.03 Niech wzór funkcji na przykład ma postać g ( x) = c1 x + c2 , gdzie współczynniki c1 , c2 są poszukiwanymi liczbami. Ponieważ liczba punktów ( xi , yi ) w tabeli jest większa od dwóch - poszukiwana prosta nie może ,, przechodzić” przez każdy punkt. Zadanie liniowej aproksymacji średniokwadratowej polega na minimalizacji sumy kwadratów tzw. residuów czyli różnic ri = yi − g ( xi ) = yi − (c1 x + c2 ), i = 1, 2,..., N Oznaczmy tą sumę przez R. Mamy więc N N i =1 i =1 R (c1 , c2 ) = ∑ ri 2 = ∑ ( yi − c1 xi − c2 ) 2 Minimum funkcji R (c1 , c2 ) może być osiągnięte w punktach zerowania się pochodnych cząstkowych odpowiednio względem zmiennych c1 , c2 . N Rc'1 (c1 , c2 ) = −2∑ xi ( yi − c1 xi − c2 ) = 0 i =1 (7.1) N R (c1 , c2 ) = −2∑ ( yi − c1 xi − c2 ) = 0 ' c2 i =1 Układ (7.1) możemy zapisać w postaci N N N c1 ∑ xi2 + c2 ∑ xi = ∑ xi yi i =1 i =1 N N N i =1 i =1 i =1 i =1 (7.2) c1 ∑ xi + c2 ∑1 = ∑ yi Wprowadzając oznaczenia N a11 = ∑ xi2 , i =1 N N a12 = a21 = ∑ xi , a22 = ∑1 = N , i =1 i =1 układ (7.2) możemy zapisać w postaci a11 a 21 a12 a22 c1 z1 c = z 2 2 (7.3) Zadanie liniowej aproksymacji średniokwadratowej sprowadza się układu równań (7.3). do rozwiązania W praktyce mamy jeszcze inny sposób znajdowania współczynników poszukiwanej funkcji liniowej , rozpatrując tzw. układ nadokreślony : c1 xi + c2 = yi , i = 1, 2,..., N . lub postaci macierzowej Ac = y (7.4) Mnożąc równanie macierzowe (7.4) lewostronnie przez macierz transponowaną AT otrzymujemy skąd AT Ac = AT y (7.5) c = ( AT A) −1 AT y (7.6) Rozwiązanie (7.6) w Octave otrzymujemy za pomocą wewnętrznej instrukcji ,, \” c = ( A' * A) \ ( A' * y ) Układy nadokreślone w Octave możemy rozwiązywać używając także ,,\”. c = A\ y lub wygodnych instrukcji polyfit ( x, y,1) polyfit(x,y,n) ( dla wielomianu stopnia n ) Nieliniowa aproksymacja średniokwadratowa Często, zwłaszcza w Ekonometrii zachodzi potrzeba aproksymacji danych za pomocą funkcji nieliniowych na przykład potęgowych ( funkcji typu Cobba-Douglasa): g ( x ) = β xα (7.7) W tym przypadku równanie (7.7) logarytmujemy- sprowadzając do równania liniowego log( g ( x)) = α log( x) + log( β ) (7.8) Wprowadzając oznaczenia G = log( g ); c1 = α ; c2 = log( β ); X = log( x) z (7.8) otrzymujemy przy pomocy G = c1 X + c2 . Równanie to rozwiązujemy w Octave polyfit(log(x),log(y),1). Zadanie 0 Znajdź funkcje w sensie: liniowej, kwadratowej i nieliniowej ( potęgowej i exponent) aproksymacji średniokwadratowej dla danych w tabeli 7.1. Zadanie 1 Rozwiąż zadania 2 i 3 z instrukcji laboratoryjnej 6, stosując aproksymację średniokwadratową. Wyciągnij odpowiednie wnioski. Którą z metod uzyskujesz dokładniejsze wyniki i dlaczego? Odpowiedź uzasadnij. Zadanie 2 Rozwiąż zadanie indywidualne z interpolacji splajnami aproksymacją średniokwadratową. Wyciągnij odpowiednie wnioski. Którą z metod uzyskujesz dokładniejsze wyniki i dlaczego? Odpowiedź uzasadnij. Zadanie 3 Ogólne zużycie wody w USA w bilionach galonów na dzień przedstawia tabela: Rok 1930 1940 1950 1960 1970 Zużycie wody 110.2 137.4 202.6 322.7 411.1 Stosując nieliniową aproksymację średniokwadratową za pomocą funkcji f ( x) = β exp(α x) - oblicz zużycie wody w latach 1935, 1945,1955, 1965. 1 galon USA = 3.78541 dm3 .