viewgit/index.php:465 Only variables should be passed by reference [2048]

viewgit/index.php:466 Non-static method GeSHi::get_language_name_from_extension() should not be called statically [2048]

  1. \chapter{Calcolo degli autovalori di matrici strutturate}
  2.  
  3. Abbiamo visto nell'analisi dei sistemi lineari vari metodi per utilizzare la struttura
  4. delle matrici per ottimizzare il procedimento e diminuire il costo computazionale. \\
  5. Questo in generale è più difficile nel calcolo degli autovalori. L'unica struttura che siamo finora
  6. riusciti a sfruttare per abbassare il costo è stata la tridiagonalità.
  7.  
  8. \section{Strutture note}
  9. In generale si parla di matrice strutturata quando una matrice è individuata da un numero di
  10. parametri dell'ordine minore di $n^2$. \\
  11. Ricapitoliamo le strutture principali viste fino ad ora e i relativi vantaggi nella risoluzione
  12. di sistemi lineari.
  13. \begin{description}
  14. \item[Matrici sparse] Parliamo di matrici sparse quando ci sono pochi elementi non nulli, ovvero un numero
  15. con un ordine di grandezza strettamente inferiore a $n^2$. In questo caso riusciamo spesso ad ottimizzare
  16. i metodi di moltiplicazione matrice per vettore e quindi possiamo trarre vantaggio dall'applicazione
  17. di metodi iterativi;
  18.  
  19. \item[Van der Monde] Non abbiamo analizzato in dettaglio\footnote{ad eccezione delle matrici di Fourier per il calcolo
  20. della \dft, dove si riesce a scendere ad un costo $O(n\log n)$.} queste matrici ma esiste un metodo (tramite un'opportuna
  21. rappresentazione dell'inversa) per risolvere un sistema lineare con un costo $O(n^2)$.
  22.  
  23. \item[Toeplitz o H\"ankel] Abbiamo visto queste matrici nella Sezione~\ref{subsec:toeplitz} e tramite la
  24. trasformata discreta di Fourier abbiamo mostrato che il costo del prodotto matrice vettore è molto basso.
  25. Possiamo quindi ipotizzare di applicare dei metodi iterativi per risolvere il sistema.
  26.  
  27. \item[Diagonali con correzione di rango 1] Queste martici sono piuttosto interessanti e sono le prime di
  28. cui ci occuperemo. Sono appunto composte dalla somma di una matrice diagonale $D$ con una matrice di rango $1$
  29. $u\trasp u$;
  30. \end{description}
  31.  
  32. \section{Il metodo di Lanczos}
  33. \subsection{Un'alternativa al metodo di Householder}
  34. Introduciamo ora un metodo alternativo a quello di Householder per la tridiagonalizzazione di una
  35. matrice simmetrica. \\
  36. Osserviamo che se $A$ è una matrice simmetrica in $\mat{\R}{n}$, allora esiste una matrice $T \in \mat{\R}{n}$
  37. tridiagonale simmetrica e una matrice unitaria $Q$ tali che
  38. \[
  39. A = QT\trasp Q
  40. \]
  41. e quindi anche
  42. \[
  43. AQ = QT
  44. \]
  45. Osserviamo ora solo la prima colonna di quest'uguaglianza, ovvero $AQe_1 = Aq_1 = QTe_1$. Se scriviamo
  46. \[
  47. T = \left[ \begin{array}{cccc}
  48. \alpha_1 & \beta_1 & & \\
  49. \beta_1 & \ddots & \ddots & \\
  50. & \ddots & \ddots & \beta_{n-1} \\
  51. & & \beta_{n-1} & \alpha_n \\
  52. \end{array} \right]
  53. \]
  54. Possiamo riscrivere la relazione come $Aq_1 = \alpha_1 q_1 + \beta_1 q_2$ e, una volta scelto $q_1$ vettore
  55. di norma $1$,
  56. si ha che $\trasp q_1 A q_1 = \alpha_1 \trasp q_1 q_1 + \beta_1 \trasp q_1 q_2 = \alpha_1$; possiamo quindi
  57. calcolare $\alpha_1$ da cui possiamo poi ricavare $\beta_1$ considerando che $\beta q_2 = Aq_1 - \alpha_1 q_1$
  58. e quindi
  59. \[
  60. \beta_1 = ||Aq_1 - \alpha_1 q_1||_2 \qquad \text{e} \qquad q_2 = \frac{Aq_1 - \alpha_1 q_1}{\beta_1}
  61. \]
  62. Ripetendo il procedimento con la seconda colonna (ora che conosciamo $q_2$) e poi continuando ancora si ottiene
  63. la regola generale
  64. \[
  65. \alpha_i = \trasp q_i A q_i \qquad \beta_i = ||Aq_i - \alpha_i q_i||_2 \qquad q_{i+1} = \frac{Aq_i - \alpha_i q_i}{\beta_i}
  66. \]
  67. e si può quindi ricostruire tutta la matrice $Q$ e la matrice $T$.
  68.  
  69. Il costo computazionale dominante nello svolgimento di queste operazioni è dato dai prodotti matrice vettore
  70. che costano generalmente $O(n^2)$ e portano quindi ad un costo complessivo del metodo di $O(n^3)$ (lo stesso
  71. costo del metodo di Householder). \\
  72. Questo metodo non viene però generalemente utilizzato per calcolare la tridiagonalizzazione. Il motivo è che
  73. non è numericamente stabile, ed in generale la matrice $Q$ ottenuta non è ortogonale.
  74.  
  75. \begin{os}
  76. A questo punto è naturale chiedersi che rapporto esiste fra la matrice calcolata con il metodo di Householder
  77. e quella calcolata con il metodo di Lanczos, al variare del primo vettore $q_1$ scelto all'inizio. La risposta
  78. che è possibile verificare è che scegliendo $q_1 = e_1$ le matrici differiscono per una matrice di fase.
  79. \end{os}
  80.  
  81. Nonostante in generale il metodo non venga usato per la sua poca precisione esiste un particolare caso in cui
  82. risulta essere utile, ed è precisamente il seguente
  83.  
  84. \subsection{Il quoziente di Rayleigh}
  85. Cominciamo con una definizione
  86. \begin{de}
  87. Si dice \emph{quoziente di Rayleigh di $A$ e $x$} e si indica con $\ray{A}{x}$ lo scalare
  88. \[
  89. \ray{A}{x} = \frac{\trasp x A x}{\trasp xx}
  90. \]
  91. \end{de}
  92. Si può osservare che il minimo del quoziente di Rayleigh su tutto $\R^n$ corrisponde al modulo dell'autovalore minimo
  93. e il massimo al modulo dell'autovalore massimo. \\
  94. Osserviamo poi che preso un generico sottospazio $k$-dimensionale $S \subseteq \R^n$ abbiamo che se
  95. \[
  96. \lambda = \min_{x \in S} \ray{A}{x}
  97. \]
  98. allora $\lambda$ è l'autovalore di modulo minimo su un sottospazio di $\R^n$. Se $S$ è sufficientemente grande
  99. possiamo pensare di usare $\lambda$ come approssimazione di $\lambda_{min}$. \\
  100. Consideriamo $\{ q_1 , \ldots, q_k \}$ base del sottospazio $S$ e la matrice $Q$ con i vettori $q_i$ come colonne.
  101. Se prendiamo $x \in S$ allora
  102. \[
  103. x = \sum_{i=1}^{k} \alpha_i q_i
  104. \]
  105. e quindi se $\alpha = (\alpha_1, \ldots, \alpha_k)$ si ha $x = Q\alpha$.
  106. \[
  107. \frac{\trasp x A x}{\trasp xx} = \frac{\trasp \alpha \trasp Q A Q \alpha}{\trasp \alpha \trasp Q Q \alpha} =
  108. \frac{\trasp \alpha \trasp Q A Q \alpha}{\trasp \alpha \alpha}
  109. \]
  110. In conclusione è sufficiente minimizzare $\ray{\trasp Q A Q}{x}$ su $\R^k$, ed essendo $\trasp Q A Q$ una matrice
  111. $k \times k$ questo procedimento può risultare sensibilmente più economico rispetto all'idea originale. \\
  112. \begin{de}
  113. Sia data una matrice $A$ a coefficienti reali\footnote{definiamo il procedimento sui numeri reali solo per non appesantire
  114. la notazione, ma non c'è nessuna restrizione ad usarlo sui complessi.} e $x$ un vettore di $\R^n$.
  115. Si dice \emph{sottospazio di Krylov} di $A$ e $v$ di ordine $j$ e si indica con $\kryl{A}{v}{j}$ il sottospazio
  116. \[
  117. S = \Span{v, Av, \ldots, A^{j-1}v}
  118. \]
  119. \end{de}
  120. Osserviamo che in generale $\dim{S} \leq j$. \\
  121. Siamo ora interessati ad utilizzare un sottospazio di Krylov come sottospazio $S$ con cui approssimare il nostro autovalore.
  122. Per farlo però dobbiamo trovare una base ortonormale di $S$; possiamo procedere calcolando la scomposizione \qr\ della
  123. matrice dei vettori che generano:
  124. \[
  125. \left[ \begin{array}{c|c|c|c}
  126. \multirow{4}{*}{$v$} & \multirow{4}{*}{$Av$} & \multirow{4}{*}{$\ldots$} & \multirow{4}{*}{$A^{j-1}v$} \\
  127. & & & \\
  128. & & & \\
  129. & & & \\
  130. \end{array} \right] = QR
  131. \]
  132. Si può mostrare che le prime $j$ colonne di $Q$ sono una base dello spazio $S$. Per farlo è sufficiente osservare
  133. che essendo $R$ triangolare superiore e $n \times j$ con $j < n$ deve avere le ultime $n - j$ righe nulle. \\
  134. Calcolando ora $\trasp Q A Q = (b_{ij})$ si ottiene un matrice $k\times k$ simmetrica. Osserviamo in particolare
  135. che se $i < j+1$ allora $b_{ij} = \trasp q_i A q_j$ e $Aq_j \in \Span{v, Av, \ldots , A^{j-1}v}$ per costruzione.
  136. In particolare $Aq_j$ è ortogonale a $q_i$ e quindi $b_{ij} = 0$. La simmetria della matrice ci permette
  137. di concludere che $B$ è tridiagonale, e si può verificare che è la matrice $k\times k$ generata dal metodo
  138. di Lanczos dopo $k-1$ iterazioni. \\
  139. A questo punto si può supporre di avere una buona approssimazione dell'autovalore di modulo massimo (anche se
  140. non c'è nessuna garanzia di averla davvero). Questa è di fatto l'unica applicazione del metodo di Lanczos,
  141. data la sua instabilità numerica.
  142.  
  143. \section{Matrici con struttura di rango}\label{sec:struttura_di_rango}
  144. \subsection{Qualche esperimento con il metodo \qr}
  145. Abbiamo spesso incontrato durante il corso matrici diagonali con correzioni di rango 1,
  146. ovvero della forma $D + u\trasp u$. Queste
  147. sono molto interessanti perché si ritrovano in molti problemi computazionali e perché sono inverse
  148. di matrici tridiagonali. \\
  149. Ci domandiamo ora se esiste un metodo efficiente per applicare il Metodo~\qr\ a queste matrici.
  150. Sappiamo di poterle tridiagonalizzare con matrici di Householder con un costo computazionale $O(n^2)$, ma
  151. vogliamo provare ad applicare il \qr\ alla matrice piena senza dover necessariamente passare
  152. per il procedimento di tridiagonalizzazione\footnote{Abbiamo fatto notare nella Sezione~\ref{subsec:qr_costo} che
  153. in generale non è conveniente applicare il metodo ad una matrice piena; cercheremo però di trovare
  154. qualche via più breve per questa particolare classe di matrici.}. \\
  155. Possiamo osservare sperimentalmente che facendo qualche passo del metodo \qr\ (anche utilizzando lo shift)
  156. la struttura non viene completamente persa.
  157.  
  158. Indichiamo con $\alpha_k$ il rango massimo delle sottomatrici quadrate strettamente contenute nella parte
  159. inferiore della matrice della $k$-esima iterazione del \qr, e con $\beta_k$, analogamente, il rango massimo
  160. di quelle superiori.
  161.  
  162. \textbf{Esperimento 1}: Supponiamo di scegliere una matrice qualsiasi (complessa) e di applicare
  163. il metodo. Osserveremo che $\alpha_0 = \alpha_1 = \ldots = \alpha_k = 1$
  164. mentre $\beta_k$ cresce.
  165.  
  166. \textbf{Esperimento 2}: Supponiamo ora di restringere la scelta ad una matrice con $D$ reale, ovvero
  167. $A = D + u\trasp u$ dove $D = \diag{\gamma_1, \ldots, \gamma_n}$ e i $\gamma_i$ sono tutti reali. Allora
  168. otterremo sperimentalmente $\alpha_i = 1$ e $\beta_i = 3$ per ogni $i \geq 2$.
  169.  
  170. \textbf{Esperimento 3}: Analogamente a prima scegliamo $D$ complessa ma con elementi di modulo $1$\footnote{ovvero
  171. quella che abbiamo chiamato \emph{matrice di fase}.}. Otterremo ancora una volta $\alpha_i = 1$ e $\beta_i = 3 \:
  172. \forall i \geq 2$.
  173.  
  174. Come mai i $\beta_k$ in questi ultimi due casi non crescono più di $3$? Cerchiamo di rispondere analizzando separatamente
  175. i vari casi.
  176.  
  177. \subsection{Conservazione del rango nella parte triangolare inferiore}
  178. Ricordiamo dall'Osservazione~\ref{os:qr_simili_ak} che le matrici $A_k$ generate dal metodo \qr\ sono
  179. simili per trasformazione ortogonale. Se assumiamo che $R_k$ sia invertibile possiamo anche mostrare
  180. qualcosa di più
  181. \[
  182. A_{k+1} = R_k Q_k + \alpha_k I = R_k Q_k R_k R_k^{-1} + \alpha_k R_k R_k^{-1} = R_k A_k R_k^{-1}
  183. \]
  184. e quindi $A_{k+1}$ è simile ad $A_k$ tramite una trasformazione con una matrice triangolare superiore
  185. $R_k$. Questo ci assicura che nella parte inferiore della matrice $A_{k+1}$ il rango venga conservato
  186. (nel senso degli $\alpha_k = 1$).
  187.  
  188. %% TODO: Spiegare perché il rango si conserva, da fare quando anche io lo avrò capito.
  189.  
  190. \subsection{Limitazione del rango nella parte triangolare superiore}
  191. Ci occuperemo ora di spiegare perché il rango di tutte le sottomatrici strettamente contenute nella
  192. parte triangolare superiore è limitato superiormente da $3$, sia nel caso in cui $D$ sia una matrice
  193. reale, sia in quello in cui sia una matrice di fase. Consideriamo il primo e osserviamo cosa succede
  194. al primo passo del metodo. Poniamo $A_0 = D + u\trasp v$; si ha che:
  195. \[
  196. A_1 = \herm{Q_1} A_0 Q_1 = \herm{Q_1}(D+ u\trasp v)Q_1 = \herm{Q_1} DQ_1 + u_1\trasp{v_1}
  197. \]
  198. Ricordando che $D$ è reale si può concludere che $\herm{Q_1}DQ_1$ è hermitiana e diagonale;
  199. possiamo quindi scrivere il $k$-esimo passo del metodo in questo modo
  200. \[
  201. A_{k+1} = H_{k+1} + u_{k+1}\trasp v_{k+1}
  202. \]
  203. dove $H_{k+1}$ è una matrice hermitiana. In particolare si ha $H_{k+1} = A_{k+1} - u_{k+1}\trasp v_{k+1}$.
  204. Da quanto visto prima sappiamo che il rango nella parte inferiore di $H_{k}$ non può superare $2$.
  205. Ricordando che $H_k$ è hermitiana si può concludere che il rango è al massimo $2$ nella parte superiore.
  206. Osservando nuovamente che $A_k = H_k + u_k\trasp v_k$ si ottiene che il rango di $A_k$ nella parte superiore
  207. non può superare $3$ e si ha quindi la tesi.
  208.  
  209. La stessa cosa si può mostrare che quando la matrice diagonale $D$ è una matrice di fase. Ci sono due
  210. procedure possibile per effettuare la dimostrazione; una è scrivere $D = QR$ ed osservare che data
  211. l'hermitianità di $D$ si ottiene che $R$ deve forzatamente essere una matrice di fase. Questa via
  212. richiede però tediosi passaggi molto contosi che quindi non svolgeremo. Un'alternativa più elegante
  213. è utilizzare il \emph{Nullity theorem}, dimostrato attorno al 1960. Questo però non fa parte del
  214. programma del corso e quindi non seguiremo neanche questa via.
  215.  
  216. \subsection{Metodo \qr\ per il calcolo delle radici dei polinomi}
  217. Il motivo principale (e storicamente il primo) per cui ci si è interessati a queste matrici
  218. è stato la ricerca delle radici dei polinomi tramite l'uso delle matrici Companion. \\
  219. Le matrici Companion hanno una struttura come la seguente:
  220. \[
  221. F = \left[ \begin{array}{cccc}
  222. 0 & \cdots & \cdots & \times \\
  223. 1 & \ddots & & \vdots \\
  224. &\ddots & 0 & \times \\
  225. & & 1 & \times
  226. \end{array} \right]
  227. \]
  228. La matrice $F$ si può scrivere come una matrice unitaria più una correzione di rango $1$ nel seguente modo
  229. \[
  230. F = Q + u\trasp e_n = \left[ \begin{array}{cccc}
  231. 0 & & & 1 \\
  232. 1 & \ddots & & \\
  233. & \ddots & \ddots & \\
  234. & & 1 & 0 \\
  235. \end{array} \right]
  236. + \left[ \begin{array}{cccc}
  237. \: &\: &\: & v_1 \\
  238. & & & \vdots \\
  239. & & & \vdots \\
  240. & & & v_n \\
  241. \end{array} \right]
  242. \]
  243. e quindi sarebbe conveniente poter applicare delle ottimizzazioni al \qr\ sfruttando le osservazioni fatte
  244. sul rango delle matrici contenute nella parte inferiore e superiore della matrice che viene iterata.
  245.  
  246. Supponendo di voler determinare le radici del polinomio $p(x) = p_0 + p_1x + \ldots + p_nx^n$ si ottiene
  247. la matrice
  248. \[
  249. F = \left[ \begin{array}{cccc}
  250. 0 & \cdots & \cdots & \frac{-p_0}{p_n}\\
  251. 1 & \ddots & & \vdots \\
  252. &\ddots & 0 & \vdots \\
  253. & & 1 & \frac{p_{n-1}}{p_n}
  254. \end{array} \right]
  255. \]
  256. In generale, affrontando il problema della ricerca degli autovalori, usiamo il teorema di Bauer-Fike (Teorema~\ref{te:BauerFike})
  257. per assicurarci di ottenere il risultato con una buona approssimazione. Questo però non è sempre sufficiente
  258. se $p_n$ è piccolo, perché la norma della matrice può crescere arbitrariamente. Come affrontare questo problema?
  259.  
  260. Una soluzione può essere evitare di ricondursi ad un problema agli autovalori analizzando il seguente \emph{problema
  261. generalizzato agli autovalori}\footnote{In generale si dice \emph{problema generalizzato agli autovalori} un problema
  262. del tipo $\deter{A - \lambda B} = 0$. Se $B$ è invertibile questo può sempre essere ricondotto a trovare gli
  263. autovalori di $B^{-1}A$, ma non sempre è conveniente. }:
  264. \[
  265. \deter{F - \lambda I} = 0 \iff \deter{p_n F - \lambda( I + p_n e_n\trasp e_n)} = 0
  266. \]
  267. Parleremo dei possibili metodi per analizzare questo problema nel Capitolo~\ref{cap:autovalori_generalizzato}.