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