Jezyki Modelowania i Symulacji

Transkrypt

Jezyki Modelowania i Symulacji
Macierze
rzadkie
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Jezyki
˛
Modelowania i Symulacji
Macierze rzadkie
Poszukiwanie
wartości
własnych
Marcin Ciołek
Poszukiwanie
wartości i
wektorów
szczególnych
Katedra Systemów Automatyki
WETI, Politechnika Gdańska
14 grudnia 2011
Macierze
rzadkie
MC
O czym bedziemy
˛
mówili?
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
1 Macierze rzadkie
2 Macierz przyległości
3 Permutacja i zmiana rozmieszczenia elementów macierzy
4 Poszukiwanie wartości własnych
5 Poszukiwanie wartości i wektorów szczególnych
Macierze
rzadkie
help sparse
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
Macierz rzadka zawiera stosunkowo mała˛ liczbe˛
niezerowych elmentów w swoich komórkach.
Oszcz˛edność na:
• czasie obliczeniowym,
• pamieci
˛ do przechowywania elementów macierzy.
Na przykład macierz jednostkowa n × n


1 0 ... 0
 0 1 ... 0 


 .. .. . .
. 
 . .
. .. 
0 0 ...
1
Macierze
rzadkie
help sparse
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
Czy potrzba tyle samo pamieci,
˛ aby przechować element
zerowy i niezerowy macierzy?
MATLAB używa trzech wektorów, żeby przechować macierz
rzadka:
˛
• wektor z niezerowymi elementami w formacie
zmiennoprzecinkowym (nnz - długość wektora),
• wektor z indeksami wierszy odpowiadajacymi
˛
niezerowym elementom(nnz - długość wektora),
• wektor z ze wskaźnikami do poczatku
˛
każdej kolumny
(n - długość wektora).
Liczba bajtów potrzebna do zapisania macierzy rzadkiej:
8 × nnz + 4 × (nnz + n)
Macierze
rzadkie
help sparse
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
A =
0
0
1
0
0
2
3
0
0
0
0
4
5
0
0
0
% konwersja macierzy A na macierz rzadka˛
>> S = sparse(A)
S =
(3,1)
1
(2,2)
2
(3,2)
3
(4,3)
4
(1,4)
5
% powrót do postaci pełnej
>> A == full(S);
Macierze
rzadkie
help sparse
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
A =
0
0
1
0
0
2
3
0
0
0
0
4
5
0
0
0
%bezpośrednie tworzenie macierzy rzadkich
S = sparse([3 2 3 4 1],[1 2 2 3 4], [1 2 3 4 5],4,4)
S =
(3,1)
1
(2,2)
2
(3,2)
3
(4,3)
4
(1,4)
5
Macierze
rzadkie
help sparse
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
n = 5;
E = eye(n)
E =
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
S = sparse(1:n,1:n,1);
S =
(1,1)
1
(2,2)
1
(3,3)
1
(4,4)
1
(5,5)
1
0
0
0
1
0
0
0
0
0
1
Macierze
rzadkie
help sparse
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
whos
Name
E
S
n
Name
E
S
n
Size
5x5
5x5
1x1
Bytes
200
128
8
Class
double
double
double
Attributes
Size
100x100
100x100
1x1
Bytes
80000
2408
8
Class
double
double
double
Attributes
sparse
sparse
Macierze
rzadkie
help sparse
MC
Oczędność czasu obliczeniowego
350
Macierze
rzadkie
300
Macierz
przyległości
250
E-czas/S-czas
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
200
150
100
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
50
0
0
10
20
30
40
50
60
Numer iteracji
70
%Postać klasyczna
tic E^2;
toc
Elapsed time is 0.000697 seconds.
%Postać rzadka
tic S^2;
toc
Elapsed time is 0.000027 seconds.
80
90
100
Macierze
rzadkie
help sparse
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
spy (S)
0
10
20
30
40
50
60
70
80
90
100
0
20
40
60
nz = 100
80
100
Macierze
rzadkie
help spy
MC
Macierze
rzadkie
Macierz modeluje ósme stadium destylacji chemicznej
0
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
50
100
150
200
250
300
350
400
450
0
load west0479
spy(west0479)
whos
Name
Size
west0479
479x479
100
200
300
nz = 1887
Bytes
24564
400
Class
double
Attribute
sparse
Macierze
rzadkie
help sparse
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
nnz(S) - zwraca liczbe˛ niezerowych elementów macierzy
rzadkiej
nonzeros(S) - zwraca kolumne˛ niezerowych elementów
macierzy rzadkiej
nzmax(S) - zwraca liczbe˛ miejsc zarezerwowanych na
niezerowe elementy macierzy
[i,j,s] = find(S) - zwraca indeksy wierszy i kolumn
niezerwoych elementów
n = 5;
S = sparse(1:n,1:n,1);
nnz(S)-> ans = 5
nzmax(s)-> ans = 5
nonzeros(S)-> ans = 1 1 1 1 1
[i,j,s] = find(S)
i = [1 2 3 4 5]'
j = [1 2 3 4 5]'
s = [1 1 1 1 1];
Macierze
rzadkie
help sparse
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
B=speye(4); % macierz jednostkowa diagonalna
[i,j,s]=find(B);
[i,j,s] =
1
1
1
2
2
1
3
3
1
4
4
1
B(3,1) = 42;
ans =
1
1
3
1
2
2
3
3
4
4
1
42
1
1
1
Macierze
rzadkie
help sparse
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
C =
4
0
0
-1
0
4
0
-1
C=4*speye(4);
0
0
4
-1
-1
-1
-1
4
C(1:3,4)=-1;
C(4,1:3)=-1;
C=4*speye(4);
for k=1:3
C(k,4)=-1;
C(4,k)=-1;
end
% to jest dopiero dobre podejście
i = [1 4 2 4 3 4 1 2 3 4]';
j = [1 1 2 2 3 3 4 4 4 4]';
s = [4 -1 4 -1 4 -1 -1 -1 -1 4]';
CSP = sparse(i,j,s);
Macierze
rzadkie
help spdiags
MC
Macierze
rzadkie
Tworzenie macierzy rzadkiej z jej elementów diagonalnych
S = spdiags(B, d, m, n)
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
B =
d =
41
52
63
74
11
22
33
44
0
0
13
24
>> S = spdiags(B,d,7,4);
>> full(S)
S=
11
0
13
0
0
22
0
24
0
0
33
0
41
0
0
44
0
52
0
0
0
0
63
0
0
0
0
74
-3
0
2
Macierze
rzadkie
macierz przyległości
MC
Macierze
rzadkie
Macierz
przyległości
Zapisywanie siatki powiaza
˛ ń przedstawionej za pomoca˛
grafu
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
1.
2.
3.
4.
Kasia
Basia
Zosia
Gosia
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
Macierze
rzadkie
gplot
MC
Graf połączeń
5
Macierze
rzadkie
4.5
Macierz
przyległości
4
3.5
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
3
2.5
2
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
1.5
1
1
1.2
1.4
1.6
1.8
2
2.2
A =
0
1
0
1
0
1
0
1
0
1
0
1
%kordynaty w˛
ezłów
>> xy = [1 3; 2 1; 3 3
>> gplot(A,xy)
1
0
1
0
; 2 5]
2.4
2.6
2.8
3
Macierze
rzadkie
bucky
MC
Macierze
rzadkie
Model czastki
˛
C60 , postać czystego wegla
˛
z 60 atomami w
prawie sferycznej konfiguiracji
Macierz
przyległości
Graf połączeń - piłka Bucky'ego
0.8
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
0.6
0.4
0.2
Poszukiwanie
wartości
własnych
0
-0.2
Poszukiwanie
wartości i
wektorów
szczególnych
-0.4
-0.6
-0.8
-1
[B,v]=bucky;
gplot(B,v)
axis equal
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Macierze
rzadkie
bucky
MC
Macierze
rzadkie
Graf połączeń - piłka Bucky'ego
14
1
15
0.8
18
Macierz
przyległości
0.4
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
13
17
11
0.6
19
12
16
2
0.2
20
10
3
9
0
-0.2
1
6
4
22
8
5
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
-0.4
23
-0.6
26
24
30
25
-0.8
-1
-1
7
21
27
29
28
-0.5
0
0.5
1
k = 1:30;
[B,v] = bucky;
gplot(B(k,k),v(k,:))
axis square
for j=1:30, text(v(j,1),v(j,2),int2str(j),...
'FontName','Times New Roman','FontSize',16); end
Macierze
rzadkie
bucky
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
Położenie niezerowych elementów na płaszyźnie XY
0
10
20
30
40
50
60
0
k = 1:30;
[B,v] = bucky;
spy(B)
10
20
30
nz = 180
40
50
60
Macierze
rzadkie
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
bucky
Macierze
rzadkie
permutacja
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
p = [1 3 4 2 5]; I = eye(5,5);
%permutacja wierszowa
P = I(p,:)
P =
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
%permutacja kolumnowa
R = I(:,p)
R =
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
Macierze
rzadkie
permutacja
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
n=5;
I=speye(n);
p = [1 3 4 2 5];
P = I(p,:)
R = I(:,p)
p = (1:n)*R
I =
(1,1)
(1,1)
(1,1)
(1,1)
(1,1)
1
1
1
1
1
1
3
P =
(1,1)
(4,2)
(2,3)
(3,4)
(5,5)
1
1
1
1
1
R =
(1,1)
(3,2)
(4,3)
(2,4)
(5,5)
p =
4
2
5
1
1
1
1
1
Macierze
rzadkie
permutacja
MC
Macierze
rzadkie
Jak uzyskać wektor permutacji?
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
n=5;
S = [ones(1,n); ones(n-1,1) speye(n-1,n-1)];
A = full(S)
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
j = colperm(S)
j = 2
3
p =
p =
4
5
1
sort(full(sum(spones(S))
2
3
4
5
1
Macierze
rzadkie
permutacja
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
Jaki wpływ może mieć wstepna
˛
permutacja macierzy
rzadkiej na wynik algorytmów Cholesky’ego i LU?
L = lu(S);
nnz(L)
ans = 23
fill(L)
ans =
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
-1.0000
0
1.0000
1.0000
1.0000
0
-1.0000
1.0000
1.0000
1.0000
-1.0000
-1.0000
2.0000
0.5000
1.0000
-1.0000
-1.0000
1.0000
1.5000
Macierze
rzadkie
permutacja
MC
Macierze
rzadkie
Jaki wpływ może mieć wstepna
˛
permutacja macierzy
rzadkiej na wynik algorytmów Cholesky’ego i LU?
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
S =
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
2
3
4
5
1
S1 = S(j,j);
S1 =
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
j =
Macierze
rzadkie
permutacja
MC
Macierze
rzadkie
Jaki wpływ może mieć wstepna
˛
permutacja macierzy
rzadkiej na wynik algorytmów Cholesky’ego i LU?
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
S =
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
2
3
4
5
1
S1 = S(j,:);
S1 =
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
j =
Macierze
rzadkie
permutacja
MC
Macierze
rzadkie
Jaki wpływ może mieć wstepna
˛
permutacja macierzy
rzadkiej na wynik algorytmów Cholesky’ego i LU?
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
S1 =
1
1
1
1
1
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
j =
2
1
0
0
0
1
3
S2 = S1(:,j);
S2 =
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
4
0
0
1
0
1
0
0
1
0
1
5
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
Macierze
rzadkie
permutacja
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
Jaki wpływ może mieć wstepna
˛
permutacja macierzy
rzadkiej na wynik algorytmów Cholesky’ego i LU?
L = lu(S(j,j));
nnz(L)
ans = 13
fill(L)
ans =
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
-3
Macierze
rzadkie
symrcm
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Zmiana uporzadkowania
˛
elementów macierzy(metoda
Cuthill-McKee) umieszcza niezerowe elementy w pobliżu
głównej diagonali, zachowujac
˛ symetrie˛ ich ułożenia
Poszukiwanie
wartości
własnych
• nie daje gwarancji znalezienia minimalnej „szerokości
Poszukiwanie
wartości i
wektorów
szczególnych
• nadaje sie˛ zarówno dla macierzy symetrycznych i
pasma”,
niesymetrycznych,
• użyteczna dla problemów „long and thin”.
Macierze
rzadkie
symrcm
MC
Macierze
rzadkie
Macierz
przyległości
B
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
4
B(p,p)
0
0
10
10
20
20
30
30
40
40
50
50
60
0
20
B = bucky;
p = symrcm(B);
R = B(p,p);
40
nz = 180
60
60
0
20
40
nz = 180
60
Macierze
rzadkie
MC
symamd i colamd
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
Zmiana uporzadkowania
˛
elementów macierzy(metoda
Minimum Degree Ordering) bazuje na obserwacji zmiany
liczby połacze
˛ ń wezłów
˛
podczas algorytmu eliminacji
Gaussa
• macierz wynikowa jest rzadsza niż w przypadku
zastosowania innych uporzadkowa
˛
ń,
• dla macierzy symetrycznych - symamd,
• dla macierzy niesymetrycznych - colamd.
Macierze
rzadkie
symamd i colamd
MC
Macierze
rzadkie
Macierz
przyległości
B
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
4
B(p,p)
0
0
10
10
20
20
30
30
40
40
50
50
60
0
20
B = bucky;
p = symamd(B);
R = B(p,p);
40
nz = 180
60
60
0
20
40
nz = 180
60
Macierze
rzadkie
lu
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
4
n=length(B);
B=B-3*speye(n);
nnz(lu(B))
nnz(lu(B(r,r)))
nnz(lu(B(p,p)))
r = symrcm(B);
p = symamd(B);
ans = 1022
ans = 968
ans = 636
Macierze
rzadkie
chol
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
chol(B)
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
4
chol(B(r,r))
chol(B(p,p))
0
0
0
20
20
20
40
40
40
60
0
20
40
nz = 541
n=length(B);
B=B+4*speye(n);
nnz(chol(B))
nnz(chol(B(r,r)))
nnz(chol(B(p,p)))
60
60
0
20
40
nz = 514
60
60
0
r = symrcm(B);
p = symamd(B);
ans = 541
ans = 514
ans = 348
20
40
nz = 348
60
Macierze
rzadkie
eigs
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
eigs(A, B, k , sigma, opts)
Funkcja ta pozwala na iteracyjne znajdowanie (domyślnie
jest 6 najwiekszych)
˛
wartości własnych dla bardzo dużych i
rzadkich macierzy. Macierz musi być kwadratowa.
• opts: ’lm’ - najwieksze
˛
wartości własne
• opts: ’sm’ - najmniejsze wartości własne
Macierze
rzadkie
eigs
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
4
Poszukiwanie
wartości i
wektorów
szczególnych
%Symetryczna dodatnio określona macierz o rozmiarze
%632x632, 18 wartości własnych powtarza si˛
e dla 4
A = delsq(numgrid('C',30));
d = eig(full(A));
[dum,ind] = sort(abs(d));
dlm = eigs(A);
dsm = eigs(A,6,'sm');
Macierze
rzadkie
eigs
MC
4
eigs(A,18,sigma)
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
4
4
4
0
2
4
6
8
10
12
14
16
18
eigs(A,18,4.0) ???
%1/(lambda - 4.0) gdzie lambda jest estymata˛
%wartości własnej
sigma = 4 - 1e-6;
[V,D] = eigs(A,18,sigma);
Macierze
rzadkie
svds
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
• Poszukiwanie wartości i wektorów szczególnych
• A - mxn
(nie musi być rzadka!)
• s = svds(A);
s – wektor sześciu najwiekszych
˛
wartości
szczególnych macierzy A
• s = svds(A, k);
s = svds(A,k,’L’);
s – wektor k najwiekszych
˛
wartości szczególnych
• s = svds(A, k, sigma);
s – wektor k wartości szczególnych najbliższych
skalarnemu sigma
Macierze
rzadkie
svds
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
• Poszukiwanie wartości i wektorów szczególnych
• s = svds(A, k, sigma, options);
opcja
tol
maxit
disp
znaczenie
kryterium zbieżności:
norm(AV-US,1)<=tol*norm(A,1)
(A=USV’)
ograniczenie liczby iteracji
liczba wartości szczególnych
wyświetlana w każdej iteracji
domyślnie
1e-10
300
0
• Zwracane sa˛ tylko te wartości szczególne, dla których
osiagni
˛ eto
˛ wymagana˛ dokładność
Macierze
rzadkie
svds
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
• Poszukiwanie wartości i wektorów szczególnych
• [U, S, V] = svds(A,...);
U – macierz mxk o ortonormalnych kolumnach
S – diagonalna kxk
V – nxk o ortonormalnych kolumnach
U*S*V’ – przybliżenie A (w 1-normie) o rz˛edzie najbliższym A
• [U, S, V, flag] = svds(A,...);
flag =
0 – zbieżność:
norm(A*V-U*S,1) <= tol*norm(A,1))
1 – brak zbieżności)
Macierze
rzadkie
svds
MC
Macierze
rzadkie
Macierz
przyległości
Permutacja i
zmiana rozmieszczenia
elementów
macierzy
Poszukiwanie
wartości
własnych
Poszukiwanie
wartości i
wektorów
szczególnych
load west0479
s = svd(full(west0479));
display(s(1:4))
ans =
1.0e+005 * [3.1895 3.1725 3.1695 3.1685]
Elapsed time is 0.083878 seconds.
sl = svds(west0479,4)
sl =
1.0e+005 * [3.1895 3.1725 3.1695 3.1685]
Elapsed time is 0.009256 seconds.