next up previous contents index
Next: 3.5.2 Metodo di Gauss-Seidel Up: 3.5.1 Metodo di Jacobi Previous: 3.5.1 Metodo di Jacobi   Indice   Indice analitico


3.5.1.1 Convergenza del metodo

Al passo \bgroup\color{darkgreen}$k$\egroup-esimo l'errore a questa iterazione ?

\begin{displaymath}\bgroup\color{darkgreen}
e^{(k)} = \tilde{x} - x^{(k)}
\egroup\end{displaymath}

risulta chiaro quindi che

\begin{displaymath}\bgroup\color{darkgreen}
\lim_{k\to \infty}x^{(k)} = \tilde{x} \Leftrightarrow \lim_{k\to \infty}e^{(k)} = 0
\egroup\end{displaymath}

Infine sottraendo la (3.7) dalla (3.6), allora

\begin{displaymath}\bgroup\color{darkgreen}
D\underbrace{(\tilde{x}-x^{(k+1)})}...
...U)\underbrace{(\tilde{x}-x^{(k)})}_{e^{(k)}} + (b - b)
\egroup\end{displaymath}

e pertanto

\begin{displaymath}\bgroup\color{darkgreen}
e^{(k+1)}=\underbrace{D^{-1}(L+U)}_{B_j}e^{(k)} \Rightarrow e^{(k)}=(B_j)^{k}e^{(0)}
\egroup\end{displaymath}

dove \bgroup\color{darkgreen}$(B_j)^{k}$\egroup ? la matrice di Jacobi alla \bgroup\color{darkgreen}$k$\egroup-esima iterazione.
La dimostrazione dell'implicazione precedente si fa per induzione su \bgroup\color{darkgreen}$k$\egroup. Perci? fissato all'inizio il valore di \bgroup\color{darkgreen}$e^{(0)}$\egroup otteniamo che

\begin{displaymath}\bgroup\color{darkgreen}
\lim_{k\to \infty}e^{(k)} = 0 \Leftrightarrow (B_j)^{k} \rightarrow 0_{n \times n}
\egroup\end{displaymath}

cio? l'errore sulle soluzioni via via approssimate tende a zero, per \bgroup\color{darkgreen}$k \to \infty$\egroup, se la matrice di Jacobi al passo \bgroup\color{darkgreen}$k$\egroup-esimo converge alla matrice quadrata nulla di dimensione \bgroup\color{darkgreen}$n$\egroup

Definizione 3.24   Una matrice si dice convergente se e solo se il suo raggio spettrale3.8 ? minore di uno

Consideriamo ora \bgroup\color{darkgreen}$B_j = V^{-1}\Lambda V$\egroup, cio? la sua scomposizione in forma canonica di Jordan , con \bgroup\color{darkgreen}$\Lambda $\egroup che ? cos? strutturata:

