Zadanie 1

Zadanie 2

Zadanie 3

Zadanie 4

Zadanie 5

a) W wektorze pamiętamy pierwszą kolumnę oraz pierwszy wiersz bez pierwszego wyrazu. Wektor ten ma rozmiar 2n - 1, więc dodawanie dwóch takich wektorów mamy w O(n).

b) Macierz Toeplitza ma następującą postać blokową:

\displaystyle T = \left[ \matrix{A & B\\
C & A} \right]

Zadanie polega na pomnożeniu macierzy T przez wektor blokowy \displaystyle T = \left[ \matrix{x \\
y} \right]
w czasie mniejszym niż n^2.

Korzystając z dwóch (wzajemnie dualnych) obserwacji:

Ax = A(x + y - y) = A(x+y) - Ay

Ay = A(x + y - x) = A(x+y) - Ax

mamy:

T = \left[ \matrix{A & B\\
C & A} \right] \left[ \matrix{x \\
y} \right] = \left[ \matrix{Ax + By\\
Cx + Ay} \right] = \left[ \matrix{A(x+y)-Ay + By\\
Cx + Ay} \right] = \left[ \matrix{A(x+y)+(B - A)y\\
Cx + Ay} \right] = \left[ \matrix{A(x+y)+(B - A)y\\
Cx + A(x+y) - Ax } \right] = \left[ \matrix{A(x+y)+(B - A)y\\
A(x+y) + (C-A)x} \right]
.

I zauważamy, że złożoność czasowa to T(n) = 3 T(n/2) + O(n) gdzie O(n) zamyka sumę liniowych czasów wszystkich dodawań.

Rozwiązując typowe równanie rekurencyjne mamy T(n) = O(n^{log_2 3}) < O(n^2).

Zadanie 6

Zadanie 7

 
aisd/11.lista03.txt · ostatnio zmienione: 2011/04/06 09:40 przez videl
 
Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji:MIT License
Recent changes RSS feed