Macierze Hilberta Macierze kombinatoryczne Macierze rzadkie
Transkrypt
Macierze Hilberta Macierze kombinatoryczne Macierze rzadkie
Macierze do testowania algorytmów Macierze Hilberta Macierze kombinatoryczne Macierze rzadkie Macierze Wandermonde’a Macierze osobliwe Macierze Tartaglia Przykład 1: Macierze Hilberta Łatwe do wygenerowania: a(i,j) = 1/(i+j-1) 1 1/2 1/3 1/4 1/5 1/6 1/2 1/3 1/4 1/5 1/6 1/7 1/3 1/4 1/5 1/6 1/7 1/8 1/4 1/5 1/6 1/7 1/8 1/9 1/5 1/6 1/7 1/8 1/9 1/10 1/6 1/7 1/8 1/9 1/10 1/11 Cechy: bardzo źle uwarunkowane. Dokładne wartości det i macierzy odwrotnej dla n= 6 Det = 1/186313420339200000 ≅ 5.367E-18 36 -630 3360 -7560 7560 -2772 -630 14700 -88200 211680 -220500 83160 3360 -88200 564480 1512000 -582120 1411200 -7560 211680 3628800 1552320 1411200 3969000 7560 -220500 1512000 4410000 3969000 1746360 -2772 83160 -582120 1552320 698544 1746360 Przykład 2: Macierze kombinatoryczne Cechy: łatwe do wygenerowania. Znamy wynik dokładny rozwiązania Ax=b dla dowolnego wymiaru (zawsze całkowity). Dużo miejsc dziesiętnych – dobre do testowania round-off error. Macierze unitarne tzn. DET=1. Definicja: dla j =1 ...n a(1,j) = 1 a(i,1) = 1/i dla i=1 ..n a(i,j) = a(i,j-1)+a(idla i=2 ..n , j=2 ..n 1,j-1) Pierwszy wiersz same 1 – pierwsza kolumna odwrotności kolejnych naturalnych. Reszta jak niżej: 1 1 1 1 1 1 ½ 1/3 ¼ 1/5 1/6 Przykład dla n=7 1 1 1/2 1.5 a21+a11 a22+a12 a23+a13 .... a31+a21 a32+a22 a33+a23 .... a41+a31 a42+a32 a43+a33 ... a51+a41 ... .... a61+a51 1 1 1 1 1 2.5 3.5 4.5 5.5 6.5 1/3 0.83333 2.33333 4.83333 8.33333 12.8333 18.3333 1/4 0.58333 1.41667 3.75 8.58333 16.9167 29.75 1/5 0.45 1.03333 2.45 6.2 14.7833 31.7 1/6 0.36667 0.81667 1.85 4.3 10.5 25.2833 1/7 0.30952 0.67619 1.49286 3.34286 7.64286 18.1429 Jeżeli rozwiązujemy A x = b , z b = [0, 0, .....0, 1]T To rozwiązanie dokładne dane jest wzorem x(i) = (-1)n+i *Comb(n-1,ifor I=1 ..n 1) Dla n=7 1 -6 15 -20 15 -6 Przykład 3: Macierze rzadkie Użyteczna klasa : a11 -1 -½ 1/3 1/4 1/5 -1 1 0 0 0 0 - 1/2 0 ½ 0 0 0 - 1/3 0 0 1/3 0 0 - 1/4 0 0 0 1/4 0 - 1/5 0 0 0 0 1/5 Na końcu liczymy a11 według wzoru: Dla i= 2...n a11 = 1+Σi aii dla n = 6 mamy a11 = 3+2/7 = 3.283333... Własności: DET = (n-1)! . Macierz odwrotna: 1 1 1 1 1 1 1 2 1 1 1 1 1 1 3 1 1 1 1 1 1 4 1 1 1 1 1 1 5 1 1 1 1 1 1 6 1 Przykład 4: Macierze Wandermonde'a Ciekawa własność: round-off error może być sterowany przez 1 parametr. 1 1 1 1 ... Przykład: x = 0, n= 6 X x-1 x-2 x-3 ... x2 Dla Ax = b , gdzie b x (x-1)2 (x-2)2 (x-3)2 ... 3 3 dane wzorem 3 (x-1) (x-2) (x-3) ... ... bi = Σj aij 3 ... ... ... ... 1 1 1 1 1 1 0 1 2 3 4 5 0 1 4 9 16 25 0 1 8 27 64 125 0 1 16 81 256 625 0 1 32 243 1024 3125 dla j= 1...n, dla i= 1...n Przykład: bT = [ 6 , 15 , 55 , 225 , 979 , 4425 ] Dokładne rozwiązanie zawsze jest złożone z samych jedynek x = [ 1, 1 , 1 , 1 , 1 , 1 ] Zwiększenie parametru x – zwiększenie round off error. Przykład (dla błędu bezwzględnego) x błąd Przykład 5: Macierze Dokładna wartość DET = 0, w dokładności PC-ta macierz nieosobliwa (ćw) 1 8.3E-12 10 6.6E-10 20 8.8E-09 50 1.8E-06 100 2.8E-05 osobliwa ale 127 -507 245 -507 2025 -987 245 -987 553 Przykład 6: MacierzeTartaglia's Cechy: znamy dokładną wartość macierzy odwrotnej, wyjściowa macierz i odwrotna ma elementy całkowite (wygodne do testowania round-off error) Definicja a(1,j) = 1 dla j =1 ( 1 w pierwszym wierszu) a(i,1) = 1 ...n (1 w pierwszej kolumnie) dla i=1 ..n a(i,j) = Σj a(i-1, j) dla j=2 ..n 1 1 1 1 1 1 1 2 3 4 5 6 1 3 6 10 15 21 1 4 10 20 35 56 1 5 15 35 70 126 21 56 126 252 20 -15 6 -1 -29 5 1 6 Macierz odwrotna (dokładnie) 6 -15 -15 55 -85 69 20 -85 146 -127 56 -15 69 -127 117 -54 10 6 -29 56 26 -5 -54 -10 -1 5 -10 10 -5 1 Pojawienie się ułamka dziesiętnego jest sygnałem round-off error. Np. w macierzy odwrotnej mamy A(1,1) = 5.99999999999985. Oczywiście wartość dokładna jest 6 i Err(1,1) = | A(1,1) – Round(A(1,1),0)| = 0.000000003456 ≅ 1.518E-13 Biorąc średnią błędów we wszystkich elementach macierzy uzyskano Dim 5 6 8 9 10 11 13 . Err 5.00E-16 4.96E-12 7.80E-10 9.06E-09 1.11E-05 0.000286 0.14 Err.rel 6.00E-17 6.27E-15 9.62E-12 1.94E-10 2.85E-09 3.23E-08 2.29E-06