\begin{displaymath}\bgroup\color{darkgreen}
\Lambda = \left(
\begin{array}{ccc...
...\\
&\ddots & \\
& &\lambda_n
\end{array}
\right)
\egroup\end{displaymath}

mentre con \bgroup\color{darkgreen}$V$\egroup si indica la matrice le cui colonne sono gli autovettori corrispondenti agli autovalori di \bgroup\color{darkgreen}$\Lambda $\egroup.
Quindi \bgroup\color{darkgreen}$B_j^k= V^{-1}\Lambda^k V$\egroup converge a zero se e soltanto se \bgroup\color{darkgreen}$\Lambda^k$\egroup converge a zero, poich? ? l'unica matrice che dipende da \bgroup\color{darkgreen}$k$\egroup. Si noti per? che il calcolo del raggio spettrale di una matrice ha un costo estremamente superiore alla risoluzione del sistema lineare con un metodo diretto; quindi si cercheranno maggiorazioni facilmente calcolabili e che siano minori di uno.
Una di queste possibili maggiorazioni ci viene fornita considerando la definizione di matrice a diagonale dominante. Verificare che una matrice ? di questo tipo ? un calcolo semplice, ha un costo relativamente basso e si pu? quindi sfruttare nella seguente proposizione:

Proposizione 3.25   Se $A$ ? a diagonale dominante in senso forte per righe e/o per colonne allora $\rho(B_j) < 1$

DIMOSTRAZIONE:
Nel caso in cui \bgroup\color{darkgreen}$A$\egroup sia a diagonale dominante in senso forte per righe allora

\begin{displaymath}\bgroup\color{darkgreen}
\vert\vert B_j\vert\vert _{\infty} < 1
\egroup\end{displaymath}

e questa maggiorazione ? sufficiente perch? \bgroup\color{darkgreen}$\rho(B_j)$\egroup ? sempre pi? piccolo di una qualsiasi norma di \bgroup\color{darkgreen}$B_j$\egroup(vedi teorema 2.11):

\begin{displaymath}\bgroup\color{darkgreen}
\rho(B_j) \leq \vert\vert B_j\vert\...
...vert\vert \quad \forall \lambda_i \in \mathcal{P}(B_j)
\egroup\end{displaymath}

dove si ricordi che, dato \bgroup\color{darkgreen}$v$\egroup autovettore corrispondente a \bgroup\color{darkgreen}$\lambda$\egroup

\begin{displaymath}\bgroup\color{darkgreen}
\vert\vert B_j\vert\vert = \sup_{v ...
...rac{\vert\vert B_jv\vert\vert}{\vert\vert v\vert\vert}
\egroup\end{displaymath}


\begin{displaymath}\bgroup\color{darkgreen}
\frac{\vert\vert B_jv\vert\vert}{\v...
...rt\vert}=\vert\lambda\vert \leq \vert\vert B\vert\vert
\egroup\end{displaymath}

Dato che \bgroup\color{darkgreen}$B_j = D^{-1}(L+U)$\egroup, cio?

\begin{displaymath}\bgroup\color{darkgreen}
B_j=\left(
\begin{array}{ccccc}
0...
...-\frac{a_{n1}}{a_{nn}} & & & & 0
\end{array}
\right)
\egroup\end{displaymath}

quindi

\begin{displaymath}\bgroup\color{darkgreen}
\vert\vert B_j\vert\vert _{\infty} ...
..._{j=1}^{n}\left\vert\frac{a_{ij}}{a_{ii}}\right\vert<1
\egroup\end{displaymath}

Se invece \bgroup\color{darkgreen}$A$\egroup ? a diagonale dominante in senso forte per colonne, abbiamo che ? simile3.9 a .
Quindi

\begin{displaymath}\bgroup\color{darkgreen}
\vert\vert B_j\vert\vert _1 = \max_...
..._{i\neq j}\left\vert\frac{a_{ij}}{a_{jj}}\right\vert<1
\egroup\end{displaymath}

\bgroup\color{darkgreen}$\Box$\egroup
Analizziamo adesso i dettagli implementativi di questo metodo:
  1. Come criterio d'arresto potremo fissare una tolleranza $toll>\vert e^{(k)}\vert$, ma questo non ? possibile poich? non si conoscono le soluzioni esatte. Utilizziamo pertanto una tolleranza in base al residuo

    \begin{displaymath}
\vert\vert r^{(k)}\vert\vert<toll
\end{displaymath}

    dove per residuo si intende la quantit?

    \begin{displaymath}
r^{(k)}=A\cdot e^{(k)}=b-Ax^{(k)}
\end{displaymath}

  2. Un primo algoritmo per la risoluzione del sistema pu? essere espresso in questo pseudo-codice:
      $Dx^{(k)}=(L+U)x^{(k-1)}+b
$
      $
r^{(k)}=Ax^{(k)}-b
$
      se $\vert\vert r^{(k)}\vert\vert<toll$ stop
      altrimenti $Dx^{(k+1)}=(L+U)x^{(k)}+b$
       
    Tuttavia questo modo di procedere non sfrutta al massimo i calcoli gi? eseguiti, ? pi? conveniente il seguente
      $Dx^{(k)}=(L+U)x^{(k-1)}+b
$
      $
r^{(k)}=b-Ax^{(k)}
$
      se $\vert\vert r^{(k)}\vert\vert<toll$ stop
      altrimenti $x^{(k+1)}=x^{(k)}+D^{-1}r^{(k)}$
       
    Infatti:
    $\displaystyle x^{(k+1)}$ $\textstyle =$ $\displaystyle x^{(k)}+D^{-1}r^{(k)}=x^{(k)}+D^{-1}(b-Ax^{(k)})=$  
      $\textstyle =$ $\displaystyle x^{(k)}+D^{-1}b-D^{-1}(D-L-U)x^{(k)}=$  
      $\textstyle =$ $\displaystyle x^{(k)}+D^{-1}b-x^{(k)}+D^{-1}(L+U)x^{(k)}=$  
      $\textstyle =$ $\displaystyle D^{-1}(L+U)x^{(k)} + D^{-1}b$  

[caption=Risolvi sistema lineare con metodo di Jacobi, label=codici/risolvi_jacobi.m, showstringspaces=false, frame=tRBl, extendedchars=true, basicstyle=pcrm, numbers=left, commentstyle= , frameround=fttt, stepnumber=1, numberstyle=, keywordstyle= , language=Matlab]codici/risolvi_jacobi.m



Esempi di risolvi_jacobi da pag. [*]


next up previous contents index
Next: 3.5.2 Metodo di Gauss-Seidel Up: 3.5.1 Metodo di Jacobi Previous: 3.5.1 Metodo di Jacobi   Indice   Indice analitico
2005-02-09