Rozdziaª 10 LZNK. Rozªad QR. Metoda Householdera W tym rozdziale zajmiemy si liniowym zadaniem najmniejszych wadratów (LZNK). Dla danej macierzy A wymiaru M N i wetora b wymiaru M chcemy znale¹ wetor x wymiaru N tai,»e Ax b 2 = min y Ay b 2. Je±li A jest macierz olumnami regularn (rz d A jest masymalny równy N), to zadanie to ma jednoznaczne rozwi zanie i nazywamy je regularnym LZNK (RLZNK). Podstawowym algorytmem sªu» cym jego rozwi zaniu jest metoda Householdera, czyli znalezienia rozªadu QR macierzy A, gdzie Q to macierz ortogonalna - iloczyn macierzy Householdera, a R to macierz górnotrój tna. W tym rozdziale przetestujemy podstawowy operator octave'a sªu»acy do rozwi zywania dowolnego LZNK, tzn. operator \. Zauwa»my,»e je±li M = N i A jest macierz olumnami regularn, to A jest nieosobliwa i to regularne LZNK jest równowa»ne rozwi zaniu uªadu równa«liniowych Ax = b. Przetestujemy w zadaniach funcj octave'a qr() sªu» c znajdowaniu rozªadu QR macierzy, ila wªasno±ci macierzy (przesztaªce«) Householdera i rozwi»emy ila onretnych LZNK. Zadanie 1 Operator octave'a \ sªu» cy m.in. do rozwi zywaniu uªadów równa«liniowych i LZNK w octavie. Przetestuj operator octave'a \ rozwi zuj c RLZNK dla macierzy A ze znanym onretnym rozwi zaniem x: 48
A = [1, 1; 1, 1; 1, 3], x = [1; 2] przyjmuj c,»e f = Ax. Czy y=a\f jest rozwi zaniem tego uªadu? Policz normy residualn Ay f 2 i norm bª du x y 2. Przetestuj ten operator dla nieregularnego LZNK dla macierzy A T z x = [1; 1; 1] i f = Ax. Czy y=a'\f jest rozwi zaniem tego uªadu? Policz normy residualn A T y f 2 i norm bª du x y 2. Zadanie 2 Rozªad QR w octave. Funcje qr(). (a) Zapoznaj si z pomoc do funcji: qr(). (b) Dla macierzy A = [1, 1; 1, 1; 1, 3] znajd¹ jej rozªad A = QR z pomoc funcji qr(). (c) Sprawd¹, czy uzysana Q jest ortogonalna - policz normy Frobeniusa QQ T I i Q T Q I. (d) Sprawd¹ ten rozªad licz c normy macierzowe: norm drug i norm Frobeniusa bª du A QR. (e) Zastosuj ten rozªad do znalezienia rozwi zania LZNK Ax = f ze znanym rozwi zaniem, np. x = [1; 0] i f = [1; 1; 1]. (f) Policz norm drug wetorow pomi dzy x, a wyniiem algorytmu w, polegaj cym na zastosowaniu odpowiedniego rozªadu oraz taie same normy residualne, tzn. normy drugie Aw f oraz Rw Q T f. Zadanie 3 Uªad równa«normalnych, a rozªad QR. Rozpatrzmy macierz A 2n, - pod-macierz wymiaru 2n macierzy Vandermonde'a A 2n,2n dla 2n w zªów równoodlegªych na [0, 1]. LZNK z A 2n, z wetorem prawej strony f równym pierwszej olumnie tej macierzy (rozwi zanie to pierwszy wersor) rozwi» trzema sposobami: (a) u»ywaj c operator \, (b) u»ywaj c rozªad QR uzysanym funcj qr(), 49
(c) poprzez rozwi zanie uªadu równa«normalnych: dla B = A T 2n,A 2n,, Bx = g g = A T 2n,f, tzn. tworzymy macierz uªadu równa«normalnych B, wetor prawej strony g uªadu równa«normalnych, a nast pnie rozwi zujemy uªad równa«normalnych operatorem \. Macierz Vandermonde'a mo»na w octave'ie utworzy za pomoc funcji vander(). Przeprowad¹ testy dla N = 10, 20, 40, 80 i = 2, 4, n. Porównaj czas oblicze«bª d - x y 2 bª d residualny Ax f 2 dla x rozwi zania doªadnego LZNK, f wetora prawej strony LZNK, y przybli»enia rozwi zania uzysanego dan metod. Zadanie 4 Rozªad QR a operator \ przy rozwi zywaniu uªadów równa«liniowych, Rozpatrzmy macierz A n,n Vandermonde'a dla n w zªów równoodlegªych na [0, 1]. Uªad równa«liniowych z wetorem prawej strony równym pierwszej olumnie tej macierzy (rozwi zanie to pierwszy wersor) rozwi» dwoma sposobami: (a) operatorem \, (b) rozªadem QR uzysanym funcj qr(), Przetestuj dla N = 10, 20, 40, 80. Porównaj czas oblicze«, bª d x y 2, bª d rezydualny: Ax f 2, dla x rozwi zania doªadnego tego uªadu równa«, f wetora prawej strony uªadu i y przybli»enia rozwi zania uzysanego dan metod. 50
Zadanie 5 Krzywa najlepiej pasuj ca do danych puntów. Zastosuj octave'a do znalezienia wspóªczynniów a, b rzywej najlepiej pasuj cej do zadanych puntów: (x, y ), tzn. znajd¹ taie a, b,»e ax 2 + by 2 1 2 = min c,d cx 2 + dy 2 1 2. Za (x, y ) przyjmiemy zaburzone punty z danej elipsy y = 1 4 x 2 + z, gdzie z to zaburzenie wylosowane z [0, 10 2 ] a x = 1/ lub x = 1 + h dla h = 2/N = 1,..., N. Czy obliczone a i b jest blisie 4 i 1? W jednym onie zaznacz punty (x, y ) plusami oraz narysuj fragmenty wyresów obu elips: pierwszej - dla a = 4, b = 1 i drugiej elipsy - dopasowanej do zaburzonych puntów. Powtórz obliczenia dla ró»nych zaburze«z. Zadanie 6 Zaprogramuj funcj octave'a function y=h( x,w, nw) tóra dla danych wetorów x i w tego samego wymiaru N i salaru nw = w 2 zwróci wetor y = H w x dla H w = I 2 1 w wt nw czyli przesztaªcenia (macierzy) Householdera. Salar mo»e by parametrem opcjonalnym. Je±li funcja b dzie wywoªana z dwoma tylo parametrami, to norm w mo»na obliczy w tej funcji. Przetestuj t funcj dla losowych wetorów x i w i sprawd¹, czy H w x 2 = x 2, H w (H w x) = x. Zadanie 7 Napisz ogólniejsz wersj funcji z poprzedniego zadania, tzn.: funcj : function Y=Hm(X, w, nw), 51
gdzie X macierz N M i wtedy zwracany wyni to macierz Y = H w X. Pozostaªe dwa parametry funcji pozostan bez zmian. Czy mo»na zaimplementowa ta funcj bez u»ycia p tli? Sprawd¹, wyorzystuj c t funcj, czy mno»enie przez macierz Householder nie zmienia norm macierzowych drugiej i Frobeniusa, tzn. czy: i A 2 = H w A 2 = A H w 2 A F = H w A F = A H w F dla losowej macierzy A i H w macierzy Householdera dla losowego wetora w 0. Zadanie 8 Zadanie 9 Znajd¹ wetor Householdera w tai,»e odpowiednie przesztaªcenie Householdera przeprowadza dany wetor u 0 na ierune drugiego danego niezerowego wetora l v 0 dla l = v 2 u 2. Przetestuj dla dowolnych dwóch ró»nych wetorów o tej samej dªugo±ci, czy rzeczywi±cie H w u = v. Zastosuj metod Householdera do rozwi zania zadania znalezienia prostej y = ax+b najlepiej przybli»aj cej N puntów (x, y ) = (, 1 + 2 + ɛ ) dla = 1,..., N gdzie (ɛ 1,..., ɛ N ) to losowy wetor za zaresu [ ɛ, ɛ], tzn.: ax + b y 2 = min c,d cx + d y 2. Nale»y testowa dla warto±ci ɛ = [1, 10 1, 10 2, 10 3 ]. Funcja rand(n) generuje wetor losowy o rozªadzie jednostajnym na [0, 1] w octavie. Porównaj z wyniami otrzymanymi za pomoc standardowej funcji octave'a, tzn. \, oraz przy wyorzystaniu funcji octave'a qr(a). Zadanie 10 Zaprogramuj metod Householdera rozwi zywania uªadu równa«liniowych A x = b dla A macierzy trójdiagonalnej N N, tzn. napisz funcj octave'a: function [x]=hous3diag(a,b,c,f,n) Parametry funcji: 52
a, b, c prze tna, pod-prze tna i nad-prze tna macierzy A, f - wetor prawej strony, N - wymiar zadania - dªugo± prze tnej a. Funcja zwraca x rozwi zanie Ax = f. Przetestuj dziaªanie funcji analogicznie do zadania 4 dla macierzy trójdiagonalnej o staªych diagonalach, np. taiej,»e elementy na gªównej diagonali s równe dwa, a elementy na pod- i naddiagonalach s równe minus jeden dla N = 10 p z p = 1, 2,..., 9.. Za wetor prawej strony f mo»emy przyj pierwsz olumn macierzy A. 53