222
Calcolo Numerico Anno accademico 2003/2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti Stefano Ceri Paolo Filippelli 15 gennaio 2005

Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

  • Upload
    vantram

  • View
    233

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Calcolo Numerico

Anno accademico 2003/2004Docente del corso Dott.ssa A. Sestini

Giacomo Sacchetti ���������������� ��������������������������������� � � !�" ���#

Stefano Ceri ���$$%� ����������������&�����$���'�����( � � !�" ��#

Paolo Filippelli �$ ) $*� ,+�+��*�*� �����������������&���������'�����( � � &�- ���#

15 gennaio 2005

Page 2: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

2

������������ ������������������������� ����!������ �"����$#%!���"�&���'(�)��"��*+#%,�����-��/.�-(0���("�-�-�,�"����1�2�2����'3�2����(��'��("�4)���5�������6#74�2���� 8�9���"���'�4�:����;����4 &��)�� �2<4���� 9���"�'��9�'�4�"����� �"/�("����=2;��&)�� ("/��>�?@.��("�"�A��(�09��"�'������*���'�B���"�'�2�"C#ED�"���2����'GF$HIF���@��'��5-�����"��)J("��2����'���9�8(-��2 �"�4/8����� �";.���"�"�!���&���K(����";.���9�'�4����*���'6L7K*0�� �� �"5M0'�J����*���'��5!�"(�0����'2N8("� '��PO�Q=R0S�T�U0V�WX�T QY#7K=0�� ��� �";.��(��'��=Z ����J�"���[�"�\���28("�0'��^]�_*`0a�T=`bTNc�V�d1Y S*X�a�T#e��'�4;'(�<f(��� g*Z ����J("���[�"�\���2hH

Il presente elaborato è stato scritto per poter sostenere l’esame di “Calcolo Numerico”,

del corso di laurea in Informatica a Firenze. Esso si basa sugli appunti presi durante le lezio-

ni dell’anno accademico 2002/2003.

In copertina: Leonardo Da Vinci ,“Uomo Vitruviano”, 1490ca.

Il testo è stato composto dagli autori mediante LATEX 2ε.

Page 3: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Indice

1 Teoria dell’ errore 15

1.1 Rappresentazione dei numeri sul calcolatore . . . . . . . . . . 151.2 Precisione di macchina . . . . . . . . . . . . . . . . . . . . . . 171.3 Operazioni di macchina . . . . . . . . . . . . . . . . . . . . . 181.4 Propagazione degli errori . . . . . . . . . . . . . . . . . . . . 20

1.4.1 Errori nelle operazioni aritmetiche di base . . . . . . . 21

2 Norme 25

2.1 Norma vettoriale . . . . . . . . . . . . . . . . . . . . . . . . . 252.2 Norme matriciali . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Metodi per la risoluzione di sistemi lineari 29

3.1 Richiami di Algebra Lineare . . . . . . . . . . . . . . . . . . . 293.2 Sistemi Lineari . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3 Condizionamento di un sistema lineare . . . . . . . . . . . . . 34

3.3.1 Residuo . . . . . . . . . . . . . . . . . . . . . . . . . . 363.4 Metodi Diretti . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.4.1 Fattorizzazione A = LU . . . . . . . . . . . . . . . . . 383.4.2 Fattorizzazione LDLT . . . . . . . . . . . . . . . . . . 453.4.3 Fattorizzazione PA = LU . . . . . . . . . . . . . . . . 493.4.4 Fattorizzazione A = QR . . . . . . . . . . . . . . . . . 54

3.5 Metodi iterativi . . . . . . . . . . . . . . . . . . . . . . . . . . 643.5.1 Metodo di Jacobi . . . . . . . . . . . . . . . . . . . . . 653.5.2 Metodo di Gauss-Seidel . . . . . . . . . . . . . . . . . 70

4 Equazioni e sistemi non lineari 75

4.1 Condizionamento del problema . . . . . . . . . . . . . . . . . 764.2 Metodo di bisezione . . . . . . . . . . . . . . . . . . . . . . . 784.3 Metodo di Newton . . . . . . . . . . . . . . . . . . . . . . . . 81

4.3.1 Metodo di Newton modificato . . . . . . . . . . . . . . 844.3.2 Metodo delle corde . . . . . . . . . . . . . . . . . . . . 86

3

Page 4: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

4 INDICE

4.3.3 Metodo delle secanti . . . . . . . . . . . . . . . . . . . 884.3.4 Metodo di accelerazione di Aitken . . . . . . . . . . . 90

5 Approssimazione di funzioni 95

5.1 Polinomio Interpolante di Lagrange . . . . . . . . . . . . . . . 975.2 Polinomio Interpolante di Newton . . . . . . . . . . . . . . . . 1005.3 Condizionamento del problema . . . . . . . . . . . . . . . . . 1095.4 Errore di interpolazione . . . . . . . . . . . . . . . . . . . . . 1125.5 Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

5.5.1 Splines cubiche interpolanti nei nodi . . . . . . . . . . 1155.6 Minimi Quadrati . . . . . . . . . . . . . . . . . . . . . . . . . 122

5.6.1 Condizionamento del problema dei minimi quadrati . 125

6 Integrazione numerica 129

6.1 Formule di quadratura interpolatorie . . . . . . . . . . . . . . 1296.1.1 Formule di quadratura di Newton-Cotes . . . . . . . . 1306.1.2 Condizionamento del problema . . . . . . . . . . . . . 1336.1.3 Formule di quadratura composite . . . . . . . . . . . . 1356.1.4 Formule di quadratura composite adattive . . . . . . . 139

7 Autovalori e Autovettori 145

7.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . 1457.2 Il metodo delle potenze . . . . . . . . . . . . . . . . . . . . . 146

A Esempi 149

A.1 Condizionamento Sistemi lineari . . . . . . . . . . . . . . . . 149A.2 Eliminazione di Gauss . . . . . . . . . . . . . . . . . . . . . . 150A.3 Risoluzione di sistemi lineari fattorizzati A = LU . . . . . . . 153A.4 Risoluzione di sistemi lineari fattorizzati PA = LU . . . . . . 156A.5 Risoluzione di sistemi lineari fattorizzati A = LDLT . . . . . 157A.6 Risoluzione di sistemi lineari fattorizzati con Householder . . 159A.7 Risoluzione di sistemi lineari fattorizzati con Givens . . . . . . 162A.8 Risoluzione di sistemi lineari fattorizzati con Jacobi . . . . . . 164A.9 Risoluzione di sistemi lineari fattorizzati con Gauss-Seidel . . 168A.10 Metodo di bisezione . . . . . . . . . . . . . . . . . . . . . . . 175A.11 Metodo di Newton . . . . . . . . . . . . . . . . . . . . . . . . 176A.12 Metodi di Newton per funzioni con radice multipla nota . . . 178A.13 Metodo delle corde . . . . . . . . . . . . . . . . . . . . . . . . 179A.14 Metodo delle secanti . . . . . . . . . . . . . . . . . . . . . . . 181A.15 Metodo di accelerazione di Aitken . . . . . . . . . . . . . . . . 183A.16 Interpolazione di Vandermonde . . . . . . . . . . . . . . . . . 184A.17 Interpolazione di Lagrange . . . . . . . . . . . . . . . . . . . . 186A.18 Interpolazione polinomiale con base Newton e metodo di Hor-

ner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

Page 5: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

INDICE 5

A.19 Interpolazione polinomiale con base di Newton e metodo diNeville . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

A.20 Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190A.21 Minimi quadrati . . . . . . . . . . . . . . . . . . . . . . . . . . 195A.22 Funzioni di riferimento per le formule di Quadratura . . . . . 199A.23 Formule di Quadratura di Newton-Cotes : Trapezi e Simpson . 200A.24 Formule composite di Newton-Cotes: Trapezi . . . . . . . . . 203A.25 Formule composite di Newton-Cotes: Simpson . . . . . . . . . 205A.26 Formule adattive di Newton-Cotes: Trapezi . . . . . . . . . . 208A.27 Formule adattive di Newton-Cotes: Simpson . . . . . . . . . . 211A.28 Autovalori ed Autovettori . . . . . . . . . . . . . . . . . . . . 214

Page 6: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

6 INDICE

Page 7: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Elenco delle figure

1.1 Rappresentazione di F (2, 3,−1, 1) . . . . . . . . . . . . . . . . 16

3.1 Rotazione vettori con matrici di Householder . . . . . . . . . 553.2 Rotazione assi con matrici di Givens . . . . . . . . . . . . . . 61

4.1 Tolleranza su f ed errore assoluto . . . . . . . . . . . . . . . . 774.2 Problema bencondizionato (a) e malcondizionato (b,c) . . . . 77

5.1 Funzione spline . . . . . . . . . . . . . . . . . . . . . . . . . . 1155.2 Esempio minimi quadrati . . . . . . . . . . . . . . . . . . . . 123

6.1 Metodo dei trapezi . . . . . . . . . . . . . . . . . . . . . . . . 1316.2 Metodo di Simpson . . . . . . . . . . . . . . . . . . . . . . . . 1326.3 Esempio funzione per metodi adattivi . . . . . . . . . . . . . . 139

A.1 bisezione(−0.5, 1,′ fesp′, toll, 100) . . . . . . . . . . . . . . . . 177A.2 bisezione(−5, 50,′ fmult′, toll, 100) . . . . . . . . . . . . . . . 177A.3 bisezione(−1, 5,′ fmult′, toll, 100) . . . . . . . . . . . . . . . . 178A.4 corde(′fesp′,′ dfesp′, toll,−0.5, 1, 1, 250) . . . . . . . . . . . . 180A.5 corde(′fmult′,′ dfmult′, TOLL, 2.5, 4, 4, 250) . . . . . . . . . . 180A.6 corde(′fmult′,′ dfmult′, TOLL, 2.5, 5, 5, 250) . . . . . . . . . . 181A.7 secanti(′fesp′,′ dfesp′, toll,−0.5, 1, 1.1, 1, 100) . . . . . . . . . 182A.8 secanti(′fmult′,′ dfmult′, toll, 2, 3.5, 2, 2.1, 100) . . . . . . . . 182A.9 secanti(′fmult′,′ dfmult′, toll, 2, 3.5,−2,−3, 200) . . . . . . . 183A.10 Interpolazione polinomiale funzione di Runge con Vander-

monde, 10 ascisse . . . . . . . . . . . . . . . . . . . . . . . . . 185A.11 Interpolazione polinomiale funzione di Runge con Vander-

monde, 20 ascisse . . . . . . . . . . . . . . . . . . . . . . . . . 185A.12 Interpolazione polinomiale funzione di Runge con Lagrange,

10 ascisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

7

Page 8: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

8 ELENCO DELLE FIGURE

A.13 Interpolazione polinomiale funzione di Runge con Lagrange,20 ascisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

A.14 newtonhorneruni(′frunge′,−3, 3, 50, 8) . . . . . . . . . . . . 187A.15 newtonhorneruni(′frunge′,−3, 3, 50, 16) . . . . . . . . . . . . 187A.16 newtonhorneruni(′frunge′,−3, 3, 50, 35) . . . . . . . . . . . . 188A.17 newtonhornercheby(′frunge′,−3, 3, 50, 15) . . . . . . . . . . 188A.18 newtonnevilleuni(′fperiodica′,−10, 10, 100, 15) . . . . . . . . 189A.19 newtonnevilleuni(′fperiodica′,−10, 10, 100, 20) . . . . . . . . 189A.20 newtonnevillecheby(′fperiodica′,−10, 10, 100, 20) . . . . . . . 190A.21 spline(′frunge′, [−5 : 2 : 5], 50) . . . . . . . . . . . . . . . . . 190A.22 spline(′frunge′, [−5 : 1 : 5], 50) . . . . . . . . . . . . . . . . . 191A.23 spline(′fmult′, [2 : 0.5 : 4], 50) . . . . . . . . . . . . . . . . . . 191A.24 spline(′fmult′, [2 : 0.25 : 4], 50) . . . . . . . . . . . . . . . . . 192A.25 spline(′fmult′, [2 : 0.05 : 4], 100) . . . . . . . . . . . . . . . . 192A.26 spline(′fperiodica′, [−5 : 2.5 : 5], 100) . . . . . . . . . . . . . . 193A.27 spline(′fperiodica′, [−5 : 1.25 : 5], 100) . . . . . . . . . . . . . 193A.28 spline(′fperiodica′, [−10 : 2 : 10], 100) . . . . . . . . . . . . . 194A.29 spline(′fperiodica′, [−10 : 1 : 10], 100) . . . . . . . . . . . . . 194A.30 minimi_quadrati(x, f, 16) . . . . . . . . . . . . . . . . . . . . 195A.31 minimi_quadrati(x, f, 8) . . . . . . . . . . . . . . . . . . . . 196A.32 minimi_quadrati(x, f, 8) . . . . . . . . . . . . . . . . . . . . 196A.33 minimi_quadrati(x, f, 16) . . . . . . . . . . . . . . . . . . . . 197A.34 minimi_quadrati(x, f, 30) . . . . . . . . . . . . . . . . . . . . 197A.35 minimi_quadrati(x, f, 50) . . . . . . . . . . . . . . . . . . . . 198A.36 Formule di quadratura : funzione di riferimento y = ex − 1 . . 199A.37 Formule di quadratura : funzione di Runge y = 1

1+x2 . . . . . 200

A.38 Metodo Trapezi-adattivo con la funzione y = sen(x)x

e tolle-ranza 1e−3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

A.39 Metodo Trapezi-adattivo con la funzione y = sen(x)x

e tolle-ranza 1e−5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

A.40 Metodo Trapezi-adattivo con la funzione y = ex − 1 e tolle-ranza 1e−3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

A.41 Metodo Trapezi-adattivo con la funzione x·cos(x)√x2+4

e tolleranza

1e−3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210A.42 Metodo Simpson-adattivo con la funzione sen(x)

xe tolleranza

1e−5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212A.43 Metodo Simpson-adattivo con la funzione ex − 1 e tolleranza

1e−5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212A.44 Metodo Simpson-adattivo con la funzione x·cos(x)√

x2+4e tolleranza

1e−4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213A.45 Metodo Simpson-adattivo con la funzione di Runge 1

1+x2 etolleranza 1e−5 . . . . . . . . . . . . . . . . . . . . . . . . . . 213

Page 9: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

ELENCO DELLE FIGURE 9

A.46 Metodo Simpson-adattivo con la funzione di Runge 11+x2 (diverso

intervallo) e tolleranza 1e−5 . . . . . . . . . . . . . . . . . . . 214

Page 10: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

10 ELENCO DELLE FIGURE

Page 11: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Listings

1.1 Precisione di macchina . . . . . . . . . . . . . . . . . . . . . . 183.1 Risolvi Diagonale . . . . . . . . . . . . . . . . . . . . . . . . . 323.2 Risolvi Triangolare Inferiore . . . . . . . . . . . . . . . . . . . 333.3 Risolvi Triangolare Superiore . . . . . . . . . . . . . . . . . . 333.4 Metodo di triangolarizzazione di Gauss . . . . . . . . . . . . . 443.5 Risolvi sistema con fattorizzazione A = LU . . . . . . . . . . 443.6 Risolvi sistema con fattorizzazione A = LDLT . . . . . . . . . 463.7 Fattorizzazione A = LDLT . . . . . . . . . . . . . . . . . . . 473.8 Risolvi sistema con fattorizzazione PA = LU . . . . . . . . . 523.9 Risolvi sistema con fattorizzazione di Householder . . . . . . 583.10 Fattorizzazione di Householder . . . . . . . . . . . . . . . . . 593.11 Creazione vettore di Householder . . . . . . . . . . . . . . . . 593.12 Risolvi sistema con fattorizzazione di Givens . . . . . . . . . . 623.13 Fattorizzazione di Givens . . . . . . . . . . . . . . . . . . . . . 633.14 Calcolo della matrice di rotazione di Givens . . . . . . . . . . 633.15 Scambio degli elementi secondo la matrice di Givens . . . . . 643.16 Risolvi sistema lineare con metodo di Jacobi . . . . . . . . . . 683.17 Risolvi sistema lineare con metodo di Gauss-Seidel . . . . . . 724.1 Metodo di bisezione . . . . . . . . . . . . . . . . . . . . . . . 804.2 Metodo di Newton . . . . . . . . . . . . . . . . . . . . . . . . 834.3 Metodo di Newton per radici multiple . . . . . . . . . . . . . 854.4 Metodo delle corde . . . . . . . . . . . . . . . . . . . . . . . . 874.5 Metodo delle secanti . . . . . . . . . . . . . . . . . . . . . . . 894.6 Metodo di Aitken . . . . . . . . . . . . . . . . . . . . . . . . . 925.1 Risolve il sistema di Vandermonde . . . . . . . . . . . . . . . 965.2 Creazione matrice di Vandermonde . . . . . . . . . . . . . . . 975.3 Interpolazione polinomiale con base di Lagrange . . . . . . . 995.4 Interpolazione polinomiale con base di Lagrange ottimizzata . 995.5 Interpolazione polinomiale con base di Newton . . . . . . . . 1045.6 Valutazione di un polinomio in un punto . . . . . . . . . . . . 1055.7 Calcolo delle differenze divise . . . . . . . . . . . . . . . . . . 106

11

Page 12: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

12 LISTINGS

5.8 Interpolazione polinomiale con Neville . . . . . . . . . . . . . 1075.9 Calcolo polinomio con Neville . . . . . . . . . . . . . . . . . . 1085.10 Ascisse di Chebyshev . . . . . . . . . . . . . . . . . . . . . . . 1105.11 Interpolazione polinomiale con algoritmo di Horner e ascisse

di Chebyshev . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115.12 Interpolazione polinomiale con algoritmo di Neville e ascisse

di Chebyshev . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115.13 Spline cubica naturale . . . . . . . . . . . . . . . . . . . . . . 1175.14 Fattorizzazione matrice tridiagonale . . . . . . . . . . . . . . 1195.15 Metodo dei minimi quadrati . . . . . . . . . . . . . . . . . . . 1266.1 Metodo dei trapezi . . . . . . . . . . . . . . . . . . . . . . . . 1326.2 Metodo di Simpson . . . . . . . . . . . . . . . . . . . . . . . . 1336.3 Calcolo integrale . . . . . . . . . . . . . . . . . . . . . . . . . 1376.4 Metodo composito dei trapezi . . . . . . . . . . . . . . . . . . 1386.5 Metodo composito di Simpson . . . . . . . . . . . . . . . . . . 1386.6 Metodo dei trapezi adattivo: grafico . . . . . . . . . . . . . . 1416.7 Metodo dei trapezi adattivo . . . . . . . . . . . . . . . . . . . 1426.8 Metodo di Simpson adattivo: grafico . . . . . . . . . . . . . . 1426.9 Metodo di Simpson adattivo . . . . . . . . . . . . . . . . . . . 1437.1 Calcola l’autovalore dominante con il metodo delle potenze . 148

Page 13: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Introduzione

Nel momento in cui abbiamo la necessità di risolvere con l’aiuto del compu-ter un problema trovato nella vita reale, sorge la necessità di formalizzarloattraverso modelli matematici.

Con la soluzione degli stessi, siamo perciò in grado di determinare irisultati che possono addirittura permetterci la previsione di eventi futuri, oun analisi accurata del fenomeno formalizzato.

Lo scopo del calcolo numerico è dunque quello di garantire il correttopassaggio dal modello matematico a una plausibile soluzione.

Sono molteplici i casi in cui errori causati da un errato utilizzo di modellimatematici hanno prodotto gravi danni economici e sociali.

13

Page 14: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

14 LISTINGS

Page 15: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Capitolo 1Teoria dell’ errore

ACausa della capacità finita dei suoi registri, un calcolatore non è ingrado di rappresentare l’insieme dei numeri reali. Si pone pertantoil problema di definire una rappresentazione approssimata di tale

insieme. Infatti ogni procedura all’interno dell’elaboratore è ricondotta alunghe sequenze di operazioni elementari e decisioni logiche, le quali gene-rano, al procedere dei calcoli, una serie di imprecisioni che si ripercuotonosul risultato finale. L’ Analisi Numerica deve quindi preoccuparsi di descri-vere adeguate procedure per risolvere problemi di svariata natura, consi-derando tutte le limitazioni imposte dall’aritmetica di macchina. In questocapitolo intendiamo mostrare le metodologie e i concetti sui quali si basa lateoria dell’errore.

1.1 Rappresentazione dei numeri sul calcolatore

Scelto un qualunque numero intero β > 1, ogni numero non nullo x ∈ R

ammette una rappresentazione in base β

x = sign(x)βp∞∑

i=1

αiβ−i

dove p ∈ Z e ogni αi è tale che 0 ≤ αi ≤ β−1. Il numero β viene detto base,p l’esponente e gli αi sono le cifre della rappresentazione.

Teorema 1.1 (di rappresentazione) Data una base intera β > 1 e un qua-

lunque numero reale x diverso da zero, esiste un’unica rappresentazione in

base β tale che:

• α1 6= 0

• non vi sia un intero k per cui si abbia αj = β − 1, ∀j > k

15

Page 16: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

16 CAPITOLO 1. TEORIA DELL’ ERRORE

Definizione 1.2 Si definisce l’insieme dei numeri macchina (floating point)

con t cifre significative, base β e range (L,U), l’insieme dei numeri reali defi-

nito nel modo seguente:

F (β, t, L, U) = {0} ∪{

x ∈ R = sign(x)βpt∑

i=1

diβ−i

}

dove t, β sono interi positivi con β > 1. Si ha inoltre:

0 ≤ di ≤ β − 1 , i = 1, 2, . . .

d1 6= 0 , L ≤ p ≤ U

Nella precedente definizione solitamente U è positivo e L negativo.1 Consi-deriamo ad esempio, l’insieme F (2, 3,−1, 1), esso è formato dai numeri:

±(0, 100) · 2−1, ±(0, 101) · 2−1, ±(0, 110) · 2−1,±(0, 111) · 2−1,

±(0, 100) · 20, ±(0, 101) · 20, ±(0, 110) · 20,±(0, 111) · 20,

±(0, 100) · 21, ±(0, 101) · 21, ±(0, 110) · 21,±(0, 111) · 21,

Se rappresentiamo lungo la retta dei numeri reali i precedenti numeri, no-

1 5 3 7 1 5 3 7 1 924 16 8 16 2 8 4 8 4

0

Figura 1.1: Rappresentazione di F (2, 3,−1, 1)

tiamo, come mostra la figura 1.1, che tali non sono uniformemente spaziatifra loro. Analizziamo i motivi per cui si può verificare che il numero x ∈ R

non sia rappresentabile come numero di macchina, cioè x /∈ F :

• l’esponente p /∈ [L,U ]. Nel caso in cui p < L il numero è approssimatoa 0. Tale situazione viene detta di underflow. Se invece p > U allora icalcoli si arrestano e questa situazione è chiamata di overflow.

• le cifre di, con i > t, non sono tutte nulle. In tal caso si utilizzano leoperazioni di approssimazione per scegliere un rappresentante di x inF .

1Lo standard più diffuso, lo standard IEEE ha le seguenti specifiche: β = 2, t = 52,e = 10.Quindi il minimo numero rappresentabile risulta circa −10308, mentre il massimo è circa10308

Page 17: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

1.2. PRECISIONE DI MACCHINA 17

In rappresentazione posizionale un numero x 6= 0 viene denotato con:

x = ±.d1d2 . . . dt . . . βp

Indichiamo inoltre con fl(x) il numero di macchina corrispondente a x.Esso è ottenuto da x in base o al ������������ ����� o all’ ������������������ ����� .

Troncamento fl(x) = sign(x)(0, d1d2 . . . dt)βp

Arrotondamento

{fl(x) = sign(x)(0, d1d2 . . . dt)β

p se dt+1 < β/2fl(x) = sign(x)(0, d1d2 . . . (dt + 1))βp se dt+1 ≥ β/2

Definizione 1.3 La quantità |fl(x)− x| prende il nome di ���������������������! �"��

Definizione 1.4 La quantità∣∣∣fl(x)−x

x

∣∣∣, se x 6= 0 prende il nome di �������#���

�����$�%"�&('��

Calcoliamo adesso gli errori nei due casi di approssimazione. Per il tronca-mento si ha:

|fl(x)− x| = |sign(x)(0, d1d2 . . . dt)βp − sign(x)(0, d1d2 . . . dtdt+1 . . .)β

p| == (0, 00 . . . 0dt+1 . . .)β

p ≤ β−tβp

∣∣∣∣

fl(x)− xx

∣∣∣∣≤ β−tβp

|x| ≤ β1−t poiche |x| ≥ β−1βp

Con l’arrotondamento invece

|fl(x)− x| = |sign(x)(0, d1d2 . . . γt)βp − sign(x)(0, d1d2 . . . dtdt+1 . . .)β

p| =

≤ 1

2β−tβp con γt = dt se dt+1 <

β

2, γt = dt + 1 se dt+1 ≥

β

2∣∣∣∣

fl(x)− xx

∣∣∣∣≤ 1

2β1−t

Da notare che nel caso dell’errore relativo, questo è dovuto solo a t, cardi-nalità della mantissa.

1.2 Precisione di macchina

Definizione 1.5 Definiamo precisione di macchinaY*),+

il più piccolo numero

tale che

fl(1 + eps) > 1

Presentiamo l’implementazione Matlab che restituisce il valore di eps:

Page 18: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

18 CAPITOLO 1. TEORIA DELL’ ERRORE

Listing 1.1: Precisione di macchina�1 ������������� [E] = precisione_macchina2

3 % PRECISIONE_MACCHINA Calcola la precisione di macchina.4 % [E] = precisione_macchina restituisce in E la5 % precisione di macchina su cui e’ utilizzato questo6 % algoritmo.7 %8 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti9 % Fri Jun 18 09:46:15 CEST 2004

10

11 E=1;12 % controllo precisione13 ������� (1+E)>114 E=E/2;15 �����16 E=2.∗E;17 �����������

� �

��� ����"(���2����'�"�����(���0 *0'(�

��'�2��

� H ��������"�Z �*F��

1.3 Operazioni di macchina

Siano a, b due numeri appartenenti ad un particolare sistema floating pointF (β, t, L, U).Definiamo:

Somma di macchina a⊕ b = fl(a+ b)

Differenza di macchina a b = fl(a− b)

Prodotto di macchina a⊗ b = fl(a · b)

Quoziente di macchina a� b = fl(a/b)

Dimostriamo ora che se a, b, c ∈ F allora

(a⊕ b)⊕ c︸ ︷︷ ︸

yA

6= a⊕ (b⊕ c)︸ ︷︷ ︸

yB

Calcoliamo adesso il valore di yA:

yA = fl(fl(a+ b) + c) = fl((a+ b)(1 + ε1A) + c) =

= [(a+ b)(1 + ε1A) + c](1 + ε2A) =

= [a+ b+ c+ ε1A(a+ b) + ε2A(a+ b+ c) + ε1Aε2A(a+ b)]

Page 19: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

1.3. OPERAZIONI DI MACCHINA 19

L’ errore relativo è pertanto (ignorando la quantità ε1Aε2A(c+ b))2:∣∣∣∣

yA − yy

∣∣∣∣=ε2A(a+ b+ c) + ε1A(a+ b)

a+ b+ c= ε2A + ε1A

a+ b

a+ b+ c

Procediamo adesso nel calcolo del valore di yB:

yB = fl(a+ fl(b+ c)) = fl(a+ (b+ c)(1 + ε1B)) =

= [a+ (b+ c)(1 + ε1B)](1 + ε2B) =

= [a+ b+ c+ ε1B(b+ c) + ε2B(a+ b+ c) + ε1Bε2B(c+ b)]

L’ errore relativo è quindi (ignorando come prima l’errore di seconda specie):∣∣∣∣

yB − yy

∣∣∣∣=ε2B(a+ b+ c) + ε1B(b+ c)

a+ b+ c= ε2B + ε1B

b+ c

a+ b+ c

4 Esempio 1.6 Siano β = 10 e t = 4. Prendiamo a = 0.3124 · 103,

b = 0.2631 · 10−1, c = 0.4122 · 10−1; calcoliamo yA:

a+ b = 0.31242631 · 103 ⇒ a⊕ b = 0.3124 · 103

(a⊕ b) + c = 0.31244122 · 103 ⇒ (a⊕ b)⊕ c = 0.3124 · 103

Se calcoliamo invece yB otteniamo:

b+ c = 0.6753 · 10−1 ⇒ b⊕ c = 0.6753 · 10−1

a+ (b⊕ c) = 0.31246753 · 103 ⇒ a⊕ (b⊕ c) = 0.3125 · 103

Controlliamo i valori dell’errore relativo per entrambi gli algoritmi:

∣∣∣∣

yA − yy

∣∣∣∣=

0.6753 · 10−1

0.31246753 · 103≈ 0.21 · 10−3

∣∣∣∣

yB − yy

∣∣∣∣=

0.3247 · 10−1

0.31246753 · 103≈ 0.11 · 10−3

4 Esempio 1.7 Vediamo come si comporta la differenza di quadrati, sempre

con gli stessi valori. Dimostriamo che

(a⊗ a) (b⊗ b) 6= (a⊕ b)⊗ (a b)

Come nell’esempio precedente, calcoliamo yA e yB con i relativi errori:

yA = fl(fl(a · a)− fl(b · b)) = fl((a · a)(1 + ε1A)− (b · b)(1 + ε2A)) =

=[a2(1 + ε1A)− b2(1 + ε2A)

](1 + ε3A) =

∼= (a2 + b2 + a2ε1A − b2ε2A + (a2 − b2)ε3A)

2Questa semplificazione ci è permessa poiché tale prodotto risulta essere piú piccolo dellaprecisione di macchina eps

Page 20: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

20 CAPITOLO 1. TEORIA DELL’ ERRORE

yA − yy

=a2

a2 − b2 ε1A −b2

a2 − b2 ε2A + ε3A

∣∣∣∣

yA − yy

∣∣∣∣≤ eps

(

1 +a2

|a2 − b2| +b2

|a2 − b2|

)

yB = fl(fl(a+ b) · fl(a− b)) = [(a+ b)(1 + ε1B)(a− b)(1 + ε2B)] (1 + ε3B) =

= (a2 − b2)(1 + ε1B)(1 + ε2B)(1 + ε3B) =∼= (a2 − b2)(1 + ε1B + ε2B + ε3B)

yB − yy

= ε1B + ε2B + ε3B

∣∣∣∣

yB − yy

∣∣∣∣≤ 3 · eps

Abbiamo quindi mostrato che se(

a2

|a2−b2| + b2

|a2−b2|

)

> 2 allora è più conve-

niente utilizzare l’algoritmo B.

1.4 Propagazione degli errori

In questo paragrafo introduciamo lo studio di come al variare degli algorit-mi, gli errori sui dati si ripercuotono sui risultati.Consideriamo una generica funzione

y = f(x)

e la relativa funzione approssimata sul calcolatore

y = f(x)

dove x rappresenta il valore approssimato del punto dove vogliamo calcola-re la funzione e y il valore approssimato di questa (in x).Sia

εx =x− xx

e εy =y − yy

Non è sempre vero che εx = εy, infatti considerando lo sviluppo in serie diTaylor della funzione f arrestato al primo ordine, si ha:

f(x)︸︷︷︸

y

∼= f(x)︸︷︷︸

y

+f ′(x)(x− x)

cioéy − y ∼= f ′(x)(x − x) errore assoluto

y − yy∼= x

f ′(x)f(x)

x− xx

errore relativo

dove x f ′(x)f(x) è detto coefficiente di amplificazione.

Page 21: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

1.4. PROPAGAZIONE DEGLI ERRORI 21

1.4.1 Errori nelle operazioni aritmetiche di base

Somma

z = x+ y = x(1 + εx) + y(1 + εy) =

= x+ y + xεx + yεy = z + xεx + yεy

quindi∣∣∣∣

z − zz

∣∣∣∣

=

∣∣∣∣

xεx + yεyx+ y

∣∣∣∣= |εz|

|εz| ≤( |x||x+ y| +

|y||x+ y|

)

max(|εx|, |εy |)

Nel caso in cui x e y siano discordi e vicini fra loro otteniamo un grossoerrore e si presenta il fenomeno detto di cancellazione.Ad esempio:

√x+ 1−√x non è facile da trattare senza errori e quindi

risulta piú conveniente trattarlo come:

(x+ 1)− x√x+ 1 +

√x

=1√

x+ 1 +√x

la quale introduce un errore piú piccolo nel risultato.

Prodotto

z = x · y = x · y(1 + εx)(1 + εy) =

= xy(1 + εx + εy + εxεy)

quindi ∣∣∣∣

z − zz

∣∣∣∣= |εx + εy + εxεy|

Quoziente

z = x/y =x

y

(1 + εx)

(1 + εy)=

= z(1 + εx) · 1

(1 + εy)

quindi ∣∣∣∣

z − zz

∣∣∣∣=εx − εy1 + εy

Analizzando la tabella 1.1 si può notare come tutte le operazioni di mac-china risentono della grandezza dei fattori nel calcolo dell’errore assoluto,cosa che non accade quando consideriamo l’errore relativo. La somma e la

Page 22: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

22 CAPITOLO 1. TEORIA DELL’ ERRORE

Operazione Err. Assoluto Err. Relativo

x+ y |xεx + yεy|∣∣∣

xx+y

εx + yx+y

εy

∣∣∣

x− y |xεx − yεy|∣∣∣

xx−y

εx − yx−y

εy

∣∣∣

x · y |xyεx + xyεy| |εx + εy|x/y

∣∣∣

xy(1+εx) (εx − εy)

∣∣∣

∣∣∣εx−εy

1+εy

∣∣∣

Tabella 1.1: Errori nelle principali operazioni aritmetiche

sottrazione possono rendere grande l’errore relativo nel caso in cui i duetermini dell’operazione siano molto vicini in valore assoluto. Infatti puó ac-cadere che i denominatori che compaiono nei coefficienti di amplificazionedell’errore relativo siano molto piccoli in valore assoluto (fenomeno dellacancellazione). La moltiplicazione non amplifica l’errore relativo e compor-ta un errore assoluto che dipende dall’ordine di grandezza dei fattori; anchela divisione non produce amplificazione per quanto riguarda l’errore rela-tivo, mentre l’errore assoluto diminuisce se aumenta (in valore assoluto) ildivisore.

4 Esempio 1.8 Calcoliamo le radici del polinomio x2 − 4x+ α.

Esse sono date da x1,2 = 2±√

4− α. Consideriamo la radice x = 2 +√

4− α,

per essa vale

x(α) = 2 +√

4− αquindi se α = 4 allora x(α) = 2.

Introduciamo una perturbazione su questo dato tale che α → α = 4 − 10−6.

Avremo allora x(α) = 2 +√

4− 4 + 10−6 = 2 + 10−3

Segue che

εα =α− αα

= −10−6

4= −0.25 · 10−6

εx(α) =x(α)− x(α)

x(α)=

10−3

2= 0.5 · 10−3

Quindi la perturbazione si è amplificata di un fattore nell’ordine di 103

In tutto l’elaborato cercheremo di affrontare il problema della propagazione

degli errori nei suoi due aspetti fondamentali: il condizionamento del pro-

blema e la stabilitá3 degli algoritmi utilizzati. In realtá si usa il terminedi condizionamento del problema quando possiamo supporre di operare inartimetica esatta e vogliamo vedere come la perturbazione sui dati si ri-percuota sui risultati. L’ esempio precedente manifesta chiaramente questa

3Si definisce condizionamento il comportamento dell’operazione esatta in presenza didati perturbati. Si dice che un algoritmo è stabile quando non produce un’amplificazioneeccessiva degli errori sui dati di ingresso.

Page 23: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

1.4. PROPAGAZIONE DEGLI ERRORI 23

situazione: al variare del parametro α mutava il risultato.D’altra parte non possiamo sempre solo teorizzare i problemi, ma dobbia-mo usare algoritmi di macchina che possono introdurre amplificazioni neglierrori. Abbiamo visto infatti negli esempi, come cambiando semplicementel’ordine dei fattori di una somma, i risultati ottenuti non sono gli stessi.

Page 24: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

24 CAPITOLO 1. TEORIA DELL’ ERRORE

Page 25: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Capitolo 2Norme

PER confrontare i diversi metodi di approssimazione che ci troviamo adanalizzare è spesso utile trovare una misura delle risposte che ci ven-gono fornite: introduciamo pertanto la definizione di una distanza

fra due punti di uno spazio lineare.

2.1 Norma vettoriale

Definizione 2.1 Un’applicazione definita in uno spazio vettoriale V ed avente

codominio in R è chiamata norma vettoriale e si indica con || · || se ∀v ∈ V :

1. ||v|| ≥ 0 ; ||v|| = 0 se e solo se v = 0

2. ||αv|| = |α| · ||v|| per ogni α ∈ R

3. ||v + w|| ≤ ||v|| + ||w|| per ogni w ∈ V

Definizione 2.2 Sia x ∈ Rn allora si definisce come norma ρ, per 1 ≤ ρ <∞la quantità

||x||ρ =

(n∑

i=1

|xi|ρ) 1

ρ

In particolare definiamo1:

1Le figure che accompagnano la definizione delle norme indicano i luoghi dei punti dove|| · || ≤ 1

25

Page 26: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

26 CAPITOLO 2. NORME

Norma 1 ||x||1 =

n∑

i=1

|xi|

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

1

1

Norma 2 ||x||2 =√xTx =

√√√√

n∑

i=1

|xi|2

���������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������

1

1

Norma ∞ ||x||∞ = maxi=1,...,n

|xi|���������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������

1

1

In particolare è sempre possibile passare da un tipo di norma all’altra a menodi una costante.

Proposizione 2.3 Per ogni coppia di norme di vettore ||x||, ||x||′, esistono due

costanti positive m ed M tali che per ogni x ∈ Rn:

m||x||′ ≤ ||x|| ≤M ||x||′

2.2 Norme matriciali

Definizione 2.4 Una funzione di Rn×n in R

A→ ||A||

che verifica le seguenti proprietá:

1. ||A|| ≥ 0 ; ||A|| = 0 se e solo se A = 0

2. ||αA|| = |α| · ||A|| per ogni α ∈ R

3. ||A+B|| ≤ ||A|| + ||B|| per ogni B ∈ Rn×n

4. ||AB|| ≤ ||A|| · ||B|| per ogni B ∈ Rn×n

Page 27: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

2.2. NORME MATRICIALI 27

è detta norma matriciale.

Definizione 2.5 La norma definita da

||A|| = supx6=0

||Ax||||x||

viene detta norma matriciale indotta della norma vettoriale || · ||.

5 Osservazione 2.6 Dal momento che ∀x ∈ Rn si può definire un vettore

u = x||x|| , possiamo scrivere che

||A|| = max||u||=1

||Au||

Definizione 2.7 Una norma di matrice si dice consistente se verifica la condi-

zione

||A · x|| ≤ ||A|| · ||x|| con x ∈ R

Teorema 2.8 Ogni norma matriciale soddisfa la condizione

||A · B|| ≤ ||A|| · ||B||

DIMOSTRAZIONE:Dalla definizione di norma matriciale si ha che

||A ·B|| = max||y||||A ·By|| ≤ max

||y||=1||A|| · ||By|| ≤ ||A|| · ||B||

2

Definizione 2.9 Si definisce raggio spettrale la funzione:

ρ(A) = maxi=1,...,n

|λi|

dove i λi sono gli autovalori della matrice quadrata A.

Teorema 2.10 Dalle tre norme vettoriali definite in precedenza si ottengono

le corrispondenti norme matriciali indotte:

1. Norma 1

||A||1 = maxj=1,...,n

n∑

i=1

|aij|

2. Norma 2

||A||2 =√

ρ(ATA)

Page 28: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

28 CAPITOLO 2. NORME

3. Norma∞||A||∞ = max

i=1,...,n

n∑

j=1

|aij|

Teorema 2.11 Per ogni norma indotta || · || e per ogni matrice quadrata A si

ha:

ρ(A) ≤ ||A||

DIMOSTRAZIONE:Sappiamo che gli autovalori di A si ricavano da

Ax = λx

Definiamo y = x||x|| . Abbiamo allora

Ay = λy ⇒ ||A|| ≥ ||Ay||

quindi

||A|| ≥ ||Ay|| = ||λy|| = |λ|=1︷︸︸︷

||y|| = |λ|

Page 29: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Capitolo 3Metodi per la risoluzione disistemi lineari

LA risoluzione di sistemi lineari è uno dei problemi matematici più si-gnificativi. Si presenta infatti spesso nel campo applicativo quandotali sistemi derivano direttamente dall’analisi dei fenomeni studiati,

oppure anche nel caso in cui i modelli trovati sono di tipo non lineare, deiquali sovente si studia solo la parte lineare. Siccome i sistemi lineari sonouno strumento così importante nella modellazione matematica della realtà,sorge la necessità di implementare algoritmi efficienti (e soprattutto stabili)per la soluzione di questi. Inoltre, data la varietà dei problemi da cui sonoformalizzati i sistemi lineari, ad essa corrisponde un varietà di metodi perrisolverli. A maggior ragione esisteranno dei particolari algoritmi che risul-teranno efficienti per un specifico tipo di sistemi mentre inefficienti per altri.Lo scopo dello studio di questi è proprio il saper usare l’ algoritmo correttoper il sistema considerato. Infatti la bontà di un algoritmo dipende: dallasua stabilità, dalla sua occupazione di memoria, dal linguaggio usato perimplementarlo, dal tempo di esecuzione su un determinato calcolatore.In questo capitolo tratteremo di alcuni metodi che ci permettono di calcola-re le soluzioni di sistemi lineari. In primo luogo ricorderemo le definizionifondamentali di algebra lineare per poi addentrarci nell’ analisi di problemispecifici.

3.1 Richiami di Algebra Lineare

Data una matrice A ∈ Rn×n ed un vettore b ∈ Rn, un sistema di n equazionilineari in n incognite si puó rappresentare nella forma

Ax = b

29

Page 30: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

30 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

dove x ∈ Rn è il vettore delle incognite. Tale sistema ammette un’unicasoluzione se e solo se il det(A) 6= 0.Esistono diversi tipi di matrici, che si differenziano per la tipologia deglielementi che le compongono, vediamone alcune:

Definizione 3.1 Una matrice An×n si dice diagonale se aii 6= 0 per tutti 1 ≤i ≤ n e aij = 0 ∀i 6= j, 1 ≤ i, j ≤ n. In particolare, si chiama matrice identità

quella matrice diagonale con tutti gli elementi uguali a 1

Definizione 3.2 Una matrice An×n si dice triangolare inferiore (superiore) se

aij 6= 0 ∀i ≥ j (i ≤ j), 1 ≤ i, j ≤ n.

La moltiplicazione di due matrici triangolari inferiori (superiori) produceancora una matrice triangolare inferiore (superiore). Si noti inoltre che ildeterminante di una matrice triangolare è dato dal prodotto degli elementisulla diagonale principale.

Definizione 3.3 Una matrice di permutazione è una matrice identità con

alcune righe (o colonne) scambiate di posizione.

Se pre-moltiplichiamo una matrice di permutazione con una matrice qual-siasi si ottiene uno scambio delle righe, al contrario se post-moltiplichiamotale matrice si ottiene uno scambio delle colonne.

Definizione 3.4 La trasposta della matrice A, che si indica con AT , è la ma-

trice le cui righe sono le colonne di A (cioé aTij = aji).

Si noti che (AB)T = BTAT

Definizione 3.5 Una matrice A di dice simmetrica se AT = A

Definizione 3.6 Se A è una matrice quadrata e il determinante di A è diverso

da zero, allora possiamo definire l’ inversa di A, indicandola con A−1, come la

matrice tale che A−1A = AA−1 = I i cui elementi sono dati da

cij =(−1)i+j det(Aji)

det(A)

Definizione 3.7 Una matrice A si dice ortogonale se risulta A−1 = AT .

Definizione 3.8 Sia A una matrice simmetrica. A si dice definita positiva se

per ogni vettore x ∈ Rn (colonna), non nullo:

xTAx > 0

Si dice invece semi-definita positiva se

xTAx ≥ 0

Page 31: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.1. RICHIAMI DI ALGEBRA LINEARE 31

Definizione 3.9 La matrice A si dice singolare se det(A) = 0, non singolare

se det(A) 6= 0

Definizione 3.10 Si definisce sottomatrice principale di ordine k di una ma-

trice n× n, con k < n, una matrice del tipo

a11 . . . a1k

.... . .

...

ak1 . . . akk

. . . a1n

...

akn

...

an1 . . . ank

. . ....

. . . ann

Definizione 3.11 Si definisce minore principale il determinante di una sotto-

matrice principale.

Teorema 3.12 Se A è simmetrica definita positiva, allora sono simmetriche

definite positive anche tutte le sue sottomatrici principali.

DIMOSTRAZIONE: Scriviamo la matrice A

a11 a12 · · · a1k · · · a1n

a21 a22...

.... . .

...

ak1 akk

......

. . ....

an1 · · · · · · · · · · · · ann

Per ogni y ∈ Rk non nullo, dobbiamo dimostrare che

yTAky > 0

Espando il vettore y al vettore x ∈ Rn ponendo le componenti ai, con i > ktutte uguali a zero. Per ipotesi risulta che

xTAx > 0

ma, la matrice A è della forma:

A =

(Ak A12

A21 A22

)

quindi:

xTAx = (yT , 0T)

(Ak A12

A21 A22

)(y0

)

=

= (yTAk, yTA12)

(y0

)

= yTAky > 0

2

Page 32: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

32 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

3.2 Sistemi Lineari

Il modo più immediato per definire la soluzione di un sistema lineareAx = bè calcolare

x = A−1b

tuttavia il calcolo dell’inversa di una matrice è un’operazione molto costosa1.Tuttavia nel caso in cui A sia una matrice diagonale il calcolo della soluzioneè banale, infatti:

xi =biaii

i = 1, . . . , n

In questo caso il calcolo ha un costo computazionale pari a n&�-����2

; dovecon

&�-����2si intendono il numero di operazioni elementari in virgola mobile.

Listing 3.1: Risolvi Diagonale�1 ������������� [x] = risolvi_diagonale(A,b)2

3 % RISOLVI_DIAGONALE Risolve il sistema diagonale4 % [x] = risolvi_diagonale(A,b) restituisce le soluzioni5 % del sistema diagonale Ax=b.6 %7 % Il parametro A deve essere una matrice diagonale mentre8 % b un vettore la cui dimensione è uguale a quella di A9 %

10 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti11 % Thu Jun 24 15:49:43 CEST 200412

13 [n,m]= ������ (A);14 �� n==m15 x=b./ ������ (A);16 ����� � ���17 ����� �18 ��������� (’Errore: la matrice di input non e’’ quadrata’);19 �����

� �

Se A è triangolare inferiore invece la soluzione è data da

xi =

bi −i−1∑

j=1

aijxj

aiii = 1, . . . , n

1Calcolando l’inversa tramite la risoluzione di n sistemi lineari quadrati il costo è O(n3).Infatti si esegue una triangolarizzazione con Gauss (O(n3)) e la risoluzione (O(n2)) di nsistemi così ottenuti

Page 33: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.2. SISTEMI LINEARI 33

Listing 3.2: Risolvi Triangolare Inferiore�1 � ����� ����� [x] = risolvi_triangolare_inferiore(A,b)2

3 % RISOLVI_TRIANGOLARE_INFERIORE Risolve un sistema triang. inf.4 % [x] = risolvi_triangolare_inferiore(A,b) restituisce in5 % x le soluzioni del sistema triangolare inferiore Ax=b.6 %7 % A deve essere una matrice triangolare inferiore e b un8 % vettore la cui dimensione di riga e’ uguale a quella9 % di A.

10 %11 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti12 % Mon Sep 13 10:21:24 CEST 200413

14 [n,m]= �� ��� (A);15 % controllo se A e’ quadrata16 �� n==m17 x= ����� � � (n,1);18 % ciclo sul numero dell’equazione19 ����� i=1:n20 s=0;21 s=s+A(i,1:i−1)∗x(1:i−1);22 % calcolo l’i−esima incognita23 x(i)=(b(i)−s)/A(i,i);24 ����� ;25 ������� � �26 ��� ���27 ����� ��� (’La matrice di input non e’’ quadrata’);28 �����

� �

Nel caso in cui questa sia superiore la soluzione diventa:

xi =

bi −n∑

j=i+1

aijxj

aiii = 1, . . . , n

Listing 3.3: Risolvi Triangolare Superiore�1 � ����� ����� [x] = risolvi_triangolare_superiore(A,b)2

3 % RISOLVI_TRIANGOLARE_SUPERIORE Risolve un sistema triang. sup.4 % [x] = risolvi_triangolare_superiore(A,b) restituisce in5 % x le soluzioni del sistema triangolare inferiore Ax=b.6 %7 % A deve essere una matrice triangolare superriore e b un8 % vettore la cui dimensione di riga e’ uguale a quella9 % di A.

10 %11 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti12 % Fri Jun 18 10:28:45 CEST 200413

Page 34: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

34 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

14 [n,m]= ������ (A);15 % controllo se A e’ quadrata16 �� n==m17 x= ������� � (n,1);18 % determino l’n−esima soluzione19 x(n)=b(n)./A(n,n);20 ��� � k=2:n21 % itero all’indietro22 i=n−k+1;23 s=0;24 s=s+A(i,i:n)∗x(i:n);25 % calcolo l’i−esima incognita26 x(i)=(b(i)−s)/A(i,i);27 � ��� ;28 ����� � ���29 ����� �30 ��������� (’La matrice di input non e’’ quadrata’);31 �����

� �

In entrambi i casi il numero di operazioni è dato da n2 &�-����2.

Si noti che nel caso in cui la matrice sia ortogonale il calcolo dell’inversa èimmediato, ma il costo della risoluzione del sistema è comunque nell’ordinedi O(n2).

In generale, si ricorre a metodi di varia natura per determinare la solu-zione di sistemi. Tali metodi si dividono in:

Metodi diretti : con un numero finito di passi si approssimano le soluzioni.Utilizzano tutti l’idea della eliminazione di Gauss.

Metodi iterativi : costruiscono una successione di vettori {xk} che con-verge alla soluzione del sistema. Siccome tale procedimento è infini-to si impone un criterio di arresto per arrivare alle soluzioni con laprecisione voluta.

3.3 Condizionamento di un sistema lineare

Sia dato un sistema lineare Ax = b con det(A) 6= 0. Introduciamo unapiccola perturbazione sui dati, quindi:

(A+ δA)(x + δx) = b+ δb (3.1)

Calcolare l’errore relativo consiste nello stabilire una maggiorazione deitermini

Dati︷ ︸︸ ︷

||δb||||b|| ,

||δA||||A|| ,

Risultati︷ ︸︸ ︷

||δx||||x||

Page 35: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.3. CONDIZIONAMENTO DI UN SISTEMA LINEARE 35

Lemma 3.13 Sia C ∈ Rn×n e supponiamo che ||C|| < 1, allora I + C è una

matrice non singolare e vale che:

||(I + C)−1|| ≤ 1

1− ||C||

DIMOSTRAZIONE:Supponiamo per assurdo che (I+C) sia singolare. Esiste allora almeno unasoluzione x 6= 0 tale che (I + C)x = 0. Quindi:

Cx = −IxCx = (−1)x (3.2)

dove il (−1) nella (3.2) è un autovalore di C. Ma ρ(C) ≤ ||C|| e per ipotesi||C|| < 1, quindi ρ(C) < 1, ma è assurdo. Infatti risulterebbe Cx = −x eBx = λx, segue che −1 è un autovalore del sistema lineare e quindi ρ(C) èper lo meno uguale a 1 e quindi 1 < 1 è assurdo.Dunque I + C è non singolare.Abbiamo che

(I +C)−1 = I − C(I + C)−1

Allora, passando alle norme

||(I+C)−1|| = ||I−C(I+C)−1|| ≤ ||I||︸︷︷︸

=1

+||C(I+C)−1|| ≤ 1+||C||·||(I+C)−1||

Da cui

||(I + C)−1|| − ||C|| · ||(I + C)−1|| ≤ 1

(1− ||C||)(||(I + C)−1||) ≤ 1

che è la tesi 2

Tornando al problema del condizionamento, vogliamo mostrare che se A ènon singolare e ||δA|| < 1

||A−1||, allora:

||δx||||x|| <

µ(A)

1− µ(A)· ||δA||||A||

·( ||δA||||A|| +

||δb||||b||

)

dove µ(A) è il numero di condizionamento, così definito:

µ(A) = ||A|| · ||A−1||

Dalla definizione di norma matriciale ottengo un’interessante proprietà:

1 = ||I|| = ||AA−1|| ≤ ||A|| · ||A−1|| = µ(A)

Page 36: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

36 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

quindi la quantità

1− µ(A) · ||δA||||A|| = 1− ||A−1|| · ||δA|| < 1

dalla (3.1)

(A+ δA)δx +Ax+ δAx = b+ δb ma semplificando (infatti Ax = b)

(A+ δA)δx = δb− δAx (moltiplicando perA−1)

(I +A−1δA)δx = A−1(δb − δAx)

quindi, per il lemma (3.13)

||(I +A−1δA)−1|| ≤ 1

1− ||A−1|| · ||δA|| =1

1− µ(A)· ||δA||||A||

Da cuiδx = (I +A−1δA)−1 ·A−1 · (δb− δAx)

Ottengo allora

||δx|| ≤ 1

1− µ(A)· ||δA||||A||

· ||A−1|| ·(

||δb|| + ||δA|| · ||x||)

Dividendo ambo i membri per ||x|| ottengo l’errore relativo:

||δx||||x|| ≤ ||A−1||

1− µ(A)· ||δA||||A||

( ||δb||||x|| + ||δA||

)

= (moltiplico e divido per ||A||)

=µ(A)

1− µ(A)· ||δA||||A||

·( ||δb||||A|| · ||x|| +

||δA||||A||

)

(Sappiamo che ||b|| = ||Ax|| ≤ ||A|| · ||x|| , quindi passando ai reciproci1

||b|| =1

||Ax|| ≥1

||A|| ·1

||x|| quindi)

≤ µ(A)

1− µ(A)· ||δA||||A||

·( ||δb||||b|| +

||δA||||A||

)

︸ ︷︷ ︸

errori relativisui dati

3.3.1 Residuo

Vediamo ora una quantità che ci aiuta nell’analisi del condizionamento delproblema

Page 37: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 37

Definizione 3.14 Sia dato un sistema lineare del tipo Ax = b. Supponiamo

di avere un approssimazione x della soluzione x del sistema. Il residuo è quindi

la quantità2:

r = Ax− bVediamo come esprimere l’errore relativo sui risultati di un sistema linearein funzione del residuo. Come abbiamo già visto

||b|| = ||Ax|| ≤ ||A|| · ||x||

passando ai reciproci si ha

1

||b|| ≥1

||A|| ·1

||x|| ⇒||A||||b|| ≥

1

||x||ma dalla definizione (3.14) si ha che

x = A−1r +A−1b = A−1r + x

Dunque:

x− x = A−1r cioè

||x− x|| = ||A−1|| · ||r|| da cui

εx =||x− x||||x|| ≤ ||A−1|| · ||A|| · ||r||||b|| = µ(A) · ||r||||b||

︸︷︷︸

residuoscalato

3.4 Metodi Diretti

Il primo metodo diretto che comunemente viene proposto è quello di Cramer.Con questo metodo le soluzioni sono calcolate nel seguente modo:

xi =det(Ai)

det(A)

dove Ai è la matrice che si ottiene sostituendo alla colonna i-esima il vettoredei termini noti. Purtroppo il costo di questo metodo è fattoriale e quindicomputazionalmente inapplicabile. Dobbiamo quindi cercare dei metodi al-ternativi per la risoluzione del sistema.L’ idea di base è scomporre la matrice dei coefficienti A in un prodotto dimatrici: A = A1 · A2. Quindi il sistema lineare Ax = b viene trasformato in

A1 (A2x)︸ ︷︷ ︸

y

= b =⇒ A1y = b , A2x = y

2Come vedremo nel seguito del capitolo il residuo è spesso utilizzato come criteriod’arresto nei metodi iterativi

Page 38: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

38 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

In questo modo abbiamo ottenuto due sistemi lineari, la cui risoluzione puòeventualmente avvenire in modo parallelo.Vogliamo dimostrare che le matrici A1, A2 possono essere ricondotte a ma-trici triangolari, rispettivamente inferiore e superiore, che chiameremo L edU ; questo fatto giustificherebbe la ricerca di una fattorizzazione per la ma-trice iniziale A, visto che i due sistemi lineari ricavati sarebbero risolvibilimolto più efficacemente.

3.4.1 Fattorizzazione A = LU

Per convenienza computazionale si considera che la matrice L sia rappre-sentata con gli elementi della diagonale tutti uguali a 1 (rappresentazionedi Doolittle). Il sistema che dobbiamo risolvere adesso è il seguente :

{Ly = bRx = y

A questo punto potremmo chiederci se la fattorizzazione che cerchiamo esi-ste sempre: vorremmo stabilire se è possibile trovarla in tempo finito, oaddirittura potremmo chiederci se è unica o ve ne di sono multiple. Larisposta ci viene fornita dal seguente teorema:

Teorema 3.15 Sia A la matrice dei coefficienti del sistema lineare Ax = be sia det(A) 6= 0. Allora A ammette una ed una sola fattorizzazione LU sse

det(Ak) 6= 0 per ogni k = 1, . . . , n− 1.

DIMOSTRAZIONE

(⇐) Per induzione su n :

Base n = 1, la fattorizzazione è ovvia, immediatamente abbiamoinfatti L = [1] , U = [a11]

Ipotesi induttiva La tesi vale per n− 1

Passo induttivo Si spezza la matrice A in:

vT →

An−1

α

← d

dove con vT si indica l’ultima riga, mentre con d l’ultima colonna(ad eccezione per entrambi di α). Per ipotesi induttiva An−1 hauna fattorizzazione unica Ln−1Un−1. Quindi suppongo

L =

Ln−1 0

uT 1

U =

Un−1 w

0T

β

Devo provare che uT , w e β sono univocamente determinati. De-ve valere che :

Page 39: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 39

a) Ln−1w = d, ma questo è vero poichè Ln−1 ha determinantediverso da zero, e quindi le soluzioni del sistema lineare sonouniche (e cioè w).

b) uTUn−1 = vT =⇒ UTn−1u = v, con UT

n−1 che ha determinantediverso da zero e quindi, anche in questo caso, le soluzionisono univocamente determinate (u).

c) uTw + β = α che conosco in quanto ho il valore di u,w e α.

(⇒) Sappiamo che:(

Ak A12

A21 A22

)

quindi per ipotesi ∃! A = LU dunque

L =

(Lk 0

L21 L22

)

U =

(Uk U12

0 U22

)

Visto che A = LU allora è vero che det(A) = det(L) · det(U), maper costruzione det(L) = 1 quindi det(A) = det(U). Il precedenteteorema è valido anche per le ridotte di entrambe le matrici poiché ildet(Lk) = 1 ∀k. 2

Illustriamo passo per passo come funziona l’algoritmo di fattorizzazioneA = LU , che utilizzando il metodo di eliminazione di Gauss trasforma ungenerico sistema lineare in un sistema triangolare equivalente (sempre chequesto sia possibile) in un numero di passi finito.Indicheremo con A(i) la matrice dei coefficienti del sistema di equazioniall’i-esimo passo.Inizialmente abbiamo

A(1) = A

Vediamo come passare ad A(2):

A(2) = L1 ·A(1)

dove L1, matrice elementare di Gauss, è così definita

L1 = I − g1 · eT1 in cui (a11 6= 0)

g1 =

0a21a11...

an1a11

eT1 = (1, 0, . . . , 0)

infatti eT1 è il primo vettore della base canonica, mentre g1 è il vettore di

Gauss al primo passo.

Page 40: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

40 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

Quindi:

L1 =

1 0 · · · · · · 0

−a21a11

1. . .

...... 0

. . . . . ....

......

. . . 1 0−an1

a110 · · · 0 1

L1A(1) =

a(1)11 · · · · · · a

(1)1n

0 a(1)22 · · · a

(1)2n

......

...0 a

(1)n2 · · · a

(1)nn

Segue che, in generale

A(k) =

a(1)11 · · · · · · a

(1)1k · · · a

(1)1n

0 a(2)22 · · · a

(2)2k · · · a

(2)2n

.... . . . . .

...... 0 a

(k)kk · · · a

(k)kn

......

......

0 · · · 0 a(k)nk · · · a

(k)nn

Riassumendo:

A(1) = A

A(2) = L1A(1)

A(3) = L2L1A(1)

...

A(n) = Ln−1 · · ·L1A(1)

dove le matrici Li sono triangolari inferiori invertibili, 1 ≤ i ≤ n− 1. InoltreA(n) è del tipo

A(n) =

a(1)11 · · · · · · a

(1)1n

0 a(2)22 a

(2)2n

.... . . . . .

...0 · · · 0 a

(n)nn

Possiamo anche scrivere che:

L−11 · L−1

2 · · ·L−1n−1

︸ ︷︷ ︸

L

·U = A

Vediamo come è fatta la matrice L.

Teorema 3.16 Per un generico intero k, vale l’uguaglianza L−1k = (I + gke

Tk )

Page 41: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 41

DIMOSTRAZIONE Per definizione e poiché stiamo trattando matrici invertibili

I = Lk · L−1k =

= (I − gkeTk ) · (I + gke

Tk ) =

= I − gkeTk + gke

Tk − gke

Tk · gke

Tk = I

infatti il prodotto gk eTk · gk︸ ︷︷ ︸

y

eTk = 0 poiché y è uno scalare, in particolare

y = 0, dal momento che il k-esimo elemento di gk = 0. 2

Possiamo allora scrivere che :

L = (I + g1eT1 )(I + g2e

T2 ) . . . (I + gn−1e

Tn−1)

Consideriamo quindi il primo prodotto:

(I + g1eT1 )(I + g2e

T2 ) = I + g1e

T1 + g2e

T2 + g1e

T1 g2e

T2

dove l’ultimo addendo è zero (si veda dimostrazione teorema precedente).Quindi dopo n− 1 prodotti abbiamo

I +n−1∑

k=1

gkeTk = L =

1. . .

11

1︸ ︷︷ ︸

parti significative di Gauss

Si ha dunque

A(1)x = b(1)

A(2)x = b(2) con b(2) = L1b...

...

A(k)x = b(k) con b(k) = Lk−1 · · ·L1b

......

A(n)x = b(n) con b(n) = Ln−1 · · ·L1b

Analizziamo adesso il costo computazionale, ricordando che al k-esimo pas-so

A(k) =

a(1)11 · · · · · · a

(1)1k · · · a

(1)1n

0 a(2)22 · · · a

(2)2k · · · a

(2)2n

.... . . . . .

...... 0 a

(k)kk · · · a

(k)kn

......

......

0 · · · 0 a(k)nk · · · a

(k)nn

Page 42: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

42 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

Vediamo quanto costa un passo della computazione, infatti A(k+1) = Lk ·A(k),dove Lk = I − gk · eT

k , cioè:

Lk =

1 0. . .

. . .

−a(k)k+1 k

a(k)kk

. . .

.... . .

0 −a(k)nk

a(k)kk

1

Quindi

A(k+1) =

a(1)11 · · · a

(1)1k · · · · · · a

(1)1n

0. . .

.... . . a

(k)kk

... 0 a(k+1)k+1k+1 · · · · · ·

......

...

0 · · · 0...

Il calcolo di a(k+1)ij è dato da

a(k+1)ij = a

(k)ij −

a(k)ik

a(k)kk

· a(k)kj = i, j = k + 1, . . . , n

= a(k)ij − l

(k+1)ik · a(k)

kj

Segue che ad ogni passo eseguo 2(n − k)2 operazioni elementari, difatti lacomplessità è:

2n−1∑

j=1

j2 =2(n− 1)n(2n− 1)

6∼= 2

3n3

Questo valore è il medesimo anche per la complessità delle altre fattorizza-zioni che si basano sul metodo di eliminazione di Gauss, come ad esempioA = LDLT o PA = LU . Si noti che nell’ultimo caso il numero di flops daeseguire ad ogni passo è superiore poichè deve essere scambiato un numerodi elementi pari a 2(n− i).La fattorizzazione LU è sempre possibile per due categorie di matrici:

1. Matrici con diagonale dominante: cioé quelle matrici in cui ogni ele-mento della diagonale è maggiore in modulo alla somma dei moduli

Page 43: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 43

degli elementi della colonna a cui tale elemento appartiene, cioé

|aii| >n∑

j=1

|aji| con j 6= i ∀i = 1, . . . , n

2. Matrici simmetriche e definite positive, delle quali abbiamo già mo-strato le proprietà.

I seguenti teoremi dimostrano rispettivamente le affermazioni precedenti:

Teorema 3.17 Se una matrice A è diagonale dominante allora A è non sin-

golare

DIMOSTRAZIONE:Si suppone che A sia singolare per assurdo. Allora esiste un vettore x ∈ Rn

non nullo tale che Ax = 0. Sia xi la componente di tale vettore di massimomodulo, cioé:

|xi| ≥ |xj | ∀j 6= i

Avremo dunque che xi 6= 0.Consideriamo la i-esima riga:

n∑

j=1

aijxj = 0→ aiixi +∑

j 6=i

aijxj = 0

quindi:

aiixi = −∑

j 6=i

aijxj →

|aii| =

∣∣∣∣∣∣

j 6=i

aijxj

xi

∣∣∣∣∣∣

≤∑

j 6=i

|aij |∣∣∣∣

xj

xi

∣∣∣∣

︸︷︷︸

≤1

≤∑

j 6=i

|aij |

ma questo è assurdo poiché per ipotesi era a diagonale dominante 2

Teorema 3.18 Sia A una matrice definita positiva, allora A é non singolare

DIMOSTRAZIONE: Supponiamo per assurdo che esista un vettore x ∈ Rn taleche Ax = 0 (con x non nullo). Pre-moltiplicando per xT ottengo

xTAx = 0

ma questo è assurdo perché per ipotesi A è definita positiva. 2

Page 44: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

44 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

Listing 3.4: Metodo di triangolarizzazione di Gauss�1 ������������� [A] = gauss(A)2

3 % GAUSS Triangolarizza la matrice A.4 % [A] = gauss(A) restituisce la matrice A triangolarizzata5 % con l’algoritmo di Gauss.6 %7 % La matrice A deve essere quadrata.8 %9 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti

10 % Mon Jun 21 11:28:36 CEST 200411

12 [n,m]= ������ (A);13 % controllo se la matrice e’ quadrata14 �� n==m15 ����� j=1:n16 � A(j,j)==017 ����� ��� (’La matrice non e’’ fattorizzabile con Gauss’);18 � ���19 % eliminazione di Gauss20 ��� � i=j+1:n21 A(i,j:n)= A(i,j:n)−A(j,j:n)∗A(i,j)/A(j,j);22 � ���23 �����24 �����������25 ����� �26 ��������� (’La matrice di input non e’’ quadrata’);27 �����

� �

Esempi di gauss.m da pag. 150

Listing 3.5: Risolvi sistema con fattorizzazione A = LU�1 ������������� [x,A] = risolvi_ALU(A,b)2

3 % RISOLVI_ALU Risolve Ax=b tramite fattorizzazione LU.4 % [x,A] = risolvi_ALU(A,b) restituisce in x le soluzioni5 % del sistema Ax=b, risolvendolo tramite fattorizzazione6 % LU.7 %8 % Restituisce inoltre la matrice A9 % modificata, in modo che nella parte triangolare inferiore

10 % sia presente la matrice triangolare inferiore L in forma di11 % Doolittle ed in quella superiore si presente una matrice12 % triangolare superiore U.13 %14 % La matrice A fornita in input deve essere quadrata15 % e il vettore colonna b deve avere la stessa dimensione

Page 45: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 45

16 % di riga di A.17 %18 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti19 % Mon Jun 21 11:28:36 CEST 200420

21 [n,m]= �� ��� (A);22 % controllo se la matrice e’ quadrata23 �� n==m24 ����� j=1:n25 �� A(j,j)==026 ����� � � (’La matrice non e’’ fattorizzabile con Gauss’);27 �����28 % memorizzo nella parte triangolare inferiore di A29 % le parti significative di Gauss30 A(j+1:n,j)=A(j+1:n,j)./A(j,j);31 % eliminazione di Gauss32 ����� i=j+1:n33 A(i,j+1:n)= A(i,j+1:n)−A(i,j)∗A(j,j+1:n);34 b(i)=b(i)−b(j)∗A(i,j);35 �����36 �����37 x=risolvi_triangolare_superiore(A,b);38 ������� � �39 ��� ���40 ����� ��� (’La matrice di input non e’’ quadrata’);41 �����

� �

Esempi di risolvi_ALU.m da pag. 153

3.4.2 Fattorizzazione LDLT

Visto che le matrici simmetriche definite positive3 hanno caratteristiche pe-culiari, risulta opportuno studiare una fattorizzazione particolarmente van-taggiosa. Partendo dalle considerazioni fatte per la fattorizzazione LU , di-mostriamo che è possibile trovare una scomposizione più conveniente cheoltretutto risulta essere unica.

Teorema 3.19 SiaA una matrice simmetrica definita positiva, allora esiste ed

è unica la fattorizzazione A = LU , in particolare è della forma A = LDLT .

DIMOSTRAZIONE: AT = UTLT , inoltre siccomeA è simmetrica allora LU = U TLT .Si noti che la matrice U può essere scomposta in U = DU

3Per abbreviazione, a volte, si chiameranno s.d.p.

Page 46: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

46 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

con D = diag (u11, u22, . . . , unn)︸ ︷︷ ︸

uii 6=0

e U del tipo

U =

1 u12u11

u13u11

. . . u1n

u11

0 1 u23u22

. . . u2n

u22

. . . . . . . . ....

. . . . . . un−1 n

un−1 n−1

0 0 1

Allora abbiamo4

A = LU = LDU

ma sfruttando la natura simmetrica di A possiamo scrivere

A = AT = (LDU)T = UTDTLT = UTDLT

dove UT è una matrice triangolare inferiore, mentre DLT è triangolaresuperiore. Quindi,

A = LDU = UTDLT

ma per il teorema (3.15) di unicità della fattorizzazione, si ha necessaria-mente

L = UT , DU = DLT ⇒ U = LT

Sostituendo infine questa ultima uguaglianza in A = UTDLT si ottiene

A = LDLT

2

Riassumendo: la fattorizzazione LU è unica se A è non singolare; in piùse A è simmetrica definita positiva allora questa fattorizzazione può esserevista come A = LDLT .

Listing 3.6: Risolvi sistema con fattorizzazione A = LDLT�

1 ������������� [v]=risolvi_LDLT(A,b)2

3 % RISOLVI_LDLT Risolve il sistema fattorizzando A=LDL^T4 % [x] = risolvi_LDLT(A,b) restituisce le soluzioni del5 % sistema Ax=b utilizzando la fattorizzazione A=LDL^T.6 %7 % A deve essere una matrice quadrata e b un vettore con8 % numero di righe pari a quello di A.9 %

10 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti11 % Fri Jun 18 15:49:43 CEST 2004

4Nota bene : L ed U non sono quelle calcolate in precedenza, bensì indicano la genericafattorizzazione del tipo A = LU

Page 47: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 47

12

13 [n,m]= �� ��� (A);14 % controllo che A sia quadrata15 �� (n==m)16 % definisco la diagonale di D17 d= ����� � � (n,1);18 % v_j contiene il prodotto della j−esima riga di L19 % per la diagonale20 v= ����� � � (n,1);21 ����� j=1:n % coefficiente della colonna22 % somma parziale di l_jk v_k^j23 som=0;24 ����� k=1:j−125 v(k)=d(k).∗A(j,k); % si definisce il vettore v^j26 som=som+A(j,k).∗v(k);27 �����28 % calcolo gli elementi della matrice diagonale29 d(j)=A(j,j)−som;30 �� d(j)==031 ����� � � (’Matrice non fattorizzabile LDL^T’)32 ����� �33 ����� i=j+1:n % i = coefficiente della riga34 som2=0; % seconda somma parziale35 ��� � k=1:j−136 som2=som2+A(i,k).∗v(k);37 � ���38 % elemento l_ij della triangolare inferiore39 A(i,j)=(A(i,j)−som2)./d(j);40 �����41 �����42 % preparo la matrice in forma di Doolittle43 A(j,j)=1;44 �����45 v=risolvi_triangolare_inferiore(A,b);46 v=v./d;47 v=risolvi_triangolare_superiore(A’,v);48 ������� � �49 ��� ���50 ����� ��� (’La matrice A non e’’ quadrata’);51 �����

� �

Esempi di risolvi_LDLT.m da pag. 157

Listing 3.7: Fattorizzazione A = LDLT�

1 � ����� ����� [v]=risolvi_LDLT(A,b)2

3 % RISOLVI_LDLT Risolve il sistema fattorizzando A=LDL^T4 % [x] = risolvi_LDLT(A,b) restituisce le soluzioni del

Page 48: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

48 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

5 % sistema Ax=b utilizzando la fattorizzazione A=LDL^T.6 %7 % A deve essere una matrice quadrata e b un vettore con8 % numero di righe pari a quello di A.9 %

10 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti11 % Fri Jun 18 15:49:43 CEST 200412

13 [n,m]= ������ (A);14 % controllo che A sia quadrata15 �� (n==m)16 % definisco la diagonale di D17 d= ������� � (n,1);18 % v_j contiene il prodotto della j−esima riga di L19 % per la diagonale20 v= ������� � (n,1);21 ��� � j=1:n % coefficiente della colonna22 % somma parziale di l_jk v_k^j23 som=0;24 ��� � k=1:j−125 v(k)=d(k).∗A(j,k); % si definisce il vettore v^j26 som=som+A(j,k).∗v(k);27 � ���28 % calcolo gli elementi della matrice diagonale29 d(j)=A(j,j)−som;30 � d(j)==031 ����� ��� (’Matrice non fattorizzabile LDL^T’)32 ��� � �33 ��� � i=j+1:n % i = coefficiente della riga34 som2=0; % seconda somma parziale35 ��� � k=1:j−136 som2=som2+A(i,k).∗v(k);37 �����38 % elemento l_ij della triangolare inferiore39 A(i,j)=(A(i,j)−som2)./d(j);40 � ���41 � ���42 % preparo la matrice in forma di Doolittle43 A(j,j)=1;44 � ���45 v=risolvi_triangolare_inferiore(A,b);46 v=v./d;47 v=risolvi_triangolare_superiore(A’,v);48 ����� � ���49 ����� �50 ��������� (’La matrice A non e’’ quadrata’);51 �����

� �

Page 49: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 49

3.4.3 Fattorizzazione PA = LU

Il metodo di fattorizzazione A = LU che abbiamo visto in precedenza, sep-pure decisamente valido, ha un preciso limite al quale non può ovviare: siarresta non appena trova un elemento a

(k)kk uguale a zero, cioè quando la

matrice ha un minore principale nullo. Ci proponiamo di esaminare in det-taglio un metodo che possa essere applicato con successo ad una matricegenerica: la tecnica del pivoting parziale. Sia A una matrice non singolare,vediamo passo per passo come funziona l’algoritmo.Alla prima iterazione si ha

A(1) = A

supponiamo che a(1)11 = 0. Allora ∃j : |a(1)

j1 | ≥ |a(1)k1 | k = 1, . . . , n. Si noti

che la scelta dell’elemento pivot di massimo modulo è utile per la stabilitàdell’algoritmo e inoltre esiste almeno un |a(1)

j1 |, altrimenti det(A) sarebbeuguale a zero.Scambiamo la prima riga con la j-esima e continuiamo la fattorizzazione

A(2) = L1P1A(1)

dove P1 è una matrice di permutazione, mentre L1 è la matrice di Gauss alprimo passo, cioè

A(2) =

a(1)11 · · · · · · a

(1)1n

0 a(2)22 · · · a

(2)2n

......

. . ....

0 a(2)n2 · · · a

(2)nn

Anche in questa circostanza potrebbe essere a(2)22 = 0, ma in tal caso possi-

amo riapplicare il metodo precedente, poiché ∃j = 2, . . . , n : |a(2)j2 | ≥ |a

(2)k2 |

con k = 2, . . . , n. Quindi

A(3) = L2P2A(2) = L2P2 L1P1A

(1)

︸ ︷︷ ︸

A(2)

= L2P2L1P1A

cioè

A(3) =

a(1)11 · · · · · · · · · a

(1)1n

0 a(2)22 · · · · · · a

(2)2n

0 0 a(3)33 · · · a

(3)3n

......

.... . .

...0 0 a

(3)n3 · · · a

(3)nn

In generale avremo che

U = A(n) = Ln−1Pn−1Ln−2Pn−2 . . . L1P1A

Page 50: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

50 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

Scriviamo adesso la matrice U in maniera più conveniente, moltiplicandomatrici identità:

U = Ln−1Pn−1Ln−2(Pn−1Pn−1︸ ︷︷ ︸

I

)Pn−2Ln−3(

I︷ ︸︸ ︷

Pn−2 Pn−1Pn−1︸ ︷︷ ︸

I

Pn−2)Pn−3 . . .

. . . L1(P2P3 . . . Pn−1Pn−1 . . . P3P2)P1A

Manteniamo l’equivalenza riscrivendo l’ultima uguaglianza sotto la nuovaforma:

U = Ln−1︸ ︷︷ ︸

Ln−1

(Pn−1Ln−2Pn−1︸ ︷︷ ︸

Ln−2

)(Pn−1Pn−2Ln−3Pn−2Pn−1︸ ︷︷ ︸

Ln−3

) . . .

. . . (Pn−1Pn−2Pn−3 . . . P2L1P2 . . . Pn−1︸ ︷︷ ︸

L1

) Pn−1 . . . P1︸ ︷︷ ︸

P

A

Quindi possiamo scrivere U = Ln−1Ln−2 . . . L1PA.Dobbiamo mostrare che le matrici Li sono ancora triangolari inferiori in for-

ma di Doolittle, infatti sono calcolate pre-moltiplicando e post-moltiplicandole Li per le stesse matrici di permutazione:

Li = Pn−1 . . . Pi+1LiPi+1 . . . Pn−1 =

(si ricordi che Li = I − gieTi , e dunque sostituendo scriviamo)

= Pn−1 . . . Pi+1(I − gieTi )Pi+1 . . . Pn−1 =

= I − (Pn−1 . . . Pi+1gi︸ ︷︷ ︸

gi

eTi Pi+1 . . . Pn−1︸ ︷︷ ︸

eTi

)

Segue che in realtà facciamo il prodotto dell’i-esimo vettore di Gauss per-mutato per il vettore canonico permutato. Infine

Li = I − gieTi

Da cuiU = Ln−1Ln−2 . . . L1

︸ ︷︷ ︸

L−1

PA

dove

L−1 = I −n−1∑

i=1

gieTi

ma, per il teorema (3.16) possiamo dedurre che

L = I +n−1∑

i=1

gieTi

Page 51: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 51

Quindi PA = LU .

Segue che, pre-moltiplicando una matrice di permutazione ad una nonsingolare, ottengo ancora una fattorizzazione LU .

4 Esempio 3.20 Consideriamo il sistema

[A|b] =

[10−4 1 1

1 1 2

]

x =

[10000999999989999

]

dove x sono le soluzioni esatte

Risolviamo con un’approssimazione di macchina con β = 10 e t = 3.Abbiamo che:

[

A(1)|b(1)]

=

[0, 1β−3 0, 1β1 0, 1β1

0, 1β1 0, 1β1 0, 2β1

]

Otteniamo dunque

m2 = fl

(0, 1β1

0, 1β−3

)

= 0, 1β5

dove, m2 é il moltiplicatore di Gauss al secondo passo5 quindi

a(2)22 = fl(0, 1β1 − fl(0, 1β5 ∗ 0, 1β1)) = fl(0, 1β1 − 0, 1β5) =

= fl(−0, 9999β4) = −0, 1β5

b(2)2 = fl(0, 2β1 − fl(0, 1β5 ∗ 0, 1β1)) = fl(0, 2β1 − 0, 1β5) =

= fl(−0, 9998β4) = −0, 1β5

Da cui:[

A(2)∣∣∣ b(2)

]

=

[0, 1β−3 0, 1β1 0, 1β1

0 −0, 1β5 −0, 1β5

]

Le soluzioni sono dunque

x2 = fl

(0, 1β5

0, 1β5

)

= 0, 1β1

x1 = fl(fl(0, 1β1 − fl(0, 1β1x2))/0, 1β−3) =

= fl(fl(0, 1β1 − 0, 1β1)/0, 1β−3) = 0

Si noti come in questa circostanza l’errore relativo sia molto alto,

εx ∼= 1

5In generale, all’i-esimo passo risulta: mi =ai+1 i

aii

Page 52: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

52 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

Vediamo adesso il calcolo dello stesso sistema lineare con la tecnica delpivoting parziale:

P1

[

A(1)∣∣∣ b(1)

]

=

[0, 1β1 0, 1β1 0, 2β1

0, 1β−3 0, 1β1 0, 1β1

]

Calcoliamo il nuovo moltiplicatore

m(1)2 = fl

(0, 1β−3

0, 1β1

)

= 0, 1β−3

Quindi

a(2)22 = fl(0, 1β1 − fl(0, 1β−3 ∗ 0, 1β1)) = fl(0, 1β1 − 0, 1β−3) =

= fl(0, 9999β0) = 0, 1β1

b(2)2 = fl(0, 1β1 − fl(0, 1β−3 ∗ 0, 2β1)) = fl(0, 1β1 − 0, 2β−3) =

= fl(0, 9998β0) = 0, 1β1

Il sistema diventa:

[

A(2)∣∣∣ b(2)

]

=

[0, 1β1 0, 1β1 0, 1β1

0 0, 1β1 0, 1β1

]

e quindi le soluzioni sono

x2 = 1 = 0, 1β1

x1 = fl(fl(0, 2β1 − fl(0, 1β1x2))/0, 1β1) =

= fl(fl(0, 2β1 − 0, 1β1)/0, 1β1) = 0, 1β1

Listing 3.8: Risolvi sistema con fattorizzazione PA = LU�1 ������������� [x,p,A] = risolvi_PALU(A,b)2

3 % RISOLVI_PALU Fattorizzazione PA=LU.4 % [x,p,A] = risolvi_PALU(A,b) restituisce le soluzioni5 % del sistema Ax=b utilizzando la fattorizzazione PA=LU.6 % Restituisce inoltre la matrice A7 % modificata, in modo che nella parte triangolare inferiore8 % sia presente la matrice triangolare inferiore L in forma di9 % Doolittle ed in quella superiore si presente una matrice

10 % triangolare superiore U.11 % Infine nel vettore p si memorizzano gli scambi delle12 % righe effettuati.13 %14 % La matrice A fornita in input deve essere quadrata15 % e il vettore colonna b deve avere la stessa dimensione16 % di riga di A.

Page 53: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 53

17 %18 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti19 % Wen Jun 30 09:55:10 CEST 200420

21 [n,m]= �� ��� (A);22 p=1:n;23 % controllo se la matrice e’ quadrata24 �� n==m25 ����� k=1:n−126 % metto in m il valore dell’elemento massimo e27 % in i il suo indice, partendo dall’elemento k28 % della colonna fino all’elemento n della stessa29 % in i ho l’indice della riga da scambiare30

31 [m,i]= � ��� ( ��� (A(k:n,k)));

32 �� (m==0)33 ��������� (’matrice non fattorizzabile!’);34 �����35 % normalizzo la posizione dell’elemento massimo36 i=k−1+i;37 % eseguo lo scambio delle righe e38 % dei termini dei vettori39 w=A(k,:);40 A(k,:)=A(i,:);41 A(i,:)=w;42 u=b(k);43 b(k)=b(i);44 b(i)=u;45 u=p(k);46 p(k)=p(i);47 p(i)=u;48 % Aggiorno la matrice con gli elementi corretti:49 % negli elementi sotto la diagonale memorizzo la50 % matrice parziale L, poi faccio un passo51 % dell’eliminazione di Gauss52 A(k+1:n,k)=A(k+1:n,k)./A(k,k);53 ����� j=k+1:n54 A(j,k+1:n)=A(j,k+1:n)−A(j,k).∗A(k,k+1:n);55 b(j)=b(j)−A(j,k).∗b(k);56 �����57 �����58 x=risolvi_triangolare_superiore(A,b);59 ������� � �60 ��� ���61 ����� ��� (’La matrice di input non e’’ quadrata’);62 �����

� �

Esempi di risolvi_PALU.m da pag. 156

Page 54: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

54 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

3.4.4 Fattorizzazione A = QR

Introduciamo adesso un nuovo tipo di fattorizzazione che risulta essere piùstabile, ma che esegue un numero di operazioni superiore rispetto all’LU :cerchiamo una scomposizione della matrice di partenza nel prodotto frauna matrice ortogonale Q ed una triangolare superiore R. Questo meto-do di fattorizzazione trova riscontro in molte applicazioni quali ad esempiola ricerca di autovalori o nell’algoritmo dei minimi quadrati. La decompo-sizione A = QR può essere ottenuta con differenti tecniche: noi esami-neremo le proposte di Householder e Givens. Prima di entrare nei dettagliimplementativi introduciamo alcune definizioni.

Matrici elementari

Definizione 3.21 Una matrice H si dice elementare se è definibile attraverso

uno scalare α e due vettori u, v ∈ Rn, in particolare

H(α, u, v) = I − αuvT

dove uvT è una matrice ∈ Rn×n di rango 1

Enunciamo adesso alcune proprietà algebriche interessanti

• Date H(α, u, v) e H(β, u, v), il loro prodotto è ancora una matriceelementare

H(α, u, v) ·H(β, u, v) = H(γ, u, v)

dove γ = α+ β − αβ(vTu)Infatti

H(α, u, v) ·H(β, u, v) = (I − αuvT )(I − βuvT ) =

= I − (α+ β)uvt + αβu (vTu)︸ ︷︷ ︸

scalare

vT =

= I − (α+ β − αβvTu)︸ ︷︷ ︸

γ

uvT = H(γ, u, v)

• Se γ dovesse risultare 0, per un opportuno β ottengo l’identità, cioéH(β, u, v) è l’inversa di H(α, u, v). Mostriamo come ricavare l’oppor-tuno β:

α+ β − αβ(vTu) = 0

β(1− αvTu) = −αβ =

α

αvTu− 1(3.3)

dove α 6= 1vT u

, visto che se non lo fosse H(α, u, v) sarebbe singolare.

Un caso particolare di matrici elementari sono le matrici di Gauss, cheabbiamo già visto essere della forma I − gie

Ti = H(1, gi, ei)

Page 55: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 55

Matrici di Householder

Le matrici di Householder sono matrici elementari del tipo

H(2, u, u) = I − 2uuT

dove u ∈ Rn è un vettore unitario6. Data la loro struttura hanno le caratte-ristiche di essere matrici ortogonali e simmetriche, infatti

(I − 2uuT )(I − 2uuT ) = I − 4uuT + 4u (uTu)︸ ︷︷ ︸

(||u||2)2=1

uT = I

Sono dette anche matrici di riflessione in quanto se applicate ad un vettorex ∈ Rn restituiscono un vettore w ∈ Rn tale che le sue componenti sonoin modulo le stesse di x, ma quella ortogonale al vettore uT è cambiata disegno: rappresentano cioè la simmetria rispetto all’iperpiano che passa perl’origine ed è ortogonale al vettore u (vedi figura 3.1).Vogliamo adesso dimostrare che dato un vettore x ∈ Rn è possibile deter-

T

0

w

u

x

u

Figura 3.1: Rotazione vettori con matrici di Householder

minare un vettore unitario u tale che

H(u)x = w, w ∈ span{e1} (3.4)

dove con span{v1, . . . , vn} si indica l’insieme di tutte le possibili combina-zioni lineari dei vi. Nel nostro caso vediamo che il vettore risultante dalprodotto è un vettore che ha tutte le componenti nulle ad eccezione dellaprima.Il vettore unitario u può essere riscritto come il rapporto fra un generico

6Con unitario si intende che ||u||2 = 1

Page 56: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

56 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

vettore v ∈ Rn (v 6= 0) e la sua norma ||v||2. Quindi possiamo riscrivere lamatrice di Householder come

I − 2uuT = I − 2v

||v||2· vT

||v||2= I − 2

vvT

vT v

Mostriamo, dalla (3.4), come fare per calcolare w:

w =

(

I − 2vvT

vT v

)

x = x− 2

k︷ ︸︸ ︷(vTx

vT v

)

v

Visto che vogliamo v ∈ span{e1, x}, lo esprimiamo come v = x+ αe1.Calcoliamoci quindi il valore dello scalare α:

vTx = xTx+ αeT1 x = xTx+ αx1

vT v = xTx+ α2 eT1 e1︸︷︷︸

=1

+2αxT e1 = xTx+ α2 + 2αx1

dove con x1 si considera la prima componente del vettore x.Sostituendo questi valori nell’espressione di k definita in precedenza ottenia-mo che

k =

(vTx

vT v

)

=xTx+ αx1

xTx+ α2 + 2αx1(3.5)

Quindi w = x − 2kv; ma la natura di w è tale che abbia tutte le compo-nenti nulle eccetto la prima, di conseguenza consideriamo ora la genericacomponente i-esima:

wi = xi − 2kvi i = 2, . . . , n

ma essendo vi = xi + (αe1)i, se andiamo a sostituire otteniamo che

wi = xi − 2k(xi + αe1) = xi − 2kxi + (−2kαe1)i

= xi − 2kxi = xi(1− 2k)

poichè il fattore (−2kαe1)i è zero visto che stiamo considerando le compo-nenti dalla seconda alla n-esima.Affinchè queste componenti si annullino, vediamo che dev’essere k = 1

2 .Quindi, utilizzando la formula (3.5) e il valore di k appena trovato, proce-diamo con il calcolo di α:

1

2=

xTx+ αx1

xTx+ α2 + 2αx1=

= 2xTx+ 2αx1 = xTx+ α2 + 2αx1 =

α2 = xTx ⇒ α = ±||x||2

Page 57: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 57

Notiamo che il vettore v è definito a meno di una costante moltiplicativa c,infatti

H(u) = I − 2vvT

vT v= I − 2

cv · cvT

cvT · cvIn questo modo possiamo costruire v tale che la sua prima componente siauno, quindi per ottenere questo poniamo c = 1

v1= 1

x1+α. La componente

i-esima di v sarà quindi data da

vi =xi + (αe1)ix1 + α

Metodo di Householder

Vediamo ora in dettaglio le operazioni che portano alla trasformazione diuna matrice A ∈ Rn×n in una matrice triangolare superiore.Alla prima iterazioneA(0) = A, mentre il passo successivo è dato daA(1) = Q1A

(0),cioè

A(1) =

−α1 a(1)12 · · · a

(1)1n

0 a(1)22 · · · ...

......

...0 a

(1)n2 · · · a

(1)nn

dove Q1 = In− 2v1vT

1

vT1 v1

con v1 indichiamo il vettore di Householder associato

alla prima colonna della matrice A(0).Alla successiva iterazione otterremoA(2) = Q2A

(1), che definendo la matriceQ2 come matrice ortogonale a blocchi, risulta

Q2 =

1 0 · · · 0

0... Q2(n−1)×(n−1)

0

dove Q2 = In−1 − 2v2vT

2

vT2 v2

, con v2 vettore di Householder associato alla

seconda colonna della matrice A(1). Così

A(2) =

−α1 a(1)12 · · · · · · a

(1)1n

0 −α2 a(2)23 · · · a

(2)2n

... 0...

......

......

...0 0 a

(2)n3 · · · a

(2)nn

Page 58: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

58 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

In generale avremo che

A(i−1) =

[

A(i−1)11 A

(i−1)12

0A A(i−1)22

]

Qi =

[

Ii−1 0

0 Qi

]

dove le dimensioni delle matrici sopra sono espresse nella tabella 3.1.

Nome Dimensione TipoA11 (i− 1)× (i− 1) Triangolare superioreA12 (i− 1)× (i− 1) QuadrataA22 (n− i+ 1)× (n− i+ 1) Quadrata0A (n− i+ 1)× (i− 1) RettangolareIi−1 (i− 1)× (i− 1) DiagonaleQi (n− i+ 1)× (n− i+ 1) Quadrata

Tabella 3.1: Tabella dimensioni matrici

Si noti che

Qi = In−i+1 − 2viv

Ti

vTi vi

vi ∈ Rn−i+1

Al successivo passo della computazione infine abbiamo:

A(i) =

A(i−1)11 A

(i−1)12

0

−αi a(i)i i+1 · · · a

(i)in

0 a(i)i+1 i+1 · · · ...

......

...0 a

(i)n i+1 · · · a

(i)nn

Il costo computazionale di questo metodo è proporzionale a O(n3) poichè sieseguono n−1 flops per preparare un vettore di Householder, ma comunquen operazioni mat-vec per trovare la fattorizzazione voluta.

Listing 3.9: Risolvi sistema con fattorizzazione di Householder�1 ������������� [x]=risolvi_householder(A,b)2

3 % RISOLVI_HOUSEHOLDER Risolve il sistema con il metodo di4 % householder.5 % [x] = risolvi_householder(A,b) risolve il sistema lineare6 % Ax=b tramite la fattorizzazione di Householder.7 %8 % A non deve essere necessariamente una matrice quadrata9 % mentre b deve essere un vettore con

10 % numero di righe pari a quello di A.11 %

Page 59: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 59

12 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti13 % Fri Jul 2 15:49:58 CEST 200414

15 [n,m]= �� ��� (A);16 % si controlla la reale possibilita della soluzione del sistema17 �� ��� � ��� � (b)==n18 c= � � (m,n);19 [A,b]=fatt_householder(A,b);20 % la risoluzione finale usa solo la parte quadrata per poter21 % chiamare la funzione risolvi_triangolare_superiore che22 % accetta solo matrici quadrate23 x=risolvi_triangolare_superiore(A(1:c,1:c),b);24 ��� ���25 ����� ��� (’Il sistema lineare non e’’ risolvibile’);26 �����27 ������� ���

� �

Listing 3.10: Fattorizzazione di Householder�1 � ����� ����� [A,b]=fatt_householder(A,b)2

3 % FATT_HOUSEHOLDER fattorizzazione di householder4 % Restituisce la matrice A e il vettore5 % b modificati6 %7 % La matrice A può anche non essere quadrata8 %9 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti

10 % Mon Jun 28 13:45:52 CEST 200411

12 [n, m]= ������ (A);13 ��� � i=1:( � � (n,m)−1)14 % calcolo il vettore di householder15 v=house(A(i:n,i))’;16 den = 2./((v’)∗(v));17 % si procede moltiplicando il vettore per tutta la18 % sotto−matrice19 A(i:n,i:m) = A(i:n,i:m) − (v ∗ (v’ .∗ den ∗ A(i:n,i:m)));20 % aggiornamento del vettore b21 b(i:n) = b(i:n) − v ∗ (v’ .∗ den ∗ b(i:n));22 �����23 ������� ���

� �

Listing 3.11: Creazione vettore di Householder�1 � ����� ����� v=house(x)2

3 % HOUSE Crea il vettore di Householder.4 % [v]=house(x) restituisce il vettore riga di5 % Householder relativo al vettore x.6 %7 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti

Page 60: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

60 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

8 % Fri Jun 25 11:46:11 CEST 20049

10 n= ��� � ����� (x);11 alpha= ������ (x(1)).∗ ���� � (x);12 % v=zeros(n,1);13 % controllo se il vettore e’ nullo14 �� (alpha~=0)15 % alpha ha lo stesso segno di x(1)16

� � � � =x(1)+alpha;17 v(1)=1;18 v(2:n)=(x(2:n))./

� � � � ;19 ����� �20 v= ������� � (1,n);21 �����22 �����������

� �

Esempi di risolvi_householder da pag. 159

Metodo di Givens

Un metodo analogo al precedente, ma più indicato per la fattorizzazione dimatrici sparse è il metodo di Givens. In questo caso si utilizzano matrici di

rotazione bidimensionali , nello specifico:(

cosϑ sinϑ− sinϑ cosϑ

)

Questa matrice è chiamata appunto matrice di rotazione di Givens e, comevediamo, è ortogonale non simmetrica. Viene utilizzata nell’algoritmo perannullare l’ultimo elemento di un vettore x ∈ R2. Cioè ad esempio:

(cosϑ sinϑ− sinϑ cosϑ

)(x1

x2

)

⇒(?0

)

Per ottenere che x2 = 0 deve succedere che − sinϑx1 + cosϑx2 = 0 e diconseguenza deduciamo che:

• se x2 = 0 allora sinϑ = 0 e quindi cosϑ = 1

• se x2 6= 0 allora cosϑx2 = sinϑx1 cioè

cosϑ

sinϑ=x1

x2ma

cosϑ

sinϑ= cot ϑ

Sia b = x1x2

e che |x1| < |x2|, segue che

sinϑ =1√

1 + b2quindi cosϑ = sinϑ · b

Page 61: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 61

0x x

x

y

y

yx

1

1

1’

’y1

Figura 3.2: Rotazione assi con matrici di Givens

Nelle considerazioni precedenti abbiamo supposto che |x1| < |x2|, ma senon fossimo in queste ipotesi? Vediamo quindi se |x1| > |x2|:

sinϑ

cosϑ=x2

x1ma

sinϑ

cosϑ= tanϑ

Sia ora b = x2x1

, allora risulta

cosϑ =1√

1 + b2quindi sinϑ = cosϑ · b

Definiamo infine la generica matrice ortogonale di Givens per la fattorizza-zione A = QR:

Qij =

1. . .

1i → cosϑ sinϑ

1. . .

1j → − sinϑ cosϑ

1

↑ ↑ . . .i j 1

è infatti una matrice identità con quattro elementi modificati nel modo illu-strato.

Page 62: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

62 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

In particolare al generico passo i si sfrutterà la matrice di rotazione Qi−1 i lacui struttura è:

Qi−1 i =

1. . .

1i− 1 → cosϑ sinϑi → − sinϑ cosϑ

1. . .

1

quindi volendo annullare l’elemento aik della matrice A si pre-moltiplicatale matrice per la matrice di rotazione: Qi−1 i · A.In questo modo otteniamo la matrice precedente con le (i − 1)-esima e i-esima righe modificate:

ai−1,j = cosϑ · ai−1,j + sinϑ · ai,j ∀j = 1, . . . , n

ai,j = − sinϑ · ai−1,j + cosϑ · ai,j ∀j = 1, . . . , n

Dobbiamo quindi scegliere i valori di sinϑ e cosϑ affinché aik = 0, quindi innotazione vettoriale il sistema precedente diventa

(ai−1,j

ai,j

)

=

(cosϑ sinϑ− sinϑ cosϑ

)(ai−1,j

ai,j

)

L’ obiettivo dell’algoritmo è quindi di trasformare la matrice iniziale in unatriangolare superiore annullando un singolo elemento ad ogni iterazione. Ilprimo elemento che viene azzerato è an,1, al secondo passo invece si ope-ra su an−1,1 e via di seguito per tutti gli elementi della prima colonna adeccezione del primo di questa. Di conseguenza si opera sulla seconda co-lonna, sempre dall’n-esimo elemento fino al terzo. Notiamo che A(0) = A,

A(1) = Qn−1nA(0), . . . , A

n(n−1)2

= R. Infatti i passi dell’algoritmo sonoesattamente il numero di elementi da annullare e cioè appunto il numerodi elementi della matrice triangolare inferiore (eccetto la diagonale): n(n−1)

2 .In definitiva il costo computazionale è proporzionale a O(n3), infatti si ese-guono circa 2n3 flops.

Listing 3.12: Risolvi sistema con fattorizzazione di Givens�1 ������������� [x] = risolvi_Givens(A,b)2

3 % RISOLVI_GIVENS Risolve il sistema con il metodo di Givens4 % [x] = risolvi_Givens(A,b) risolve il sistema lineare5 % Ax=b tramite la fattorizzazione di Givens.

Page 63: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.4. METODI DIRETTI 63

6 %7 % A deve essere una matrice quadrata e b un vettore con8 % numero di righe pari a quello di A.9 %

10 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti11 % Fri Jun 18 15:49:58 CEST 200412

13 [A,b]=fatt_Givens(A,b);14 x=risolvi_triangolare_superiore(A,b);15 ������� ���

� �

Listing 3.13: Fattorizzazione di Givens�1 � ����� ����� [A,b] = fatt_Givens(A,b)2

3 % FATT_GIVENS fattorizzazione QR della matrice A4 % con rotazioni di Givens5 % [A,b] = fatt_Givens(A,b) restituuisce6 % la matrice e il vettore originari modificati7 %8 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti9 % Wen Jun 23 19:45:17 CEST 2004

10

11

12 [n,n] = ������ (A);13 ��� � j=1:n14 ����� i=n:−1:j+115 % azzera A(i,j) e modifica opportunamente anche b16 �� A(i,j)~=017 [c,s]=givens(A(i−1,j),A(i,j));18 [A(i−1:i,j:n),b(i−1:i)]=ruota_riga(A(i−1:i,j:n),...19 b(i−1:i),c,s);20 �����21 �����22 �����

� �

Listing 3.14: Calcolo della matrice di rotazione di Givens�1 � ����� ����� [c,s]=givens(x1,x2)2

3 % GIVENS Calcola la matrice di rotazione di Givens4 % [c,s]=givens(x1,x2) restiuisce i valori di coseno5 % e seno della matrice di Givens relativa a x1, x26 %7 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti8 % Fri Jun 25 14:13:10 CEST 20049

10 �� x2 == 011 c=1; s=0;12 ��� ���13 �� �

�� (x2)> �

�� (x1)

14 r=x1./x2; s=1./ ������� (1+r.^2); c=s.∗r;

Page 64: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

64 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

15 ����� �16 r=x2./x1; c=1./ ������� (1+r.^2); s=c.∗r;17 �����18 �����19

20 ������������ �

Listing 3.15: Scambio degli elementi secondo la matrice di Givens�1 ������������� [A,b]=ruota_riga(A,b,c,s)2

3 % RUOTA_RIGA Rotazione matrice con Givens4 % [A,b]=ruota_riga(A,b,c,s) restituisce la matrice5 % A e il vettore b ruotati tramite la6 % premoltiplicazione per una7 % matrice di Givens con parametri c e s.8 %9 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti

10 % Fri Jun 23 14:56:16 CEST 200411

12 [n,q]= ������ (A);13 ����� j=1:q14 r1=A(1,j); r2=A(2,j);15 A(1,j)=c∗r1+s∗r2;16 A(2,j)=−s∗r1+c∗r2;17 �����18 r1=b(1);19 r2=b(2);20 b(1)=c∗r1+s∗r2;21 b(2)=−s∗r1+c∗r2;22 �����������

� �

Esempi di risolvi_givens.m da pag. 162

3.5 Metodi iterativi

Abbiamo finora esaminato metodi diretti per la risoluzione di sistemi line-ari, cioè metodi che a meno di un’approssimazione di macchina, calcolanoin un numero finito di passi le soluzioni esatte del sistema. Introduciamoora invece i metodi iterativi, che generano a partire da una stima inizialeassegnata una successione {xk} di approssimazioni tale che

limk→∞

xk = x

con x soluzioni del sistema.In tali metodi non si modifica la matrice dei coefficienti iniziale e dato

Page 65: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.5. METODI ITERATIVI 65

xk la generazione di xk+1 richiede il calcolo di poche operazioni del tipo(mat-vec)

A · v, v ∈ Rn

il cui costo computazionale è nell’ordine di O(n2).I campi d’applicazione nei quali questi metodi trovano maggiore utilizzosono quei sistemi lineari sparsi7 di grandi dimensioni, poiché:

• I fattori derivanti dalla scomposizione di una matrice sparsa difficil-mente sono sparsi.

• Il costo computazionale per la fattorizzazione è nell’ordine di O(n3).

3.5.1 Metodo di Jacobi

Dato un sistema lineareAx = b

in questo caso consideriamo A del tipo

A = D − L− U =

� −UD

−L �

quindi risolviamo

(D − L− U)x = b ⇔ Dx = (L+ U)x+ b (3.6)

Nei metodi iterativi quest’ultima equazione diventa

Dx(k+1) = (L+ U)x(k) + b k = 0, 1, . . .

dove x(0) è l’approssimazione iniziale assegnata.

5 Osservazione 3.23

• Possiamo scrivere l’equazione (3.6) come

x(k+1) = D−1(L+ U)x(k) +D−1b (3.7)

e quindi come condizione necessaria abbiamo aii 6= 0 per ogni i

• Se {xk} è convergente allora xk converge a x

• Il calcolo di x(k+1), conoscendox(k), richiede un’operazione di tipo mat-vec

7

Definizione 3.22 Una matrice An×n si dice sparsa se il numero di elementi di A non nulli è

proporzionale ad n

Page 66: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

66 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

Convergenza del metodo

Al passo k-esimo l’errore a questa iterazione è

e(k) = x− x(k)

risulta chiaro quindi che

limk→∞

x(k) = x⇔ limk→∞

e(k) = 0

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

D (x− x(k+1))︸ ︷︷ ︸

e(k+1)

= (L+ U) (x− x(k))︸ ︷︷ ︸

e(k)

+(b− b)

e pertantoe(k+1) = D−1(L+ U)

︸ ︷︷ ︸

Bj

e(k) ⇒ e(k) = (Bj)ke(0)

dove (Bj)k è la matrice di Jacobi alla k-esima iterazione.

La dimostrazione dell’implicazione precedente si fa per induzione su k. Per-ciò fissato all’inizio il valore di e(0) otteniamo che

limk→∞

e(k) = 0⇔ (Bj)k → 0n×n

cioè l’errore sulle soluzioni via via approssimate tende a zero, per k →∞, sela matrice di Jacobi al passo k-esimo converge alla matrice quadrata nulladi dimensione n

Definizione 3.24 Una matrice si dice convergente se e solo se il suo raggio

spettrale8 è minore di uno

Consideriamo ora Bj = V −1ΛV , cioè la sua scomposizione in forma cano-nica di Jordan , con Λ che è così strutturata:

Λ =

λ1

. . .λn

mentre con V si indica la matrice le cui colonne sono gli autovettori corri-spondenti agli autovalori di Λ.Quindi Bk

j = V −1ΛkV converge a zero se e soltanto se Λk converge a zero,poiché è l’unica matrice che dipende da k. Si noti però che il calcolo delraggio spettrale di una matrice ha un costo estremamente superiore alla ri-soluzione del sistema lineare con un metodo diretto; quindi si cercheranno

8Il raggio spettrale di una matrice A si indica con ρ(A) = maxλ∈P(A) |λ|. Con P(A) siindica lo spettro di A, così definito: {λ ∈ C : λ è autovalore di A}

Page 67: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.5. METODI ITERATIVI 67

maggiorazioni facilmente calcolabili e che siano minori di uno.Una di queste possibili maggiorazioni ci viene fornita considerando la defi-nizione di matrice a diagonale dominante. Verificare che una matrice è diquesto 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 ρ(Bj) < 1

DIMOSTRAZIONE:Nel caso in cui A sia a diagonale dominante in senso forte per righe allora

||Bj ||∞ < 1

e questa maggiorazione è sufficiente perché ρ(Bj) è sempre più piccolo diuna qualsiasi norma di Bj(vedi teorema 2.11):

ρ(Bj) ≤ ||Bj || ⇔ |λi| ≤ ||Bj || ∀λi ∈ P(Bj)

dove si ricordi che, dato v autovettore corrispondente a λ

||Bj || = supv 6=0

||Bjv||||v||

||Bjv||||v|| =

||λv||||v|| =

|λ| · ||v||||v|| = |λ| ≤ ||B||

Dato che Bj = D−1(L+ U), cioè

Bj =

0 −a12a11

−a13a11

. . . −a1n

a11

−a21a22

0 −a2n

a22...

. . ....

.... . .

...− an1

ann0

quindi

||Bj ||∞ = maxi=1,...,n

n∑

j=1

∣∣∣∣

aij

aii

∣∣∣∣< 1

Se invece A è a diagonale dominante in senso forte per colonne, abbiamoche Bj = D−1(L+ U) è simile9 a DD−1(L+ U)D−1 = Bj.

9

Definizione 3.26 Sia S una matrice non singolare. La matrice A = S−1AS è detta simi-

le alla matrice A, indicandola con A ∼ A, e la trasformazione corrispondente è detta una

trasformazione per similitudine. Inoltre il loro raggio spettrale è lo stesso

Page 68: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

68 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

Quindi

||Bj ||1 = maxj=1,...,n

i6=j

∣∣∣∣

aij

ajj

∣∣∣∣< 1

2

Analizziamo adesso i dettagli implementativi di questo metodo:

1. Come criterio d’arresto potremo fissare una tolleranza toll > |e(k)|,ma questo non è possibile poiché non si conoscono le soluzioni esatte.Utilizziamo pertanto una tolleranza in base al residuo

||r(k)|| < toll

dove per residuo si intende la quantità

r(k) = A · e(k) = b−Ax(k)

2. Un primo algoritmo per la risoluzione del sistema può essere espressoin questo pseudo-codice:

Dx(k) = (L+ U)x(k−1) + b

r(k) = Ax(k) − bse ||r(k)|| < toll stopaltrimenti 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 ||r(k)|| < toll stopaltrimenti x(k+1) = x(k) +D−1r(k)

Infatti:

x(k+1) = x(k) +D−1r(k) = x(k) +D−1(b−Ax(k)) =

= x(k) +D−1b−D−1(D − L− U)x(k) =

= x(k) +D−1b− x(k) +D−1(L+ U)x(k) =

= D−1(L+ U)x(k) +D−1b

Listing 3.16: Risolvi sistema lineare con metodo di Jacobi�1 ������������� [x,i]=risolvi_jacobi(A,b,x,t,npassi)2

3 % RISOLVI_JACOBI Risolve il sistema Ax=b con Jacobi.4 % [x,i]=risolvi_jacobi(A,b,x,t) restituisce la5 % soluzione del sistema Ax=b utilizzando il metodo6 % di Jacobi ed i passi risultati necessari.

Page 69: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.5. METODI ITERATIVI 69

7 % Approssima le soluzioni con una tolleranza t,8 % memorizzandosi il numero di passi effettuati.9 % In npassi si imposta il massimo numero di iterazioni

10 % consentite11 %12 % La matrice A fornita in input deve essere quadrata13 % e il vettore colonna b deve avere la stessa dimensione14 % di riga di A.15 %16 % Il vettore colonna x rappresenta le soluzioni approssimate17 % del sistema iniziali, è il cosiddetto vettore d’innesco18 %19 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti20 % Thu Jun 24 15:29:43 CEST 200421

22 [n,m]= �� ��� (A);23 ��� � i=1:n24 �� A(i,i)==025 ����� � � (’Il sistema non e’’ risolvibile con jacobi.’);26 �����27 �����28 % controllo che A sia quadrata29 �� (n==m)30 r=b−A∗x;31 % estraggo la diagonale e ne calcolo l’inversa32 d=1./ ���� � (A);33 i=0;34 t=t∗ ���� � (b,2);35 ������� (( ���� � (r,2)>=t) && i<=npassi)36 % approssimazione soluzione37 x=x+(d.∗r);38 % calcolo il residuo39 r=b−(A∗x);40 i=i+1;41 �����42 �� i>= npassi43 ����� � � (’Numero di iterazioni superiore al limite’);44 �����45 ������� � �46 ��� ���47 ����� ��� (’La matrice di input non e’’ quadrata’);48 �����

� �

Esempi di risolvi_jacobi da pag. 164

Page 70: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

70 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

3.5.2 Metodo di Gauss-Seidel

Come per il metodo di Jacobi “scompongo” la matrice A = D − L − U eriscrivo il sistema come

(D − L)x = Ux+ b (3.8)

segue che la successione che definiremo sarà{

(D − L)x(k+1) = Ux(k) + b

x(0) = approssimazione iniziale assegnatak = 1, 2, . . . (3.9)

Quindi le soluzioni approssimate sono date da

x(k+1) = (D − L)−1Ux(k) + (D − L)−1b

La precedente formula non è conveniente da utilizzare in un’implementazio-ne su calcolatore, poiché si fa uso dell’inversione di una matrice e di prodottimatrice per matrice. Un’ottimizzazione possibile può essere:

j∑

i=1

ajix(k+1)i = bj +

n∑

i=j+1

ajix(k)i

ajjx(k+1)j = bj +

n∑

i=j+1

ajix(k)i −

j−1∑

i=1

ajix(k+1)i

Da cui

x(k+1)j =

bj +∑n

i=j+1 ajix(k)i −

∑j−1i=1 ajix

(k+1)i

ajj(3.10)

Il criterio di convergenza si ottiene da

e(k) = x− x(k)

quindi sottraendo dalla (3.8) la (3.9) otteniamo

(D − L)e(k+1) = Ue(k)

dove l’ultima espressione è nota come equazione dell’errore; da essa ricavia-mo

e(k+1) = (D − L)−1U︸ ︷︷ ︸

Bgs

e(k)

infatti Bgs converge se e solo se ρ(Bgs) < 1.

Proposizione 3.27 Se una matrice A è simmetrica definita positiva allora

ρ(Bgs) < 1

Proposizione 3.28 Se una matrice A è strettamente a diagonale dominante

per righe e/o per colonne allora ρ(Bgs) < 1

Page 71: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.5. METODI ITERATIVI 71

DIMOSTRAZIONE:

• Sia A strettamente a diagonale dominante per righe. Si supponga perassurdo che ∀λ ∈ P(Bgs) |λ| ≥ 1. Sia λ ∈ P(Bgs) e consideriamo unautovettore v corrispondente a λ tale che ||v||∞ = 1. Risulta quindi

Bgsv = λv

cioè[(D − L)−1U ]v = λv

otteniamo pertanto

Uv = λ(D − L)v

λDv = (U + λL)v

Sia vk la componente di v tale che vk = 1 ed allora, considerando solola componente k-esima, abbiamo

λakkvk =

n∑

j=k+1

akjvj + λ

k−1∑

j=1

akjvj

dalla quale, passando ai valori assoluti e per la disuguaglianza trian-golare10 otteniamo

|λ||akk| ≤n∑

j=k+1

|akj| |vj|︸︷︷︸

≤1

+|λ|k−1∑

j=1

|akj| |vj |︸︷︷︸

≤1

Conseguentemente, dividendo per la quantità positiva |λ| si ha

|akk| ≤1

|λ|

n∑

j=k+1

|akj|+k−1∑

j=1

|akj|

La maggiorazione precedente può essere ulteriormente rafforzata to-gliendo il coefficiente moltiplicativo 1

|λ| ; notiamo inoltre che le duesommatorie coinvolgono tutti gli elementi della k-esima riga eccetto ilk-esimo e possono essere quindi riscritte nel seguente modo

|akk| ≤∑

j 6=k

|akj|

ma questo è assurdo, dal momento che contraddice l’ipotesi inizialeche A sia matrice a diagonale strettamente dominante per righe. 2

10Dati due vettori v e w appartenenti ad uno spazio vettoriale V , si definiscedisuguaglianza triangolare la seguente relazione:

˛

˛

˛||v|| − ||w||

˛

˛

˛≤ ||v + w|| ≤ ||v|| + ||w||

Page 72: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

72 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

• Dimostriamo adesso il caso in cui la matrice sia a diagonale stretta-mente dominante per colonne. La prova è analoga e viene omessa persemplicità.

Ricaviamo quindi cheP(Bgs) ≡ P(BT

gs)

da cui segue infine

BTgs = UT (D − L)−T ∼ (D − L)−TUT = Bgs

e applicando il procedimento analizzato in precedenza si ottiene la tesi 2

Listing 3.17: Risolvi sistema lineare con metodo di Gauss-Seidel�1 ������������� [x,k]=risolvi_gauseidel(A,b,x,t,npassi)2

3 % RISOLVI_GAUSEIDEL Approssima Ax=b con Gauss−Seidel4 % [x]=risolvi_gauseidel(A,b,xi,t) restituisce la5 % soluzione del sistema Ax=b utilizzando il metodo6 % di Gauss−Seidel. Approssima le soluzioni con una tolleranza7 % t, fino ad un massimo di npassi.8 %9 % La matrice A fornita in input deve essere quadrata

10 % e il vettore colonna b deve avere la stessa dimensione11 % di riga di A.12 %13 % Il vettore x rappresenta le soluzione approssimate14 % del sistema iniziali15 %16 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti17 % Fri Jun 18 17:07:27 CEST 200418

19 [n,m]= ������ (A);20 % controllo che A sia quadrata21 �� (n==m)22 r=b−A∗x;23 k=0;24 t=t∗ � � � � (b,2);25 ������� (( � � � � (r,2)>t) && i<=npassi)26 % approssimazione soluzione27 ��� � i=1:n28 x(i)=(b(i)− � � � (A(i,1:i−1)∗x(1:i−1))−...29 � � � (A(i,i+1:n)∗x(i+1:n)))/A(i,i);30 � ���31 % calcolo il residuo32 r=b−A∗x;33 k=k+1;34 � ���35 � k>= npassi36 ��������� (’Numero di iterazioni superiore al limite’);37 � ���38 ����� � ���39 ����� �

Page 73: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

3.5. METODI ITERATIVI 73

40 ����� ��� (’La matrice di input non e’’ quadrata’);41 �����

� �

Esempi di risolvi_gauseidel.m da pag. 168

Page 74: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

74 CAPITOLO 3. METODI PER LA RISOLUZIONE DI SISTEMI LINEARI

Page 75: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Capitolo 4Equazioni e sistemi non lineari

LA risoluzione di sistemi di equazioni di tipo non lineare si presentaspesso nella modellazione matematica di problemi sperimentali o dialtra natura (per esempio di tipo teorico e non applicativo). Talvolta

non possiamo limitarci a studiare la parte lineare di un problema, ma dob-biamo necessariamente conoscere il comportamento dello stesso al di fuoridei limiti di linearità. Risulta quindi evidente la necessità di trattare proce-dimenti che possano trovare le soluzioni dei sistemi non lineari, altrimentidifficilmente risolvibili con i metodi visti fino ad ora. In questo capitolo, do-po una iniziale considerazione sul condizionamento e sui criteri d’arresto,illustreremo in dettaglio alcuni di questi metodi. Vediamo adesso una defi-nizione generale:Sia f una funzione con dominio D ⊂ Rn e codominio Q ⊂ Rm:

f : D ⊂ Rn → Q ⊂ Rm, f ≡ [f1, f2, . . . , fm]T

e dato un vettore y ∈ Rm, si cerca x ∈ D tale che

f(x) = y ⇔

f1(x1, . . . , xn) = y1

f2(x1, . . . , xn) = y2...

fm(x1, . . . , xn) = ym

Solitamente y è “assorbito” in f e si considera l’equazione

f(x) = 0

quindi questo significa cercare gli zeri della funzione f nel dominio D. Persemplicità considereremo il caso in cui m = n = 1, cioè il problema delcalcolo dello zero di una funzione di una variabile.

75

Page 76: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

76 CAPITOLO 4. EQUAZIONI E SISTEMI NON LINEARI

4.1 Condizionamento del problema

Prima di analizzare i metodi numerici per la determinazione delle radicidi una funzione, facciamo qualche considerazione sul condizionamento delproblema.Supponiamo f(x) = 0, cioè x è il risultato esatto.Costruiamo una successione {xk} che converge a x e stabiliamo un criteriodi arresto:

f(x) ≈ 0

dove x è il risultato perturbato.Analizziamo l’errore relativo

εx =

∣∣∣∣

x− xx

∣∣∣∣

utilizzando lo sviluppo in serie di Taylor di primo grado, risulta:

f(x) ≈ f(x) + f ′(x)(x− x)

Supposto f ′(x) diverso da zero

(x− x) =f(x)

f ′(x)

Quindi ∣∣∣∣

x− xx

∣∣∣∣=

1

|f ′(x)x| · |f(x)|

dove la quantità 1

|f ′(x)x|è il numero di condizionamento del nostro proble-

ma. I maggiori problemi per quanto riguarda il condizionamento si hannoquando f ′(x) è molto grande in un intorno di x. Infatti nei metodi do-vremmo imporre condizioni di arresto tutt’altro che verosimili, situazioneassolutamente non corretta. Un ulteriore caso sfavorevole è quello in cui lafunzione è “piatta” in un intorno di x, poiché la derivata tende a zero e diconseguenza l’errore relativo risulta enorme.Inoltre, non è detto che se |f(xk)| < toll(f) allora sia piccolo anche l’errore,infatti, come è evidente nella figura (4.1), il valore di |f(x)| è relativamentepiccolo, ma la differenza |x− x| non lo è altrettanto.

Per essere rigorosi dovremmo allora avere una tolleranza in funzione dix, cioè:

1

|f ′(x)x| · |f(x)| < toll(x)

Quindi il criterio di arresto per il residuo sarà:

|f(x)| <∣∣f ′(x)x

∣∣ toll(x)

︸ ︷︷ ︸

toll(f)

Page 77: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

4.1. CONDIZIONAMENTO DEL PROBLEMA 77

~ x

y

x x_

Figura 4.1: Tolleranza su f ed errore assoluto

x

y

x

y

x

y

a) b) c)

Figura 4.2: Problema bencondizionato (a) e malcondizionato (b,c)

Il problema che abbiamo nasce dal fatto che non conosciamo x. Cercheremoallora di stimare f ′(x). Da questo segue:

c < toll(f) <∣∣f ′(x)x

∣∣ toll(x)

Il principio appena esposto non è applicabile nel caso in cui la moltepli-cità delle soluzioni sia maggiore di 1 e quindi presentiamo un altro crite-rio di arresto, più costoso, ma applicabile in qualsiasi contesto. Definiamodunque:

|xk+1 − xk| < ck toll(x)

con

ck =

{|xk+1| se xk+1 > toll(x)1 altrimenti

e dove xk, xk+1 sono due approssimazioni successive di una successione checonverge a x.

Definizione 4.1 Sia {xk} una successione convergente a x. Se esistono un

numero p > 0 e una costante c 6= 0 tale che

limk→+∞

|xk+1 − x||xk − x|p

= c

allora p è chiamato ordine di convergenza della successione e c è chiamata

costante asintotica d’errore.

Page 78: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

78 CAPITOLO 4. EQUAZIONI E SISTEMI NON LINEARI

Se p = 1 e c < 1 la convergenza si dice lineare.Se p = 1 e c = 1 si parla di convergenza sublineare.È importante stabilire anche se la convergenza di un metodo è locale oglobale.

Convergenza locale vale solo per particolari inneschi, vicini a quelli otti-mali

Convergenza globale vale per ogni x0 appartenente ad un intervallo pre-fissato

Inoltre si parla di convergenza a:

Passo singolo se xk è calcolato solo con xk−1, cioè si ha un solo puntod’innesco

Passo multiplo se xk è calcolato con xk−1, xk−2, . . . cioè si hanno più puntid’innesco

La conoscenza dell’ordine di convergenza p della successione {xk} puòfarci conoscere qualcosa in più sull’errore. Infatti:

|xk+1 − xk| = |xk+1 + x− x− xk| = |ek+1 − ek|

Siccome ek+1 ≈ c epk si ha

∣∣c epk − ek

∣∣ = |ek|

∣∣∣c e

p−1k − 1

∣∣∣

︸ ︷︷ ︸

questa quantitàdifferisce poco da 1

Quindi, per k abbastanza grande, se p = 1

|xk+1 − xk| ≈ |ek||c− 1|

4.2 Metodo di bisezione

Sia f una funzione continua in un intervallo chiuso e limitato [a, b]. Inoltrerisulti che f(a)f(b) < 0. Allora esiste un punto x ∈ (a, b) tale che f(x) = 0.Il problema, ora che abbiamo provato l’esistenza di x, è determinarne ilvalore. Assegnamo ai termini a0 e b0 rispettivamente i valori di a, b e calco-liamoci il punto medio di questi, cioè

c0 =a0 + b0

2

Se c0 è il punto che cerchiamo, cioè f(c0) = 0 il metodo di bisezione siarresta, altrimenti assegneremo ai termini a1, b1 rispettivamente:

Page 79: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

4.2. METODO DI BISEZIONE 79

• a0, c0 se f(c0)f(a0) < 0

• c0, b0 altrimenti

In questo modo dimezziamo l’ampiezza dell’intervallo di confidenza. Ripe-tendo il procedimento creeremo una successione [ai, bi] che convergerà a x.In questo modo siamo sicuri che nell’intervallo che considero ho sempre leradici della funzione.Un criterio di arresto di questo metodo è dato da 1

|f(ci)| < toll(f)

Questo metodo ha convergenza globale, ad ogni passo dimezza l’intervallo

(bi+1 − ai+1) =1

2(bi − ai)

l’errore quindi:

|ei+1| = |ci+1 − x| ≤1

2(bi+1 − ai+1) =

1

4(bi − ai) = . . . =

1

2i+1(b0 − a0)

converge a zero per i che tende a infinito. Stabiliamo un criterio di arrestoper il calcolo di ci. Si ha

|ei| ≤1

2i(b− a) < toll(x)

Quindi

2i >b− atoll(x)

e passando ai logaritmi

i > log2(b− a)− log2 toll(x)

Come è banale verificare il metodo ha convergenza lineare, risulta infatti:

limi→∞

|ei+1||ei|

=1

2

In generale è un buon metodo per localizzare le radici (poi sono general-mente usati metodi più veloci e localmente convergenti).

1N.B.: il calcolo di una funzione è in generale la parte più costosa di un procedimentoiterativo.

Page 80: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

80 CAPITOLO 4. EQUAZIONI E SISTEMI NON LINEARI

Listing 4.1: Metodo di bisezione�

1 ������������� [x,i]=bisezione(a,b,f,toll)2

3 % BISEZIONE Trova lo zero di f con il metodo di bisezione4 % [x,k]=bisezione(a,b,f,toll) restituisce in x l’ascissa5 % del punto in cui si annulla f, con x appartenente6 % all’intervallo [a,b].7 %8 % f deve avere almeno uno zero in [a,b]9 %

10 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti11 % Fri Jun 21 16:52:18 CEST 200412 ������ on;13 ���� � on;14 i=0;15 fa= ����� ��� (f,a);16 fb= ����� ��� (f,b);17 %per la parte grafica:18 bi=b; ai=a;19 % controllo l’intervallo20 �� fa==021 x=a;22 ����� � ���23 ��� � � � fb==024 x=b;25 ������� ���26 � ��� ;27 � ��� ;28 % calcolo il punto medio29 c=(a+b)/2;30 % valuto la funzione31 v= ����� ��� (f,c);32 % definisco la tolleranza33 fder = (fb−fa)/(b−a);34 tollf= fder.∗toll.∗c;35 tollx= �

�� ( ����� � (bi−ai)− ����� � (toll);

36 ������� ((i<=tollx)) && (tollf <= ��� (v)))

37 � v==038 % ho trovato la radice39 x=c;40 ������� ���41 ��� � �42 % imposto l’intervallo43 � (fa.∗v) < 044 fb=v;45 b=c;46 ��� ���47 fa=v;48 a=c;49 � ���50 � ���51 c=(a+b)/2;52 v= ����� ��� (f,c);

Page 81: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

4.3. METODO DI NEWTON 81

53 % ridefinisco la tolleranza54 fder = (fb−fa)/(b−a);55 tollf= fder.∗toll.∗c;56 i=i+1;57 �����58 x=c;59 % visualizzo la posizione della radice60 ezplot(f,[ai,bi]);61 ������ (x, ����� ��� (f,x),’rd’);62 ������� ���

� �

Esempi di bisezione.m da pag. 175

4.3 Metodo di Newton

Il metodo di Newton è un metodo iterativo a passo singolo. Supposta lafunzione f da studiare continua in un intervallo [a, b], si considera una stimainiziale x0 della soluzione e si genera una successione {xk}, secondo quantosegue:

f(x) ≈ f(xk) + f ′(xk)(x− xk)

Posto poif(xk) + f ′(xk)(xk+1 − xk) = 0

si ha

xk+1 = xk −f(xk)

f ′(xk)(4.1)

Dal punto di vista geometrico, xk+1 è l’intersezione dell’asse x con la tan-gente y = f(xk) + f ′(xk)(x− xk) in (xk, f(xk)) alla curva y = f(x).

Il metodo di Newton diverge quando il punto d’innesco x0 non è “vicino”alla radice; è inoltre detto metodo di iterazione funzionale, poiché è fattograzie al calcolo della funzione al passo precedente.

xk+1 = g(xk) dove g(x) = x− f(xk)

f ′(xk)

Quindi, cercare f(x) = 0 è come cercare il punto fisso2 di un’altra funzioneg correlata a f .

Supposto che il metodo converga, stabiliamo l’ordine di convergenza:

0 = f(x) = f(xk) + f ′(xk)(x− xk) +f ′′(ψk)

2!(x− xk)

2

2Si dice che x è un punto fisso di una funzione f se x ∈ dom(f) e x = f(x)

Page 82: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

82 CAPITOLO 4. EQUAZIONI E SISTEMI NON LINEARI

dove ψk ∈ (min(x, xk),max(x, xk)). Se divido la precedente equazione perf ′(xk) ottengo:

0 =f(xk)

f ′(xk)+ (x− xk) +

f ′′(ψk)

2!f ′(xk)(x− xk)

2

Quindi, per la (4.1)

0 = x− xk+1︸ ︷︷ ︸

ek+1

+f ′′(ψk)

2!f ′(xk)(x− xk︸ ︷︷ ︸

ek

)2

Ora,ek+1

e2k= − f ′′(ψk)

2!f ′(xk)

cioè, passando ai valori assoluti∣∣∣∣

ek+1

e2k

∣∣∣∣=

∣∣∣∣

f ′′(ψk)

2!f ′(xk)

∣∣∣∣

Da cui, considerando il limite

limk→+∞

∣∣∣∣

ek+1

e2k

∣∣∣∣=

f ′′(x)2f ′(x)

supposto convergente ek. Il metodo quindi converge almeno quadratica-mente per radici semplici, mentre per radici multiple la convergenza peg-giora (esistono comunque procedimenti per ovviare a questo problema).

Nel caso in cui f abbia radice multipla, cioè f è della forma:

f(x) = (x− x)m v(x) radici di molteplicità m e v(x) 6= 0

Abbiamo che

f ′(x) = (x− x)m−1[m v(x) + (x− x)v′(x)

]

︸ ︷︷ ︸

h(x)

Quindi

xk+1−x = xk−f(xk)

f ′(xk)−x = (xk−x)−

(xk − x)mv(xk)

(xk − x)m−1h(xk)= (xk−x)

[

1− v(xk)

h(xk)

]

Da cuixk+1 − xxk − x

= 1− v(xk)

h(xk)

Possiamo quindi portare tutto al limite ed ottenere:

limk→+∞

ek+1

ek= 1− v(x)

h(x)= 1− 1

m

con m costante positiva non nulla (quindi convergenza lineare).

Page 83: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

4.3. METODO DI NEWTON 83

Listing 4.2: Metodo di Newton�

1 � ����� ����� [x,k]=newton(f,df,toll,innesco,npassi)2

3 % NEWTON Trova lo zero di f con il metodo di Newton4 % [x,k]=newton(f,df,toll,innesco) restituisce in x5 % l’ascissa del punto in cui si annulla f, con x6 % ’’vicino’’ al punto d’innesco ed in k il numero di7 % passi effettuati dall’algoritmo.8 %9 % Il parametro f contiene il nome della funzione

10 % da esaminare, df contiene il nome della derivata11 % della funzione f.12 % Il parametro toll rappresenta la tolleranza sulle13 % ascisse.14 % Con npassi si indica il numero di passi imposto15 % come limite16 %17 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti18 % Fri Jun 23 14:56:16 CEST 200419 xk = innesco;20 xk1 = xk − ( ����� ��� (f,xk)./ ����� ��� (df,xk));21 % fisso la tolleranza22 �� �

�� (xk1)>toll

23 ck=xk1.∗toll;24 ��� ���25 ck=toll;26 �����27 k=1;28 ������� ( �

�� (xk1−xk)>=ck && k <= npassi)

29 % calcolo l’approssimazione successiva30 xk = xk1;31 xk1 = xk − ( ����� ��� (f,xk)./ ����� ��� (df,xk));32 % aggiorno la condizione di arresto33 �� �

�� (xk1)>toll

34 ck=xk1.∗toll;35 ����� �36 ck=toll;37 �����38 k=k+1;39 �����40 �� (k>npassi)41 ����� ��� (’Superato limite iterazioni’);42 ����� ;43 x=xk1;44 ������� ���

� �

Esempi di newton.m da pag. 176

Page 84: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

84 CAPITOLO 4. EQUAZIONI E SISTEMI NON LINEARI

4.3.1 Metodo di Newton modificato

Mostriamo adesso una variante al metodo appena proposto che, conoscen-do la molteplicità della radice, ci permette di avere convergenza più chelineare. L’ espressione per il calcolo della successione viene scritto:

xk+1 = xk −mf(xk)

f ′(xk)

Dove, per k che tende all’infinito, produce la convergenza

1− m

m= 0

Supponiamo la successione definita dall’innesco x0 tale che

xk+1 = g(xk)

con g ∈ C1([a, b]), x0 ∈ [a, b] ed in generale xk ∈ [a, b] ∀k.Se xk → x per k → ∞, allora x = g(x) è un punto fisso della funzione g,quindi per l’ipotesi di continuità risulta

x = limk→∞

g(xk) = g(x)

Teorema 4.2 (di convergenza locale) Sia g ∈ C1([x − %, x + %]) con % > 0e x punto fisso di g. Se |x0 − x| ≤ % e |g′(x)| < 1 per ogni x ∈ [x − %, x + %]allora:

xk ∈ [x− %, x+ %] e limk→∞

xk = x ; xk+1 = g(xk)

DIMOSTRAZIONE:Sia λ = max |g′(x)| < 1 con x ∈ [x− %, x+ %]. Procedendo per induzione suk verifichiamo che:

|xk − x| ≤ λk% ≤ %Base k = 0 l’ipotesi è verificata banalmente

Ipotesi induttiva La tesi vale per k − 1

Passo induttivo Per definizione di successione e teorema del valor medioabbiamo

xk − x = g(xk−1)− g(x) = g′(ξk−1)(xk−1 − x)Passando ai valori assoluti, si ha:

|xk − x| = |g′(ξk−1)| |(xk−1 − x)|︸ ︷︷ ︸

∈ intorno

Quindi per ipotesi induttiva:

|(xk−1 − x)| · |g′(ξk−1)| ≤ λ(λk−1%) = λk% ≤ %poiché λk → 0 per k →∞. 2

Page 85: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

4.3. METODO DI NEWTON 85

5 Osservazione 4.3 Se g ∈ C1([a, b]) e |g′(x)| < 1 ∀x ∈ [a, b] allora

non possono esistere due punti distinti x1, x2 ∈ [a, b] che sono punti fissi

di g in [a, b].

DIMOSTRAZIONE:Per assurdo, se esistessero x1, x2 ∈ [a, b], con x1 6= x2 allora

|x1 − x2| = |g(x1)− g(x2)|

poiché sono fissi e per il teorema del valor medio risulterebbe che

|x1 − x2| = |g(x1)− g(x2)| = |g′(ξk)||x1 − x2|

ma questo è assurdo dal momento che |g ′(ξk)| < 1 2

Teorema 4.4 Sia g ∈ Cp([a, b]) con p ≥ 2. Sia x ∈ [a, b] un punto fisso. Se

g′(x) = 0, g′′(x) = 0, . . . , g(p−1)(x) = 0 e g(p)(x) 6= 0

allora ∃% > 0 tale che se |x0 − x| ≤ % allora la successione {xk} converge con

ordine p

DIMOSTRAZIONE:In base allo sviluppo di Taylor abbiamo:

xk+1 = g(xk) = g(x)+g′(x)(xk−x)+. . .+g(p−1)(x)

(p− 1)!(xk−x)p−1+

g(p)(ξk)

p!(xk−x)p

con |ξk − x| ≤ %. Quindi

limk→∞

|xk+1 − x||xk − x|p

= limk→∞

|ek+1||ek|p

= limk→∞

|g(p)(ξk)|p!

=|g(p)(x)|

p!> 0

cioè converge proprio con quest’ordine. Se fosse risultato uguale a zero,allora l’ordine di convergenza sarebbe stato superiore. 2

Listing 4.3: Metodo di Newton per radici multiple�1 � ����� ����� [x,k]=newton_modif(f,df,toll,innesco,m,npassi)2

3 % NEWTON_MODIF Trova uno zero con il metodo di Newton modificato4 % [x,k]=newton_modif(f,df,toll,innesco,m) restituisce in x5 % l’ascissa del punto in cui si annulla f, con x ’’vicino’’6 % al punto d’innesco.7 %8 % Il parametro f contiene il nome della funzione da esaminare,9 % df contiene il nome della derivata della funzione f.

10 % Il numero m rappresenta la molteplicità nota della soluzione11 % cercata.12 % Il parametro toll rappresenta la tolleranza sulle ascisse.

Page 86: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

86 CAPITOLO 4. EQUAZIONI E SISTEMI NON LINEARI

13 % Con npassi si indica il numero di passi imposto14 % come limite15 %16 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti17 % Fri Jun 23 14:58:21 CEST 200418

19 xk = innesco;20 xk1 = xk − m.∗( ����� ��� (f,xk)./ ����� ��� (df,xk)); % calcolo x_121 % fisso la tolleranza22 �� �

�� (xk1)>toll

23 ck=xk1.∗toll;24 ����� �25 ck=toll;26 �����27 k=1;28 ������� ( �

�� (xk1−xk)>=ck && k<=npassi)

29 % calcolo l’approssimazione successiva30 xk = xk1;31 xk1 = xk − m.∗( ����� ��� (f,xk)./ ����� ��� (df,xk));32 % aggiorno la condizione di arresto33 � �

�� (xk1)>toll

34 ck=xk1.∗toll;35 ��� � �36 ck=toll;37 � ���38 k=k+1;39 �����40 �� (k>npassi)41 ��������� (’Superato limite iterazioni’);42 ����� ;43 x=xk1;44 �����������

� �

Esempi di newton_modif.m da pag. 178

4.3.2 Metodo delle corde

Un’ ottimizzazione al metodo di Newton sorge dalla constatazione che adogni passo del metodo tradizionale si calcola il valore della derivata primanel punto. Si può supporre che, a meno di una precisione fissata a priori, ilvalore della tangente alla funzione f nei pressi della radice x diventi semprepiù vicino al valore f ′(x): l’idea è quindi quella di non calcolare via via tuttele tangenti f ′(xi), bensì prendere la pendenza della retta tangente alla f inun preciso punto ed utilizzare sempre quel valore. Come si può ben capire,l’approssimazione qui introdotta sarà tanto migliore quanto più il punto dicalcolo della derivata si trova vicino alla radice della f . Il nuovo modo di

Page 87: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

4.3. METODO DI NEWTON 87

calcolare la successione è dato da

xk+1 = xk −f(xk)

mm 6= 0

Il problema ora consiste nel valutare correttamente il numero m, la pen-denza della retta cercata: conveniamo allora di prendere come punto dovesi calcola la tangente il punto d’innesco x0, utilizzando dunque f ′(x0) peril calcolo di ogni valore della successione {xk}. L’ approssimazione da noiconsiderata alleggerisce notevolmente i calcoli da fare, seppur imponendoche la convergenza di questo metodo sia lineare; tuttavia, facendo maggio-re attenzione nella scelta del punto d’innesco si possono avere convergenzepiù rapide.

Listing 4.4: Metodo delle corde�1 � ����� ����� [x,k]=corde(f,df,toll,a,b,innesco,npassi)2

3 % CORDE Trova lo zero di f con il metodo delle corde4 % [x,k]=corde(f,df,toll,innesco) restituisce in x l’ascissa5 % del punto in cui si annulla f, con x ’’vicino’’ al punto6 % d’innesco ed in k il numero di passi effettuati7 % dall’algoritmo.8 %9 % Il parametro f contiene il nome della funzione

10 % da esaminare, df contiene il nome della derivata11 % della funzione f.12 % Il parametro toll rappresenta la tolleranza sulle13 % ascisse.14 % I parametri a,b sono gli estremi dell’intervallo dove15 % visualizzare il grafico.16 % Con npassi si indica il numero di passi imposto17 % come limite18 %19 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti20 % Sat Jun 26 23:56:16 CEST 200421

22 ezplot(f,[a,b]);23 ������ on;24 ��� � on;25 xk = innesco;26 fxk = ����� ��� (f,xk);27 % fisso m28 m= ����� ��� (df,xk);29 xk1 = xk − ( ����� ��� (f,xk)./m);30 % fisso la tolleranza31 �� �

�� (xk1)>toll

32 ck=xk1.∗toll;33 ��� ���34 ck=toll;35 �����36 % visualizzo le corde37 �� ��� ([xk,xk],[fxk,0],’Color’,’Red’);

Page 88: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

88 CAPITOLO 4. EQUAZIONI E SISTEMI NON LINEARI

38 �� � � ([xk,xk1],[fxk,0],’Color’,’Red’);39 k=1;40 ������� ( �

�� (xk1−xk)>=ck && k <= npassi)

41 % calcolo l’approssimazione successiva42 xk = xk1;43 fxk = ����� ��� (f,xk);44 xk1 = xk − m.\fxk;45 % visualizzo le corde46 �� � � ([xk,xk],[fxk,0],’Color’,’Red’);47 �� � � ([xk,xk1],[fxk,0],’Color’,’Red’);48 % aggiorno la tolleranza49 � �

�� (xk1)>toll

50 ck=xk1.∗toll;51 ��� � �52 ck=toll;53 � ���54 k=k+1;55 �����56 �� (k>npassi)57 ��������� (’Superato limite iterazioni’);58 ����� ;59 x=xk1;60 �����������

� �

Esempi di corde.m da pag. 179

4.3.3 Metodo delle secanti

Il metodo delle secanti è un’altra variante al metodo di Newton, che fornisceuna strada alternativa per il calcolo delle radici di una funzione f . È unmetodo a passo doppio, cioè ha bisogno di due punti d’innesco per il calcolodell’i-esimo valore della successione {xk}. Per calcolare tale valore vieneutilizzata la seguente relazione

xk+1 = xk −xk − xk−1

f(xk)− f(xk−1)f(xk)

Come vediamo questo metodo non calcola ogni volta la derivata, né si portadietro un valore costante, bensì approssima la f ′ con la pendenza della retta“secante” la funzione f che passa per i due punti calcolati nelle approssi-mazioni precedenti. Il metodo delle secanti ha convergenza locale ed il suoordine di convergenza3 è dato da

p = ϕ =1 +√

5

2≈ 1, 618

3dove ϕ è il cosiddetto rapporto aureo

Page 89: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

4.3. METODO DI NEWTON 89

nel caso che le radici siano semplici, altrimenti se le radici sono multipletale valore è pari ad p = 1.

Listing 4.5: Metodo delle secanti�

1 � ����� ����� [x,k]=secanti(f,df,toll,a,b,innesco1,innesco2,npassi)2

3 % SECANTI Trova lo zero di f con il metodo delle secanti4 % [x,k]=secanti(f,df,toll,a,b,innesco1,innesco2) restituisce5 % in x l’ascissa del punto in cui si annulla f, con x6 % ’’vicino’’ ai punti d’innesco ed in k il numero di7 % passi effettuati dall’algoritmo8 %9 % Il parametro f contiene il nome della funzione

10 % da esaminare, df contiene il nome della derivata11 % della funzione f.12 % Il parametro toll rappresenta la tolleranza sulle13 % ascisse.14 % I parametri a,b sono gli estremi dell’intervallo dove15 % visualizzare il grafico.16 % Con npassi si indica il numero di passi imposto17 % come limite18 %19 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti20 % Fri Jun 23 14:56:16 CEST 200421

22 ezplot(f,[a,b]);23 ������ on;24 ��� � on;25 xk = innesco1;26 xk1 = innesco2;27 fxk = ����� ��� (f,xk);28 fxk1 = ����� ��� (f,xk1);29 xk2 = xk − fxk./(fxk1 − fxk).∗(xk1−xk);30 % valore calcolato per effettuare il grafico31 fxk2 = ����� ��� (f,xk2);32 % visualizzo le secanti33 �� ��� ([xk1,xk1],[fxk1,0],’Color’,’Black’,’LineStyle’,’−−’);34 �� ��� ([xk1,xk2],[fxk1,fxk2],’Color’,’Red’);35 % fisso la tolleranza36 �� �

�� (xk2)>toll

37 ck=xk2.∗toll;38 ��� ���39 ck=toll;40 �����41 k=1;42 ������� ( �

�� (xk2−xk1)>=ck && k<= npassi)

43 % calcolo l’approssizione successiva44 xk = xk1;45 xk1 = xk2;46 fxk = fxk1;47 fxk1 = ����� ��� (f,xk1);48 xk2 = xk − fxk./(fxk1−fxk).∗(xk1−xk);49 % visualizzo le secanti

Page 90: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

90 CAPITOLO 4. EQUAZIONI E SISTEMI NON LINEARI

50 �� � � ([xk,xk],[fxk,0],’Color’,’Black’,’LineStyle’,’−−’);51 �� � � ([xk,xk1],[fxk,fxk1],’Color’,’Red’);52 % determino la tolleranza53 � �

�� (xk2)>toll

54 ck=xk2.∗toll;55 ��� � �56 ck=toll;57 � ���58 k=k+1;59 �����60 �� (k>npassi)61 ��������� (’Superato limite iterazioni’);62 ����� ;63 x=xk2;64 �����������

� �

Esempi di secanti.m da pag. 181

4.3.4 Metodo di accelerazione di Aitken

Il metodo di accelerazione di Aitken consente di rendere più rapida la conver-genza, altrimenti lineare, di metodi iterativi per l’approssimazione degli zeridi una funzione. Considerando l’ipotesi di convergenza lineare, supponendodi ottenere i punti xk−1, xk e xk+1 posso scrivere che

ek+1 ' c ek

ek ' c ek−1

dove c è detta costante asintotica d’errore e dalle quali, dividendo membro amembro risulta

ek+1

ek' ekek−1

Ricordiamo che in generale ei = |xi − x| e sostituendo otteniamo

xk+1 − xxk − x

' xk − xxk−1 − x

da cui possiamo scrivere

(xk+1 − x)(xk−1 − x) ' (xk − x)2

Sviluppando ulteriormente il calcolo otteniamo

xk+1xk−1 − x(xk+1 + xk−1) + x2 ' x2k − 2xkx+ x2

x(xk+1 + xk−1 − 2xk) ' xk+1xk−1 − x2k

Page 91: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

4.3. METODO DI NEWTON 91

Quindi

x ' xk+1xk−1 − x2k

xk+1 − 2xk + xk−1=xk−1(xk+1 − 2xk + xk−1)− xk−1(xk−1 − 2xk)− x2

k

xk+1 − 2xk + xk−1=

=xk−1(xk+1 − 2xk + xk−1)− x2

k−1 + 2xk−1xk − x2k

xk+1 − 2xk + xk−1=

= xk−1 −x2

k−1 − 2xk−1xk + x2k

xk+1 − 2xk + xk−1= xk−1 −

(∆xk−1)2

∆2xk−1= xk (4.2)

Sostanzialmente xk dovrebbe fornire un’approssimazione migliore della ra-dice, possiamo quindi prenderlo come punto d’innesco per il metodo diNewton. Quello che si compie nelle varie iterazioni può essere illustratonel seguente schema

1. Con il metodo di Newton si calcolano x1 e x2, partendo dall’innescox0

2. Si sfruttano i punti appena trovati e si calcola x1, con la formula (4.2)

3. Si pone x0 = x1 e si procede come al punto 1, calcolando x1 e x2

4. Si costruisce il valore x2, e si itera il procedimento

Dimostriamo adesso che effettivamente il metodo di Aitken rende più velocela convergenza di un metodo iterativo, tramite il

Teorema 4.5 Se la successione {xk} converge linearmente a x, allora

limk→∞

xk − xxk − x

= 0

DIMOSTRAZIONE:Vogliamo dimostrare che ek/ek ha convergenza più che lineare. Risulta:

xk − x = xk−1 − x−(xk − x+ x− xk−1)

2

xk+1 − x− 2xk + 2x+ xk−1 − x

cioè

ek = ek−1 −(ek − ek−1)

2

ek+1 − 2ek + ek−1

Supposto adesso che k sia abbastanza grande, otteniamo

ek ' c ek−1

ek+1 ' c ek

Quindi

Page 92: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

92 CAPITOLO 4. EQUAZIONI E SISTEMI NON LINEARI

ek =ekc− (ek − 1

cek)

2

c ek − 2ek + 1cek

=1

cek −

(1− 1c)2e2k

(c− 2 + 1c)ek

=

= ek

[1

c− (c− 1)2

c2· c

c2 − 2c+ 1

]

= ek

[1

c− 1

c

]

= 0

Quello che questo teorema dimostra è che la quantità ek tende a zero piùvelocemente di ek, per k che tende all’infinito; quindi la ricerca delle radi-ci tramite la successione degli {xi} sarà più rapida di un metodo che, peripotesi, convergeva linearmente: abbiamo dunque una convergenza più chelineare, cioè la tesi è provata. 2

Questo metodo può essere usato inoltre per ripristinare la convergenza qua-dratica del metodo di Newton nel caso di radici multiple con molteplicitàsconosciuta.

Listing 4.6: Metodo di Aitken�1 ������������� [x,k]=aitken(f,df,toll,innesco,npassi)2

3 % AITKEN Trova lo zero di f con Newton accelerato con Aitken4 % [x,k]=aitken(f,df,toll,innesco) restituisce in x5 % l’ascissa del punto in cui si annulla f, con x6 % ’’vicino’’ al punto d’innesco ed in k il numero di7 % passi effettuati dall’algoritmo.8 %9 % Il parametro f contiene il nome della funzione

10 % da esaminare, df contiene il nome della derivata11 % della funzione f.12 % Il parametro toll rappresenta la tolleranza sulle13 % ascisse.14 % Con npassi si indica il numero di passi imposto15 % come limite16 %17 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti18 % Fri Jun 25 09:51:23 CEST 200419

20 % calcolo newton21 x0=innesco;22 hat1=x0 + toll.∗2;23 ck=toll;24 hat0=x0;25 k=0;26 ������� ( �

�� (hat1−hat0)>=ck && k<= npassi)

27 % approssimazione successiva28 x1 = x0 − ( ����� ��� (f,x0)./ ����� ��� (df,x0));29 x2 = x1 − ( ����� ��� (f,x1)./ ����� ��� (df,x1));30 hat0 = x0;31 hat1 = x0 − (x0.^2 − 2.∗x0.∗x1+x1.^2)./(x2−2.∗x1+x0);32 x0 = hat1;

Page 93: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

4.3. METODO DI NEWTON 93

33 % aggiorno la tolleranza34 �� �

�� (hat1)>toll

35 ck=hat1.∗toll;36 ����� �37 ck=toll;38 �����39 k=k+1;40 �����41 �� (k>npassi)42 ����� ��� (’Superato limite iterazioni’);43 ����� ;44 x=hat1;45 ������� ���

� �

Esempi di aitken.m da pag. 183

Page 94: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

94 CAPITOLO 4. EQUAZIONI E SISTEMI NON LINEARI

Page 95: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Capitolo 5Approssimazione di funzioni

IL problema dell’approssimazione di funzioni riveste un’importanza fon-damentale nella matematica applicata, dove spesso e volentieri si puòavere a che fare con funzioni analiticamente complicate, oppure il cui

comportamento non è noto e delle quali conosciamo solamente un insiemediscreto di valori. Sono stati allora trovati dei metodi che ci permettonodi “ricostruire” l’andamento di una funzione, a partire dai dati in nostropossesso; tali procedimenti esistono in diverse varianti, che possono essereapplicate con successo in dipendenza dalla natura dei valori da stimare. Ingenerale, approssimare una funzione consiste nel cercare, dato un insiemedi coppie (xi, fi) con i = 0, . . . , n una funzione dello spazio

S =< ϕ0(x), ϕ1(x), . . . , ϕn(x) >

che interpoli1 questi punti.Consideriamo inizialmente la funzione

S(x) =

n∑

j=0

αjϕj(x)

cioè la combinazione lineare delle applicazioni dello spazio di funzioni S.Quindi, per i = 0, . . . , n deve risultare

S(xi) =

n∑

j=0

αjϕj(xi) = fi

Si può pensare di risolvere questa equazione come un sistema lineare in cui

α = (α0, α1, . . . , αn)T

1Dallo Zingarelli 1996: [interpolare] calcolare approssimativamente il valore di unafunzione in un punto compreso fra due altri in cui il valore è noto, quando non si conoscel’espressione della funzione oppure essa è troppo complicata

95

Page 96: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

96 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

è il vettore delle incognite, Φ è la matrice dei coefficienti, detta matrice di

collocazione :

Φ =

ϕ0(x0) ϕ1(x0) . . . ϕn(x0)...

. . ....

.... . .

...ϕ0(xn) . . . . . . ϕn(xn)

ed infine f = (f0, f1, . . . , fn)T è il vettore dei termini noti.Fissiamo S come lo spazio dei polinomi

S = Πn =< 1, x, x2, . . . , xn >

ed in questo caso la matrice di collocazione è quella che è chiamata matrice di Vandermonde

A =

1 x1 . . . xn1

1 x2 xn2

.... . .

...1 xn . . . xn

n

Il determinante di questa matrice, supposto xi 6= xj , i 6= j, è dato da

det(A) =∏

i>ji,j=1,...,n

(xi − xj)

Listing 5.1: Risolve il sistema di Vandermonde�1 ������������� [a]=risolvi_vandermonde(x,f)2

3 % RISOLVI_VANDERMONDE Risolve il sistema di Vandermonde4 % [a]=risolvi_vandermonde(x,f) restituisce le soluzioni del5 % sistema di Vandermonde.6 %7 % I parametri x e f sono vettori della stessa dimensione.8 %9 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti

10 % Fri Jun 18 15:49:43 CEST 200411

12 % creo la matrice di Vandermonde13 A=vandermonde(x);14

15 % risolvo il sistema con Householder16 a=risolvi_householder(A,f);17

18 ������������ �

Page 97: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.1. POLINOMIO INTERPOLANTE DI LAGRANGE 97

Esempi di risolvi_vandermonde.m da pag. 184

Listing 5.2: Creazione matrice di Vandermonde�

1 � ����� ����� [V]=vandermonde(x)2

3 % VANDERMONDE Restituisce la matrice di Vandermonde4 % [V]=vandermonde(x) restituisce la matrice di5 % Vandermonde corrispondente al vettore X6 %7 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti8 % Fri Jun 18 15:49:43 CEST 20049 %

10 n= ��� � ��� � (x);11 % creo la matrice n x n12 V= ����� � � (n);13 % riempo la matrice14 V(:,1)=ones(n,1);15 ��� � j=2:n16 V(:,j)=V(:,j−1).∗x(:);17 �����18

19 ������� ���� �

Si può dimostrare, per induzione su n, che esiste unico il polinomioPn(x) ∈ Πn interpolante tale che: Pn(xi) = fi con i = 0, . . . , n. Nel-la risoluzione del sistema lineare può nascere un problema se le ascis-

se sono distinte, ma “vicine”: infatti il condizionamento peggiora renden-do potenzialmente la matrice singolare. Sappiamo inoltre che la risoluzio-ne di un sistema lineare è un’operazione costosa e dipende fortemente dalcondizionamento dei dati.

5.1 Polinomio Interpolante di Lagrange

Per risolvere questo tipo di problema si utilizza la rappresentazione del po-

linomio in forma di Lagrange.Questo tipo di polinomi sono quelli della forma:

Li n(x) =

n∏

j=0j 6=i

(x− xj)

(xi − xj)

Page 98: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

98 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

Analizziamo una proprietà fondamentale di Li n (i-esimo polinomio di gra-do n). Calcolando il polinomio in xk, abbiamo:

Li n(xk) =n∏

j=0j 6=i

xk − xj

xi − xj=

{0 se k 6= i1 se k = i

Mostriamo ora come gli Li n siano linearmente indipendenti. Supponiamodi avere

n∑

i=0

aiLi n(x) = 0 alloran∑

i=0

aiLi n(xk) = 0

ma Lk n non si annulla in xk, quindi ak = 0 per ogni k, cioè gli Li n sonolinearmente indipendenti; risulta infine

Πn =< L0 n(x), L1 n(x), . . . , Ln n(x) >

si noti che i vari Li n(x) formano una base dello spazio vettoriale Πn, dettabase di Lagrange.Adesso sappiamo che un generico polinomio di grado n può essere espressonella forma di Lagrange

Pn(x) =n∑

i=0

aiLi n(x)

Per far interpolare il polinomio con i punti considerati in precedenza deverisultare

n∑

i=0

aiLi n(xk) = fk k = 0, . . . , n

ma i valori della sommatoria sono tutti nulli eccetto il k-esimo, cioè ak = fk.Allora

Pn(x) =

n∑

i=0

fiLi n(x)

in questo modo non risolvo alcun sistema lineare perchè sono a conoscenzadi tutti i coefficienti.

4 Esempio 5.1 Dobbiamo interpolare i seguenti punti:

xi fi

-1 -3

0 -1

1 3

L0 2(x) =x(x− 1)

(−1− 0)(−1 − 1)=x

2(x− 1)

L1 2(x) =(x+ 1)(x− 1)

(0 + 1)(0 − 1)= −(x+ 1)(x − 1) = (1− x2)

L2 2(x) =x(x+ 1)

(1 + 1)(1 − 0)=x

2(x+ 1)

P2(x) =2∑

i=0

fiLi 2(x) = −3x

2(x− 1)− 1 + x2 + 3

x

2(x+ 1) =

Page 99: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.1. POLINOMIO INTERPOLANTE DI LAGRANGE 99

= −3

2x(x− 1− x− 1) + x2 − 1 =

= 3x+ x2 − 1

Consideriamo adesso il problema che si ha quando si aggiunge una cop-pia (xn+1, fn+1) all’insieme delle ascisse d’interpolazione che analizzavamo.Nel caso della base di Lagrange non possiamo semplicemente aggiungere lanuova componente alla base, poichè dobbiamo ricalcolare nuovamente tuttii suoi elementi con il nuovo insieme di ascisse di interpolazione. Definiamoquindi una nuova base che ci permetta di costruire il polinomio interpolantein modo più efficiente.

Listing 5.3: Interpolazione polinomiale con base di Lagrange�1 � ����� ����� [px]=lagrange(x,f,k)2

3 % LAGRANGE Interpolazione con base di Lagrange.4 % [px]=lagrange(x,f,k) restituisce in px il valore del5 % polinomio interpolante i punti (x_i,f_i) calcolato6 % nel punto k. Il polinomio interpolante e’ determinato7 % in base di Lagrange.8 %9 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti

10 % Fri Jun 21 16:52:18 CEST 200411 px=0;12 n= ��� � ��� � (x);13 ��� � i=1:n14 p=1;15 % calcolo il termine L_in di Lagrange16 ����� j=1:n17 �� j~=i18 p=p.∗(k−x(j))./(x(i)−x(j));19 �����20 �����21 px=px+f(i).∗p;22 �����23 ������� ���

� �

Listing 5.4: Interpolazione polinomiale con base di Lagrange ottimizzata�1 � ����� ����� [px]=lagrange_ott(x,f,k)2

3 % LAGRANGE_OTT Interpolazione con base di Lagrange ottimizzata.4 % [px]=lagrange_ott(x,f,k) restituisce in px il valore del5 % polinomio interpolante i punti (x_i,f_i) calcolato6 % nel punto k. Il polinomio interpolante e’ determinato7 % in base di Lagrange.8 %9 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti

10 % Fri Jun 21 16:52:18 CEST 2004

Page 100: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

100 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

11 n= ��� � ����� (x);12 % controllo che k non sia un punto da interpolare13 � ( � � � (x(:) == k)>0)14 ����� � � (’Il punto cercato appartiene ai punti da interpolare’);15 � ���16 p=ones(n,1);17 ����� i=1:n18 ��� � j=1:n19 � j~=i20 p(i)=p(i).∗(x(i)−x(j));21 � ���22 � ���23 p(i)=f(i)./p(i);24 �����25 q=1;26 s=0;27 ����� i=1:n28 a=k−x(i);29 q=q.∗a;30 s=s+p(i)./a;31 �����32 px=q.∗s;33 �����������

� �

Esempi di lagrange.m da pag. 186

5.2 Polinomio Interpolante di Newton

Supponiamo che il polinomio interpolante Pn appartenga allo spazio deipolinomi:

Πn =< w0(x), w1(x), . . . , wn(x) >

Page 101: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.2. POLINOMIO INTERPOLANTE DI NEWTON 101

dove i wi(x) sono la base di Newton così definita:

w0(x) = 1

w1(x) = x− x0

...

wi(x) =i−1∏

j=0

(x− xj)

...

wn(x) =

n−1∏

j=0

(x− xj)

Con questa base dunque il polinomio interpolante può essere espresso nellaforma:

Pn(x) =n∑

i=0

Aiwi(x)

Supponiamo di avere ora un’ulteriore coppia (xn+1, fn+1). Vogliamo che

Pn+1(x) = Pn(x)︸ ︷︷ ︸

base

+An+1 · wn+1(x)

Per definizione di w risulta:

Pn+1(xk) = Pn(xk) +An+1 · wn+1(xk)︸ ︷︷ ︸

= 0

= f(k) k = 0, . . . , n

e deve accadere:

fn+1 = Pn(xn+1) +An+1 · wn+1(xn+1)︸ ︷︷ ︸

6= 0

cioè An+1 =fn+1 − Pn(xn+1)

wn+1(xn+1)

Diamo ora una definizione più conveniente di An+1.

An+1 =fn+1

wn+1(xn+1)− Pn(xk+1)

wn+1(xn+1)=

=fn+1

n∏

j=0

(xn+1 − xj)

− 1n∏

j=0

(xn+1 − xj)

·n∑

i=0

fi ·

n∏

j=0

j 6=i

(xn+1 − xj)

n∏

j=0

j 6=i

(xi − xj)

=

Page 102: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

102 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

=fn+1

n∏

j=0

(xn+1 − xj)

− 1

(xn+1 − xi)·

n∑

i=0

fin∏

j=0

j 6=i

(xi − xj)

=

=fn+1

n∏

j=0

(xn+1 − xj)

−n∑

i=0

fi

xn+1 − xi· 1

n∏

j=0

j 6=i

(xi − xj)

=

=fn+1

n∏

j=0

(xn+1 − xj)

+

n∑

i=0

fi

xi − xn+1· 1

n∏

j=0

j 6=i

(xi − xj)

=

=fn+1

n∏

j=0

(xn+1 − xj)

+

n∑

i=0

fi

n+1∏

j=0

j 6=i

(xi − xj)

=

=fn+1

n+1∏

j=0

j 6=n+1

(xn+1 − xj)

+

n∑

i=0

fi

n+1∏

j=0

j 6=i

(xi − xj)

=

=

n+1∑

i=0

fi

n+1∏

j=0

j 6=i

(xi − xj)

Definizione 5.2 La definizione del coefficiente k-esimo è:

Ak =

k∑

i=0

fi

w′k+1(xi)

dove

wk+1(x) =

k∏

j=0

(x− xj)

w′k+1(x) =

k∑

j=0

k∏

i6=ji=0

(x− xi)

I coefficienti Ak sono chiamati differenze divise e talvolta sono rappresentatecome

f [x0, . . . , xk] =k∑

i=0

fi

w′k+1(xi)

Page 103: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.2. POLINOMIO INTERPOLANTE DI NEWTON 103

per indicare differenze divise di ordine k, con k + 1 ascisse.Vediamone adesso alcune proprietà importanti:

1. godono della proprietà simmetrica, cioè fissati x0, x1, . . . , xn ed unordinamento in che è una permutazione di {0, 1, . . . , n} si ha

f [x0, x1, . . . , xn] = f [xi0 , xi1 , . . . , xin ]

2. vale la proprietà di linearità cioè

f [x0, x1, . . . , xk] = αg[x0, x1, . . . , xk] + βh[x0, x1, . . . , xk]

3. è possibile esprimere f [x0, x1, . . . , xk] in funzione di due differenzedivise con k − 1 ascisse, cioè

f [x0, x1, . . . , xk] =f [x1, x2, . . . , xk]− f [x0, x1, . . . , xk−1]

xk − x0

Forniamo anche la dimostrazione di quest’ultima proprietà:DIMOSTRAZIONE:Per la definizione di differenza divisa si ha:

f [x0, x1, . . . , xk] =

k∑

i=0

fi

w′k+1(xi)

=

k∑

i=0

fi

k∏

j 6=ij=0

(xi − xj)

quindi

f [x0, x1, . . . , xk−1] =

k−1∑

i=0

fi

w′k(xi)

f [x1, x2, . . . , xk] =k∑

i=1

fi

w′k+1(xi)

Segue che

f [x1, x2, . . . , xk]− f [x0, x1, . . . , xk−1]

xk − x0=

=

k∑

i=1

fi

k∏

j 6=ij=1

(xi − xj)

−k−1∑

i=0

fi

k−1∏

j 6=ij=0

(xi − xj)

· 1

xk − x0=

Page 104: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

104 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

=1

xk − x0·

k∑

i=1

fi(xi − x0)k∏

j 6=ij=0

(xi − xj)

−k−1∑

i=0

fi(xi − xk)k∏

j 6=ij=0

(xi − xj)

=

=1

xk − x0·

k∑

i=0

fi(xi − x0 − xi + xk)k∏

j 6=ij=0

(xi − xj)

=

k∑

i=0

fi

k∏

j 6=ij=0

(xi − xj)

2

In questo modo si possono calcolare le differenze divise con un algoritmoricorsivo, di complessità O(n2).Consideriamo inoltre la seguente ottimizzazione, dato ad esempio:

P3(x) = a0 + a1x+ a2x2 + a3x

3 = a0 + x[a1 + x(a2 + a3x)]

risultando wi+1(x) = wi(x)(x − xi), otteniamo che

P3(x) = A0w0(x) +A1w1(x) +A2w2(x) +A3w3(x) =

= A0 +A1(x− x0) +A2(x− x1)(x− x0) +A3(x− x2)(x− x1)(x− x0) =

= A0 + (x− x0)[A1 + (x− x1)[A2 +A3(x− x2)]]

Il calcolo appena effettuato è una esemplificazione di come l’algoritmo di

Horner valuti il polinomio interpolante in forma di Newton:

Pn(x) =

n∑

i=0

Aiwi(x)

Listing 5.5: Interpolazione polinomiale con base di Newton�1 ������������� newtonhorneruni(f, a, b, n, na)2

3 % NEWTONHORNERUNI Interpola la f con Horner.4 % newtonhorneruni(f, a, b, n, na) visualizza il polinomio5 % interpolante di Newton calcolato con l’algoritmo di6 % Horner della funzione f.7 %8 % I parametri a,b sono gli estremi dell’intervallo dove9 % si vuol valutare la funzione.

10 %11 % Il parametro na rappresenta il numero delle ascisse di12 % interpolazione ed n e’ il numero di punti per disegnare13 % il grafico del polinomio.14 %

Page 105: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.2. POLINOMIO INTERPOLANTE DI NEWTON 105

15 % Le ascisse sono equispaziate.16 %17 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti18 % Fri Jun 21 16:52:18 CEST 200419

20 % definisco le ascisse e le ord. per disegnare il grafico21 xtab=a:(b−a)./(n−1):b;22 % definisco e calcolo i punti da interpolare23 x=a:(b−a)./(na−1):b;24 y= ����� ��� (f,x);25 % calcolo le differenze divise26 A=differenzedivise(x,y);27 % utilizzo horner per calcolarmi i valori del28 % polinomio interpolante29 px=horner(A,x,xtab);30 ������ on;31 ������ (xtab,px,’r’,x,y,’ko’);32 ezplot(f,[a,b]);33 ��� � on;34 ������� ���

� �

Esempi di newtonhorneruni.m da pag. 187

Listing 5.6: Valutazione di un polinomio in un punto�1 � ����� ����� [px]=horner(A,x,xtab)2

3 % HORNER Calcola il valore del polinomio con Horner.4 % [px]=horner(A,x,xtab) restituisce i valori del5 % polinomio nelle ascisse xtab utilizzando l’algoritmo6 % di Horner.7 %8 % Il parametro A sono le differenze divise mentre x9 % sono le ascisse di interpolazione.

10 %11 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti12 % Fri Jun 21 16:52:18 CEST 200413

14 n= ��� � ��� � (A);15 m= ��� � ��� � (x);16 �� (n==m)17 px(1: ��� � ����� (xtab))=A(n);18 ����� i=n−1:−1:119 px=A(i)+(xtab−x(i)).∗px;20 �����21 ��� ���22 ����� ��� (’Diffenze divise e ascisse devono coincidere in numero’);23 �����24 ������� ���

� �

Page 106: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

106 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

Listing 5.7: Calcolo delle differenze divise�1 ������������� [A]=differenzedivise(x,f)2

3 % DIFFERENZEDIVISE Restituisce le differenze divise4 % [A]=differenzedivise(x,f) restituisce le differenze5 % relative alle coppie (x_i, f_i)6 %7 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti8 % Fri Jun 18 09:45:10 CEST 20049

10 n= ��� � ����� (x);11 m= ��� � ����� (f);12

13 �� (n==m)14 A=f;15

16 % calcolo le differenze divise utilizzando17 % la proprieta’ che esse possono essere definite18 % in funzione di differenze divise con meno ascisse.19 ��� � k=1:(n−1)20 ��� � j=(n):−1:(k+1)21

22 A(j)=(A(j)−A(j−1))./(x(j)−x(j−k));23

24 � ���25 � ���26 ����� �27 ��������� (’Ascisse e ordinate devono corrispondere in numero’);28 �����29 �����������

� �

La complessità dell’algorimo di Horner è dell’ordine di O = (3n). Un altrometodo che analizzeremo è l’algoritmo di Neville:

Pn{x0,x1,...,xn}(x)

questo viene scomposto in due polinomi dove si elimina rispettivamentel’ultimo e il primo elemento

Pn−1{x0,...,xn−1}(x) , Pn−1{x1,...,xn}(x)

allora ci chiediamo se è vera la seguente equazione

Pn{x0,x1,...,xn}(x) =(x− x0)Pn−1{x1,...,xn}(x) + (xn − x)Pn−1{x0,...,xn−1}(x)

xn − x0

Per far questo calcoliamo il polinomio appena scritto nei punti interni all’in-tervallo {x0, x1, . . . , xn} e cioè

Pn{x0,x1,...,xn}(xj) =(xj − x0)Pn−1{x1,...,xn}(xj) + (xn − xj)Pn−1{x0,...,xn−1}(xj)

xn − x0=

=fj(xj − x0 + xn − xj)

xn − x0= fj j = 1, . . . , n− 1

Page 107: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.2. POLINOMIO INTERPOLANTE DI NEWTON 107

Segue che interpola abbastanza bene per i punti interni, ma non sappiamocome si comporta considerando gli estremi:

Pn{x0,x1,...,xn}(x0) =(xn − x0)f0

xn − x0= f0

Pn{x0,x1,...,xn}(xn) =(xn − x0)fn

xn − x0= fn

Abbiamo visto quindi che si comporta bene ovunque. Definiamo adessoalcune notazioni:

Definizione 5.3 Il valore dell’unico polinomio di Neville di grado k che è

calcolato in x è definito come segue

Ti k = Pk{xi−k,...,xi}(x) =

=(x− xi−k)Ti k−1 + (xi − x)Ti−1 k−1

xi − xi−k

=

= Ti k−1 +x− xi

xi − xi−k(Ti k−1 − Ti−1 k−1)

Abbiamo cioè ottenuto la definizione del polinomio attraverso un termi-ne sommato ad una correzione dei precedenti, condizione assai preferibilerispetto alle formule già viste.

f0 T0 0

↘f1 T1 0 → T1 1

↘ ↘f2 T2 0 → T2 1 → T2 2...

... ↘ ↘fn Tn 0 → Tn 1 → . . . → Tn n

si noti che Ti,k interpola su tutte le ascisse e l’aggiunta di una nuova ascissacomporta solo l’aggiunta di una nuova riga e quindi il costo è lineare. Ilcosto dell’intero algoritmo è O(n2).

Listing 5.8: Interpolazione polinomiale con Neville�1 � ����� ����� newtonnevilleuni(f, a, b, n, na)2

3 % NEWTONNEVILLEUNI Interpola la f con Neville.4 % newtonnevilleuni(f, a, b, n, na) visualizza il polinomio5 % interpolante di Newton calcolato con l’algoritmo di6 % Neville della funzione f.7 %8 % I parametri a,b sono gli estremi dell’intervallo dove

Page 108: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

108 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

9 % si vuol valutare la funzione.10 %11 % Il parametro na rappresenta il numero delle ascisse di12 % interpolazione ed n e’ il numero di punti per disegnare13 % il grafico del polinomio.14 %15 % Le ascisse sono equispaziate.16 %17 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti18 % Fri Jun 21 16:52:18 CEST 200419

20 % definisco le ascisse e le ord. per disegnare il grafico21 xtab=a:(b−a)./(n−1):b;22 % definisco e calcolo i punti da interpolare23 x=a:(b−a)./(na−1):b;24 y= ����� ��� (f,x);25 % utilizzo neville per calcolarmi i valori del26 % polinomio interpolante27 px=neville(x,y,xtab);28 ���� � on;29 ���� � (xtab,px,’r’,x,y,’ko’);30 ezplot(f,[a,b]);31 ������ on;32 �����������

� �

Listing 5.9: Calcolo polinomio con Neville�1 ������������� [p]=neville(x,f,xtab)2

3 % NEVILLE Calcola il valore del polinomio con Neville.4 % [p]=neville(x,f,xtab) restituisce i valori del5 % polinomio nelle ascisse xtab utilizzando l’algoritmo6 % di Neville.7 %8 % Le x sono le ascisse di interpolazione, le f le9 % ordinate.

10 %11 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti12 % Fri Jun 21 16:52:18 CEST 200413 n= ��� � ����� (x);14 m= ��� � ����� (f);15 �� (m==n)16 ��� � j=1: ��� � ����� (xtab)17 px=f;18 ��� � i=1:n19 ��� � k=n:−1:i+120 px(k)=px(k)+(px(k)−px(k−1)).∗((xtab(j)−x(k))...21 ./(x(k)−x(k−i)));22 � ���23 � ���24 p(j)=px(n);25 � ���26 ����� �

Page 109: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.3. CONDIZIONAMENTO DEL PROBLEMA 109

27 ����� ��� (’Ascisse e ordinate devono corrispondere in numero’);28 �����29 ������� ���

� �

Esempi di neville.m da pag. 189

5.3 Condizionamento del problema

Assumiamo che non ci siano perturbazioni sulle ascisse, cioè invece che ave-re le coppie del tipo (xi, fi) con i = 0, . . . , n si hanno dei dati perturbati(xi, fi) con i = 0, . . . , n. Si suppone cioè di avere solo errori di misura, dicalcolo dei valori della funzione. In questo modo il polinomio interpolanteè espresso, rispettivamente nel caso teorico e in quello perturbato

Pn(x) =

n∑

i=0

fiLi n(x) , Pn(x) =

n∑

i=0

fiLi n(x)

L’ errore d’ingresso e di uscita sono quindi dati da:

εIn = maxi=0,...,n

|fi − fi| εOut = maxx∈[a,b]

|Pn(x), Pn(x)| = ||Pn(x)− Pn(x)||∞

Quindi usando la formula di Lagrange di prima otteniamo

Pn(x)− Pn(x) =

n∑

i=0

(fi − fi)Li n(x)

e passando ai valori assoluti, per stimare una maggiorazione, abbiamo

|Pn(x)− Pn(x)| =

n∑

i=0

|fi − fi|Li n(x) ≤n∑

i=0

|fi − fi||Li n(x)| ≤

≤ maxj=0,...,n

|fj − fj|n∑

i=0

|Li n(x)|

Quindi

max |Pn(x)− Pn(x)| ≤ maxj=0,...,n

|fj − fj| · maxx∈[a,b]

n∑

i=0

|Li n(x)|︸ ︷︷ ︸

Λn

Page 110: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

110 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

dove Λn è detta costante di Lebesgue, è un coefficiente che misura una “am-plificazione” dell’errore e dipende dalle ascisse di interpolazione x0, . . . , xn.Studiamo allora il condizionamento del problema in base alle scelte che sifanno sulle ascisse. É stato stimato che il coefficiente di amplificazione Λn

cresce esponenzialmente scegliendo ascisse uniformemente spaziate, men-tre con una scelta più oculata, per esempio le ascisse di Chebyshev, tale cre-scita è logaritmica, cioè estremamente più lenta.In particolare, se n→∞:

Ascisse di Chebyshev Λn ' 2π

log n

Ascisse equispaziate Λn ' 2n+1

en log n

Vediamo ora come si ottengono le appena citate ascisse di Chebyshev.

Definizione 5.4 Sono definite nell’intervallo [−1, 1] come segue:

xi = cosπ(2i + 1)

2n+ 2

Se volessimo tuttavia generalizzare l’intervallo di considerazione ad [a, b], ladefinizione cambierebbe in

xi =a+ b

2+b− a

2cos

π(2i + 1)

2n+ 2

É preferibile usare questo tipo di ascisse nei calcoli, ma non è sempre pos-sibile poichè non sempre siamo a conoscenza di tutti i valori delle f(xi). Ilcalcolo delle ascisse di Chebyshev ha complessità lineare.

Listing 5.10: Ascisse di Chebyshev�1 ������������� [x]=chebyshev(a,b,n)2

3 % CHEBYSHEV Calcola le ascisse di Chebyshev4 % [x]=chebyshev(a,b,n) restituisce n ascisse di Chebyshev5 % relative all’intervallo [a,b]6 %7 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti8 % Fri Jun 18 09:45:10 CEST 20049 ab=(a+b)./2;

10 ba=(b−a)./2;11 % calcolo le ascisse12 i=1:1:n;13 x= ����� � � (1,n);14 x(:)= � � � ( � ∗(1+2.∗i(:))/(2∗n+2));15 % normalizzo per l’intervallo [a,b]16 x=ab+ba.∗x;17 �����������

� �

Page 111: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.3. CONDIZIONAMENTO DEL PROBLEMA 111

Listing 5.11: Interpolazione polinomiale con algoritmo di Horner e ascissedi Chebyshev�

1 � ����� ����� newtonhornercheby(f, a, b, n, na)2

3 % NEWTONHORNERCHEBY Interpola la f con Horner.4 % newtonhornercheby(f, a, b, n, na) visualizza il polinomio5 % interpolante di Newton calcolato con l’algoritmo di6 % Horner della funzione f.7 %8 % I parametri a,b sono gli estremi dell’intervallo dove9 % si vuol valutare la funzione.

10 %11 % Il parametro na rappresenta il numero delle ascisse di12 % interpolazione ed n e’ il numero di punti per disegnare13 % il grafico del polinomio.14 %15 % Le ascisse sono determinate con Chebyshev.16 %17 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti18 % Fri Jun 21 16:52:18 CEST 200419

20 % definisco le ascisse e le ord. per disegnare il grafico21 xtab=a:(b−a)./(n−1):b;22 % definisco e calcolo i punti da interpolare23 x=chebyshev(a,b,na);24 y= ����� ��� (f,x);25 % calcolo le differenze divise26 A=differenzedivise(x,y);27 % utilizzo horner per calcolarmi i valori del28 % polinomio interpolante29 px=horner(A,x,xtab);30 ������ on;31 ������ (xtab,px,’r’,x,y,’ko’);32 ezplot(f,[a,b]);33 ��� � on;34 ������� ���

� �

Esempi di newtonhornercheby.m da pag. 188

Listing 5.12: Interpolazione polinomiale con algoritmo di Neville e ascissedi Chebyshev�

1 � ����� ����� newtonnevillecheby(f, a, b, n, na)2

3 % NEWTONNEVILLECHEBY Interpola la f con Neville.4 % newtonnevillecheby(f, a, b, n, na) visualizza il polinomio5 % interpolante di Newton calcolato con l’algoritmo di6 % Neville della funzione f.

Page 112: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

112 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

7 %8 % I parametri a,b sono gli estremi dell’intervallo dove9 % si vuol valutare la funzione.

10 %11 % Il parametro na rappresenta il numero delle ascisse di12 % interpolazione ed n e’ il numero di punti per disegnare13 % il grafico del polinomio.14 %15 % Le ascisse sono determinate con Chebyshev.16 %17 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti18 % Fri Jun 21 16:52:18 CEST 200419

20 % definisco le ascisse e le ord. per disegnare il grafico21 xtab=a:(b−a)./(n−1):b;22 % definisco e calcolo i punti da interpolare23 x=chebyshev(a,b,na);24 y= ����� ��� (f,x);25 % utilizzo neville per calcolarmi i valori del26 % polinomio interpolante27 px=neville(x,y,xtab);28 ���� � on;29 ���� � (xtab,px,’r’,x,y,’ko’);30 ezplot(f,[a,b]);31 ������ on;32 �����������

� �

Esempi di newtonnevillecheby.m da pag. 190

5.4 Errore di interpolazione

Facciamo ora alcune considerazioni sull’errore d’interpolazione, cioè comeuna funzione può essere approssimata con il polinomio interpolante. Abbia-mo

Pn(x) =n∑

i=0

f [x0, x1, . . . , xi]wi(x) con wi(x) =i−1∏

k=0

(x− xk)

e queste sono date dalle coppie (xi, fi) con i = 0, . . . , n e xi 6= xj ∀i 6= j.L’ errore di interpolazione è dato da

En(x) = f(x)− Pn(x)

dove x è un punto non compreso nelle ascisse di interpolazione.Indichiamo con Pn+1(x) il polinomio interpolante di grado n + 1 ottenutocon le coppie (xi, fi) e la coppia (x, f(x)). Abbiamo

Pn+1(x) = Pn(x) + f [x0, x1, . . . , xn, x]wn+1(x)

Page 113: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.4. ERRORE DI INTERPOLAZIONE 113

e visto che, per costruzione

Pn+1(x) = f(x)

segue che

En(x)︷ ︸︸ ︷

f(x)− Pn(x) = Pn+1(x)− Pn(x) = f [x0, x1, . . . , xn, x]wn+1(x)

dove si noti che wn+1(x) non dipende dalla interpolazione. funzione.

Lemma 5.5 Sia f della classe Cn+1([a, b]) e (x0, x1, . . . , xn, x) ∈ [a, b]. Allora

∃ξ ∈ [a, b] tale che

f [x0, x1, . . . , xn, x] =f (n+1)(ξ)

(n+ 1)!

E conseguentemente

En(x) =f (n+1)(ξ)

(n+ 1)!wn+1(x)

DIMOSTRAZIONE:Consideriamo la funzione

g(x) = f(x)− Pn+1(x)

Questa si annulla in tutti gli xi ed in x, cioè in (n+ 2) punti distinti appar-tenenti all’intervallo [a, b]. Quindi

• g′ avrà (n+ 1) zeri distinti nell’intervallo

• g′′ avrà (n) zeri distinti nell’intervallo

• ...

• g(n+1) avrà uno zero nell’intervallo, chiamiamolo ξ

Risulta

0 = g(n+1)(ξ) = f (n+1)(ξ)− P (n+1)n+1 (ξ) =

= f (n+1)(ξ)− (n+ 1)!f [x0, x1, . . . , xn, x]

da cui la tesi. 2

Vediamo la conseguenza di questo teorema: se f è sufficientemente regolarein [a, b],∃ξ tale che

En(x) =f (n+1)(ξ)

(n+ 1)!wn+1(x)

Quindi

||En||∞ = maxx∈[a,b]

|En(x)| ≤ ||f(n+1)||∞

(n+ 1)!||wn+1(x)||∞

Page 114: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

114 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

Ma, in base alla regolarità di f ed in base al fatto che

|wn+1(x)| =n∏

i=0

|x− xi|

Si ha

||En||∞ ≤Mn+1

(n+ 1)!(b− a)n+1

che, per n→∞ converge a 0.Nella formula precedente

Mn+1 = maxx∈[a,b]

∣∣∣f (n+1)

∣∣∣

è una costante che rappresenta un limite superiore alla derivata n+1-esimadella funzione.

Teorema 5.6 (di Jackson) Sia f ∈ C0([a, b]). Risulta

||En(f)||∞ ≤Mf (1+Λn)·ω·(

f,b− an

)

dove ω(f,∆) = supx,y∈[a,b]|x−y|≤∆

|f(x)−f(y)|

Se f ∈ C1([a, b]) allora

|f(x)− f(y)| = |f ′(ξ)| · |x− y| ≤ |f ′(ξ)|∆ ≤ Cf∆

dove Cf è una costante che limita la derivata prima.

Corollario 5.7 Se f ∈ C1([a, b]) allora ∃ Cf tale che

||En(f)||∞ ≤MfCfb− an

(1 + Λn)

5.5 Splines

Abbiamo visto che nei metodi definiti in precedenza non necessariamenteall’aumentare del grado del polinomio interpolante si osserva un migliora-mento dell’approssimazione. Anzi, in generale accade proprio il contrario,infatti aumentano le oscillazioni fra i punti. Sapendo che con la diminu-zione dell’ampiezza dell’intervallo l’approssimazione migliora, nasce l’ideadi suddividere questo in tanti sotto-intervalli. Questa è appunto l’idea dellesplines.Una spline di grado m e nodi (x0, x1, . . . , xn) è una funzione polinomiale atratti. Essa è una funzione del tipo

S : [a, b]→ R

con a = x0 < x1 < . . . < xn = b. Valgono inoltre le seguenti proprietà:

Page 115: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.5. SPLINES 115

1. S[xi,xi+1] ∈ Πm ∀ i = 0, 1, . . . , n− 1

2. S ∈ Cm−1([a, b])

3. Πm ⊆ Sm∆n

dove Sm∆n

è uno spazio di funzioni e indichiamo con ∆n l’insieme dei nodi,cioè la partizione. Una spline si dice lineare se m = 1, quadratica se m = 2mentre cubica se m = 3.

x

y

x x x x x0 1 2 3 4=ba=

Figura 5.1: Funzione spline

5.5.1 Splines cubiche interpolanti nei nodi

Siano date (n+ 1) coppie (xi, fi) con i = 0, 1, . . . , n e sia

a = x0 < x1 < . . . < xn−1 < xn = b

l’insieme dei punti da interpolare. Fisso lo spazio per questo tipo di splinecon S3

∆n.

I gradi di libertà2 di una generica linea spezzata sono n(m+ 1) visto che intutti gli n intervalli si cerca un polinomio di grado m, mentre per una splinegenerica diventano n+m, infatti

dimSm∆n

= n(m+ 1)−m(n− 1) = n+m

Questo deriva dal fatto che il polinomio di ogni intervallino è della classeCm−1 e dobbiamo imporre delle restrizioni affinché ci sia un raccordo fra ivari tratti in ognuno di n− 1 punti interni. Dunque nel caso di splines cubi-che la dimensione dello spazio è n+3. Notiamo che finora abbiamo cercato

2il numero di condizioni da imporre per determinare univocamente una spline all’internodi uno spazio di funzioni, sono pari alla dimensione dello spazio

Page 116: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

116 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

S(x) = fi dove le x sono le ascisse d’interpolazione e queste sono proprion+1 condizioni. D’altra parte abbiamo appena dimostrato che necessitiamodi n+ 3 condizioni nel caso cubico. Le due condizioni ausiliarie da imporresaranno stabilite agli estremi dell’intervallo.Introduciamo adesso il concetto di momento (derivata seconda della spli-ne):

Mi = S′′(xi) i = 0, 1, . . . , n

Vediamo adesso una proposizione interessante:

Proposizione 5.8 Sia ϕ ∈ Sp∆i con p > 1, allora ϕ′ ∈ Sp−1

∆i

Quindi la derivata seconda di una spline cubica in un intervallo Ii è unafunzione lineare, infatti

S′′(x) = Mixi+1 − xhi+1

+Mi+1x− xi

hi+1con hi+1 = xi+1 − xi

e questo ∀ x ∈ [xi, xi+1] e i = 0, . . . , n− 1. Questa equazione è l’espressionedella retta passante per i due punti (xi,Mi) e (xi+1,Mi+1). Integrando duevolte si ha

S(x) = Mi(xi+1 − x)3

6hi+1+Mi+1

(x− xi)3

6hi+1+Ai(x− xi) +Bi

e questo sempre ∀ x ∈ [xi, xi+1] e i = 0, . . . , n− 1.Il nostro obiettivo è dunque

{S(xi) = fi

S(xi+1) = fi+1⇒

{

Mih2

i+1

6 +Bi = fi

Mi+1h2

i+1

6 +Aihi+1 +Bi = fi+1

Quindi risolvendo i termini Ai e Bi:{

Bi = −Mih2

i+1

6 + fi

Ai = 1hi+1

(fi+1 −Bi)−Mi+1hi+1

6 =fi+1−fi

hi+1− hi+1

6 (Mi+1 −Mi)

Per determinare univocamente la funzione manca solo da raccordare le de-rivate prime fra intervalli adiacenti in nodi interni. Quindi la derivata primaè

S′(x) = Ai −Mi(xi+1 − x)2

2hi+1+Mi+1

(x− xi)2

2hi+1∀ x ∈ [xi, xi+1]

Visto che dobbiamo calcolarla in xi, diventa:

S′(xi)+ = Ai −

hi+1

2Mi

S′(xi)− = Ai−1 +

hi

2Mi

Page 117: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.5. SPLINES 117

dobbiamo imporre la giunzione delle splines nel punto xi quindi

fi+1 − fi

hi+1− hi+1

6(Mi+1−Mi)−

hi+1

2Mi =

fi − fi−1

hi− hi

6(Mi−Mi−1)+

hi

2Mi

per tutti i nodi interni, cioè i = 1, . . . , n − 1. Riscrivendo questa equazioneotteniamo

hiMi−1 + 2(hi + hi+1)Mi + hi+1Mi+1 = 6

[fi+1 − fi

hi+1− fi − fi−1

hi

]

dividiamo per hi + hi+1 e poniamo λi = hi+1

hi+hi+1e µi = 1− λi e quindi

µiMi−1+2Mi+λiMi+1 =6

hi + hi+1

[fi+1 − fi

hi+1− fi − fi−1

hi

]

︸ ︷︷ ︸

di

i = 1, . . . , n−1

Splines Cubiche Naturali

Le spline di questo tipo soddisfano le condizioni:

1. S′′(x0) = 0⇒M0 = 0

2. S′′(xn) = 0⇒Mn = 0

Ottengo così un sistema di equazioni di tipo tridiagonale come segue

2 λ1 0 . . . 0

µ2 2 λ2...

0. . . . . . . . . 0

.... . . . . . λn−2

0 . . . 0 µn−1 2

M1.........

Mn−1

=

d1.........

dn−1

segue che esiste ed è unica la soluzione.3

Listing 5.13: Spline cubica naturale�1 � ����� ����� � ���� �� (F,x,npassi)2

3 % SPLINE Disegna la spline cubica interpolante.4 % spline(F,x,npassi) disegna la spline cubica interpolante5 % le coppie (x,F(x)), con x vettore delle ascisse ed f nome6 % della funzione da interpolare.7 %8 % Il parametro npassi rappresenta il numero di punti utilizzati

3N.B. La soluzione esiste unica in quanto la matrice tridiagonale è strettamente a dia-gonale dominante e dunque non singolare, quindi è fattorizzabile LU. La complessitàdell’algorimo di risoluzione del sistema tridiagonale è O(3n).

Page 118: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

118 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

9 % per disegnare la funzione F.10 %11 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti12 % Fri Jun 18 09:14:20 CEST 200413

14 %n è il numero naturale corrispondente ad x_n15 n= ��� � ����� (x)−1;16

17 % ordino il vettore (perche’ le ascisse mi servono ordinate)18 x= ������� (x);19

20 % imposto gli estremi21 a=x(1); b=x(n+1);22

23 % calcolo gli h_i24 h= ����� � � (n,1);25 ����� i=1:n26 h(i)=x(i+1)−x(i);27 �����28

29 % calcolo l’ordinata dei punti da interpolare30 f(1:n+1)= ����� ��� (F,x(1:n+1));31

32 % vettore dei termini noti del sistema tridiagonale33 d= ����� � � (n−1,1);34 ����� i=2:n35 d(i−1)=6.∗((f(i+1)−f(i))/h(i)−((f(i)−f(i−1))/h(i−1)));36 �����37

38 % Imposto il sistema tridiagonale:39 % Nel vettore DIAGL memorizzo la diagonale.40 % Nel vettore LAMBDA memorizzo la sovradiagonale.41 % NOTA BENE :42 % Non passiamo a FATT_TRID_ALU la sottodiagonale MU poichè43 % essa è uguale alla sovradiagonale, per la proprietà44 %45 % lambda(i)=mu(i+1), per ogni i=1...n−246

47 ����� i=1:n−148 lambda(i)=h(i+1);49 diagl(i)=2∗(h(i)+h(i+1));50 �����51

52 % calcolo i momenti53 M= ����� � � (n+1,1);54 M(2:n)=fatt_trid_ALU_spline(lambda,diagl,n,d);55

56 %Calcolo i coefficienti della spline cubica naturale57 ����� i=1:n58 A(i)=(f(i+1)−f(i))/h(i)−(h(i)/6)∗(M(i+1)−M(i));59 B(i)=f(i)−h(i)^2/6∗M(i);60 �����61

62 % Procedo al calcolo dei valori assunti dalla

Page 119: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.5. SPLINES 119

63 % spline interpolante nei punti da noi considerati64 xtab=a:(b−a)/(npassi−1):b;65 interval=1;66 ��� � i=1:npassi67 ytab(i)= ����� ��� (F,xtab(i));68 �� xtab(i)>x(interval+1)69 interval=interval+1;70 �����71 s(i)=((xtab(i)−x(interval))^3)∗M(interval+1);72 s(i)=s(i)+((x(interval+1)−xtab(i))^3)∗M(interval);73 s(i)=s(i)/(6∗h(interval));74 s(i)=s(i)+A(interval)∗(xtab(i)−x(interval))+B(interval);75 �����76

77 % disegno spline e funzione originale78 ������ (xtab,ytab,’b’,xtab,s,’r’,x,f,’ko’);79 ��� � on;80 ������� ���

� �

Esempi di spline.m da pag. 190

Listing 5.14: Fattorizzazione matrice tridiagonale�1 � ����� ����� [x] = fatt_trid_ALU_spline(lambda,diagl,n,f)2

3 % FATT_TRID_ALU_SPLINE Risolve il sistema triadiagonale.4 % [x] = fatt_trid_ALU(A, f) risolve il sistema tridiagonale5 % Ax=f.6 %7 % La matrice A deve essere quadrata.8 % Il vettore LAMBDA rappresenta la sovradiagonale della9 % matrice tridiagonale.

10 % La diagonale è rappresentata dal vettore DIAGL.11 %12 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti13 % Fri Jun 18 09:45:10 CEST 200414

15

16 % Determino la sottodiagonale MU, sfruttando il fatto17 % che in questo caso sovradiagonale=sottodiagonale.18 mu=lambda;19

20 % triangolarizzazione di Gauss21 ��� � k=1:n−222 �� diagl(k)==023

� ��� � �

24 �����25 mu(k)=mu(k)./diagl(k);26 diagl(k+1)=diagl(k+1)−mu(k).∗lambda(k);

Page 120: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

120 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

27 f(k+1)=f(k+1)−mu(k).∗f(k);28 �����29

30 %Controllo che l’ultimo elemento della diagonale31 % non sia zero.32 �� diagl(n−1)==033

� ����� �

34 �����35

36 % risoluzione all’indietro del sistema37 f(n−1)=f(n−1)./diagl(n−1);38 ����� k=n−2:−1:139 f(k)=(f(k)−lambda(k).∗f(k+1))./diagl(k);40 �����41 % Metto nel vettore x il risultato.42 x=f;43 �����������

� �

Splines Cubiche Periodiche

La funzione da interpolare è periodica di periodo [a, b], abbiamo cioè

1. S′(x0) = S′(xn)

2. S′′(x0) = S′′(xn)⇒M0 = Mn

Esemplificando le condizioni precedenti con i calcoli fatti all’inizio del para-grafo, avremo che

A0 − h12 M0 = Mn

hn

2 +An−1 cioè−h1

2 M0 + f1−f0

h1− h1

6 (M1 −M0) = hn

2 Mn + fn−fn−1

hn− hn

6 (Mn −Mn−1)

da cui, moltiplicando per 6 otteniamo che

−h1

3M0 −

h1

6M1 +

f1 − f0

h1=

hn

3Mn +

fn − fn−1

hn+hn

6Mn−1

2h1M0 + h1M1 + 2hnMn + hnMn−1 = 6

[f1 − f0

h1− fn − fn−1

hn

]

hnMn−1 + 2(h1 + hn)M0 + h1M1 = 6

[f1 − f0

h1− fn − fn−1

hn

]

con le definizioni di λ e µ fatte in precedenza e ricordando che, per laperiodicità delle spline, f0 = fn e h0 = hn, possiamo scrivere

µ0Mn−1 + 2M0 + λ0M1 =6

h1 + hn

[f1 − f0

h1− f0 − fn−1

hn

]

Page 121: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.5. SPLINES 121

in questo modo dovremo risolvere il sistema definito

2 λ0 0 . . . 0 µ0

µ1 2 λ1 0

0. . . . . . . . .

......

. . . . . . . . . 00 µn−2 2 λn−2

λn−1 0 . . . 0 µn−1 2

M0............

Mn−1

=

d0............

dn−1

La matrice dei coefficienti appena presentata è quasi tridiagonale, comun-que a diagonale dominante, perciò esiste ed è unica la soluzione.

Considerazioni finali sulle spline

Supponendo cheH = max(hi) h = min(hi)

inoltre supponiamo che f ∈ C4([a, b]) si ha la seguente stima dell’errore:

||f(x)− S(x)||∞ ≤7

8M4

H

hH4 =

7

8M4

H5

h

dove M4 dipende dalla funzione. Si noti che il rapporto Hh

deve rimane-re limitato quindi la condizione migliore si presenta nel momento in cui leascisse sono uniformemente distribuite, situazione contraria al caso dellefunzioni polinomiali. Inoltre se H → 0 allora anche l’errore tenderebbe a 0.

Proposizione 5.9 Le spline cubiche naturali hanno un’importante proprietà:

Data una funzione y ∈ C2([a, b]) interpolante le coppie (xi, fi) con i = 0, . . . , n,

si ha ∫ xn

x0

S(x)2dx ≤∫ xn

x0

y(x)2dx

dove questi integrali delle derivate seconde prendono il nome di indice di Sard

e rappresentano una misura del grado di oscillazione della funzione.

DIMOSTRAZIONE:Abbiamo che

y(x) = S(x) + (y(x)− S(x))

Elevando al quadrato entrambi i termini e passando agli integrali∫ xn

x0

y(x)2dx =

∫ xn

x0

S(x)2dx+

∫ xn

x0

(

y(x)− S(x))2dx+2

∫ xn

x0

S(x)(

y(x)− S(x))

dx

Page 122: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

122 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

la disuguaglianza che vogliamo dimostrare risulta vera se l’ultimo integraleè nullo, cioè se4

∫ xn

x0

S(x)(

y(x)− S(x))

dx = S(x)(

ý(x)− S(x)) ∣∣∣

xn

x0

−∫ xn

x0

S”’(x)(

ý(x)− S(x))

dx =

dove S(x0) = S(xn) = 0 per definizione di spline naturale e quindi il terminenon integrato si annulla, inoltre S”’(x) non è continua ma costante a tratti(la derivata terza di una funzione cubica, quindi è una costante). Quindi

= −n−1∑

i=0

∫ xi+1

xi

S”’(x)(

ý(x)− S(x))

dx =

= −n−1∑

i=0

S”’i(x)∫ xi+1

xi

(

ý(x)− S(x))

dx =

= −n−1∑

i=0

S”’i(x) (y(x)− S(x))∣∣∣

xi+1

xi

= 0

dal momento che y ed S sono interpolanti nei nodi e dunque uguali negliestremi. 2

5.6 Minimi Quadrati

Mentre con i metodi precedenti cercavamo dei polinomi che passassero esat-tamente nei punti assegnati, discutiamo adesso il caso in cui si ricerchi unafunzione che approssimi i punti dati. Questa ricerca è dovuta al fatto che avolte abbiamo una enorme quantità di dati, spesso affetti da errore e neces-sariamente deve venir meno la condizione di passaggio per i punti (xi, fi)con i = 0, 1, . . . , n.Consideriamo come spazio delle funzioni

S =< ϕ0(x), ϕ1(x), . . . , ϕm(x) >

quello che faremo è assumere che m sia molto minore di n.Quando si parla di approssimazione dei minimi quadrati si vuole definire

una funzione dello spazio vettoriale S

Φ(x) =

m∑

j=0

cjϕj(x)

4Integrando per parti, cioèZ

f(x)g′(x) dx = f(x)g(x)−

Z

g(x)f ′(x) dx

Page 123: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.6. MINIMI QUADRATI 123

x x x x x x x0 1 2 3 4 5 6

Figura 5.2: Esempio minimi quadrati

e si vogliono quindi determinare i coefficienti cj in modo che sia minima laquantità

minc0,c1,...,cm

n∑

i=0

(fi − Φ(xi))2

si noti che le distanze fra i punti e la funzione sono elevate al quadrato perpoter amplificare gli errori più grandi, in questo modo si ottiene un’appros-simazione migliore.Definiamo quindi la funzione dell’errore come g(c0, c1, . . . , cm) funzione qua-dratica e cerchiamo di minimizzarla vedendo dove si annulla il gradiente:

∇g = 0⇒ ∂g

∂ck(c0, c1, . . . , cm) k = 0, . . . ,m

dove, per definizione

∂g

∂ck= −2

n∑

i=0

fi −m∑

j=0

cjϕj(xi)

ϕk(xi) = 0 k = 0, . . . ,m

cioè, riscrivendo il tutto in forma esplicita

n∑

i=0

m∑

j=0

cjϕj(xi)ϕk(xi) =

n∑

i=0

fiϕk(xi) k = 0, . . . ,m

m∑

j=0

cj

(n∑

i=0

ϕj(xi)ϕk(xi)

)

︸ ︷︷ ︸

mkj

=

n∑

i=0

fiϕk(xi)

︸ ︷︷ ︸

bk

k = 0, . . . ,m

m∑

j=0

mkjcj = bk k = 0, . . . ,m

Page 124: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

124 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

che scritto in forma matriciale forma il sistema lineare detto sistema delle

equazioni normali

Mc = b

dove

c =

c0...cm

b =

b0...bm

=

n∑

i=0

fiϕ0(xi)

...n∑

i=0

fiϕm(xi)

vediamo invece adesso come è fatta M ,

mkj =

n∑

i=0

ϕj(xi)ϕk(xi)

notiamo che mjk = mkj cioè M è simmetrica ed inoltre vogliamo che siasemi-definita positiva.Definiamo quindi M = ATA dove A viene detta matrice di collocazione e lesue dimensioni sono (n+ 1)× (m+ 1):

A =

ϕ0(x0) · · · ϕm(x0)...

...ϕ0(xn) ϕm(xn)

AT =

ϕ0(x0) · · · ϕ0(xn)...

...ϕm(x0) ϕm(xn)

Quindi vediamo che M è proprio semi-definita positiva, infatti

xTMx = xTATAx = ( Ax︸︷︷︸

y

)T Ax︸︷︷︸

y

= yT y ≥ 0 ∀M : M = ATA

supposto che x 6= 0 vorremmo che M fosse definita positiva, cioè cheyT y > 0 e y 6= 0.Supposto questo sistema rettangolare:

Ax = 0

• se rg(A) = m + 1, cioè A ha rango massimo, allora esiste solo lasoluzione banale x = 0

• se rg(A) < m+ 1 allora esiste almeno una soluzione non banale

quindi M è definita positiva, cioè non singolare, quando A ha rango massi-mo.Prendiamo la base canonica e fissato lo spazio S come

S =< 1, x, x2, . . . , xm >

Page 125: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.6. MINIMI QUADRATI 125

avremo un’approssimazione ai minimi quadrati di tipo polinomiale. In que-sto caso la matrice di collocazioneA sarà una generalizzazione della matricedi Vandermonde

A =

1 x0 x20 . . . xm

0...

...1 xn x2

n . . . xmn

(n+1)×(m+1)

occorre adesso che sia possibile estrarre un sottoinsieme m + 1 di ascissedistinte affinché il rango della matrice A sia massimo, ma per la strutturadella matrice di Vandermonde è subito verificato.

5.6.1 Condizionamento del problema dei minimi quadrati

Nel metodo dei minimi quadrati si hanno dei problemi se le ascisse sonoconcentrate in gruppi e quindi a volte può essere utile effettuare una pre-analisi dei dati in ingresso al fine di minimizzare la computazione. Si cercacomunque una fattorizzazione QR per risolvere meglio il sistema Mc = bprecedentemente analizzato. Come prima, vogliamo minimizzare la quanti-tà

minc0,c1,...,cm

n∑

i=0

fi −m∑

j=0

cjϕj(xi)

2

︸ ︷︷ ︸

g(c0,...,cn)

(5.1)

con

f =

f0...fn

c =

c0...cm

Ac =

m∑

k=0

ϕk(x0)ck

...m∑

k=0

ϕk(xn)ck

quindi

(f −Ac) =

f0 −m∑

k=0

ϕk(x0)ck

...

fn −m∑

k=0

ϕk(xn)ck

riscriviamo allora l’equazione (5.1) nella forma matriciale:

minc||f −Ac||22

Page 126: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

126 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

Preso un generico vettore v, allora la sua norma 2 elevata al quadrato è||v||22 = vT v. Se consideriamo una trasformazione ortogonale otteniamo

||Qv||22 = (Qv)T (Qv) = vTQTQv = vT v

quindi estendendo il metodo di Householder a matrici rettangolari ottenia-mo infine

minc||f −Ac||22 = min

c||Qf −QAc||22

cioè la matrice QA, dopo n+1 passi del metodo di Householder, può esserescritta nella forma

a11 · · · a1n

. . ....

0 amn

0 · · · 0...

...0 · · · 0

=

(R0

)

quindi

||Ac− f ||22 =

∣∣∣∣

∣∣∣∣

(R

0

)

c− f∣∣∣∣

∣∣∣∣

2

2

dove R è una matrice triangolare superiore e f = Qf , poi spezzandola in(

f1

f2

)

abbiamo che

∣∣∣∣

∣∣∣∣

(R

0

)

c− f∣∣∣∣

∣∣∣∣

2

2

=

∣∣∣∣∣

∣∣∣∣∣

(R

0

)

c−(f1

f2

)∣∣∣∣∣

∣∣∣∣∣

2

2

=

∣∣∣∣∣

∣∣∣∣∣

(Rc− f1

−f2

)∣∣∣∣∣

∣∣∣∣∣

2

2

=

= ||Rc− f1||22 + ||f2||22Quest’ultima quantità si deve minimizzare in base a c. Dal momento che||f2||22 è una quantità fissa, il calcolo del minimo si fa risolvendo il sistemalineare

Rc = f1

le cui soluzioni sono uniche poiché det(R) 6= 0, infatti il rango di A èmassimo. La complessità dell’algoritmo dei minimi quadrati è quindi O(n3).

Listing 5.15: Metodo dei minimi quadrati�1 ������������� minimi_quadrati(x,y,n)2

3 % MINIMI_QUADRATI Risolve il problema dei minimi quadrati.4 % minimi_quadrati(x,y,n) disegna il grafico del problema5 % dei minimi quadrati, relativo alle coppie (x,f), usando6 % un polinomio di grado n.

Page 127: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

5.6. MINIMI QUADRATI 127

7 %8 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti9 % Fri Jun 18 09:14:20 CEST 2004

10

11 % creiamo il sistema di Vandermonde (m+1)x(n+1)12 V= ����� � � (lenght(x),n+1);13 V(:,1)=1;14 ��� � j=1:n+115 V(:,j)=V(:,j−1).∗x(:);16 �����17 % visualizzo i punti18 ������ on;19 ��� � on;20 ������ (x,y,’r∗’);21 % risolvo il problema tramite householder22 p=risolvi_householder(V,y);23 k=reverse(p);24 a= � � (x);25 b= � � � (x);26 xi=a:(b−a)/1000:b;27 g= ������� � ��� (k,xi);28 ������ (xi,g);29 ������� ���

� �

Esempi di minimi_quadrati.m da pag. 195

Page 128: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

128 CAPITOLO 5. APPROSSIMAZIONE DI FUNZIONI

Page 129: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Capitolo 6Integrazione numerica

IL problema dell’integrazione numerica si presenta laddove i metodi ana-litici per calcolare le primitive non posso essere utili. Può infatti suc-cedere che non si conosca la primitiva della funzione integranda o che

quest’ultima non sia in forma analitica, bensì definita per punti come nelcaso dell’analisi di risultati sperimentali. É importante allora avere dei me-todi numerici che ci permettano di fornire un’approssimazione dell’integralecercato a partire da un numero finito di valori della funzione da integrare.Supponiamo di voler approssimare

I[f ] =

∫ b

a

f(x) dx

per far ciò useremo le formule di quadratura, indicate con

In[f ] =

n∑

i=0

wif(xi) (6.1)

dove a = x0 < x1 < . . . < xn = b sono i nodi e w0, w1, w2, . . . , wn sono ipesi. Diremo che In[f ] ha grado di precisione k se risulta

En[p] = 0 ∀ p ∈ Πk

En[xk+1] 6= 0 dove

En[f ] = In[f ]− I[f ]

6.1 Formule di quadratura interpolatorie

Un approccio estremamente frequente nella costruzione della formula diquadratura In[f ] consiste nell’utilizzare la funzione interpolatoria corrispon-

129

Page 130: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

130 CAPITOLO 6. INTEGRAZIONE NUMERICA

dente ad f fissando i nodi come ascisse d’interpolazione:

In[f ] =

∫ b

a

Pn(x) dx con Pn(x) =

n∑

i=0

fiLi n(x)

con Li n(x) base di Lagrange. Si noti che In[f ] ha grado di precisione almenouguale ad n, proprio per il fatto che il polinomio interpolante da noi usato,Pn(x), esiste unico. Con queste considerazioni possiamo dire che

bk+1 − ak+1

k + 1=

∫ b

a

xk dx =

n∑

i=0

wixki k = 0, . . . , n

quindi

In[f ] =

∫ b

a

n∑

i=0

fiLi n(x) dx =

n∑

i=0

fi

∫ b

a

Li n(x) dx

︸ ︷︷ ︸

wi

i pesi sono univocamente determinati, infatti sono i coefficienti che si ri-cavano dal sistema che ha per matrice la matrice di Vandermonde, la cuisoluzione è unica.Dobbiamo ora decidere come prendere gli n + 1 punti: li prendiamo al-lora equispaziati all’interno dell’intervallo [a, b], ottenendo un sottoinsie-me delle formule di quadratura interpolatorie, le formule di quadratura di

Newton-Cotes.

6.1.1 Formule di quadratura di Newton-Cotes

Scegliamo l’i-esima ascissa come

xi = a+ i · h dove h =b− an

i = 0, . . . , n

Calcoliamo adesso i pesi wi:

wi =

∫ b

a

Li n(x) dx =

∫ b

a

n∏

j 6=ij=0

(x− xj)

(xi − xj)dx = cambiando variabile t =

x− ah

= h ·∫ n

0

n∏

j 6=ij=0

(a+ th− a− jh)(a+ ih− a− jh) dt =

= h ·∫ n

0

n∏

j 6=ij=0

(t− j)(i− j) dt = hα

(n)i (6.2)

Page 131: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

6.1. FORMULE DI QUADRATURA INTERPOLATORIE 131

con il coefficiente α(n)i che non dipende da h, ma solo da i e n.

Ricordando dalla (6.1) e scrivendo che wi = hα(n)i abbiamo

In[f ] = h

n∑

i=0

α(n)i · f(xi) (6.3)

dove la (6.3) è chiamata formula di quadratura di Newton-Cotes.Vediamo adesso qualche esempio di formule di quadratura al variare del

parametro n. Consideriamo in principio n = 1, quindi a = x0, b = x1 eh = b− a. Determiniamo gli α(1)

i con i = 0, 1:

α(1)0 =

∫ 1

0

t− 1

0− 1dt =

∫ 1

0(1− t) dt = t− t2

2

∣∣∣

1

0= 1− 1

2=

1

2

α(1)1 =

∫ 1

0

t− 0

1− 0dt =

∫ 1

0t dt =

1

2

quindi

I1[f ] =b− a

2[f(a) + f(b)]

tale formula è detta anche formula dei trapezi, come vediamo infatti dalla

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

a b x

f(a)

f(b)

f(x)

Figura 6.1: Metodo dei trapezi

figura (6.1) descrive l’area del trapezio che “approssima” l’integrale cercato.Vediamo che cosa accade se consideriamo n = 2, cioè h = b−a

2 , a = x0,x1 = a+b

2 e b = x2. Quindi, calcolando i pesi

α(2)0 =

∫ 2

0

(t− 1)(t− 2)

(−1)(−2)dt =

1

2

∫ 2

0(t2 − 3t+ 2) dt =

1

2

(t3

3− 3t2

2+ 2t

) ∣∣∣∣

2

0

=1

3

α(2)1 = −

∫ 2

0(t2 − 2t) dt =

(

− t3

3+ t2

) ∣∣∣∣

2

0

= −8

3+ 4 =

4

3

α(2)2 =

∫ 2

0

t(t− 1)

2 · 1 dt =

∫ 2

0

(t2

2− t

2

)

dt =1

2

(t3

3− t2

2

) ∣∣∣∣

2

0

=4

3− 1 =

1

3

Page 132: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

132 CAPITOLO 6. INTEGRAZIONE NUMERICA

Otteniamo allora

I2[f ] =b− a

2· 13

[

f(a) + 4f

(a+ b

2

)

+ f(b)

]

(6.4)

La (6.4) viene detta formula di Simpson.Il suo significato geometrico viene espresso nella figura (6.2) .

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

x x x0 1 2

Figura 6.2: Metodo di Simpson

Vediamo ora una proprietà degli a(n)i :

n∑

i=0

α(n)i = n (6.5)

Listing 6.1: Metodo dei trapezi�1 ������������� [x]=trapezi(f,a,b)2

3 % TRAPEZI Approssima l’intergrale con trapezi4 % [x]=trapezi(f,a,b) restituisce l’approssimazione5 % dell’intergrale di f in [a,b] fatta con un6 % singolo passo del metodo dei trapezi.7 %8 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti9 % Sat Jul 17 20:52:25 CEST 2004

10

11 % valuto la funzione agli estremi12 f_a= ����� ��� (f,a);13 f_b= ����� ��� (f,b);14

15 % calcolo l’integrale16 x=((b−a)/2)∗(f_a+f_b);17

18 ������������ �

Page 133: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

6.1. FORMULE DI QUADRATURA INTERPOLATORIE 133

Listing 6.2: Metodo di Simpson�1 � ����� ����� [x]=simpson(f,a,b)2

3 % SIMPSON Calcola l’integrale con simpson4 % [x]=simpson(f,a,b) restituisce l’integrale di f5 % in [a,b] utilizzando un singolo passo del metodo6 % di Simpson7 %8 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti9 % Sun Jul 18 10:05:43 CEST 2004

10

11 f_a= ����� ��� (f,a);12 f_b= ����� ��� (f,b);13 f_c= ����� ��� (f,(a+b)/2);14 x=((b−a)/6)∗(f_a+4∗f_c+f_b);15

16 ������� ���� �

Esempi di trapezi.m e simpson.m da pag. 200

6.1.2 Condizionamento del problema

Studiamo ora come gli errori sui dati si ripercuotino sui risultati delle for-mule di quadratura, quindi ricordiamo che

In[f ] =

n∑

i=0

wifi

e indichiamo le perturbazioni sui dati con f , quindi

In[f ] =

n∑

i=0

wifi

Consideriamo allora l’errore nei risultati

∣∣∣In[f ]− In[f ]

∣∣∣ =

∣∣∣∣∣

n∑

i=0

wi[fi − fi]

∣∣∣∣∣≤∣∣∣∣∣

n∑

i=0

|wi|[fi − fi]

∣∣∣∣∣

≤ maxi=0,...,n

∣∣∣[fi − fi]

∣∣∣

n∑

i=0

|wi| (6.6)

dove la sommatoria della (6.6) indica il numero di condizionamento, chia-miamolo kn. Se i pesi sono tutti positivi possiamo togliere i valori assoluti e

Page 134: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

134 CAPITOLO 6. INTEGRAZIONE NUMERICA

quindi

n∑

i=0

|wi| =

n∑

i=0

wi ma per la (6.2) risulta

= h

n∑

i=0

α(n)i ma per la (6.5) risulta

= n · h = n · b− an

= b− a

segue che in questo caso kn = b− a.Per le formule di Newton-Cotes si può dimostrare che

• se n ≤ 7 allora i wi sono tutti positivi, quindi kn = b− a

• se n ≥ 8 allora il condizionamento degenera, dunque kn >> b−a

Analizziamo adesso l’errore nelle formule di Newton-Cotes: se

f ∈ Cn+1+k([a, b]) con k =

{0 se n è dispari1 se n è pari

allora l’errore su f può essere scritto come

En[f ] = γn · hn+2+k · f (n+1+k)(ξ) con ξ ∈ (a, b)

in generale l’errore non converge sempre per n→∞.Vediamo adesso alcuni esempi al variare di n:

n = 1 siamo nel caso della formula dei trapezi, impostiamo k = 0, abbiamoquindi h3 e f ′′

n = 2 siamo nella formula di Simpson, impostiamo k = 1, abbiamo quindih5 e f (4).

n = 3 siamo nella formula dei 3/8, detta pulcherrima, non cambia l’ordinedell’errore, infatti h5 e f (4), come in precedenza

Infine scriviamo l’equazioni dell’errore1 nei due casi più significativi:

E1[f ] = γ1h3f (2)(ξ1) (6.7)

E2[f ] = γ2h5f (4)(ξ2) (6.8)

1Per completezza citiamo i primi due valori di γ che verranno utilizzati nei codicirispettivamente di trapezi e Simpson:

γ1 = −1

12γ2 = −

1

90

Page 135: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

6.1. FORMULE DI QUADRATURA INTERPOLATORIE 135

6.1.3 Formule di quadratura composite

Abbiamo visto che nelle formule di quadratura di Newton-Cotes, quandon > 7 l’errore risulta inaccettabile e il problema è malcondizionato. Perovviare a questo tipo di inconveniente sono state studiate due soluzioni:

1. si suddivide l’intervallo di integrazione

2. si scelgono particolari ascisse che rendono il problema ben condizio-nato

Nel nostro studio considereremo solo il primo caso, che ci porta in partico-lare a studiare le formule di quadratura composite. Si divide quindi l’inter-vallo [a, b] in m sottointervalli non necessariamente omogenei per calcolarequindi l’integrale nelle singole porzioni. Definiamo quindi

Ij = [yj, yj+1] j = 0, . . . ,m− 1 e hj =yj+1 − yj

n

e calcoliamo l’integrale appunto come

∫ b

a

f(x) dx =m−1∑

j=0

∫ yj+1

yj

f(x) dx

Segue che, usando le formule di Newton-Cotes con gli intervalli tutti dellastessa ampiezza otteniamo

In,m[f ] =

m−1∑

j=0

hj

n∑

i=0

α(n)i f(yj + ihj)

e di conseguenza

H =b− am

= yj+1 − yj j = 0, . . . ,m− 1⇒ h =b− am · n (6.9)

Se invece consideriamo la formula di quadratura composita dei trapezi, indi-candola con In,m[f ] = IT [f ], abbiamo che, con h = b−a

me n = 1:

IT [f ] = I1,m[f ] =1

2· b− am·

m−1∑

j=0

(f(yj) + f(yj+1)) =

=h

f(a) + 2

m−1∑

j=1

f(a+ jh) + f(b)

L’ ultimo caso trattato sono le formule di quadratura composite di Simpson,dove n = 2 e si necessita di 3 punti per il calcolo dell’integrale. In questocaso si prendono gli estremi dell’intervallino e il loro punto medio, anche se

Page 136: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

136 CAPITOLO 6. INTEGRAZIONE NUMERICA

il valore del punto medio è calcolato una sola volta: si valuta per il calcolodell’integrale fra il primo estremo e il punto medio e poi si riusa la valuta-zione appena fatta per il calcolo fra il punto medio e il secondo estremo.Dalla formula generica (6.9), h = b−a

2me il relativo integrale diventa:

IS [f ] =h

m−1∑

j=0

[f(yj) + 4f(yj + h) + f(yj+1)] =

ma riscriviamola meglio ottimizzando la valutazione del punto medio comeprecedentemente illustrato

=h

f(a) + 4

2m∑

j disparij=1

f(a+ jh) + 2

2m−1∑

j parij=1

f(a+ jh) + f(b)

Torniamo adesso a parlare dell’errore che si introduce con i calcoli.Per calcolare l’errore in questa circostanza si sommano gli errori commessinei singoli intervallini e quindi la (6.7) e (6.8) diventano rispettivamente:

E1,m[f ] = γ1

m−1∑

j=0

h3f (2)(ξj) = γ1H3

m−1∑

j=0

f (2)(ξj) =

= γ1(b− a)H2 · 1

m

m−1∑

j=0

f (2)(ξj) (6.10)

E2,m[f ] = γ2

m−1∑

j=0

h5f (4)(ξj)

dove ξj è un punto opportuno compreso in Ij e cambia per ogni intervallo.Notiamo che nella (6.10), se la funzione è di classe C 2, cioè sufficientemen-te regolare, allora vale il teorema della media:

∃ ξ ∈ [a, b] : f (2)(ξ) =1

m

m−1∑

j=0

f (2)(ξj)

allora l’equazione dell’errore si riscrive infine:

E1,m[f ] = γ1(b− a)H2f (2)(ξ)

vediamo che se H → 0 allora anche l’errore E1[f ] → 0; cioè il grado diprecisione rimane lo stesso della formula precedente, ma adesso l’erroreconverge al ridurre dell’ampiezza dell’intervallo.Analizziamo adesso in dettaglio l’errore per le formule di quadratura com-posite di Simpson. Sia:

h =H

2

Page 137: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

6.1. FORMULE DI QUADRATURA INTERPOLATORIE 137

e supponiamo che la f sia di classe C4, quindi l’errore diventa

E2,m[f ] = γ2h5

m−1∑

j=0

f (4)(ξj) =γ2

32H4(b− a) 1

m

m−1∑

j=0

f (4)(ξj)

=γ2

32H4(b− a)f (4)(ξ)

= −(b− a)180

h4f (4)(ξ)

adesso il grado di precisione è 3, infatti l’errore converge a 0 più velocemen-te rispetto al caso dei trapezi.

Listing 6.3: Calcolo integrale�1 � ����� ����� integrali(f,primitiva,a,b,d,toll)2

3 % INTEGRALI Funzione comparativa per le formule di quadratura di4 % Newton−Cotes.5 % integrali(f,primitiva,a,b,d,toll) restituisce il valore6 % dell’integrale della funzione f calcolato fra a e b, con7 % la tolleranza desiderata ed utilizzando il metodo scelto8 % grazie al parametro d:9 %

10 % d=11 % 1) Trapezi−composita12 % 2) Simpson−composita13 %14 %15 % Se si sceglie una formula composita, viene stampato il numero16 % dei sottointervalli.17 % Se si sceglie una formula adattiva, viene stampato un grafico18 % indicativo dell’esecuzione del metodo.19 %20 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti21 % Sun Jul 18 13:00:43 CEST 200422

23 int= ����� ��� (primitiva,b)− ����� ��� (primitiva,a);24 metod_int=0;25 n=0;26 ������� �

�� (int−metod_int) > toll

27 n=n+1;28 switch d29 case 130 metod_int=trapezi_composita(f,a,b,n);31 case 232 metod_int=simpson_composita(f,a,b,n);33 otherwise34 ����� � � (’Attenzione! Parametri errati.’);35 �����36 �����37 � �� � (’Il valore dell’’integrale calcolato con la primitiva è = ’)

Page 138: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

138 CAPITOLO 6. INTEGRAZIONE NUMERICA

38 � � � (int)39 � � � (’Il valore dell’’integrale calcolato con il metodo è = ’)40 � � � (metod_int)41 � � � (’ottenuto con un numero di suddivisioni pari a =’)42 � � � (n)43 �����������

� �

Listing 6.4: Metodo composito dei trapezi�1 ������������� [x]=trapezi_composita(f,a,b,n)2

3 % TRAPEZI_COMPOSITA Calcola l’integrale con il metodo dei trapezi4 % [x]=trapezi_composita(f,a,b,n) restituisce in x il valore5 % dell’integrale della funzione f calcolato fra a e b,6 % suddividendo tale intervallo in n parti.7 %8 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti9 % Sat Jul 17 21:19:43 CEST 2004

10

11 h=(b−a)/n;12 % creo il vettore delle ascisse13 x=a:h:b;14 % valuto la funzione nelle ascisse15 y= ����� ��� (f,x);16 % calcolo l’integrale17 int=(y(1)+y(n+1))/2;18 ����� i=2:n19 int=int+y(i);20 �����21 x=int∗h;22 �����������

� �

Esempi di trapezi_composita.m da pag. 203

Listing 6.5: Metodo composito di Simpson�1 ������������� [x]=simpson_composita(y,a,b,m)2

3 % SIMPSON_COMPOSITA Calcola l’integrale con Simpson composita4 % [x]=simpson_composita(y,a,b,m) restituisce il valore5 % dell’integrale della funzione y in [a,b] valutandolo6 % in 2m sottointervalli.7 %8 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti9 % Sun Jul 18 10:34:20 CEST 2004

10

11 % definisco le ascisse12 h=(b−a)/(2∗m);

Page 139: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

6.1. FORMULE DI QUADRATURA INTERPOLATORIE 139

13 x=a:h:b;14 % valuto la funzione nelle ascisse15 f= ����� ��� (y,x);16 % calcolo l’integrale17 int=f(1)+f(2∗m+1);18 ��� � i=2:2:2∗m19 int=int+4∗f(i);20 �����21 ��� � i=3:2:(2∗m−1)22 int=int+2∗f(i);23 �����24 x=int∗(h/3);25 ������� ���

� �

Esempi di simpson_composita.m da pag. 205

6.1.4 Formule di quadratura composite adattive

Figura 6.3: Esempio funzione per metodi adattivi

Finora abbiamo considerato l’ampiezza dei sottointervalli sempre ugua-le, ma possiamo vedere che in alcuni casi questa scelta risulta sbagliata.Sarebbe quindi più utile poter considerare una prima partizione iniziale del-l’intervallo e poi diminuire l’ampiezza dei sottointervalli in alcune zone dellafunzione, magari in corrispondenza di una parte troppo irregolare. In que-sto modo inoltre dovremmo cercare di riusare i calcoli eseguiti nei punti giàpresi in esame e rendere così l’operazione di “rinfittimento” poco costosa.Tuttavia non possiamo diminuire l’ampiezza dell’intervalli a dismisura poi-chè il costo computazionale diverrebbe improponibile.Ricordiamo adesso l’equazione dell’errore nel caso dei trapezi e poi presen-

Page 140: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

140 CAPITOLO 6. INTEGRAZIONE NUMERICA

tiamo il caso il cui si raddoppino gli intervalli:

E1,m[f ] = −(b− a)12

H2mf

(2)(ξ1)

E1,2m[f ] = −(b− a)12

H22mf

(2)(ξ2) =

= −(b− a)12

1

4H2

mf(2)(ξ2)

supponiamo che f (2)(ξ1) ∼= f (2)(ξ2), per facilitare i calcoli, pertanto

E1,2m[f ]−E1,m[f ] = −(b− a)12

H2mf

(2)(ξ1)

(1

4− 1

)

=

=3

4

(b− a)12

H2mf

(2)(ξ1) =

≈ −3

(

−(b− a)12

1

4H2

mf(2)(ξ2)

)

︸ ︷︷ ︸

E1,2m[f ]

=

≈ −3E1,2m[f ] se e soltanto se

E1,2m[f ] ≈ −1

3(I1,2m[f ]− I1,m[f ])

Facciamo le stesse considerazioni anche per le formule di Simpson:

E2,m[f ] = −(b− a)90

1

32H4

mf(4)(ξ1)

E2,2m[f ] = −(b− a)90

1

32H4

2mf(4)(ξ2) =

= −(b− a)90

1

32

1

16H4

mf(4)(ξ2)

supponiamo che f (4)(ξ1) ∼= f (4)(ξ2) pertanto

E2,2m[f ]−E2,m[f ] = −(b− a)90

1

32H4

mf(4)(ξ1)

(1

16− 1

)

=

≈ −15

(

−(b− a)90

1

32

1

16H4

mf(4)(ξ2)

)

︸ ︷︷ ︸

E2,2m[f ]

=

≈ −15E2,2m[f ] se e soltanto se

E2,2m[f ] ≈ − 1

15(I2,2m[f ]− I2,m[f ])

Introduciamo adesso alcune notazioni che sono utili per la spiegazione del-l’algoritmo:

N sottointervallo da esaminare (quello ancora da calcolare)

Page 141: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

6.1. FORMULE DI QUADRATURA INTERPOLATORIE 141

S sottointervallo già esaminato nell’accuratezza desiderata (����-�-

=ε)

A = [α, β] sottointervallo attivo, (quello in esame in questo momento)

Inizialmente si presenta la seguente situazione: N = [a, b], S = ∅ eA = N = [α = a, β = b].Indichiamo con

J[α,β]∼=∫ β

α

f(x) dx

l’approssimazione che siamo in grado di calcolare di∫ β

αf(x) dx, quindi l’er-

rore è definito come

E[α.β] = J[α,β] −∫ β

α

f(x) dx

Come nel caso precedente l’errore è dato dalla somma degli errori commessisui singoli sottointervalli.

5 Osservazione 6.1

I1,2m[f ] =1

2I1,m[f ] +

(b− a)2m

2m∑

j disparij=0

f(a+ jh)

Listing 6.6: Metodo dei trapezi adattivo: grafico�1 � ����� ����� [x]=trapezi_adattiva_graph(f,a,b,tol)2

3 % TRAPEZI_ADATTIVA_GRAPH Calcola l’integrale con trapezi adattivo4 % [x]=trapezi_adattiva_graph(f,a,b,tol) restuisce in x5 % il valore dell’integrale della funzione f calcolato fra6 % a e b, con una tolleranza tol e visualizza il grafico.7 % Vengono inoltre stampati i punti corrispondenti agli8 % estremi degli intervalli di interpolazione considerati9 % ad ogni passo.

10 %11 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti12 % Sat Jul 17 22:12:44 CEST 200413

14 % visualizzo la funzione15 ezplot(f,[a,b]);16 ������ on;17 % calcolo l’integrale18 fa= ����� ��� (f,a);19 fb= ����� ��� (f,b);20 [x]=trapezi_adattiva(f,a,b,fa,fb,tol);21 ������� ���

� �

Esempi di trapezi_adattiva.m da pag. 208

Page 142: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

142 CAPITOLO 6. INTEGRAZIONE NUMERICA

Listing 6.7: Metodo dei trapezi adattivo�1 ������������� [I]=trapezi_adattiva(f,a,b,fa,fb,tol)2

3 % TRAPEZI_ADATTIVA Calcolo l’integrale con trapezi adattiva4 % [I]=trapezi_adattiva(f,a,b,tol) restuisce in x il valore5 % dell’integrale della funzione f calcolato fra a e b, con una6 % tolleranza tol.7 %8 % I parametri fa e fb rappresentano i valori che la funzione9 % assume negli estremi dell’intervallo

10 %11 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti12 % Sat Jul 17 22:13:22 CEST 200413

14 % calcolo l’ampiezza dell’intervallo15 h=b−a;16 fm= ����� ��� (f,(a+b)/2);17 % calcolo I_118 Iu=(h/2)∗(fa+fb);19 % calcolo I20 I=0.5∗(Iu+h∗fm);21 % valuto l’errore22 err= �

�� (I−Iu)/3;

23 % stampo i punti considerati24 ���� � ([a b],[fa fb],’r∗’);25 % Se l’errore è minore della tolleranza da me voluta finisco,26 % altrimenti effettuo le chiamate ricorsive27 �� err>tol28 I=trapezi_adattiva(f,a,(a+b)/2,fa,fm,...29 tol/2)+trapezi_adattiva(f,(a+b)/2,b,fm,fb,tol/2);30 �����31 �����������

� �

Listing 6.8: Metodo di Simpson adattivo: grafico�1 ������������� [x]=simpson_adattiva_graph(f,a,b,tol)2

3 % SIMPSON_ADATTIVA_GRAPH Calcola l’integrale con simpson adattivo4 % [x]=simpson_adattiva_graph(f,a,b,tol) restituisce in x5 % il valore dell’integrale della funzione f calcolato fra6 % a e b, con una tolleranza tol e visualizza il grafico.7 % Vengono inoltre stampati i punti corrispondenti agli8 % estremi degli intervalli di interpolazione considerati9 % ad ogni passo.

10 %11 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti12 % Sun Jul 18 11:49:43 CEST 200413

14 ezplot(f,[a,b]);15 ���� � on;16 % calcolo l’integrale17 fa = ����� ��� (f,a);18 fm = ����� ��� (f,(a+b)/2);

Page 143: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

6.1. FORMULE DI QUADRATURA INTERPOLATORIE 143

19 fb = ����� ��� (f,b);20 [x]=simpson_adattiva(f,a,b,fa,fm,fb,tol);21 ������� ���

� �

Esempi di simpson_adattiva.m da pag. 211

Listing 6.9: Metodo di Simpson adattivo�1 � ����� ����� [Idd]=simpson_adattiva(f,a,b,fa,fm,fb,toll)2

3 % SIMPSON_ADATTIVA Calcola l’integrale con simpson adattivo4 % [Idd]=simpson_adattiva(f,a,b,fa,fm,fb,toll)5 % restituisce il valore6 % dell’integrale della funzione f in [a,b] con tolleranza7 % pari al parametro toll, utilizzando il metodo di Simpson8 % adattivo9 %

10 % I valori della funzione fa,fm,fb vanno passati al codice,11 % rappresentano rispettivamente il valore nell’estremo a,12 % nel punto medio e nell’estremo b dell’intervallo.13 %14 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti15 % Sun Jul 18 11:55:43 CEST 200416

17 % divido l’intervallo18 h=(b−a)/2;19 % Calcolo l’integrale Idu20 Idu=(h/3).∗(fa+4∗fm+fb);21

22 % Calcolo l’integrale Idd23 h=(b−a)/(4);24 Idd =fa+fb;25 fam = ����� ��� (f,a+h);26 fmb = ����� ��� (f,a+3∗h);27 Idd=Idd + 4∗fam + 2∗fm + 4∗fmb;28 % Trovo l’errore approssimato29 Idd = Idd ∗ (h/3);30 err= �

�� (Idu−Idd)/15;

31 ������ ([a,a+h,a+2∗h,a+3∗h,b],[fa,fam,fm,fmb,fb],’r∗’);32 % Se l’errore è minore della tolleranza da me voluta finisco,33 % altrimenti effettuo le chiamate ricorsive34 �� err>toll35 Idd = simpson_adattiva(f,a,(a+b)/2,fa,fam,fm,toll/2)+...36 simpson_adattiva(f,(a+b)/2,b,fm,fmb,fb,toll/2);37 �����38 ������� ���

� �

Page 144: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

144 CAPITOLO 6. INTEGRAZIONE NUMERICA

Page 145: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Capitolo 7Autovalori e Autovettori

QUESTO capitolo è dedicato ad uno degli argomenti più importantidell’algebra lineare, sia da un punto di vista teorico che applicativo:autovalori ed autovettori.

7.1 Introduzione

Definizione 7.1.1 Data una matrice A ∈ Cn×n si dice autovalore di A ogni

numero λ ∈ C tale che il sistema lineare

Ax = λx, x ∈ Cn (7.1)

abbia soluzioni x 6= 0; il vettore x è detto autovettore associato all’autovalore

λ, intendendo che x ed ogni vettore kx (k ∈ C,k 6= 0) rappresentano lo stesso

autovettore.

Ora, in base al teorema di Rouché-Capelli, sappiamo che un sistema lineareomogeneo ha soluzioni non nulle se e solo se la matrice dei coefficientidel sistema è singolare, e poiché il sistema (7.1) è equivalente al sistemaomogeneo

(A− λI)x = 0

segue che gli autovalori di A sono tutti e soli i numeri λ che soddisfanol’equazione

det(A− λI) = 0

Dal calcolo di quest’ultima equazione si ottiene:

det(A−λI) = (−1)nλn+(−1)n−1σ1λn−1+(−1)n−2σ2λ

n−2+. . .−σn−1λ+σn

dove i coefficienti σi, i = 1, 2, . . . , n, sono, ciascuno, la somma dei minoriprincipali di ordine i estratti da A. Il polinomio precedente è detto poli-

nomio caratteristico della matrice A e gli autovalori di A coincidono con

145

Page 146: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

146 CAPITOLO 7. AUTOVALORI E AUTOVETTORI

le radici dell’equazione caratteristica, perció sono n e li indicheremo conλ1, λ2, . . . , λn.

7.2 Il metodo delle potenze

Il metodo delle potenze è un metodo di tipo iterativo utilizzato per approssi-mare l’autovalore di modulo massimo, che si fonda sul seguente teorema:

Teorema 7.2.1 Sia A ∈ Cn×n una matrice con autovalori soddisfacenti le

condizioni1

|λ1| > |λ2| ≥ . . . ≥ |λn|e sia z(0) ∈ C

n un vettore arbitrario. Allora il processo iterativo

y(0) = z(0)

y(k) = Ay(k−1) k = 1, 2, . . .

è tale che

limk→+∞

y(k)

y(k)j

= v, limk→+∞

y(k)HAy(k)

y(k)Hy(k)= λ1,

dove j è un indice per cui y(k)j 6= 0, v è l’autovettore associato a λ1 e y(k)H

è il

trasposto coniugato2 di y(k).

DIMOSTRAZIONE. La diagonalizzabilità di A implica l’esistenza di n autovet-tori x(i), i = 1, 2, . . . , n linearmente indipendenti e quindi che il vettore z (0)

possa rappresentarsi nella forma

z(0) =n∑

i=1

cix(i)

dove è lecito supporre che sia c1 6= 0. Segue che

y(k) = Aky(0) = Ak(c1x(1) + . . . + cnx

(n)) (7.2)

= c1Akx(1) + . . .+ cnA

kx(n) = c1λk1x

(1) + . . .+ cnλknx

(n)

=

(

c1x(1) +

n∑

i=2

ci

( λi

λ1

)k

x(i)

)

e in particolare per ogni indice j,

y(k)j =

(

c1x(1)j +

n∑

i=2

ci

(λi

λ1

)k

x(i)j

)

(7.3)

1N.B. In questo capitolo con la notazione y(k) intendiamo considerare il vettore y allak-esima iterazione

2vettore traposto e anche coniugato

Page 147: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

7.2. IL METODO DELLE POTENZE 147

Scegliendo y(k)j 6= 0, tenendo conto dell’ipotesi sui moduli degli autovalori e

dividendo membro a membro la (7.2) per la (7.3), si ottiene

limk→∞

y(k)

y(k)j

= b1x(1) = v

dove b1 = 1/x(1)j , perciò il vettore v è l’autovettore associato a λ1, come

afferma la tesi. Si ha quindiAv = λ1v

e anchevHAv = λ1v

Hv

da cuivHAv

vHv= λ1

infine, tenendo conto dell’equazione precedente, si ha

limk→+∞

y(k)HAy(k)

y(k)Hy(k)

= limk→+∞

vHAv

vHv= λ1

per cui è dimostrato il teorema. 2

Il rapporto

R(

y(k))

=y(k)H

Ay(k)

y(k)Hy(k)

è chiamato quoziente di Rayleigh. L’ algoritmo appena considerato puó darluogo a situazioni di overflow/underflow nel caso in cui il valore delle com-ponenti in valore assoluto sia o troppo grande o troppo piccolo. È necessariaallora un’operazione di scaling, applicando a priori diversi tipi di norma divettore. Si costruisce pertanto una successione di vettori {z (k)} nel seguentemodo

y(k) = Az(k−1)

z(k) = y(k)

αk

}

k = 1, 2, . . .

dove z(0) è ancora arbitrario e αk è una costante di normalizzazione oppor-tuna. Se ad esempio αk è una componente di massimo modulo di y(k) scelta,a partire da un certo k, sempre con lo stesso indice, risulta ||z (k)||∞ = 1.Nelle ipotesi del teorema, si dimostra che

limk→+∞

z(k) = w e limk→+∞

R(

z(k))

= λ1

dove w è l’autovettore associato a λ1.

Page 148: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

148 CAPITOLO 7. AUTOVALORI E AUTOVETTORI

Listing 7.1: Calcola l’autovalore dominante con il metodo delle potenze�1 ������������� [lambda2]=potenze(A,z,toll)2

3 % POTENZE Calcola l’autovalore di modulo massimo di A4 % [lambda2]=potenze(A,z,toll) restituisce un’approssimazione5 % dell’autovalore di modulo massimo della matrice A,6 % utilizzando il metodo delle potenze.7 %8 % Il parametro z e’ il vettore d’innesco del metodo e toll e’9 % la tolleranza richiesta.

10 %11 % Stefano Ceri, Paolo Filippelli, Giacomo Sacchetti12 % Mon Jul 19 15:26:15 CEST 200413

14 n= ��� � ����� (A);15 % normalizzo il vettore16 y1=z/ � � � � (z);17 % assegnamenti iniziali (valori fittizzi per far partire il ciclo)18 lambda1=1;19 lambda2=0;20 ������� ( �

�� (lambda2−lambda1)) > toll

21 lambda1=lambda2;22 y2=y1;23 y1=A∗y1;24 lambda2=((y2)’∗y1);25 y1=y1/ �� � � (y1);26 �����27 �����������

� �

Esempi di potenze.m da pag. 214

Page 149: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Appendice AEsempi

Elenchiamo adesso una serie di esempi ottenuti dai codici matlab da noipreparati.

A.1 Condizionamento Sistemi lineari

������������������� ������

���

����������������������������� ������������������������������������������������������������ ������������������������������

�����������������

���

��

��������� �"!�#�$"% �'&"��(�)+*,�-.�0/

���

�����������������������������1��2�2�2�1�2�2�2�1�2�2�2�2����

����3���� �"!�#�$"% �'&"4���(�)+*,�-.�0/

3��

��������������������������������2�2�2�1�2�2�2�1�2�2�2�2����

����5 ��� ����������6�2�2�2�2

5 �7�

������������������������������

149

Page 150: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

150 APPENDICE A. ESEMPI

��� 5�����2�2�2�1�6�2�2�2�2

5����

��2�2�2�1�2�2�2�1�2�2�2�2����

��� � ���.5 ����5����

� �

��������������������������������2�2�2�1�2�2�2�1�2�2�2�2����

��������� #"���������"��!0*�*,��� � /��6 � /

����� #"�������

��������������

����1�� ��������1�� ��1�1�����

��������� #"���������"��!0*�*,3�� � /��6 � /

����� #"����� �

����������� ��

������������������������������

��������!

����!��

������������������2���������� �������� �

A.2 Eliminazione di Gauss��� ����� $�#�#"� *,���������+*�����/����/

���

����� ��� � � � � � � � � � � � � �� ��1 � � � � � ��� � � � ���� ��� � � � � ��� � � � � � � �� � � � � � � � � � � ��� ���� � ��� � � � � � � ��� � �� � � � � � � ��� � � � � � ���� ��� ��� ��� ��� � ��� ��� � � � �� � � � � � � � � ��� ��� ���� � � ����� � � � � � � ��� � ���� � ��� � � � � � � � � �

����������!�!0*,� /

����!��

���������������

Page 151: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.2. ELIMINAZIONE DI GAUSS 151

� #�$���� ��! ������� #������ �

������������������������������� ������������������������������� ������������������������������� ������������������������������� �������������������������������� ������1������������������������ � ����������������������������� ������������������������������ � ������������������������������� ������������������������������� �������������������������������� � � � ��������������������������� ����� ����������1�����������2� � � � ��������2������ � ����1���� ��1� � � � �� � � � �� � � � �� � � � �� � � � �

� #�$���� ��!�������� #������ ���

� ������������������������������� ����������������������������� ����������������������������� �������������������������������������������������������������� ������������������������������� ����������������������������� ������� ����������������������� ������� ���������������������������� ����������������������� ������������������������������� ����1������������������������ ������� ����������������������� ������������������������������������ ������������������������� � ������1�����������1�������� ��� ��1�������������1���������� ��������������1�����������1�� ��������������1�����������1������������1���������1������ ��� ����1���������1�����1�����1�� ��������1�1�����1���������1�1�� ����� ����������������������� ��������2���������1�2��������������1�2������ ����2���������� ����������������������1�2������ ������������� ����������� ��� ������2�� ������1���2���������� ������� ������2�������������2��

� ����� ����� ������2������ ����1 ��������������������2�2���1���� ����� ��2�����2���1������ ����� ������2�� ����2�2���1���1������� ����������������������������� ����������1�1���2�����1���� � ������������1�1�������������1�� ����������1�������2�������1�2��� � � �����������������������������1�� ���� ��1������ � ��������� ��2�1� � � ����������������������������� ����������2�������2����������

�������� ��� � � � � � � � � � � � � �� ��1 � � � � � ��� � � � ���� ��� � � � � ��� � � � � � � �

��� � � � ��� � � � � � � ��� ���

��� � ��� � � � � � � ��� � �� � � � � � � ��� � � � � � ���� ��� ��� ��� ��� � ��� ��� � � � �� � � � � � � � � ��� ��� ���� � � ����� � � � � � � ��� � ���� � ��� � � � � � � � � �

��� ������!�!0*,� /

����!��

� #�$���� ��! ������� #������ �

��������������������������������� ������������������������������� � ����������������������������� � ����������������������������� � ������������������������������ ��1 ��������������������������� � �� ��������������������������� � ���������������������������� � �������������������������������� � � ��������������������������� ��� ���������������������������� � � ��2���������������������������� �� ����������1�����������1����� � � � � ��������1�����1�1�2�������1��� � � � �� � � � �� � � � �� � � � �� � � � �

� #�$���� ��!�������� #������ ���

Page 152: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

152 APPENDICE A. ESEMPI

� � ����������������������������� ����������������������������� ����������������������������� � ������������������������������ ����������������������������� ��� ��������������������������� ����������������������������� ���� ��������������������������� ���� ����������������������������� ��������������������������� � � ��������������������������� 1 ��������������������������� ���� ��������������������������� � � ���������������������������

��� � ��������������������������� ������1�����������1�����������2 � ��1 ������������1�����������1�1 ��� ��������1�����������1������ ��� ��������1�����������1������� ��������2���2���1������������ ��������������2���2���������� ���� ��2�����������1�2�2�2�����1 � ��1���������1�����������1�1 � ����2�� �����������������������������������1�������2�������� ��1 ��� ��������1���2�����1���� ��������������� ��������������� ��1�����2�2�������2�����1������ ��2 ��������2�1����������������

� ��1���2���������������������1�1 � � ����������� ����2���1������ �������2�����1�������������2�1�1�� ��� ��1�����2�����2���1���1�����2� � ���� ����1���2���������������1�� � � ����1�����2�������������2�� � ��1�2�1���2�����������������1� � � ����1�2�2������ ������2�����2�� ����� ������1���1�������2������� � � � ���������������� ��1�1���2����

���

� ��� � � � � � � � � � � � � �� ��1 � � � � � ��� � � � ���� ��� � � � � ��� � � � � � � �� � � � � � � � � � � ��� ���� � ��� � � � � � � ��� � �� � � � � � � ��� � � � � � ���� ��� ��� ��� ��� � ��� ��� � � � �� � � � � � � � � ��� ��� ���� � � ����� � � � � � � ��� � ���� � ��� � � � � � � � � �

����������!�!0*,� /������� ��� #"� ��! � ��� ��� ��������!�!(���������� ����� � #�� ��� ����� � #"� �������"�0�'$�����#�������!�!

� � ��� #�� ��$�� � # � � � ��� ���

��������� � ��� * ! ����* �"��!0* � /�/�/

����!��

��1 ��� � ��� ��2 � � � � � ���2 ��� � � � � � ��� ��� � �� � � ��� � � � � � ��� � ���� ��� 1 ��1 � 1 ����� ��� � � � �� � ��� ��� � ��� � � ��1 � �� � � � � ��� � ��� � � �� � � � � � ��� � � � ���� � ��1 � � � � � � � ��2 ��� �� ��� ��1 ��� ����� ��� � � ��1 � �� � � � ��� ��� ��� � ��� ��� ���

����������!�!0* � /

����!��

���������������

� #�$���� ��! � ����� #������ �

������������������������������� ������������������������������� ����������������������������� ������������������������������� ������2������������������������� ����������������������������� ������������������������������� ����2������������������������ ����1������������������������� � ������������������������������� ����1������������������������ ����1������������������������� � � ��2�� ����������������������� � ���������������������������� � � � ��������1������ ���������������� � � � �

Page 153: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.3. RISOLUZIONE DI SISTEMI LINEARI FATTORIZZATI A = LU 153

� ������������������������������� � � �� � � � �� � � � �� � � � �

� #�$���� ��!�������� #������ ���

������������������������������� � ����������������������������� ����������������������������� ���������������������������������������������������������� ������������������������������� ������1������������������������ ������������������������������� ������������������������������������������������������������ ����������������������������� ������������������������������� ����������������������������� ��������������������������������������2���������������������� � ��������������������������� ��� ��� ����������������������1 ��� ��1�1�1�1�1�1�1�1�1�1�1�2 ��� �����������������������������������������1���������2������ ������� ��1�����������2�2������ ��������������1�����2�2�2���2�� ����������������1�������� ����� ��������1���������� ����1���1����������� ����1�������������� ����� ��2���������2���������� ��������2�����������1�����1�� ����������������2�1�������2�� ������������2�����2�����2���2��

� ����������2�����������2������ ��� ����1�����1�1���2�������� ������������1���2������������ ������2�2���2���2���������2�2��� � ������������������1���1�������� ��������������������������� � ������2�2����������������������� � � � ��1�������������1�1�1������ ����2�������������������� ������ � � � ������������1������ � ���������

A.3 Risoluzione di sistemi lineari fattorizzati A = LU���

����� ��� � � � � � � � � � � � � �� ��1 � � � � � ��� � � � ���� ��� � � � � ��� � � � � � � �� � � � � � � � � � � ��� ���� � ��� � � � � � � ��� � �� � � � � � � ��� � � � � � ���� ��� ��� ��� ��� � ��� ��� � � � �� � � � � � � � � ��� ��� ���� � � ����� � � � � � � ��� � ���� � ��� � � � � � � � � �

������� ! ����*,� � / �

���

��� ���������������������� �����2� �������

����� �"!�#�$"% �'&"��(�)+*,�-.�0/

����!��

��������������������������������������������������������������������������������������������������������������������������2�2�2�2�2�2�2�2�2�2�2�2�2�2������������������������������������������������������������������������������������������������������������������������

Page 154: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

154 APPENDICE A. ESEMPI

��2�2�2�2�2�2�2�2�2�2�2�2�2�1

����� ����� �'$ � �"! � $ ����� # ��� ��� !�# !������"��� � !������ #�����!'� #�� � !0*���� - ��/

���

����� ��� � � � � � � � � � � � � �� ��1 � � � � � ��� � � � ���� ��� � � � � ��� � � � � � � �� � � � � � � � � � � ��� ���� � ��� � � � � � � ��� � �� � � � � � � ��� � � � � � ���� ��� ��� ��� ��� � ��� ��� � � � �� � � � � � � � � ��� ��� ���� � � ����� � � � � � � ��� � ���� � ��� � � � � � � � � �

������� ! ����*,� � / �

� �

��� ���������������������� �����2� �������

��� � �"!�#�$"% �'&"��(�)+*,�-.�0/

����!��

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2�2�2�2�2�2�2�2�2�2�2�2�2�2

���

� ��� � � � � � � � � � � � � �� ��1 � � � � � ��� � � � ���� ��� � � � � ��� � � � � � � �� � � � � � � � � � � ��� ���� � ��� � � � � � � ��� � �� � � � � � � ��� � � � � � ���� ��� ��� ��� ��� � ��� ��� � � � �� � � � � � � � � ��� ��� ���� � � ����� � � � � � � ��� � ���� � ��� � � � � � � � � �

Page 155: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.3. RISOLUZIONE DI SISTEMI LINEARI FATTORIZZATI A = LU 155

������� ! ����*,� � / �

���

� ���������������������� �����2� �������

������� ��� #"����! � ��� ��� ��� �"!�#�$"% �'&���$��(�� ������� ����� � #�� ��� ����� � #"� �������"�0�'$�� ��#�� �����!�!

� � ��� #�� ��$�� � # � � � ��� ��� �

��������� � ��� * ! ����* �"��!0*,� /�/�/

����!��

��1 ��� � ��� ��2 � � � � � ���2 ��� � � � � � ��� ��� � �� � � ��� � � � � � ��� � ���� ��� 1 ��1 � 1 ����� ��� � � � �� � ��� ��� � ��� � � ��1 � �� � � � � ��� � ��� � � �� � � � � � ��� � � � ���� � ��1 � � � � � � � ��2 ��� �� ��� ��1 ��� ����� ��� � � ��1 � �� � � � ��� ��� ��� � ��� ��� ���

������� ! ����*,� � / �

���

������ ��� ������1���������������1

����� �"!�#�$"% �'&"��(�)+*,�-.�0/

����!��

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Page 156: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

156 APPENDICE A. ESEMPI

������������������������������������������������������������������������������������������������������������������������

A.4 Risoluzione di sistemi lineari fattorizzati PA =

LU���

� ��� � � � � � � � � � � � � �� ��1 � � � � � ��� � � � ���� ��� � � � � ��� � � � � � � �� � � � � � � � � � � ��� ���� � ��� � � � � � � ��� � �� � � � � � � ��� � � � � � ���� ��� ��� ��� ��� � ��� ��� � � � �� � � � � � � � � ��� ��� ���� � � ����� � � � � � � ��� � ���� � ��� � � � � � � � � �

������� ! ����*,� � / �

� �

� ���������������������� �����2� �������

��� � �"!�#�$"% �'&"4���(�)+*,�-.�0/

����!��

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

��� ����� $�#�#"� *,���������+*�����/����/

���

��� � � � � � � ��� ��1 � � � ������ � ��� ��� ��� ��� � � � � ��1����� � ��1 � � � � � � � �

Page 157: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.5. RISOLUZIONE DI SISTEMI LINEARI FATTORIZZATI A = LDLT 157

��� ��� � � � ��� ��� 1 � ��� ��� ���� � � � ��� 1 � � ��� � � �� � � � ��� 1 � � � ��� � ���� � � � ��� � ��� � � � � � ���� ��� � � ��1 � � ��� � � � ���� ��� � � � � � � ��1 � � ��� ���� � ����� � � � � ��� � ��� � � ���

������� ! ����*,� � / �

���

��� �����1�

����1������2��������������2

����� �"!�#�$"% �'&"4���(�)+*,�-.�0/

����!��

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

A.5 Risoluzione di sistemi lineari fattorizzati A = LDLT

� � .4�

��������� $�#�#"� *,���������+*�����/����/

���

� � ��� � ��� ��2 � � � � � ���2 � � � � � � ��� ��� � �� � � � � � � � � ��� � ���� ��� 1 � � 1 ����� ��� � � � �� � ��� ��� � � � � � ��1 � �� � � � � ��� � ��� � � �� � � � � � � � � � ���� � ��1 � � � � � � � � ��� �� ��� ��1 ��� ����� ��� � � � � �� � � � ��� ��� ��� � ��� ��� ���

��� ����� � "�

���

Page 158: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

158 APPENDICE A. ESEMPI

� ��2 � � ����� ��1 ��� ����� ��2 ��� � ��� � ���� � � ��� 1�� ��� ����� 2�1 ������� ����� ��1�� 2����� 1�� ����� 2�� ��1�� ��2 � ��� � ��� ��2�� �������1 ��� 2�� � ��2 ��� ����� � ��2�� � �������� ����� ��1�� ��� ����� ����� ������� � ��� ������� �������� 2�1 ��2 ����� ����� � ��� ������� � ��� ����2 ��� ���2 ������� � ��� � ������� ������� � ��� ����� � � ���� ����� � ��� ��2�� � ��� � ��� ����� � ��1 ��� ����2� ��� ��1�� ��2�� � ������� ����2 � � ��� � ��2 � ���� ��� 2 ����� ����� ��� ��� � � ����2 � ��� 2��

��������� *,� /

����!��

��� ������1�����������������������������2

��������� * � /

����!��

���������������

������������������1���������2����2�������2�������2��������� ������2��������������������� ������� ��2�������� � ����1� ������2�������������1�� ����������1���1�2���������� ����2���1�1�� ����2�2�����1��������� ��1������ ��������������1��� ��������������1�����1���2��1�������������� ����2�������2

������� ! ����* � � / �

� �

������������2�1������������������ ��1��2���������� ���

��� 3���� �"!�#�$"% �'&"( � (�� * �-.�0/

3��

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Page 159: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.6. RISOLUZIONE DI SISTEMI LINEARI FATTORIZZATI CON HOUSEHOLDER159

������������������������������

��� ����� $�#�#"� *,���������+*�����/����/

���

� � � � ��� ��2 � � � ����� � � � ���� � ��� � � � � � 1 � � � �� � ��� � � � 1 � � � � ����� � �1 � 2 ��� � ����� � � � � �� � � � � � � � � � � � � �� � � � � � ��� � � ��1 2 ��� ���� � � � ��� � � � � � � � � ��� �1 � � ��� � � � � ��� ��� � �2 ��� � � � � � � ��� � �1 � � � � � � ��� ��� � � ���

������� ! ����* � � / �

���

�����2

��� ������1�����������������

����� �"!�#�$"% �'&"( � (�� * �-.�0/

����!��

������2���2�����������������1�1������2��������������������������1�����������1�������1�1��� ����������2�1������ ������������������1���1�������1�2����������1���1�����2�� ������������������2���������������1�������� ���������������������������������� ��� ����2���1�������1� � ��������������������������2

A.6 Risoluzione di sistemi lineari fattorizzati con Hou-

seholder��������� $�#�#"� *,���������+*�����/����/

���

����� ��� � ��� � � � � � � � �� � � � ����� � � � � � ��� �� � � ��� � � � 1 ��� �

Page 160: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

160 APPENDICE A. ESEMPI

� ��1 ��� � ��� � � � � ��1� � ��� ��� ��� ��2 � � ��� � � � �� � � � ��1 � � � � � � � � ���� ��2 � � � ��2 ��� ��� � � �� � � � � � ��2 � � � � � �� ��� � � � � � � ��1 � 1 ���� � � ��� � � ��� ��� � � �

������� ! ����*,� � / �

� �

������ �����

���������������� �������

��������� �"!�#�$"% �'&�� #���!�� � #�$������ *,�-��0/

���

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

� #������ #�� � # ��#�� 4���(�)

��� 3���� �"!�#�$"% �'&"4���(�)+*,�-.�0/

3��

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������� #�� � !0*���� - ��/���� �

����!�� � � � � � � � � � �

��������� #"���������"��!0*�*,3����0/��6��0/

Page 161: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.6. RISOLUZIONE DI SISTEMI LINEARI FATTORIZZATI CON HOUSEHOLDER161

����� #"�������

����������� ��

� ��������1�2�����2�1���������

��1�1�1�� ��1�� ��2�������� ��

� ��������1�2�����2�1��������� ������� ����1�������������2� ������� ����1�������������2� ������������2�������1������

�� ����������� ��������������1

��������� #"���������"��!0*�* �����0/��6��0/

����� #"�������

����������� ��

��������������������2�������������������������������������� ��������1�2�����2�1��������� ������� ����1�������������2� ����������� ��������������1��������������������2����������1�1�1�� ��1�� ��2�������� �� ������� ����1�������������2� ������� ����1�������������2��1�1�1�� ��1�� ��2�������� �

� #������ #�� � # ��#�� ��%�����!

��������� �"!�#�$"% �'&�� ��%�����!0*,�-.�0/

���

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

��������� #"���������"��!0*�*,�����0/��6��0/

����� #"�������

�������������

����1�1�1�� ��1�� ��2������������������� ����1������������������������������������1��������������������������2����������1�1�1�� ��1�� ��2��������

Page 162: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

162 APPENDICE A. ESEMPI

�������������������������������������������� �����������������1�1�1�� ��1�� ��2��������������������1�2�2����������������������� ����1������������

A.7 Risoluzione di sistemi lineari fattorizzati con Gi-

vens��� �

���

����� ��� � � � � � � � � �� � � � � � � � � � �� � � � � � � 1 ��� �� � ��� � ��� � � � � ��1� � � ��� � � � � ��� � � �� � � � � � � � � � � �� � � � � ��2 � ��� � � �� � � � � � � � � � � �� � � � � � � � ��1 � � ���� � � � � � � � � �

������� ! ����*,� � / �

� �

��� ����� �� ������� ����������������1

��� ����� �"!�#�$"% �'&�� ��%�����!0*,�-.�0/

���

��2�2�2�2�2�2�2�2�2�2�2�2�2�2��2�2�2�2�2�2�2�2�2�2�2�2�2�1��2�2�2�2�2�2�2�2�2�2�2�2�2�1��������������������������������������������������������������������������������������������������������������������������2�2�2�2�2�2�2�2�2�2�2�2�2�1������������������������������������������������������������

��������� �"!�#�$"% �'&�� #���!�� � #�$������ *,�-��0/

���

��������������������������������2�2�2�2�2�2�2�2�2�2�2�2�2�2

Page 163: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.7. RISOLUZIONE DI SISTEMI LINEARI FATTORIZZATI CON GIVENS 163

��2�2�2�2�2�2�2�2�2�2�2�2�2�2��������������������������������������������������������������������������������������������������������������������������2�2�2�2�2�2�2�2�2�2�2�2�2�2������������������������������������������������������������

����3���� �"!�#�$"% �'&"4���(�)+*,�-.�0/

3��

��������������������������������������������������������������������������������������������2�2�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2�2�2�2�2�2�2�2�2�2�2��������������������������������������������������������������������������������������������2�2�2�2�2�2�2�2�2�2�2�2�2�2������������������������������

��������� #"���������"��!0*�*,�����0/��6��0/

����� #"�������

��������������

������1�����1���� ����1�2������������������2���������2��������� ��1�������1�2������������������2�� ������������2������������������2�������1�2�2��������� ��������������������1������������2���2���������1��������2�����1�2�����2�����2��������1�����2�����������1���1��������������2��������������

��������� #"���������"��!0*�* �����0/��6��0/����� #"���������"��!0*�*,3����0/��6��0/

����� #"�������

����������� ��

����������2�1���2���2�������1��������������������1�����1�2����1�2�2���1�������2�2������� ��������� ������������1�1����������������1������ ������1������������� ������� ������1������2�2���1�����1�1�1������������1�1�����1������ � ���������2�������1�����������1����������1�1�������2���� ��1����

����� #"�������

����������� ��

Page 164: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

164 APPENDICE A. ESEMPI

��������������2�������� � ���������������� ��2�����1����������������1�1�������2��������������1���1���2��������������������1���2���1�����������1�2��������������1�2�����2�1������������������������������1�1����������2�����������1������������������������2�� ������������ ����������������2������

A.8 Risoluzione di sistemi lineari fattorizzati con Ja-

cobi� �"!�#�$"% ����� ��#'�0� ��#�� � #�$�$"� � � ����1���3������ � �� � ���

����� � � ��� #�� ��$�� � # � � � ��� ��� � ����� ����� � -7� ������� � �

��� ! ����* �"��!0*,� / � / �

����!��

2�� * ����/����� * ����/��� *���� /��� * ����/����� * ����/��1 * ����/��2 * ����/��� * ����/����� * ����/��� � * ����/

��� �

���

� ��� � � � ��� ��� � � ����� ��2 ��� ������ ��� ��1 � � � � � ��� � � ���� ��� ����� � � � � ��� ��� � � ���� � � � ��� � � ��� � � � � ���� � ��1 ��� ��2 ��� 1 � � � � �� ��� ��� 1 � � ��� � � � ������ � � ��1 � ��� � ����� ����� ��� ���� � � � ��� ��� ��1 ��� � ���� � � � � � � � � ��� ��1� � ��� ����� � � � � � ��� ��� � ���

��� 3

3��

� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������

Page 165: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.8. RISOLUZIONE DI SISTEMI LINEARI FATTORIZZATI CON JACOBI 165

� ���������������������������� ���������������������������� ���������������������������

������� ! ����*,� � / �

���

��1������ ������������� ��������1� ��2

��� �.3- ������� �"!�#�$"% �'& ��� ��#'�0��*,��-.��-�30��- � � ��1 - ������/

3��

��2�2�2�2�2�2�2�2�2�2�������������������������������� ��� ��������������������������������������������������������2������2�2�2�2�2�2�2�2�2�2�������������������������������������1��2�2�2�2�2�2�2�2�2�2�������������������������������� ������������������������������������������������������������1����

�7�

� �

��� ��� #�� � !0*���� - ��/������� #"���������"��!0*�*,3����0/��6��0/

����� #"�������

��������������

� ��2�1�1���1���� ��1����������� ��� �����������������������������������1��������������� ��2���������2��������������������2�����1�����1�����1�1����������1��������������������� ������2�������1�2���2�����1��� ����������������������2������������1�����������2���2������1���������������������2��

��� �.3- ������� �"!�#�$"% �'& ��� ��#'�0��*,��-.��-�30��- � � �����- �����0/

3��

��2�2�2�2�2�2�2�2�2�2�2�2�1��

Page 166: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

166 APPENDICE A. ESEMPI

��������������������������������2�2�2�2�2�2�2�2�2�2�2�2�1�����������������������������1����2�2�2�2�2�2�2�2�2�2�2�2�2�������������������������������1��2�2�2�2�2�2�2�2�2�2�2�2������2�2�2�2�2�2�2�2�2�2�2�2������2�2�2�2�2�2�2�2�2�2�2�2�2�1���������������������������� �

� �

���

��������� #"���������"��!0*�*,3����0/��6��0/

����� #"�������

��������������

����2�����������2������ ����2������������� ��2�������2���1��� ����������1�����1���2������1�����������������1�1�1����������2���2���1���������2��������1�����1�1�������������1��� ������2�����2�2������������� ����������������������������������������������������������� ������2������������������

� � � �0� ����� # �'$ %���� � #"��� � � � ��� � !���#

��� �.3- ������� �"!�#�$"% �'& ��� ��#'�0��*,��-.��- ����� # !0*��'� - ��/�- � � ����� -�������/

3��

�����������������������������1��2�2�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2�2�2�2�2�2�2�2�2�1�2��2�2�2�2�2�2�2�2�2�2�2�2�2����������������������������������2�2�2�2�2�2�2�2�2�2�2�2������������������������������������2�2�2�2�2�2�2�2�2�2�2�2������2�2�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2�2�2�2�2�2�2�2�2�1��

� �

���

��������� #"���������"��!0*�*,3����0/��6��0/

����� #"�������

��������������

����������� ���������������������1�����������2�� ��1�����2

Page 167: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.8. RISOLUZIONE DI SISTEMI LINEARI FATTORIZZATI CON JACOBI 167

������������� ��������1�����1����1�� ������� ����������� �����������1�����2�������2����������������������2�� �������� ����2�2�������2������������� ��������������������� �������������2�����������1���� �������1�2�1���1�� ����������2��

��� ��� � �� � �.3- ������� �"!�#�$"% �'& ��� ��#'�0��*,�-���- � - � � � ��� - ������/

3��

��2�2�2�2�2�2�2�2�2�2�2�2�2�1��������������������������������2�2�2�2�2�2�2�2�2�2�2�2���2��������������������������������������������������������������2�2�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2�2�2�2�2�2�2�2�2�1����2�2�2�2�2�2�2�2�2�2�2�2������2�2�2�2�2�2�2�2�2�2�2�2�2�2������������������������������

�7�

���

��������� #"���������"��!0*�*,3����0/��6��0/

����� #"�������

��������������

������1��������������������������� ����1����������������������� ��2���2�2�����1��������� ��� � ����1�2���1������������������1���������������1����������������2�������2���1�2�2����1���2������ ����2��������� ����������������2�������2��������2�2�2�������������� ��������������������������������

��� �.3- ������� �"!�#�$"% �'& ��� ��#'�0��*,��-.��- � - � � ����� - ������/

3��

����������

Page 168: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

168 APPENDICE A. ESEMPI

� �

���

� � � � � � � � � � � ��2 ��2� � � � � � � � � ��� � � �� � � ��1 ����� � � ��� � � �� ��2 ��2 � � � � � � �

����� � � ��1 ����� ��� � � � � � � �� � � � ��� � � � � �� � � ��� � � ��� � � � ���� ��� � � � ��� � � � � � � �� � ��� ��� � ��� � � ��2 ��� �� � � � � ��� � � � � � ���

������� ! ����* � � / �

� �

��� ��������� �� �1

����������� �

��� �.3- ������� �"!�#�$"% �'& ��� ��#'�0��* �-.� -�3- � � ��1- ����� /������� ��� #"� ��! � ��� ��� � � �"!�#�$"% �'& ��� ��#'�0�� ����$�# ����� � � � ��� #�� ������������� # � ��� ��������� �'#��0��! ��� ��� �'#"������$�$ � � � ���

A.9 Risoluzione di sistemi lineari fattorizzati con Gauss-

Seidel� �"!�#�$"% � �����!�! � � ��������$ ��#�� � #�$�$"� � � ����1 ��3������ � �� � ���

����� � � ��� #�� ��$�� � # � � � ��� ��� � ����� ����� � -7� ������� � �

��� ! ����* �"��!0*,� / � / �

����!��

2�� * ����/����� * ����/��� *���� /��� * ����/����� * ����/��1 * ����/��2 * ����/��� * ����/����� * ����/

Page 169: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.9. RISOLUZIONE DI SISTEMI LINEARI FATTORIZZATI CON GAUSS-SEIDEL169

��� � * ����/

�����

���

� ��� � � � ��� ��� � � ����� ��2 ��� ������ ��� ��1 � � � � � ��� � � ���� ��� ����� � � � � ��� ��� � � ���� � � � ��� � � ��� � � � � ���� � ��1 ��� ��2 ��� 1 � � � � �� ��� ��� 1 � � ��� � � � ������ � � ��1 � ��� � ����� ����� ��� ���� � � � ��� ��� ��1 ��� � ���� � � � � � � � � ��� ��1� � ��� ����� � � � � � ��� ��� � ���

����3

3��

� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������

������� ! ����*,� � / �

���

��1������ ������������� ��������1� ��2

��� �.3- ������� �"!�#�$"% �'&�������!�������� $�*,�-���-�3- � � �'1 - ��� ��/

3��

��2�2�2�2�2�2�2�2�2�2�����1����2�2�2�2�2�2�2�2�2�2�������������������������������������������������������������1��������2�2�2�2�2�2�2�2�2�2�1���1����2�2�2�2�2�2�2�2�2�2�����2�2��2�2�2�2�2�2�2�2�2�2����������2�2�2�2�2�2�2�2�2�2�����1����2�2�2�2�2�2�2�2�2�2�2�����2��2�2�2�2�2�2�2�2�2�2�1������

Page 170: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

170 APPENDICE A. ESEMPI

� �

���

��������� #"���������"��!0*�*,3����0/��6��0/

����� #"�������

��������������

����1�� ��������1�� ���������� ������2���2�2���2�����2����� ����� � ��������������1������1�������2�����1����������������1�� ����������������1����� ��������1�����2������������������2�2�1���2�����2������������1�� ��� ����2�� ���������������������������2���������1��� ��������2����������������

��� �.3- ������� �"!�#�$"% �'&�������!���������$�* �-.��-�3- � � �����- ����� /

3��

��2�2�2�2�2�2�2�2�2�2�2�2������2�2�2�2�2�2�2�2�2�2�2�2���������������������������������������������������������������2��2�2�2�2�2�2�2�2�2�2�2�2������2�2�2�2�2�2�2�2�2�2�2�2������2�2�2�2�2�2�2�2�2�2�2�2���1��2�2�2�2�2�2�2�2�2�2�2�2������2�2�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2�2�2�2�2�2�2�2�2����

� �

� �

��������� #"���������"��!0*�*,3����0/��6��0/

����� #"�������

��������������

������� ��1���1�������1�����1��������������� ����������� ���������������2��������������������1�2��������������������������1��������������������������������������1�2������������������� ��������2���������1������� ����2�� ��������1������������������������� �������������������1���� ����������2

��� �.3- ������� �"!�#�$"% �'&�������!���������$�* �-.��-������ #�!0*��'� - ��/�- � � ����� - ������/

3��

Page 171: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.9. RISOLUZIONE DI SISTEMI LINEARI FATTORIZZATI CON GAUSS-SEIDEL171

���������������������������� ������������������������������2��2�2�2�2�2�2�2�2�2�2�2�2������2�2�2�2�2�2�2�2�2�2�2�2���������������������������������������������������������������1���������������������������� ����������������������������� ������������������������������������������������������������2

�7�

���

��������� #"���������"��!0*�*,3����0/��6��0/

����� #"�������

��������������

��� ������� ��������������� �����2������������������������������������1����������������� ����������1�1���2�����1���1����������������2���������1�2��� ��1�����2�����������2�1�1��� ����������� ����2���2������� ��������2�������1������������� ����2�2�������� ����2������1�����2�����2���2��������

��� ��� � �� � �.3- ������� �"!�#�$"% �'&�������!���������$�*,�-���- ��-�� � ����� - �'����/

3��

��������������������������������������������������������������2�2�2�2�2�2�2�2�2�2�2�2�1����2�2�2�2�2�2�2�2�2�2�2�2���1���������������������������������������������������������� �������������������������������������������������������������������������������������������������������������������������

�7�

� �

��������� #"���������"��!0*�*,3����0/��6��0/

����� #"�������

��������������

�������������������������������� ������������1���������2����� ����2�����������2��������

Page 172: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

172 APPENDICE A. ESEMPI

� ������1�������������1���� �����������2�1���������1���1��������������� ��������2������������������2�����������2���2��������1�����������1�������2��������1�1�����1������ � ���������� ���������������������

��� �.3- ������� �"!�#�$"% �'&�������!���������$�* �-.��- ��- � � �����- ����� /

3��

����������

� �

�����

���

� � � � � � � � � � � ��2 ��2� � � � � � � � � ��� � � �� � � ��1 ����� � � ��� � � �� ��2 ��2 � � � � � � �

����� � � ��1 ����� ��� � � � � � � �� � � � ��� � � � � �� � � ��� � � ��� � � � ���� ��� � � � ��� � � � � � � �� � ��� ��� � ��� � � ��2 ��� �� � � � � ��� � � � � � ���

������� ! ����* � � / �

� �

��� ��������� �� �1

����������� �

��� 3

Page 173: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.9. RISOLUZIONE DI SISTEMI LINEARI FATTORIZZATI CON GAUSS-SEIDEL173

3��

� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������

��� �.3- ������� �"!�#�$"% �'&�������!�������� $�* �-���-�3- � � �'1 - ��� ��/

3��

���������������

����1���1���������������2������������1���������� ����1������������2�2�2�1�����������2���������� ����1�1�1������������������

� ���� ���

� � �

� � �

� � �

� � �

�7�

1��

��� �.3- ������� �"!�#�$"% �'&�������!�������� $�* �-���-�3- � � �'1 - ���0/������� ��� #"����! � ��� ��� ��� �"!�#�$"% �'&�������!���������$� ����$�# ����� � � � ��� #�� ��� ��������� #�� ��� ��������� �'#��0� ! ��� ��� �'#"��� ��$ $ � � � ���

� � .4�

��������� $�#�#"� *,���������+*�����/����/

���

� � ��� � ��� ��2 � � � � � ���2 � � � � � � ��� ��� � �� � � � � � � � � ��� � ���� ��� 1 � � 1 ����� ��� � � � �� � ��� ��� � � � � � ��1 � �� � � � � ��� � ��� � � �� � � � � � � � � � ���� � ��1 � � � � � � � � ��� �� ��� ��1 ��� ����� ��� � � � � �� � � � ��� ��� ��� � ��� ��� ���

��� ����� � "�

���

� ��2 � � ����� ��1 ��� ����� ��2 ��� � ��� � ���

Page 174: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

174 APPENDICE A. ESEMPI

� � � ��� 1�� ��� ����� 2�1 ������� ����� ��1�� 2����� 1�� ����� 2�� ��1�� ��2 � ��� � ��� ��2�� �������1 ��� 2�� � ��2 ��� ����� � ��2�� � �������� ����� ��1�� ��� ����� ����� ������� � ��� ������� �������� 2�1 ��2 ����� ����� � ��� ������� � ��� ����2 ��� ���2 ������� � ��� � ������� ������� � ��� ����� � � ���� ����� � ��� ��2�� � ��� � ��� ����� � ��1 ��� ����2� ��� ��1�� ��2�� � ������� ����2 � � ��� � ��2 � ���� ��� 2 ����� ����� ��� ��� � � ����2 � ��� 2��

��������� *,� /

����!��

��� ������1�����������������������������2

��������� * � /

����!��

���������������

������������������1���������2����2�������2�������2��������� ������2��������������������� ������� ��2�������� � ����1� ������2�������������1�� ����������1���1�2���������� ����2���1�1�� ����2�2�����1��������� ��1������ ��������������1��� ��������������1�����1���2��1�������������� ����2�������2

������� ! ����* � � / �

� �

������������2�1������������������ ��1��2���������� ���

��� 3

3��

� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������

Page 175: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.10. METODO DI BISEZIONE 175

��� �.3- ������� �"!�#�$"% �'&�������!�������� $�* �-���-�3- � � ��� � - � ����/

3��

��������������������������������������������������������������������������������������������2�2�2�2�2�2�2�2�2�2�2�2�1����2�2�2�2�2�2�2�2�2�2�2�2�2�2��������������������������������������������������������������2�2�2�2�2�2�2�2�2�2�2�2�2��������������������������������������������������������������

�7�

����1

A.10 Metodo di bisezione��� � ��� � ��� ! �

����� ��� �'#�� � ��������� ! �+*,3 /������3��+*�� "3 /�����������������

��� � #�$�$"� � � ��� �

� #�$�$ �

������������������������������������� �

��� �.3- � � !�! �������0�"!���� �'#�� ��* ���� � - ��-�� ��� ! � ��- � #�$ $+- �'����/

3��

������������������2���������� ������ �

� � !�! � �

���

��� � ��� � � � � $ �

����� ��� �'#�� � ������� � � $ � *,3 /

��� ��3��+* ��3 /� �*,3�� ��/����� �

�����������

��� �.3- � � !�! �������0�"!���� �'#�� ��* � �- ��� - � � � ��$ � ��- � � � � � - ������/

3��

��2�2�2�2�2�2�2�2�2�2�2������

Page 176: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

176 APPENDICE A. ESEMPI

� � !�! ���

���

��� �.3- � � !�! �������0�"!���� �'#�� ��* ����- ��-�� � �� $ � ��- � � ��� � - �����0/

3��

�����������������������������

� � !�! ���

���

A.11 Metodo di Newton��� � ��� � ����� ! �

����� ��� �'#�� � ����������� ! �+*,3 /����� ���3��+*�� "3 /�������������

��� � ��� � ��� � � $ �

����� ��� �'#�� � ��������� � � $ � *,3 /

��� * � �*,3�� ��/���"��/� ���3��+* ��3 / � ��3��+* ��3 /� �*,3�� ��/����� �

�����������

��� �.3- � � !�! ������� ��� � #��+* � ��� ! � ��- � ����� ! � ��- � #�$�$+- ��- �����0/

3��

� ��������1���������1�1�������� ���� �

� � !�! ���

1

��� �.3- � � !�! ������� ��� � #��+* � ��� ! � ��- � ����� ! � ��- � #�$�$+- ���� � -�������/

3��

� ��2�������� � ����1��������������� �

� � !�! ���

��� �.3- � � !�! ������� ��� � #��+* � ��� ! � ��- � ����� ! � ��- � #�$�$+- ����- ��� ��/

3��

� � �

Page 177: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.11. METODO DI NEWTON 177

−0.5 0 0.5 1

−1

0

1

2

3

4

5

6

x

fesp(x)

Figura A.1: bisezione(−0.5, 1,′ fesp′, toll, 100)

−5 0 5 10 15 20 25 30 35 40 45 50

−0.8

−0.7

−0.6

−0.5

−0.4

−0.3

−0.2

−0.1

0

0.1

x

fmult(x)

Figura A.2: bisezione(−5, 50,′ fmult′, toll, 100)

Page 178: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

178 APPENDICE A. ESEMPI

−1 0 1 2 3 4 5

−90

−80

−70

−60

−50

−40

−30

−20

−10

0

x

fmult(x)

Figura A.3: bisezione(−1, 5,′ fmult′, toll, 100)

� � !�! ���

��� �.3- � � !�! ������� ��� � #��+* � � � � $ � � -�� ����� � $�� ��- � #�$�$+- �- �"����/

3��

�����������������������������

� � !�! ���

1��

��� �.3- � � !�! ������� ��� � #��+* � � � � $ � � -�� ����� � $�� ��- � � ��� �- �- ����/������� ��� #"� ��! � ��� ��� � � ��� � #��� ��� ������� # $ � � � ��� � ��������� �'#��0�

A.12 Metodi di Newton per funzioni con radice mul-

tipla nota��� ���"(�(�� � � � �

���"(�( �

���������������������������������������

��� �.3- � � !�! ������� ��� � #�� & �0#�� ��� * � � � � $�� ��- � ��� �� $ � ��- ����(�(- ��- � - �'����/

Page 179: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.13. METODO DELLE CORDE 179

3��

��2�2�2�2�2�2�2�2�2�2�2�2����

� � !�! � �

��� �.3- � � !�! ������� ��� � #�� & �0#�� ���+* � � �� $ � ��-�� ��� � � $ � ��- ���"(�(�-�� - �- ������/

3��

��2�2�2�2�2�2�2�2�2�2�2�2����

� � !�! � �

��� �.3- � � !�! ������� ��� � #�� & �0#�� ���+* � � �� $ � ��-�� ��� � � $ � ��- ���"(�(�- � - �- ������/������� ��� #"����! � ��� ��� ��� ��� � #�� & �0#�� ���

� ��� ������� # $ � � � ��� � ��������� �'#��0�

A.13 Metodo delle corde��� �.3- ����� ��#"������* � ��� ! � ��-�� ��� � ! � ��- � #�$�$+- �'� � -���- ��-������ /

3��

2�� ������������1�1���2���2��������� �

���

�����

��� �.3- ����� ��#"������* � ��� ! � ��-�� ��� � ! � ��- � #�$�$+- �'� � -���- � �-�������/

3��

� � ���

���

��� �.3- � � !�! ����� ��#"������* � � � � $ � ��-�� ��� � � $�� ��- ���"(�( -�� � - �- �-�������/������� ��� #"����! � ��� ��� � ��#"�����

� ��� ������� # $ � � � ��� � ��������� �'#��0�

��� �.3- ����� ��#"������* � � � � $ � ��-�� ��� � � $�� ��- � �"(�(�-�� ��- � - ��/

3��

�����������������������������

���

Page 180: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

180 APPENDICE A. ESEMPI

−0.5 0 0.5 1

−1

0

1

2

3

4

5

6

x

fesp(x)

Figura A.4: corde(′fesp′,′ dfesp′, toll,−0.5, 1, 1, 250)

2.5 3 3.5 4

−0.01

−0.005

0

0.005

0.01

0.015

x

fmult(x)

Figura A.5: corde(′fmult′,′ dfmult′, TOLL, 2.5, 4, 4, 250)

Page 181: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.14. METODO DELLE SECANTI 181

2.5 3 3.5 4 4.5 5

−0.01

0

0.01

0.02

0.03

0.04

0.05

x

fmult(x)

Figura A.6: corde(′fmult′,′ dfmult′, TOLL, 2.5, 5, 5, 250)

A.14 Metodo delle secanti��� �.3- ����� !�� ����� � ��* � ��� ! � ��-�� ����� !�� ��- � #�$�$ - ��� � - ��- �����- ��- �'����/

3��

� ������������2�������������� � ���� �

���

���

��� �.3- ����� !�� ����� � ��* � ��� ! � ��-�� ����� !�� ��- � #�$�$ - ��� � - ��- ��� - � � - �'����/

3��

� �

���

��� �.3- ����� !�� ����� � ��* � � � � $ � ��- � ��� �� $ � ��- � #�$�$+-���- � � -�� - ����- ����� /������� ��� #"����! � ��� ��� � !�� ����� � �� ��� ������� # $ � � � ��� � ��������� �'#��0�

��� �.3- ����� !�� ����� � ��* � � � � $ � ��- � ��� �� $ � ��- � #�$�$+-���- � � - ���- � � - ����� /

3��

��2�2�2�2�2�2�2�2�2�2�2�2�2�2

Page 182: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

182 APPENDICE A. ESEMPI

� �

� ���

−0.5 0 0.5 1

−1

0

1

2

3

4

5

6

x

fesp(x)

Figura A.7: secanti(′fesp′,′ dfesp′, toll,−0.5, 1, 1.1, 1, 100)

2 2.5 3 3.5

−0.12

−0.1

−0.08

−0.06

−0.04

−0.02

0

x

fmult(x)

Figura A.8: secanti(′fmult′,′ dfmult′, toll, 2, 3.5, 2, 2.1, 100)

Page 183: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.15. METODO DI ACCELERAZIONE DI AITKEN 183

2 2.5 3 3.5

−0.12

−0.1

−0.08

−0.06

−0.04

−0.02

0

x

fmult(x)

Figura A.9: secanti(′fmult′,′ dfmult′, toll, 2, 3.5,−2,−3, 200)

A.15 Metodo di accelerazione di Aitken��� �.3- ��������� � � ���+* � � � � $ � ��-�� ��� � ��$ � ��- � � �'2 - �-������ /

3��

������������������������2���1

���

2

������� �.3- ������� ��� � #��+* � � � � $ � ��-�� ��� � � $�� ��- � � ��2�- �- ������/

3��

��������������������������2��

���

���

��� �.3- ��������� � � ���+* � � � � $ � ��-�� ��� � ��$ � ��- � � �'2 -�� -������ /

3��

����������������������1���1��

���

Page 184: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

184 APPENDICE A. ESEMPI

��� �.3- ������� ��� � #��+* � � � � $ � ��-�� ��� � � $ � ��- � � ��2 - � - ������/

3��

��2�2�2�2�2�2�2�2�����1�����1

� �

��1

A.16 Interpolazione di Vandermonde��� 3���� � � � ������������������������*,3 /����������� �"!�#�$"% �'&"%���������� �0#�������*,3- � /

���

���������������������������������������������������������������� ����������1���������2���������������������������������������2���������������������2�������������������������������������������� ��� ������������1�2�������������������������������������������2���1���������2�������������������������������������������������������������2

��� 3���� � � � � � ������������������������*,3 /����������� �"!�#�$"% �'&"%���������� �0#�������*,3- � /

���

��2�2�2�2�2�2�2�2�2�1��������������������������������2��������2���������2���1���� ���������������������������� ������2�2� ������������2���������� �������������������������������1��� ��2�� �����������������������������������������������1������������������2�����������1�������������������������������������������� ������������� ��2���������������������������������������������1�����2�����1������������������������������������������������ ������������������������������������������ ������������������������ ��� ��������������������������������������������������������������������������������������������

Page 185: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.16. INTERPOLAZIONE DI VANDERMONDE 185

−5 −4 −3 −2 −1 0 1 2 3 4 5−0.5

0

0.5

1

1.5

2Punti di interpolazionePolinomio interpolante

Figura A.10: Interpolazione polinomiale funzione di Runge conVandermonde, 10 ascisse

������������������������1�� �

−5 −4 −3 −2 −1 0 1 2 3 4 5−60

−50

−40

−30

−20

−10

0

10

Punti da interpolarePolinomio interpolante

Figura A.11: Interpolazione polinomiale funzione di Runge conVandermonde, 20 ascisse

Page 186: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

186 APPENDICE A. ESEMPI

A.17 Interpolazione di Lagrange

−5 −4 −3 −2 −1 0 1 2 3 4 5−0.5

0

0.5

1

1.5

2Polinomio interpolantePunti da interpolare

Figura A.12: Interpolazione polinomiale funzione di Runge con Lagrange,10 ascisse

−5 −4 −3 −2 −1 0 1 2 3 4 5−60

−50

−40

−30

−20

−10

0

10

Polinomio interpolantePunti di interpolazione

Figura A.13: Interpolazione polinomiale funzione di Runge con Lagrange,20 ascisse

Page 187: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.18. INTERPOLAZIONE POLINOMIALE CON BASE NEWTON E METODO DI HORNER187

A.18 Interpolazione polinomiale con base Newton e

metodo di Horner

−3 −2 −1 0 1 2 3

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

x

frunge(x)

Polinomio interpolantePunti di interpolazioneFunzione

Figura A.14: newtonhorneruni(′frunge′,−3, 3, 50, 8)

−3 −2 −1 0 1 2 3

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

x

frunge(x)

Polinomio interpolantePunti di interpolazioneFunzione

Figura A.15: newtonhorneruni(′frunge′,−3, 3, 50, 16)

Page 188: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

188 APPENDICE A. ESEMPI

−3 −2 −1 0 1 2 3

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

x

frunge(x)

Polinomio interpolantePunti di interpolazioneFunzione

Figura A.16: newtonhorneruni(′frunge′,−3, 3, 50, 35)

−3 −2 −1 0 1 2 3

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

x

frunge(x)

Polinomio interpolantePunti di interpolazioneFunzione

Figura A.17: newtonhornercheby(′frunge′,−3, 3, 50, 15)

Page 189: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.19. INTERPOLAZIONE POLINOMIALE CON BASE DI NEWTON E METODO DI NEVILLE189

A.19 Interpolazione polinomiale con base di Newton

e metodo di Neville

−10 −8 −6 −4 −2 0 2 4 6 8 10

−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

x

fperiodica(x)

Polinomio interpolantePunti di interpolazioneFunzione

Figura A.18: newtonnevilleuni(′fperiodica′,−10, 10, 100, 15)

−10 −8 −6 −4 −2 0 2 4 6 8 10

−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

x

fperiodica(x)

Polinomio interpolantePunti di interpolazioneFunzione

Figura A.19: newtonnevilleuni(′fperiodica′,−10, 10, 100, 20)

Page 190: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

190 APPENDICE A. ESEMPI

−10 −8 −6 −4 −2 0 2 4 6 8 10

−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

x

fperiodica(x)

Polinomio interpolantePunti di interpolazioneFunzione

Figura A.20: newtonnevillecheby(′fperiodica′,−10, 10, 100, 20)

A.20 Splines

−5 −4 −3 −2 −1 0 1 2 3 4 50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

FunzioneSplinePunti di interpolazione

Figura A.21: spline(′frunge′, [−5 : 2 : 5], 50)

Page 191: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.20. SPLINES 191

−5 −4 −3 −2 −1 0 1 2 3 4 50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

FunzioneSplinePunti di interpolazione

Figura A.22: spline(′frunge′, [−5 : 1 : 5], 50)

2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4−0.14

−0.12

−0.1

−0.08

−0.06

−0.04

−0.02

0

0.02

FunzioneSplinePunti di interpolazione

Figura A.23: spline(′fmult′, [2 : 0.5 : 4], 50)

Page 192: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

192 APPENDICE A. ESEMPI

2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4−0.14

−0.12

−0.1

−0.08

−0.06

−0.04

−0.02

0

0.02

FunzioneSplinePunti di interpolazione

Figura A.24: spline(′fmult′, [2 : 0.25 : 4], 50)

2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4−0.14

−0.12

−0.1

−0.08

−0.06

−0.04

−0.02

0

0.02

FunzioneSplinePunti di interpolazione

Figura A.25: spline(′fmult′, [2 : 0.05 : 4], 100)

Page 193: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.20. SPLINES 193

−5 −4 −3 −2 −1 0 1 2 3 4 5−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

FunzioneSplinePunti di interpolazione

Figura A.26: spline(′fperiodica′, [−5 : 2.5 : 5], 100)

−5 −4 −3 −2 −1 0 1 2 3 4 5−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

FunzioneSplinePunti di interpolazione

Figura A.27: spline(′fperiodica′, [−5 : 1.25 : 5], 100)

Page 194: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

194 APPENDICE A. ESEMPI

−10 −8 −6 −4 −2 0 2 4 6 8 10−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

FunzioneSplinePunti di interpolazione

Figura A.28: spline(′fperiodica′, [−10 : 2 : 10], 100)

−10 −8 −6 −4 −2 0 2 4 6 8 10−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

FunzioneSplinePunti di interpolazione

Figura A.29: spline(′fperiodica′, [−10 : 1 : 10], 100)

Page 195: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.21. MINIMI QUADRATI 195

A.21 Minimi quadrati����3������ � �����

3��

� #�$���� ��! ������� #������ � �

� � � � � � � 1 2 ��� ��� ��� � � ��� � � � � � �

� #�$���� ��! ��1������ #������ ���

��1 ��2 ��� ��� ��� ��� ��� ��� ��� ��� ��1 ��2 ��� ��� ��� ��� ���

� #�$���� ��!���������� #������ ���

��� ��� ��� ��1 ��2 ��� � � ��� ��� ��� ��� ��� ��� ��1 ��2 ���

��� � ��� � �

����� ��� �'#�� � ������� *,3 /����3� "3���� ������������

��� � ��� � ��� ��� �'#�� �����

����� ��� �'#�� � ��������� ��� �'#�� ������*,3 /��� *,3� ��#�!0*,3 /�/��6�!'5�� � *�*,3���"� /���� /�������������

−3 −2 −1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Figura A.30: minimi_quadrati(x, f, 16)

Page 196: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

196 APPENDICE A. ESEMPI

−3 −2 −1 0 1 2 30.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Figura A.31: minimi_quadrati(x, f, 8)

10 15 20 25 30

0.25

0.3

0.35

0.4

0.45

0.5

0.55

0.6

0.65

0.7

Figura A.32: minimi_quadrati(x, f, 8)

Page 197: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.21. MINIMI QUADRATI 197

10 15 20 25 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Figura A.33: minimi_quadrati(x, f, 16)

15 20 25 30 35−2

−1

0

1

2

3

4

5

Figura A.34: minimi_quadrati(x, f, 30)

Page 198: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

198 APPENDICE A. ESEMPI

28 30 32 34 36 38

−15

−10

−5

0

5

10

15

20

25

Figura A.35: minimi_quadrati(x, f, 50)

Page 199: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.22. FUNZIONI DI RIFERIMENTO PER LE FORMULE DI QUADRATURA199

A.22 Funzioni di riferimento per le formule di Qua-

dratura��� � ��� � ���

����� ��� �'#�� � ��������� *,3 /������3��+*,3 / ����������������

��� � ��� ����� � � � � ��%����

����� ��� �'#�� ������� � � � � ��%�����*,3 /��������3��+*,3 /���3���������

0 1 2 3 4 5 6 7 8 9 10

0

2000

4000

6000

8000

10000

12000

x

f4(x)

Figura A.36: Formule di quadratura : funzione di riferimento y = ex − 1

��� � ��� � ���

����� ��� �'#�� � ����������*,3 /� ������� �'#�� � � � ������������ ���6�*�����3���"��/���������������� � ��� ����� � � � � ��%����

����� ��� �'#�� ������� � � � � ��%�����*,3 /�������������+*,3 /����������

Page 200: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

200 APPENDICE A. ESEMPI

−5 −4 −3 −2 −1 0 1 2 3 4 5

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

x

f6(x)

Figura A.37: Formule di quadratura : funzione di Runge y = 11+x2

A.23 Formule di Quadratura di Newton-Cotes : Tra-

pezi e Simpson��������%���$�* � ��� � � � � ��%���� ��-�1�/�������%���$�* � ���0� � � �0��%���� ��- �0/

����!��

��2�����1���������������1���� � ���������

��� ������� ��� ��* � ��� ��- � -�1�/

����!��

� ��2�������1�1���2�2�������2������������

��� ! � � ��!�#��+* � ��� ��- � -�1�/

����!��

� ����� ����2�����������1�� �������������

��������%���$�* � ��� � � � � ��%�������-�� ��/�������%�� $�* � ��� � �+� � ��% ����� - ��� ��/

����!��

Page 201: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.23. FORMULE DI QUADRATURA DI NEWTON-COTES : TRAPEZI E SIMPSON201

��2�������2�������1������ ���

��� ������� ��� ��* � ������- ��� � -�� ��/

����!��

��1��������������������������

����! � � ��!�#��+* � ������- ��� � -�� ��/

����!��

��2��������������������������

��������%���$�* � ��� � � � � ��%���� ��-�1�/���� ��%���$�* � � � � � ��� ��% ��� ��- ��/

����!��

��2�����1���������������1���� � ���������

��� ������� ��� ��* � ��� ��- � -�1�/

����!��

� ��2�������1�1���2�2�������2������������

����! � � ��!�#��+* � ��� ��- � -�1�/

����!��

� ����� ����2�����������1�� �������������

��� ����%���$�* � ��� � � � � ��%�������- ��/�� ����%�� $�* � � � � �+� � ��% ������- � ��/

����!��

� ������1���� ������1�2������

��� ������� ��� ��* � ������- � � - ��/

����!��

� ��1������ ����1������ ����1

����! � � ��!�#��+* � ������- � � - ��/

Page 202: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

202 APPENDICE A. ESEMPI

����!��

� ��2���1���� ��2���1���� ��2

Page 203: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.24. FORMULE COMPOSITE DI NEWTON-COTES: TRAPEZI 203

A.24 Formule composite di Newton-Cotes: Trapezi��� � � ����������$ ��* � ��� ��-�� ��� � � � �0��%���� ��- � - 1 - ��- � ��"��/

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� $������ � � � � ��%�� � ���2�����1���������������1���� � ���������

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� �'$ ����� #�� # � ���2�����1�1���������������1��������������

# � ������� � # ��#�� ��� ��������� # � � ! ����� ��% �"! �'#��0� ����� ��$�� � ���1��

��� � � ����������$ ��* � ��� ��-�� ��� � � � �0��%���� ��- � - 1 - ��- � �����/

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� $������ � � � � ��%�� � ���2�����1���������������1���� � ���������

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� �'$ ����� #�� # � ���2�����1���������������1���1�1����������

# � ������� � # ��#�� ��� ��������� # � � ! ����� ��% �"! �'#��0� ����� ��$�� � �����1����

��� � � ����������$ ��* � ��� ��-�� ��� � � � �0��%���� ��- � - 1 - ��- � �� ����/

� .��

��� � � ����������$ ��* � ������-�� ��� � � � �0��%���� ��- ���� � - � � -���- �������/

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� $������ � � � � ��%�� � ���2�������2�������1������ ���

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� �'$ ����� #�� # � ���2�������1�1���������2�� ���

# � ������� � # ��#�� ��� ��������� # � � ! ����� ��% �"! �'#��0� ����� ��$�� � ��

��� � � ����������$ ��* � ������-�� ��� � � � �0��%���� ��- ���� � - � � -���- ���� ��/

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� $������ � � � � ��%�� � ���2�������2�������1������ ���

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� �'$ ����� #�� # � ���2�������1���������2�1������

# � ������� � # ��#�� ��� ��������� # � � ! ����� ��% �"! �'#��0� ����� ��$�� � ������

Page 204: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

204 APPENDICE A. ESEMPI

��� � � ����������$ ��* � ������-�� ��� � � � � ��% ������- ��� � -�� � - ��- � �� ����/

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� $������ � � � � ��%���� ���2�������2�������1������ ���

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� �'$������ #�� # � ���2�������2������ ��2���� ���

# � ������� � # ��#�� ��� ��������� #�� ��! ����� ��% �"! �'#��0� ����� ��$�� � ����������

��� � � ����������$ ��* � ������-�� ��� � � � � ��% ������- � � - � - ��- � ���� /

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� $������ � � � � ��%���� �� ������1���� ������1�2������

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� �'$������ #�� # � �� ����������1���2�����1������

# � ������� � # ��#�� ��� ��������� #�� ��! ����� ��% �"! �'#��0� ����� ��$�� � ����

��� � � ����������$ ��* � ������-�� ��� � � � � ��% ������- � � - � - ��- � �� � /

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� $������ � � � � ��%���� �� ������1���� ������1�2������

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� �'$������ #�� # � �� ��������2�� ����1���� �����

# � ������� � # ��#�� ��� ��������� #�� ��! ����� ��% �"! �'#��0� ����� ��$�� � �� ��1

��� � � ����������$ ��* � ������-�� ��� � � � � ��% ������- � � - � - ��- � ����'��/

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� $������ � � � � ��%���� �� ������1���� ������1�2������

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� �'$������ #�� # � �� ������1���� ��������2������

# � ������� � # ��#�� ��� ��������� #�� ��! ����� ��% �"! �'#��0� ����� ��$�� � ���2������

Page 205: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.25. FORMULE COMPOSITE DI NEWTON-COTES: SIMPSON 205

A.25 Formule composite di Newton-Cotes: Simpson��� � � ����������$ ��* � ��� ��-�� ��� � � � �0��%���� ��- � - 1 -��- � ��"��/

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� $������ � � � � ��%�� � ���2�����1���������������1���� � ���������

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� �'$ ����� #�� # � ���2�����1�1���������������1��������������

# � ������� � # ��#�� ��� ��������� # � � ! ����� ��% �"! �'#��0� ����� ��$�� � �� �

��� � � ����������$ ��* � ��� ��-�� ��� � � � �0��%���� ��- � - 1 -��- � �����/

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� $������ � � � � ��%�� � ���2�����1���������������1���� � ���������

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� �'$ ����� #�� # � ���2�����1���������2�2��������������������

# � ������� � # ��#�� ��� ��������� # � � ! ����� ��% �"! �'#��0� ����� ��$�� � �2��

��� � � ����������$ ��* � ��� ��-�� ��� � � � �0��%���� ��- � - 1 -��- � �� ����/

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� $������ � � � � ��%�� � ���2�����1���������������1���� � ���������

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� �'$ ����� #�� # � ���2�����1���������������1����������������

# � ������� � # ��#�� ��� ��������� # � � ! ����� ��% �"! �'#��0� ����� ��$�� � �� ��1�2

��� � � ����������$ ��* � ��� ��-�� ��� � � � �0��%���� ��- � - 1 -��- � �� � ��/

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� $������ � � � � ��%�� � ���2�����1���������������1���� � ���������

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� �'$ ����� #�� # � ���2�����1���������������1���� � ���������

# � ������� � # ��#�� ��� ��������� # � � ! ����� ��% �"! �'#��0� ����� ��$�� � ���2����

��� � � ����������$ ��* � ������-�� ��� � � � �0��%���� ��- ���� � - � � -,� - �������/

Page 206: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

206 APPENDICE A. ESEMPI

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� $������ � � � � ��%���� ���2�������2�������1������ ���

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� �'$������ #�� # � ���2��������������������������

# � ������� � # ��#�� ��� ��������� #�� ��! ����� ��% �"! �'#��0� ����� ��$�� � ��

��� � � ����������$ ��* � ������-�� ��� � � � � ��% ������- ��� � -�� � -�� - � �����/

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� $������ � � � � ��%���� ���2�������2�������1������ ���

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� �'$������ #�� # � ���2�������2�2�������1�1�2����

# � ������� � # ��#�� ��� ��������� #�� ��! ����� ��% �"! �'#��0� ����� ��$�� � ��

��� � � ����������$ ��* � ������-�� ��� � � � � ��% ������- ��� � -�� � -�� - � �� ����/

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� $������ � � � � ��%���� ���2�������2�������1������ ���

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� �'$������ #�� # � ���2�������2�������1���2���1��

# � ������� � # ��#�� ��� ��������� #�� ��! ����� ��% �"! �'#��0� ����� ��$�� � ����

��� � � ����������$ ��* � ������-�� ��� � � � � ��% ������- � � - � -�� - � ���� /

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� $������ � � � � ��%���� �� ������1���� ������1�2������

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� �'$������ #�� # � �� ����������������1����������

# � ������� � # ��#�� ��� ��������� #�� ��! ����� ��% �"! �'#��0� ����� ��$�� � �2

��� � � ����������$ ��* � ������-�� ��� � � � � ��% ������- � � - � -�� - � �� � /

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� $������ � � � � ��%���� �� ������1���� ������1�2������

� $ %���$�#"��� ����$�$ � � � ����������$�������$ ��#�$���� # ��#�� �'$������ #�� # � �� ��������2���2���1����������

# � ������� � # ��#�� ��� ��������� #�� ��! ����� ��% �"! �'#��0� ����� ��$�� � �

Page 207: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.25. FORMULE COMPOSITE DI NEWTON-COTES: SIMPSON 207

���

��� � � ����������$ ��* � ������-�� ��� � � � �0��%���� ��- � �- � - � - � � ����� /

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� $������ � � � � ��%�� � �� ������1���� ������1�2������

� $�%���$�#"��� ����$�$ � � � ����������$�� ����$ ��#�$���� # ��#�� �'$ ����� #�� # � �� ������1���� ��������2������

# � ������� � # ��#�� ��� ��������� # � � ! ����� ��% �"! �'#��0� ����� ��$�� � ������

Page 208: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

208 APPENDICE A. ESEMPI

A.26 Formule adattive di Newton-Cotes: Trapezi��� � ��� � � �

����� ��� �'#�� � ������� ��*,3 /��� ! � �+*,3 /��6�*,3 /�������������

��� ������� ��� �'&�������� � ��%���&�������� �+* � � � ��- ��- �'� - � ��� ��/

����!��

� ����1�2�������1�����������1

��� ������� ��� �'&�������� � ��%���&�������� �+* � � � ��- ��- �'� - � ��� ��/

����!��

� ����1�1�1�2�2�2�����������2

���

��� � ��� � ���

����� ��� �'#�� � ��������� *,3 /������3��+*,3 /�����������������

��� ������� ��� �'&�������� � ��%���&�������� �+* � ��� ��- � -�1- � �����/

����!��

��2�����1�����2�1������������������������

��� � ��� � ���

����� ��� �'#�� � ����������*,3 /��� *,3� ��#�!0*,3 /�/��6�!'5�� � *�*,3������/�� � /����������������

��� ������� ��� �'&�������� � ��%���&�������� �+* � ������- ��2 - ��� - ������ /

����!��

����2���������� ������1�2�2����

Page 209: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.26. FORMULE ADATTIVE DI NEWTON-COTES: TRAPEZI 209

1 2 3 4 5 6 7 8 9 10 11 12

−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

x

f1(x)

Figura A.38: Metodo Trapezi-adattivo con la funzione y = sen(x)x

e tolleranza1e−3

1 2 3 4 5 6 7 8 9 10 11 12

−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

x

f1(x)

Figura A.39: Metodo Trapezi-adattivo con la funzione y = sen(x)x

e tolleranza1e−5

Page 210: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

210 APPENDICE A. ESEMPI

3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8

0

500

1000

1500

2000

2500

3000

x

f4(x)

Figura A.40: Metodo Trapezi-adattivo con la funzione y = ex−1 e tolleranza1e−3

−8 −6 −4 −2 0 2 4 6 8 10

−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

x

f5(x)

Figura A.41: Metodo Trapezi-adattivo con la funzione x·cos(x)√x2+4

e tolleranza

1e−3

Page 211: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.27. FORMULE ADATTIVE DI NEWTON-COTES: SIMPSON 211

A.27 Formule adattive di Newton-Cotes: Simpson

����! � � ��!�#�� &�������� � ��%���&�������� � * � � � ��- ��- ��� - � �� �0/

����!��

� ����1�1�1���2���1�2��������

����! � � ��!�#�� &�������� � ��%���&�������� � * � ��� ��- � - 1 - ���� ��/

����!��

��2�����1�������������2�1���� �����������

����! � � ��!�#�� &�������� � ��%���&�������� � * � ��� ��- ��2- ���- � ���� /

����!��

����2���������������2����������

����! � � ��!�#�� &�������� � ��%���&�������� � * � ��� ��- ���� � - � � -�� �����/

����!��

��2�������2�������2����������

����! � � ��!�#�� &�������� � ��%���&�������� � * � ��� ��- � �- � - � �� �0/

����!��

� ������1�������������1������

Page 212: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

212 APPENDICE A. ESEMPI

1 2 3 4 5 6 7 8 9 10 11 12

−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

x

f1(x)

Figura A.42: Metodo Simpson-adattivo con la funzione sen(x)x

e tolleranza1e−5

3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8

0

500

1000

1500

2000

2500

3000

x

f4(x)

Figura A.43: Metodo Simpson-adattivo con la funzione ex − 1 e tolleranza1e−5

Page 213: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.27. FORMULE ADATTIVE DI NEWTON-COTES: SIMPSON 213

−8 −6 −4 −2 0 2 4 6 8 10

−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

x

f5(x)

Figura A.44: Metodo Simpson-adattivo con la funzione x·cos(x)√x2+4

e tolleranza

1e−4

−0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5

0.8

0.82

0.84

0.86

0.88

0.9

0.92

0.94

0.96

0.98

1

x

f6(x)

Figura A.45: Metodo Simpson-adattivo con la funzione di Runge 11+x2 e

tolleranza 1e−5

Page 214: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

214 APPENDICE A. ESEMPI

−5 −4 −3 −2 −1 0 1 2 3 4 5

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

x

f6(x)

Figura A.46: Metodo Simpson-adattivo con la funzione di Runge1

1+x2 (diverso intervallo) e tolleranza 1e−5

A.28 Autovalori ed Autovettori

��� ����� $�#�#"� *,���������+*�����/����/

���

� � � � � � ��� ��� � � � � ������ � � � � � � ��� � � ��1 � �� � � � � � � � � ��� � 2� � � � � � � � � ��� ��� ��� �� � � ��� � � � ��� � � � � � 2� ��� � � � � � � � � � � � � ���� � � � � � ��� ��� ��� � � � �� � � � � ��� � � ����� � � ��� ���� � ��� � � � � � ��� � � � � ���� � ��� ��� � � � � � ��� � � �

��� � ��� � !���#"� #�� � !0*���� - ��/

� ��� � !���#��

���������

Page 215: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.28. AUTOVALORI ED AUTOVETTORI 215

��������� *,� /

����!��

������ ������2���1�2�2�����2������� ��1�2�����1�1������ ��� �����1���1�1���2�������� � ��2�� ��2�����������������1�1�����1�� ���1���1�1���2�������� � ��2�� � 2�����������������1�1�����1�� ����������1���������������������� � � � ��������� � ������2�2������ ����������1���������������������� ��� � ��������� � ������2�2������ �� ��1���������������1���������� � � ��� � ��������1���������1�� �� ��1���������������1���������� � � ��� � ��������1���������1�� ������1�������������1�������� ��� � ����������1���� ��� ����������������1�������������1�������� ��� � ����������1���� ��� �����������

������%���$"��� # ����������*,�- � ��� � !���# - � �����/

��%���$ �

������ ������2���������������1���2

������%���$"��� # ����������*,�- � ��� � !���# - � �������/

��%���$ �

������ ������2���1�2�2���2�1������

������%���$"��� # ����������*,�- � ��� � !���# - � ���� ��/

��%���$ �

������ ������2���1�2�2�����2���� �

������%���$"��� # ����������*,�- � ��� � !���# - ����! /

��%���$ �

������ ������2���1�2�2�����2������

��������� *,� /

����!��

������ ������2���1�2�2�����2������� ��1�2�����1�1������ ��� �����1���1�1���2�������� � ��2�� ��2�����������������1�1�����1�� ���1���1�1���2�������� � ��2�� � 2�����������������1�1�����1�� ����������1���������������������� � � � ��������� � ������2�2������ ����������1���������������������� ��� � ��������� � ������2�2������ �� ��1���������������1���������� � � ��� � ��������1���������1�� �� ��1���������������1���������� � � ��� � ��������1���������1�� ������1�������������1�������� ��� � ����������1���� ��� ����������������1�������������1�������� ��� � ����������1���� ��� �����������

Page 216: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

216 APPENDICE A. ESEMPI

��� � ��� � !���#������ $�#�#"� *,���������+*���� -���/� �'��/

� ��� � !���#�� �

� ����2�����

������������

������%���$"��� # ����������*,�- � ��� � !���#�� -�� �� � /

��%���$��

������ ������2�������1�����������2

������%���$"��� # ����������*,�- � ��� � !���#�� -�� ����'��/

��%���$��

������ ������2���1�2�2���� �������

������%���$"��� # ����������*,�- � ��� � !���#�� -�� �������/

��%���$��

������ ������2���1�2�2�����2�����1

������%���$"��� # ����������*,�- � ��� � !���#�� - ����! /

��%���$��

������ ������2���1�2�2�����2������

���

��������� *,� /

����!��

������ ������2���1�2�2�����2������� ��1�2�����1�1������ ��� �����1���1�1���2�������� � ��2���� 2�����������������1�1�����1�� ���1���1�1���2�������� � ��2�� ��2�����������������1�1�����1�� ����������1���������������������� � � � ��������� � ������2�2������ ����������1���������������������� ��� � ��������� � ������2�2������ �� ��1���������������1���������� � � ��� � ��������1���������1�� �� ��1���������������1���������� � � ��� � ��������1���������1�� ������1�������������1�������� ��� � ����������1���� ��� ����������������1�������������1�������� ��� � ����������1���� ��� �����������

��� � ��� � !���#������ $�#�#"� *,���������+*���� -���/� �'����� /

� ��� � !���#�� �

Page 217: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

A.28. AUTOVALORI ED AUTOVETTORI 217

2���2����������

���������2���2� ��2����������1��� ������ ���1��

������%���$"��� # ����������*,�- � ��� � !���#�� - � ��� ��/

��%���$ �

������ ������2���1�� ��������� ���

������%���$"��� # ����������*,�- � ��� � !���#�� - � ��������/

��%���$ �

������ ������2���1�2�1�2���������2

������%���$"��� # ����������*,�- � ��� � !���#�� - � ����� ��/

��%���$ �

������ ������2���1�2�2�����2�����2

������%���$"��� # ����������*,�- � ��� � !���#�� - ��� ! /

��%���$ �

������ ������2���1�2�2�����2������

���

��������� $�#�#"� *,���������+*�����/����/

���

� � ��� � ��� ��2 � � � � � ���2 � � � � � � ��� ��� � �� � � � � � � � � ��� � ���� ��� 1 � � 1 ����� ��� � � � �� � ��� ��� � � � � � ��1 � �� � � � � ��� � ��� � � �� � � � � � � � � � ���� � ��1 � � � � � � � � ��� �� ��� ��1 ��� ����� ��� � � � � �� � � � ��� ��� ��� � ��� ��� ���

��� ����� � ��� * � � ��� *,� /�/� � ������

���������������2�� #�$���� ��! ������� #������ �

��� ��������������������������� � � � �

Page 218: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

218 APPENDICE A. ESEMPI

� � ��������������������������� � � �� � � ��������������������������� � �� � � � ��������������������������� �� � � � ��� ���������������������������� � � � �� � � � �� � � � �� � � � �� � � � �

� #�$���� ��! � ����� #������ ���

� � � � �� � � � �� � � � �� � � � �� � � � �

��� ��������������������������� � � � �� � ��������������������������� � � �� � ����������������������������� � �� � � � ��������������������������� �� � � � �������������������������������

��� � ��� � !���#"�����������+*���� - ��/� � ���

� ��� � !���#�����������������

�������1������������ ������2�1��������������������� �������������2�1�����������2��������������� ����1����������������������� ��������������������1���1����������������������1�������1��������������� ��1�1���2���2�����������2������������������������2���������������������1������� ����������2���2�������2�� �

��������� * � /����!��

������������2�

��� ������������������������������ ������������������������������ ���������������������������������������������������������������������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������� ���������������������������

������%���$"��� # ����������* �- � ��� � !���#+- ���� ��/

��%���$��

���2�������������1�� ������2�������������

Page 219: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Bibliografia

[1] Paolo Marcellini, Carlo Sbordone: Calcolo, Liguori Editore 1992

[2] Tobias Oetiker, Hubert Partl, Irene Hyna, Elisabeth Schlegl: Una (mica

tanto) breve introduzione a LATEX 2ε, 2000

[3] Valeriano Comincioli: Analisi Numerica metodi, modelli, applicazioni.Ed. McGraw-Hill 1995

[4] Marco Abate: Geometria. Ed. McGraw-Hill 1996

[5] Ferruccio Fontanella, Aldo Pasquali: Calcolo Numerico: metodi e

algoritmi, Pitagora Editrice Bologna 1984

[6] Douglas R. Hofstadter: Gødel, Escher, Bach: un’eterna ghirlandabrillante, gli Adelphi 1990

219

Page 220: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

Index

x, 20y, 20

Aitkenmetodo di accelerazione di -,

90algebra lineare, 29approssimazione di funzioni, 95

condizionamento, 109splines, 114

arrotondamento, 17ascisse di Chebyshev, 110autovalori, 28, 145autovettori, 145

basedi Lagrange, 98, 130di Newton, 101

Bisezioneconvergenza, 79metodi di -, 78

Chebyshevascisse di -, 110

coefficiente di amplificazione, 20condizionamento, 23

definizione, 22dei sistemi lineari, 34integrazione numerica, 133interpolazione funzionale, 109minimi quadrati, 125numero di -, 35sistemi non lineari, 76

convergenza

globale, 78, 79locale, 78passo multiplo, 78passo singolo, 78

costante di Lebesgue, 110Cramer

metodo di -, 37

differenze divise, 102disuguaglianza triangolare, 71Doolittle

rappresentazione di -, 38, 50

errore assoluto, 17, 22errore relativo, 17, 22, 34, 36errori sui dati, 20errori sui risultati, 20

fattorizzazioneA = LDLT , 45A = LU , 38

teorema di unicità -, 38A = QR, 54, 125PA = LU , 49

fenomeno di cancellazione, 21flops, 32formule di quadratura, 129

composite, 135adattive, 139Newton-Cotes, 135Simpson, 135trapezi, 135

grado di precisione, 129interpolatorie, 129

220

Page 221: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

INDEX 221

Newton-Cotes, 130, 131Simpson, 132trapezi, 131

Gaussmatrice elementare di -, 39metodo di eliminazione di -,

34, 39moltiplicatore di -, 51vettore di -, 39, 50

Gauss-Seidelconvergenza del metodo di -,

70metodo di -, 70

Givensmatrice di -, 60metodo di -, 60

gradi di libertà, 115grado di precisione, 129

Horneralgoritmo di -, 104

Householdermatrice di -, 55metodo di -, 57, 126

indice di Sard, 121integrazione numerica, 129

condizionamento, 133numero di condizionamento,

133

Jacksonteorema di -, 114

Jacobiconvergenza del metodo di -,

66matrice di -, 66metodo di -, 65

Jordanforma canonica di -, 66

Lagrangebase di -, 98, 130polinomio in forma di -, 97

Lebesguecostante di -, 110

matriceconvergente, 66definita positiva, 30, 70di collocazione, 96, 124di permutazione, 30, 49, 51di rotazione, 60diagonale, 30diagonale dominante, 42, 67,

70elementare, 54Householder, 55identità, 30inversa, 30Jacobi, 66ortogonale, 30riflessione, 55semi-definita positiva, 30simile, 67simmetrica, 30, 70singolare, 31sottomatrice principale, 31sparsa, 65trasposta, 30triangolare, 30Vandermonde, 96, 125, 130

metodi diretti, 37metodi iterativi, 64metodo delle corde, 86metodo delle potenze, 146metodo delle secanti, 88metodo di accelerazione di Aitken,

90minimi quadrati, 122

condizionamento, 125minore principale, 31, 145

Nevillealgoritmo di -, 106

Newtonbase di -, 101metodo delle corde, 86

Page 222: Calcolo Numerico - nepero.net · Calcolo Numerico Anno accademico 2003=2004 Docente del corso Dott.ssa A. Sestini Giacomo Sacchetti ! " # Stefano Ceri$ $%

222 INDEX

metodo delle secanti, 88metodo di -, 81metodo di accelerazione di Ai-

tken, 90modificato, 84teorema di convergenza loca-

le, 84Newton-Cotes

formule di quadratura, 130, 131norma

consistente, 27indotta, 27matriciale, 26vettoriale, 25

numeri macchina, 16

operazioni mat-vec, 65ordine di convergenza, 77overflow, 16

pivoting parziale, 49polinomio

caratteristico, 145polinomio in forma di Lagrange,

97precisione di macchina, 17punto fisso, 81, 84, 85

raggio spettrale, 27, 66rappresentazione

teorema di, 15Rayleigh

quoziente di -, 147residuo, 37, 68residuo scalato, 37Rouché-Capelli

teorema di -, 145

Sardindice di, 121

Simpsonformula di -, 132

sistema delle equazioni normali, 124sistemi lineari, 30sistemi non lineari, 75

condizionamento del problema,76

numero di condizionamento,76

spettro, 66splines, 114

cubiche, 115naturali, 117periodiche, 120

lineari, 115quadratiche, 115

stabilità, 22

tolleranza, 68, 76trapezi

formula dei -, 131trasposto coniugato, 146troncamento, 17

underflow, 16

Vandermondematrice di -, 96, 125, 130