Sei sulla pagina 1di 294

Universit di Torino

QUADERNI DIDATTICI
del

Dipartimento di Matematica G. Peano

MARIA GARETTO

Metodi Numerici
Corso di Laurea Magistrale in Informatica A.A. 2010/2011

Quaderno # 47 Settembre 2010

A Irene

Prefazione

Prefazione

In questo quaderno sono state raccolte le lezioni del corso di Metodi Numerici per il Corso di Laurea Magistrale in Informatica presso lUniversit di Torino. Obiettivo del testo di fornire unintroduzione teorica ai principali metodi numerici per risolvere problemi di algebra lineare numerica, interpolazione e approssimazione, integrazione e equazioni differenziali; ogni argomento esaminato negli aspetti teorici accompagnato da numerosi esempi svolti nei dettagli, in modo da consentire agli studenti di acquisire la capacit di applicare in modo corretto i metodi numerici trattati. Il corso di Metodi Numerici prevede unattivit di laboratorio in cui viene utilizzato il software scientifico Matlab, con il quale pu essere ulteriormente approfondito ogni aspetto applicativo dei metodi illustrati; per alcuni di essi sono riportati nel testo gli algoritmi in pseudocodifica, utili come suggerimento agli studenti per il lavoro di laboratorio. I grafici presentati in questo testo sono stati realizzati con Matlab.

Maria Garetto Dipartimento di Matematica Universit di Torino

Torino, settembre 2010

Dipartimento di Matematica

ii

M. Garetto Metodi Numerici

Universit di Torino

M. Garetto - Statistica

iii

Indice
Capitolo 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Nozioni introduttive Modelli matematici Rappresentazione dei numeri e sistemi numerici Rappresentazione dei numeri in floating point Troncamento e arrotondamento Errore assoluto, errore relativo Aritmetica floating point Generazione degli errori nel computer 1.7.1 Problemi del calcolo con i numeri reali 1.7.2 Cancellazione numerica 1.7.3 Calcolo del valore di una funzione 1.7.4 Discretizzazione 1.7.5 Iterazione Tipi di errore Propagazione degli errori Problemi mal condizionati Algoritmi instabili Efficienza computazionale Codifica degli algoritmi Algebra lineare numerica Introduzione Operazioni fra vettori Operazioni fra matrici Matrice trasposta Determinante Matrice inversa Norme di vettori e matrici Classificazione delle matrici Matrici speciali Soluzione di sistemi lineari: definizioni e propriet Metodi numerici per la soluzione di sistemi lineari Sorgenti di errore Condizionamento di un sistema lineare Metodi diretti Metodo di eliminazione di Gauss Metodo di eliminazione di Gauss con pivoting Calcolo del determinante Calcolo della matrice inversa Fattorizzazione triangolare di una matrice Matrici di tipo particolare Metodi iterativi Metodo iterativo di Jacobi Metodo iterativo di Gauss-Seidel Autovalori e autovettori Localizzazione degli autovalori Metodi numerici per il calcolo degli autovalori Metodo delle potenze 1 1 3 5 8 10 12 15 15 17 18 19 20 21 21 22 24 29 31 35 35 35 37 41 42 43 45 46 47 49 53 54 54 58 62 72 78 79 81 93 94 95 101 108 120 125 126

1.8 1.9 1.10 1.11 1.12 1.13 Capitolo 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27

Quaderni Didattici del Dipartimento di Matematica

iv

Indice

Capitolo 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 Capitolo 4 4.1 4.2 4.3 4.4 4.5

Interpolazione e approssimazione Introduzione Interpolazione polinomiale. Formula di interpolazione di Lagrange Errore per la formula di interpolazione di Lagrange Formula di interpolazione lineare Formula di interpolazione di Newton Polinomi di Chebyshev Convergenza delle formule di interpolazione Interpolazione con funzioni polinomiali a tratti Interpolazione trigonometrica Metodo dei minimi quadrati Regressione lineare Regressione polinomiale Metodi di linearizzazione Integrazione numerica

133 133 134 139 142 145 151 155 157 170 176 177 183 185 199 199 200 201 202 203 204 209 218 220 223 234 239 239 242 247 248 259 260 267 272 277 F-1

Introduzione Formule di quadratura di tipo interpolatorio Formule di quadratura di Newton-Cotes di tipo chiuso Formula dei trapezi Formula di Simpson 3 4.6 Formula di Simpson 8 4.7 Formule di quadratura composte 4.8 Formule di quadratura di Newton-Cotes di tipo aperto 4.9 Formula del punto medio composta 4.10 Formule di quadratura gaussiane 4.11 Metodo di estrapolazione di Richardson Capitolo 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 Bibliografia Formulario Equazioni differenziali ordinarie Introduzione Condizionamento di unequazione differenziale Metodi numerici per la soluzione di equazioni differenziali Metodo di Eulero Metodi di Runge-Kutta Metodi di Runge-Kutta di ordine due Metodo di Runge-Kutta di ordine quattro Metodi multistep

Universit di Torino

Capitolo 1 Nozioni introduttive

1.
1.1

Nozioni introduttive
Modelli matematici

La matematica uno strumento per modellizzare il mondo reale: in forma schematica un modello la rappresentazione di un sistema o di un processo, ottenuta sostituendo con semplificazioni, astrazioni e analogie, al fenomeno reale un fenomeno in un campo pi familiare. In particolare, in un modello matematico tale rappresentazione fatta in termini di variabili, parametri e relazioni funzionali, che definiscono un problema matematico. In ogni settore scientifico o tecnologico, i modelli matematici che approssimano levolversi dellevento oggetto di studio consentono di simulare, e quindi prevedere, lo sviluppo del fenomeno senza dover effettuare fisicamente esperimenti complessi, costosi e in alcuni casi anche pericolosi. Ad esempio nella progettazione di un aereo la forma delle ali pu essere successivamente adattata, senza dover costruire alcun prototipo, in base ai risultati delle simulazioni numeriche fatte con il calcolatore; lo studio dellinquinamento ambientale, quale il propagarsi di una sostanza tossica nelle acque di un fiume, pu essere condotto mediante calcolatore con un adeguato modello matematico, senza dover realizzare, anche in forma ridotta, un reale pericoloso esperimento. Poich lo scopo della costruzione di un modello di chiarire mediante la sua analisi gli aspetti incogniti del fenomeno reale, condizione indispensabile affinch il modello sia utile che sia risolubile. Per un modello matematico, la risolubilit equivale a richiedere che il problema matematico associato risulti: ben posto: si deve poter stabilire lesistenza e lunicit della soluzione; ben condizionato: a piccole perturbazioni nei dati devono corrispondere piccole perturbazioni nei risultati; tali perturbazioni possono essere dovute ad errori sperimentali o ad errori di arrotondamento nella rappresentazione numerica dei dati. In altre parole il modello deve possedere buone propriet riguardanti la propagazione degli errori. Il processo di risoluzione di un problema del mondo reale pu essere cos schematizzato: una prima fase di modellizzazione, in cui al problema reale si associa un modello matematico che lo approssima; una seconda fase in cui il modello matematico viene analizzato e da questo si ricavano propriet qualitative della soluzione, come esistenza, unicit, regolarit; una terza fase in cui si individuano dei metodi di risoluzione e se ne analizza lefficienza; infine una quarta fase in cui il metodo di risoluzione viene implementato su un calcolatore mediante un adeguato linguaggio di programmazione. Le propriet del modello matematico prima evidenziate danno un carattere di affidabilit al modello, ma non esauriscono il significato di risolubilit. Generalmente un modello matematico un modello continuo, ad esempio un sistema di equazioni differenziali, uno sviluppo in serie, un integrale; per il modello continuo, che in genere consente di individuare propriet qualitative della soluzione, quali esistenza, unicit, regolarit, non sempre per possibile determinare analiticamente la soluzione. Spesso poi la soluzione del problema matematico non data in forma esplicita, ad esempio mediante funzioni elementari, e comunque le sole propriet qualitative non sono sufficienti per gli scopi richiesti. In questo caso si presenta per il problema matematico una situazione analoga a quella che si ha per il problema reale; ossia, per conoscere il comportamento della soluzione del problema matematico, pu essere necessaria lintroduzione di un nuovo modello, che in questo caso si configura come una rappresentazione in dimensione finita, ottenuta mediante una discretizzazione del problema continuo. Il fatto che talvolta il modello discreto possa essere interpretato come un modello costruito a partire direttamente dal fenomeno reale non cambia la sostanza delle considerazioni che seguono.

Dipartimento di Matematica

M. Garetto Metodi Numerici

Successivamente si presenta la necessit di risolvere algoritmicamente il problema matematico, cio di ottenere mediante un numero finito di operazioni aritmetiche e/o logiche una soluzione, spesso approssimata, ma adeguata alle richieste. Si parla cos di risoluzione numerica del problema, intendendo che la soluzione ottenuta calcolata a partire da un insieme finito di numeri, rappresentati con un numero finito di cifre, attraverso un numero finito di operazioni aritmetiche ed espressa ancora mediante un insieme finito di numeri. Il modello discreto o modello numerico presenta caratteristiche in parte simili a quelle viste per il modello continuo. In particolare, sono ancora propriet necessarie lesistenza, lunicit e la stabilit della soluzione. La sequenza di approssimazioni illustrata nello schema seguente Fenomeno naturale

Modello matematico continuo

Modello matematico discreto

Metodo numerico di soluzione

Soluzione In ogni passaggio da un blocco allaltro pu essere commesso un errore di approssimazione. Inoltre i risultati effettivamente ottenuti utilizzando il calcolatore sono alterati dagli errori generati dalle operazioni aritmetiche svolte con unaritmetica finita e dagli errori generati dalla rappresentazione dei dati con un numero finito di cifre. Questo processo di risoluzione di un problema del mondo reale sempre stato adottato anche nel passato: lultima fase era necessariamente risolta con carta e penna, e ci limitava lo sviluppo dei metodi numerici a quei metodi che potevano essere applicati con mezzi di calcolo solo manuali. Rimangono due importanti questioni da esaminare. La prima riguarda la capacit del modello discreto di descrivere il modello continuo o il modello reale. In altre parole si tratta di vedere se la soluzione discreta pu essere resa vicina quanto si vuole alla soluzione del problema continuo, ossia pi precisamente di esaminare la convergenza del metodo. Una questione collegata alla convergenza la stima dellerrore, che permette di stabilire la bont dellapprossimazione e fornisce un criterio di scelta di un particolare modello. Unaltra questione riguarda la scelta di un particolare algoritmo per risolvere effettivamente il problema numerico. Ad esempio se il modello numerico richiede la soluzione di un sistema lineare di equazioni, si pu scegliere fra pi algoritmi diversi: la scelta di un particolare algoritmo sar orientata sia dalle propriet della matrice dei coefficienti, che dallo strumento di calcolo a disposizione. Nella risoluzione di problemi di analisi matematica, che generalmente hanno natura continua, questo processo algoritmico, necessariamente discreto poich finito, si inquadra nel settore noto come analisi numerica. Obiettivo principale dellanalisi numerica trovare gli algoritmi che risolvono un problema matematico nel minimo tempo e con la massima accuratezza, di solito mediante un calcolatore. Lanalisi numerica ha assunto le caratteristiche di una disciplina autonoma solo con lintroduzione e luso dei calcolatori. La disponibilit di calcolatori programmabili, potenti e affidabili, uno tra i motivi pi importanti dello sviluppo delanalisi numerica ed una componente imprescindibile nel progetto di un algoritmo; essendo legata ad aspetti tecnici in continuo sviluppo, quali velocit,
Universit di Torino

Capitolo 1 Nozioni introduttive

capacit di memoria, possibilit di uso interattivo, di calcolo parallelo, pu suggerire nuovi orientamenti, rendere superati alcuni metodi, rivalutarne altri. Il grande interesse attuale verso lanalisi numerica dovuto, oltre che alla disponibilit di idonei strumenti di calcolo, anche allidea sempre pi diffusa che la matematica un utile strumento per lo studio del mondo reale. In questo senso lanalisi numerica un aspetto della matematica applicata e la conoscenza dei metodi numerici diventata un elemento indispensabile per tutti gli studiosi che operano nelle scienze applicate. In maniera schematica, si possono distinguere nellanalisi numerica i seguenti aspetti: la metodologia, che tratta la costruzione di algoritmi specifici, la loro efficienza, limplementazione per un particolare calcolatore; lanalisi, che studia i principi di fondo, le stime degli errori, la convergenza dei metodi. Il primo un aspetto pi pratico, mentre il secondo pi teorico, di base. Nella risoluzione numerica di un problema i due aspetti, in generale entrambi presenti, si integrano a vicenda.

1.2

Rappresentazione dei numeri e sistemi numerici

Un problema rilevante che si deve affrontare nei processi di elaborazione dellinformazione la rappresentazione dellinformazione sia numerica che non numerica. Allinterno degli elaboratori elettronici linformazione rappresentata mediante fenomeni fisici relativamente semplici che possono essere ridotti a due stati, livelli di tensione o magnetizzazione di opportuni dispositivi, e la rappresentazione dellinformazione sar prodotta dallassociazione tra questi stati e i simboli di un alfabeto binario. Tutte le informazioni sono rappresentate da sequenze di simboli binari: numeri, parole, immagini, pi in generale oggetti, devono quindi essere espressi mediante codici binari. Poich siamo interessati alla rappresentazione dellinformazione numerica, tratteremo i sistemi numerici, con particolare riferimento a quello decimale e a quello binario. Luomo abituato a compiere le operazioni aritmetiche usando il sistema di numerazione decimale; tutti hanno dimestichezza con la nozione di posizione decimale: si sa ad esempio che per moltiplicare un numero per 10 si sposta il punto decimale di una posizione verso destra o, se il numero intero, si pone uno zero alla destra del numero. Il sistema decimale un sistema in base 10, poich fa uso di dieci simboli diversi: si usano le cifre da 0 a 9 introdotte dagli Arabi. I calcolatori, daltra parte, possiedono caratteristiche fisiche che non si prestano a utilizzare il sistema decimale. I computer compiono tutte le operazioni utilizzando un sistema di numerazione diverso dal nostro e maggiormente rispondente alle caratteristiche dei materiali impiegati: il sistema binario (base 2), che meglio si presta a codificare situazioni come corrente positiva e corrente negativa, magnetizzazione positiva e magnetizzazione negativa. Il sistema binario daltra parte inadatto alla mente umana, che difficilmente manipola lunghe sequenze di 0 e 1, e inoltre la conversione dei numeri da binario a decimale e viceversa non immediata. In campo informatico si fa anche uso di altri due sistemi di numerazione: lottale con otto simboli diversi e lesadecimale che ne usa sedici. Va comunque rilevato che facendo uso dei sofisticati prodotti software esistenti oggi, lutente non ha mai la necessit di operare con basi diverse da quella decimale e non ha alcun contatto diretto con il sistema binario. La comunicazione fra utente e computer avviene nella base 10, ma il computer usa la base 2; unapposita interfaccia converte linput dalla base 10 alla base 2, i calcoli vengono eseguiti in base 2, poi il risultato viene di nuovo convertito dallinterfaccia nella base 10. Un sistema numerico determinato quando si fissano alcuni elementi che lo caratterizzano: un insieme limitato di simboli, le cifre, che rappresentano quantit intere prestabilite, ad esempio alcune lettere dellalfabeto nel sistema di numerazione romano, le cifre arabe nel nostro sistema di numerazione; le regole che devono essere applicate per costruire i numeri.
Dipartimento di Matematica

M. Garetto Metodi Numerici

Questi elementi portano a una differenziazione fra sistemi numerici. I sistemi numerici si distinguono in: non posizionali: il valore delle cifre indipendente dalla loro posizione allinterno del numero; ad esempio, nella numerazione romana la cifra M vale sempre mille, da sola, preceduta o seguita da altre cifre; posizionali: a ogni posizione allinterno della rappresentazione associato un peso. Nei sistemi numerici posizionali un numero intero non negativo N rappresentato come una sequenza di simboli (cifre) d i , i = 0 ,1,..., n N = d n d n1 ....d1d 0 il valore del numero N dato da valore(N) = d n pn + d n1 p n1 + ... + d1 p1 + d 0 p0 dove pi rappresenta il peso associato alla i esima posizione. Tra i sistemi posizionali sono di rilevante interesse quelli a base fissa nei quali si pone

pi = r i con m i n dove r la base del sistema di numerazione.


Esempio 1

r = 10
Il valore di N

N = 743

valore(N) = 7 102 + 4 101 + 3 100 d2 p2 d1 p1 d0 p0

p2 = 102

p1 = 101

p0 = 100

Pi in generale nei sistemi numerici posizionali a base fissa r, un numero N non intero pu essere rappresentato nel seguente modo N = d n d n1 d1d 0 . d 1 d m Il valore di N sar

valore(N) = d n r n + d n1r n1 + + d1r 1 + d 0 r 0 + d 1r 1 + + d m r m = =


dove di r n+1 m dn d m cifra i-esima base numero di cifre della parte intera numero di cifre della parte decimale cifra pi significativa cifra meno significativa.
i = m

di r i

con 0 di r 1

Sistema decimale Il sistema numerico decimale quello usato nella vita quotidiana ed caratterizzato da base r = 10 cifre d i {0,1,2,3,4,5,6,7,8,9}

N = d n 10 n + + d 0 10 0 + d 110 1 + + d m 10 m
Esempio 2

123.4510 = 1 102 + 2 101 + 3 100 + 4 10 1 + 5 102 12.2510 = 1 101 + 2 100 + 2 10 1 + 5 102

Universit di Torino

Capitolo 1 Nozioni introduttive

Sistema binario Un sistema numerico binario caratterizzato da base r = 2 cifre d i {0,1}

N = d n 2 n + + d 0 2 0 + d 1 2 1 + + d m 2 m Una cifra binaria detta bit.


Esempio 3

1012 = 1 22 + 0 21 + 1 20 = 510 101.012 = 1 22 + 0 21 + 1 20 + 0 2 1 + 1 2 2 = 5.2510

La rappresentazione di un numero in base 2 richiede pi cifre rispetto alla rappresentazione decimale, perch le potenze di 2 crescono pi lentamente delle potenze di 10.

1.3

Rappresentazione dei numeri in floating point

E utile vedere come lelaboratore rappresenta i numeri ed esegue le operazioni aritmetiche: laritmetica del computer generalmente inesatta e gli errori commessi, anche se molto piccoli, si possono propagare e possono avere effetti tali da compromettere la bont del risultato ottenuto. In un calcolatore si deve riservare uno spazio finito di memoria per la rappresentazione di ogni numero reale: ogni numero viene rappresentato usando un numero fisso e finito di cifre binarie (bit). Pertanto si possono rappresentare esattamente solo quei numeri che, in base alla convenzione di rappresentazione scelta, possono essere contenuti nello spazio previsto per ognuno di essi; questi numeri sono chiamati numeri di macchina. Esaminiamo le convenzioni che nei moderni calcolatori vengono usate per la rappresentazione dei numeri di macchina. La rappresentazione che viene pi convenientemente utilizzata per i numeri non interi la rappresentazione in floating point (virgola mobile), che consente di risolvere in modo efficace il problema di trattare numeri con ordini di grandezza molto diversi. Questo sistema di rappresentazione basato sulla notazione scientifica o esponenziale comunemente usata in fisica, chimica, ingegneria, matematica. La notazione scientifica si ottiene spostando il punto decimale e moltiplicando per unopportuna potenza di 10. Ogni numero reale x pu essere scritto nella forma x = sign( x) p r q dove sign(x) il segno del numero x, p un numero reale, r la base del sistema di numerazione scelto e q un intero relativo.
Esempio 4 Il numero reale decimale x = 23.701 pu essere scritto nei modi seguenti x = 23.701 = 23701 103 = 237.01 101 = 0.23701 102 = 0.00023701 105 =.... Il numero reale 3.14159265 (valore approssimato di ) pu essere scritto nei modi seguenti 3.14159265 = 3.14159265 100 = 0.314159265 101 = 31.4159265 101 =....

Come si vede dallesempio, la rappresentazione non unica, anzi esistono infinite rappresentazioni in notazione scientifica dello stesso numero, ottenibili una dallaltra spostando il punto decimale e cambiando convenientemente lesponente. La rappresentazione di un numero x 0 si dice normalizzata quando la cifra della parte intera 0 e la prima cifra dopo il punto decimale diversa da 0.
Esempio 5 La rappresentazione normalizzata di La rappresentazione normalizzata di
Dipartimento di Matematica

x = 123.71510 x = 0.123715 103. x = 0.00071810 x = 0.718 103.

M. Garetto Metodi Numerici

Nella rappresentazione normalizzata di un numero x chiamiamo p mantissa e q caratteristica o esponente di x; p un numero reale compreso fra 0 e 1, q un intero. Fissata la base r, ogni numero reale x 0 univocamente definito dalla coppia (p,q), ossia la rappresentazione normalizzata unica; pertanto sufficiente memorizzare la coppia (p,q). Con questa notazione possibile la scrittura in uno spazio limitato di numeri aventi ordini di grandezza molto diversi tra loro; viene in ogni caso evidenziata linformazione essenziale, che la sequenza di cifre significative nella mantissa, mentre la caratteristica fornisce lordine di grandezza, espresso in potenze della base. Poich un numero reale univocamente individuato dalla coppia di interi (p,q), per rappresentare un numero reale si deve stabilire: quanti bit devono essere utilizzati complessivamente per la rappresentazione di un numero reale in notazione esponenziale normalizzata; quanti di essi devono rappresentare la mantissa e con quali convenzioni sono utilizzati; quanti, analogamente, per la caratteristica. Il numero totale di bit stabilito per rappresentare un numero fissato dallarchitettura del computer. Nei moderni calcolatori, per la memorizzazione dei numeri reali in aritmetica floating point esiste la possibilit di riservare a ciascun numero una lunghezza complessiva di 32 bit (laritmetica in questo caso viene definita in semplice precisione), oppure di 64 bit (aritmetica in doppia precisione). Come numeri reali di macchina si intendono quei numeri le cui mantisse e caratteristiche sono rappresentabili esattamente negli spazi a loro riservati. In particolare, se lo spazio dedicato alla rappresentazione della mantissa corrisponde a t cifre nel sistema di numerazione scelto, saranno rappresentabili solo quelle mantisse che non hanno pi di t cifre. Lesponente invece dovr soddisfare una disuguaglianza del tipo m q M , dove m < 0 e M > 0 sono interi. Di solito per evitare di dover memorizzare, oltre al segno del numero, anche il segno dellesponente, non si memorizza lesponente q, ma la quantit q* = q m, che risulta sempre non negativa.
Definizione Linsieme dei numeri di macchina floating point, con rappresentazione normalizzata, in base r con t cifre nella mantissa, e con esponente q compreso fra m e M indicato con il simbolo (r,t,m,M), ed costituito dai numeri esattamente rappresentabili nel calcolatore nello spazio stabilito per la rappresentazione floating point.

Si osservi che linsieme dei numeri di macchina deve contenere anche lo 0, che non rappresentabile con una mantissa normalizzata, e quindi non rappresentabile in modo univoco. Di solito lo 0 rappresentato con mantissa nulla ed esponente m. Nella figura seguente si schematizza una possibile rappresentazione interna a un calcolatore di un numero di macchina su 32 bit (semplice precisione), nel caso della base r = 2, con un bit per il segno del numero, con t = 23 cifre per la mantissa e con 8 bit per lesponente esponente (8 bit) segno (1 bit) Con questa scelta si possono rappresentare esponenti q compresi fra m = 127 e M = 128; per non dover memorizzare il segno dellesponente, si memorizza lesponente traslato q* = q + 127 (si ricordi1 che con 8 bit si possono rappresentare numeri interi positivi compresi fra 0 e 255).
1

mantissa (23 bit)

In generale con n bit si rappresentano numeri interi positivi compresi fra 0 e 2 n 1 Universit di Torino

Capitolo 1 Nozioni introduttive

Nella doppia precisione si usano 64 bit e i 32 bit aggiuntivi possono essere tutti destinati alla mantissa, oppure parte alla mantissa e parte allesponente; tale scelta dipende dallarchitettura dellelaboratore; una suddivisione spesso applicata consiste nel destinare 52 bit per la mantissa e 11 bit per lesponente. In un computer che usa 32 bit per rappresentare un numero (semplice precisione) e riserva 23 bit per la mantissa e 8 per lesponente, pi 1 bit per il segno del numero, si ottiene una precisione di circa 7 cifre decimali e si possono rappresentare numeri aventi un ordine di grandezza compreso fra 1039 e 10+38. Se il computer usa invece 64 bit per rappresentare un numero (doppia precisione) e riserva 52 bit per la mantissa e 11 per lesponente, si ottiene una precisione di circa 15 cifre decimali e si possono rappresentare numeri aventi un ordine di grandezza compreso fra 10308 e 10+308. La maggior parte dei personal computer di attuale generazione si basano su questo tipo di standard, detto standard IEEE (Institute for Electrical and Electronics Engineers) dal nome dellistituto che ha codificato per la prima volta nel 1985 la scelta sopra descritta per laritmetica floating point. Attualmente di solito, soprattutto nellambito dei software di tipo matematico, viene usata per default la doppia precisione, mentre in tempi meno recenti cera la possibilit di scegliere fra semplice e doppia precisione, per ragioni legate alla minor velocit di calcolo e alla minor disponibilit di memoria degli elaboratori meno recenti.
Esempio 6 Con questo esempio si vuole mostrare che linsieme dei numeri di macchina un insieme che ha un numero finito di elementi; lesempio ha significato puramente didattico, non esistendo ovviamente nessun elaboratore che abbia queste caratteristiche, ma negli elaboratori realmente esistenti si verifica lo stesso tipo di situazione. Scriviamo tutti i numeri dellinsieme (2,3,1,1) e li rappresentiamo sulla retta reale. Linsieme (2,3,1,1) caratterizzato da: base r = 2; t = 3 cifre per la mantissa con prima cifra della mantissa diversa da 0; esponenti compresi fra 1 e 1. Le mantisse che possono essere rappresentate con 3 bit sono le seguenti; accanto a ciascuna mantissa in base 2 indicato a destra il corrispondente valore in base 10, in forma di frazione. 1 0.100 2 0.100 2 = 1 2 -1 + 0 2 -2 + 0 2 -2 = 2 1 1 5 0.1012 0.1012 = 1 2 -1 + 0 2 -2 + 1 2 -2 = + = 2 8 8 1 1 3 + = 0.110 2 0.110 2 = 1 2 -1 + 1 2 -2 + 0 2 -2 = 2 4 4 1 1 1 7 + + = 0.1112 0.1112 = 1 2 -1 + 1 2 -2 + 1 2 -2 = 2 4 8 8 Associando a ciascuna mantissa tutti i possibili esponenti si ottengono i seguenti numeri di macchina positivi; accanto a ciascuno di essi si indica il corrispondente valore decimale

0.100 2 1 =

1 1 1 2 = 4 2 5 5 0.101 2 1 = 2 1 = 8 16 3 3 0.110 2 1 = 2 1 = 4 8 7 7 0.111 2 1 = 2 1 = 16 8

1 0 1 2 = 2 2 5 5 0.101 2 0 = 2 0 = 8 8 3 3 0.110 2 0 = 2 0 = 4 4 7 7 0.111 2 0 = 2 0 = 8 8 0.100 2 0 =

1 1 2 =1 2 5 5 0.101 21 = 21 = 8 4 3 3 0.110 21 = 21 = 2 4 7 7 0.111 21 = 21 = 4 8 0.100 21 =

Dipartimento di Matematica

M. Garetto Metodi Numerici

I numeri floating point positivi rappresentabili in questo elaboratore sono quindi 12; a questi si aggiungono i corrispondenti 12 numeri negativi e lo 0; complessivamente in questo elaboratore si possono rappresentare esattamente solo 25 numeri reali: questi 25 numeri costituiscono linsieme dei numeri di macchina (2,3,1,1). I numeri di macchina possono essere rappresentati sulla retta reale; quelli positivi sono rappresentati nella figura seguente 1 5 3 7 1 5 3 7 5 3 7 1 0 4 16 8 16 2 8 4 8 4 2 4

14 4 244 3
underflow

1 4 24 3
overflow

1 7 Il pi piccolo numero positivo 0.100 2 1 = ; il pi grande 0.111 21 = . 4 4 I numeri negativi sono i simmetrici dei positivi. Ogni altro numero reale non pu essere esattamente rappresentato in questa macchina e dovr essere approssimato da uno di questi numeri scelto secondo certe regole (vedere 1.4). Si pu osservare che i numeri di macchina non sono distribuiti in modo regolare: i punti sono 1 1 7 e che tra 1 e . raggruppati in modo pi fitto tra 4 4 2 1 7 Di conseguenza se numeri x arbitrari compresi nellintervallo , e non coincidenti con 4 4 numeri di macchina devono essere approssimati con numeri di macchina in virgola mobile, tale approssimazione sar pi accurata per certi numeri che per altri.

1.4

Troncamento e arrotondamento

Vediamo ora come rappresentare un numero reale positivo x in forma normalizzata in un sistema di numeri di macchina (r,t,m,M); per i numeri negativi si ottengono risultati analoghi. Si possono presentare i seguenti casi: 1 il numero x tale che m q M e inoltre il numero delle cifre della mantissa minore o uguale a t; allora x un numero di macchina ed rappresentato esattamente. Se x non appartiene a (r,t,m,M), si pone il problema di associare in modo adeguato a x un numero di macchina x . 2 la caratteristica q non appartiene allintervallo [m,M]. Se q < m si dice che si verifica un underflow; solitamente si assume come valore approssimato del numero x il numero 0; la presenza di underflow pu portare a situazioni critiche, ad esempio divisione per 0. Se q > M, si verifica un overflow e non si pu effettuare alcuna approssimazione con un numero di macchina. Nei computer di pi vecchia generazione in situazioni di questo tipo avveniva larresto del calcolo; nei calcolatori pi recenti pu essere usato uno standard detto virgola mobile estesa in cui, in aggiunta ai numeri di macchina, sono consentiti i simboli Inf (infinito) e NaN (Not a x 0 x = 0 , = Inf , = NaN . Number) e sono previste regole per eseguire operazioni del tipo 0 0 Inf 3 la caratteristica q appartiene allintervallo [m,M], ma le cifre della mantissa di x sono in numero maggiore di t. In questo caso si pone il problema di scegliere per il numero x un suo rappresentante x . Tale operazione viene indicata comunemente come operazione di arrotondamento, e comporta un errore, detto errore di arrotondamento (rounding error o anche round-off error). Per effettuare loperazione di arrotondamento si possono utilizzare due tecniche diverse:
Universit di Torino

Capitolo 1 Nozioni introduttive

troncamento (chopping) di x alla tesima cifra: si trascurano tutte le cifre della mantissa dopo la tesima cifra. arrotondamento (rounding) di x alla tesima cifra: larrotondamento tiene conto della prima r cifra da trascurare, la (t +1)esima cifra. Se la (t+1)esima cifra minore di , larrotondamento 2 r coincide con il troncamento; se invece la (t+1)esima cifra maggiore o uguale a , si aumenta di 2 uno lultima cifra che si conserva nella mantissa (tesima cifra) e poi si effettua il troncamento. r Si noti che se si lavora in base r = 10 , si ha =5 . 2 Esempio 7 (10,3, 4,4) base 10 a x = 9824 = 0.9824 104 x = 0.982 104 con troncamento 4 x = 0.982 10 con arrotondamento In questo caso il numero arrotondato coincide con il numero troncato. b x = 9827 = 0.9827 104 x = 0.982 104 con troncamento 4 con arrotondamento x = 0.983 10 In questo caso il numero arrotondato e il numero troncato sono diversi.
Esempio 8

(10,5, 4,4) base 10 x = = 3.1415926 = 0.31415926 101 x = 0.31415 101 con troncamento 1 con arrotondamento x = 0.31416 10

Il troncamento unoperazione pi semplice, ma conduce ad errori2 di arrotondamento pi grandi; infatti riferendoci allesempio 7, caso b, si ha x = 9827 = 0.9827 104 x = 0.982 104 con troncamento Errore (con il troncamento) x x = 0.9827 10 4 0.982 10 4 = 0.7 101 x = 0.983 104 Errore (con larrotondamento) con arrotondamento

x x = 0.9827 10 4 0.983 10 4 = 0.3 101 Riferendoci invece allesempio 8, si ha x = = 3.1415926 = 0.31415926 101 x = 0.31415 101 con troncamento Errore (con il troncamento) x x = 0.31415926 ... 101 0.31415 101 0.93 10 4 x = 0.31416 101 Errore (con larrotondamento) con arrotondamento

x x = 0.31415926 ... 101 0.31416 101 0.74 10 5

Vedere il successivo 1.5 per le definizioni di errore.

Dipartimento di Matematica

10

M. Garetto Metodi Numerici

1.5

Errore assoluto, errore relativo

Se x rappresenta il valore esatto di un numero e x una sua approssimazione (per esempio il numero di macchina con cui rappresentato x), gli errori assoluto e relativo associati a x sono definiti nel modo seguente.
Definizione Errore assoluto Errore relativo Esempio 9 a

EA = x x ER = xx x , x0.

x = 0.50 101

x = 0.51 101

E A = x x = 0.1 10 0 ER = b xx x =
3

0.1 100 0.50 10


1

= 0.2 10 1
x = 0.51 10 3

x = 0.50 10 xx x

E A = x x = 0.1 10 4

ER = c

=
4

0.1 10 4 0.50 10
3

= 0.2 10 1

x = 0.50 10 xx x

x = 0.51 10 4

E A = x x = 0.1 10 3

= 0.2 10 1 0.50 10 4 Il confronto fra questi tre casi mostra che si possono avere errori assoluti molto diversi, ma lo stesso errore relativo; in altre parole, come misura di accuratezza lerrore assoluto pu essere fuorviante, mentre lerrore relativo maggiormente significativo. Lerrore relativo da preferire nella misura dellaccuratezza per numeri floating point, perch legato direttamente alla mantissa. ER = =
Esempio 10 a

0.1 103

x = 1000000 xx x

x = 999996

E A = x x = 1000000 999996 = 4
ER = = 4 = 0.4 10 5 1000000

Lerrore assoluto grande, ma lerrore relativo piccolo: x pu essere considerato una buona approssimazione per x. b x = 0.000012 x = 0.000009
E A = x x = 0.000012 0.000009 = 0.3 10 5 ER = xx x = 0.3 10 5 = 0.25 100 0.000012

Lerrore relativo grande: x non una buona approssimazione per x.


Universit di Torino

Capitolo 1 Nozioni introduttive

11

Definizione Se, lavorando in base 10, risulta 1 E A = x x 10 k k 1 2 allora lapprossimazione x ha k cifre decimali corrette. Se risulta xx 1 ER = 10 k k 1 x 2

allora lapprossimazione x ha almeno k cifre significative corrette (potrebbero essere anche k +1). Lerrore assoluto fornisce quindi informazioni sul numero delle cifre decimali corrette, mentre lerrore relativo fornisce informazioni sul numero delle cifre significative corrette.
Esempio 11

x = 0.0020284

x = 0.002028 1 10 6 2

E A = x x = 0.20284 10 2 0.2028 10 2 = 0.4 10 6 < k = 6 x ha 6 cifre decimali corrette. ER = xx x = 0.4 10 6 0.20284 10 2 0.2 10 3

k = 3 x ha almeno 3 cifre significative corrette (in realt sono 4) Le cifre corrette in x non sono necessariamente identiche alle cifre di corrispondente posto in x, come si pu osservare nellesempio 12.
Esempio 12

x = 36.000

x = 35.999

E A = x x = 0.001 = 0.1 10 2 <

1 10 2 2 k = 2 x ha 2 cifre decimali corrette. x x 0.1 10 2 1 ER = = 0.3 10 4 < 10 4 x 36.000 2 x ha almeno 4 cifre significative corrette (in effetti sono proprio 4).

Esempio 13

x = 15.1997 1 E A = x x = 0.3 10 3 < 10 3 2 x ha 3 cifre decimali corrette. ER = xx x = 0.3 10 3 1 0.2 10 4 < 10 4 15.2000 2

x = 15.2000

x ha almeno 4 cifre significative corrette (in realt sono 5).

Dipartimento di Matematica

12

M. Garetto Metodi Numerici

Esempio 14

x = 99.2000 = 0.992000 10 2 x =99.1997 = 0.991997 10 2 1 E A = x x = 0.3 10 3 < 10 3 2 x ha 3 cifre decimali corrette. x x 0.3 10 3 1 ER = = 0.3 10 5 < 10 5 99 . 2000 2 x

x ha almeno 5 cifre significative corrette (in effetti sono proprio 5).


Quando si usa la rappresentazione floating point normalizzata, le cifre significative corrette del numero coincidono con le cifre decimali corrette della sua mantissa normalizzata.

1.6

Aritmetica floating point

Sullinsieme dei numeri di macchina si devono ridefinire le operazioni aritmetiche: si deve cio introdurre una aritmetica di macchina (aritmetica floating point). Infatti il risultato di unoperazione aritmetica anche nel caso in cui gli operandi siano numeri di macchina, pu non essere un numero di macchina per due motivi diversi: 1 si ha una situazione di underflow o di overflow (esempio 15, casi a e b); 2 il risultato ha un numero di cifre nella mantissa superiore a t (esempio 15, caso c).
Esempio 15

(10,4,3,3) x = 0.9876 10 3

y = 0.4543 10 3

x + y = 0.1442 10 4
b c
x = 0.4387 10 2

overflow: M = 3 il massimo esponente


y = 0.4325 10 2

x + y = 0.6200 10 4
x = 0.1123 10
0

underflow: m = 3 il minimo esponente


y = 0.1123 10 2 x e y sono numeri di macchina, la somma non lo .

x + y = 0.113423 10 0

Poich in generale non possibile realizzare esattamente le operazioni aritmetiche, occorre definire delle operazioni di macchina. In ogni operazione di macchina a due numeri di macchina associato un terzo numero di macchina, ottenuto eseguendo loperazione aritmetica sui due numeri di macchina e poi arrotondando (o troncando) il risultato esatto ottenuto. Indicando con fl(x) e fl(y) le rappresentazioni floating point dei numeri reali x e y, e con i simboli , , le operazioni di macchina di addizione, moltiplicazione e divisione, si ha ad esempio x y = fl(fl(x) + fl(y)) x y = fl(fl(x) fl(y)) x y = fl(fl(x) / fl(y))
Esempio 16 Riferendoci al caso c dellesempio precedente, i numeri

x = 0.1123 10 0 y = 0.1123 10 2 sono numeri di macchina e si ha x y = fl(fl(x) + fl(y)) = fl(x+ y) = 0.1134 100
Universit di Torino

Capitolo 1 Nozioni introduttive

13

Nellaritmetica floating point valgono solo alcune delle propriet delle operazioni elementari. Per laritmetica di macchina in generale non valgono le seguenti propriet, valide invece nellaritmetica esatta. Propriet 1 - Associativa delladdizione (x y ) z x ( y z ) Propriet 2 - Associativa della moltiplicazione (x y ) z x ( y z ) Esempio 17 (10,2,5,5) x = 0.11 100

(x y ) z = (0.11100 0.13 10 1 ) 0.14 10 1 =


x y z = 0.11 10 0 0.13 10 1 0.14 10 1 = = 0.11 10 0 0.27 10 1 = 0.14 10 0

y = 0.13 10-1

z = 0.14 10-1

= 0.12 10 0 0.14 10 1 = 0.13 10 0

arrotondamento!
Esempio 18

(10,2, 5,5) x = 0.11 101

(x y ) z = (0.11101 0.31 101 ) 0.25 101 =


x y z = 0.11 101 0.31 101 0.25 101 = = 0.11 101 0.78 101 = 0.86 101

y = 0.31 101

z = 0.25 101

= 0.34 101 0.25 101 = 0.85 101

Propriet 3 - Distributiva del prodotto rispetto alladdizione x ( y z ) (x y ) (x z ) Esempio 19

(10,2, 5,5) x = 0.11 101

x y z = 0.11 101 0.23 101 0.24 101 =

y = 0.23 101

z = 0.24 101

(x y ) (x z ) = (0.11 101 0.23 101 ) (0.11101 0.24 101 ) =


= 0.25 101 0.26 101 = 0.51 101
Propriet 4 - Legge di cancellazione x y = z y , y0 Esempio 20

= 0.11 10 0.47 10 = 0.52 10

non implica

x=z

(10,2, 5,5) x = 0.51 101


Dipartimento di Matematica

y = 0.22 101

z = 0.52 101

14

M. Garetto Metodi Numerici

x y = 0.51 101 0.22 101 = 0.11 10 2 z y = 0.52 101 0.22 101 = 0.11 10 2

ma
Propriet 5 - Semplificazione x (y x) y Esempio 21

xz !

(10,2, 5,5) x = 0.70 101

x y x = 0.70 101 (0.80 101 0.70 101) = = 0.70 101 0.11 101 = 0.77 101 y

y = 0.80 101

Possiamo pertanto concludere che espressioni che sono equivalenti in aritmetica esatta non risultano generalmente tali nellaritmetica di macchina. Malgrado ci, due espressioni (non nulle) saranno definite equivalenti dal punto di vista del calcolo numerico quando, calcolate con un computer, forniscono risultati che differiscono per una tolleranza relativa dellordine della precisione di macchina. In un elaboratore che usa laritmetica floating point ci sono infiniti numeri reali x non nulli tali che 1 x = 1 dove 1 x il valore della somma calcolato dal computer; nellaritmetica esatta questa relazione ovviamente falsa per ogni x non nullo! Il pi piccolo fra tutti i numeri di macchina x(r,t,m,M) per i quali nellaritmetica del computer si verifica 1 x > 1 detto epsilon di macchina.
Definizione Si definisce epsilon di macchina la quantit eps = min{x (r ,t , m , M ) : 1 x > 1}

Lepsilon di macchina una costante caratteristica di ogni aritmetica floating point e dipende anche dalla tecnica scelta per le operazioni di arrotondamento (chopping o rounding). Nellinsieme di numeri di macchina (r,t,m,M) lepsilon di macchina dato da r1 t se si opera con troncamento eps = 1 1 t se si opera con arrotondamento r 2 Il numero eps rappresenta la massima precisione di calcolo raggiungibile con il calcolatore su cui implementata una data aritmetica floating point, e non ha senso cercare di determinare approssimazioni con precisione relativa inferiore alla precisione di macchina eps.
Esempio 22

(10,3,2,2) con arrotondamento 1 2 eps = 10 = 0.005 2 1 eps = 1 0.005 = 1.005 = (normalizzare e arrotondare)

= 0.101 101 1 = 0.100 101 Invece per x = 0.004 (e per ogni altro numero x minore di eps) si ha 1 x = 1 0.004 = 1.004 = (normalizzare e arrotondare) = 0.100 101 = 1
Universit di Torino

Capitolo 1 Nozioni introduttive

15

Osservazione Laritmetica di macchina floating point con arrotondamento pu essere facilmente implementata sia in Maple che in Matlab3. Il comando Maple > Digits:=n;

permette di svolgere tutti i calcoli in aritmetica floating point con arrotondamento con n cifre significative; il valore di n scelto dallutente entro un limite massimo che dipende dal computer utilizzato. Loperazione di macchina x y = fl(fl(x) + fl(y)) pu essere svolta in floating point con n cifre con il comando Maple > evalf(evalf(x)+evalf(y)); In modo analogo si svolgono le altre operazioni. Come applicazione si riportano i comandi Maple e i risultati ottenuti per lesempio 17. > Digits:=2; digits:=2 > x:=0.11; x:=0.11 > y:=0.013; y:=0.013 > z:=0.014; z:=0.014 > a:=evalf(evalf(x)+evalf(y))+evalf(z); a:=0.13 > b:=evalf(x)+evalf(evalf(y)+evalf(z)); b:=0.14

1.7

Generazione degli errori nel computer

In questo paragrafo esaminiamo in dettaglio alcuni dei problemi legati alluso di un computer per svolgere calcoli di tipo numerico e descriviamo alcuni esempi di algoritmi tipici dellanalisi numerica.

1.7.1 Problemi del calcolo con i numeri reali


Il calcolatore, essendo una macchina finita, deve operare su numeri rappresentati con una sequenza finita di cifre; ad esempio numeri reali irrazionali come o 2 , la cui rappresentazione richiede infinite cifre, non possono essere trattati nelle elaborazioni numeriche se non commettendo un errore di arrotondamento. Lo stesso problema si presenta anche con numeri razionali la cui rappresentazione decimale ha uno 1 sviluppo periodico: ad esempio il numero ha la rappresentazione periodica 0.3 , e pu essere 3 rappresentato solo troncandone lo sviluppo e quindi commettendo un errore.

Maple uno dei numerosi software scientifici, detti Computer Algebra Systems (CAS), oggi disponibili per il calcolo simbolico e numerico; altri prodotti simili sono Mathematica e Matlab, pi orientato al calcolo numerico. Dipartimento di Matematica

16

M. Garetto Metodi Numerici

Non ci si deve perci stupire di fronte a un risultato del tipo4 1 3 = 0.99999999 . 3 Nella maggior parte dei calcolatori la rappresentazione interna dei numeri viene fatta usando una base diversa dalla base 10: di solito si usa la base 2 o la base 16, mentre nei dispositivi di inputoutput (tastiera, video, stampante) i numeri compaiono nella loro rappresentazione in base 10; questo fatto rende meno evidente la presenza degli errori dovuti alla rappresentazione con un numero finito di cifre. Ad esempio, introducendo il numero decimale 0.1 dalla tastiera di un personal computer, che utilizza la base 2 per la rappresentazione interna e la base 10 per la 1 , per il rappresentazione sullo schermo, si pu leggere sul video il numero decimale 0.1, cio 10 numero effettivamente immesso nella memoria del calcolatore non 0.1 ma una sua 1 in base 2 ha la rappresentazione periodica 0.00011 , e il computer non approssimazione, perch 10 pu rappresentare un numero con infinite cifre. Quindi in generale si commettono errori gi nellimmissione dei dati, prima ancora di eseguire effettivamente i calcoli. Poich linsieme dei numeri rappresentabili sul calcolatore un insieme finito e limitato (insieme dei numeri di macchina), ovviamente non tutti i numeri sono rappresentabili esattamente; in particolare non possono essere rappresentati i numeri troppo grandi o troppo piccoli. A causa di questa limitazione lelaborazione pu essere problematica per il verificarsi di overflow, con generazione di risultati di modulo troppo elevato, o di underflow, con risultati di modulo troppo piccolo. I dati, i risultati intermedi e i risultati finali devono essere tutti approssimati con numeri di macchina. Queste approssimazioni possono produrre seri effetti sul calcolo complessivo. Per esempio, la maggior parte dei programmi di libreria per il calcolo delle funzioni trigonometriche sin x e cos x, sottraggono o aggiungono multipli di 2 allargomento in modo da ottenere un argomento compreso fra e . Questo cambiamento dellargomento ovviamente non modifica formalmente il risultato, perch, ad esempio, vale la propriet sin x = sin(x 2k), k = 1,2,... Ma il numero non pu essere rappresentato esattamente nel calcolatore, quindi la modifica effettuata sullargomento provoca un cambiamento nel risultato: in effetti, a causa di questo problema, difficile calcolare in modo accurato sin x per grandi valori di x. La rappresentazione con un numero finito di cifre impone inoltre, come gi visto precedentemente, luso di unaritmetica di macchina finita, che introduce errori anche nellesecuzione delle operazioni aritmetiche. Pi in generale dunque, ogni procedimento numerico che coinvolga numeri reali che non possono essere rappresentati esattamente nel computer deve essere usato con particolare attenzione.
Esempio 23 Si vuole calcolare il valore della somma
S=

10 .
i =1

4 Si osservi il comando Maple e il risultato (in aritmetica floating point con 8 cifre significative) > digits:=8; digits:=8 > x:= evalf(evalf(3.0)*evalf(1.0/3.0)); x:=0.99999999

Universit di Torino

Capitolo 1 Nozioni introduttive

17

Per N = 10000000 il valore esatto S = 1000000; con Matlab5 (che opera in doppia precisione) si ottiene S = 999999.999838975 1 , che in base 2 ha la Lerrore (piuttosto elevato) dovuto al fatto che per rappresentare 10 rappresentazione periodica 0.00011 , il computer deve operare un troncamento, non potendo rappresentare un numero con infinite cifre. Si ha quindi un errore di conversione dalla base 10 alla base 2; a questo errore si aggiungono altri errori dovuti alle successive operazioni di somma e alla conversione del risultato dalla base 2 alla base 10.

1.7.2 Cancellazione numerica


Una delle conseguenze pi gravi della rappresentazione dei numeri con precisione finita, e della conseguente introduzione dellaritmetica floating point, il fenomeno della cancellazione numerica, ossia la perdita di cifre significative dovuta ad operazioni di sottrazione fra due numeri circa uguali.
Esempio 24

1 1 Calcoliamo la differenza fra i valori di e x per x = , lavorando con 8 e per x = 100 1000 cifre significative a=e b=e
2 1 2 1

(100 )

(1000 )

= 0.99990000 = 0.99999900

c = a b = 0.00009900 I valori di a e b hanno 8 cifre significative, mentre c ha solo pi 4 cifre significative. Leffetto degli errori di arrotondamento grande, la sottrazione fra numeri circa uguali fa perdere accuratezza. Ripetiamo gli stessi calcoli lavorando ora con 16 cifre significative. a=e b=e
2 1

(100 )

(1000 )

= 0.9999000049998333 = 0.9999990000005000

c = a b = 0.0000989950006667 I valori di a e b hanno ora 16 cifre significative, mentre c ha 12 cifre significative6.


Esempio 25

Si voglia calcolare il valore della funzione f (x ) =

e x 1 per valori di x tendenti a 0. x

I comandi necessari per calcolare con Matlab la somma richiesta sono i seguenti >> format long e >> v=0.1*ones(1,10000000); >> s=sum(v) s = 9.999999998389754e+005
6

I calcoli sono stati effettuati con Maple, con 8 e 16 cifre rispettivamente.

Dipartimento di Matematica

18

M. Garetto Metodi Numerici

E noto che e x 1 =1 x 0 x lim

Quando x prossimo a 0, e x assume valori vicini a 1, quindi nel calcolo di f (x ) al numeratore si calcola la differenza fra due numeri circa uguali e si ha un aumento dellerrore di arrotondamento, dovuto alla cancellazione numerica, peggiorato ulteriormente dalla divisione per x. Effettuando i calcoli in semplice precisione (8 cifre significative) e in doppia precisione (16 cifre significative) si ottengono i seguenti risultati7: Semplice precisione

x = 2 10 x = 2 24 x = 2 25 Doppia precisione x = 2 25 x = 2 50

f (x ) = 1.0004480 f ( x ) = 0 .0

f (x ) = 1.6777216

f (x ) = 1.000000020545536 f (x ) = 1.125899906842624

x = 2 51 f (x ) = 0.0 Anche se si opera in doppia precisione, il problema dovuto alla cancellazione numerica continua a verificarsi, ma si presenta per valori di x pi piccoli. Come si osserva in questi esempi, il problema dellerrore di arrotondamento pu essere almeno in parte risolto aumentando la precisione del calcolo, ma non pu essere del tutto eliminato: anche con il raddoppio della precisione si ha una diminuzione (certamente meno importante) delle cifre significative. Se il cambiamento del numero di cifre di precisione fa cambiare in modo rilevante i risultati di un calcolo, allora molto probabile che il calcolo sia seriamente affetto da errori di arrotondamento. Questo problema sar approfondito nel 1.11, dove si vedr come sia spesso possibile modificare un algoritmo in modo da evitare il problema della cancellazione numerica.

1.7.3 Calcolo del valore di una funzione


La maggior parte dei problemi matematici richiede luso di funzioni. Ci sono solo due modi per rappresentare una funzione in un calcolatore: mediante una tabella di valori oppure con un algoritmo che consenta di calcolare i valori della funzione in punti assegnati. Poich nellaritmetica di macchina in un computer sono definite solo le quattro operazioni aritmetiche, le funzioni effettivamente calcolabili esattamente su un calcolatore, a meno degli errori di arrotondamento, sono solo le funzioni che richiedono un numero finito di queste operazioni. Tali funzioni sono dette funzioni razionali e possono essere scritte nella forma p(x ) r (x ) = q(x ) dove p(x) e q(x) sono polinomi di grado rispettivamente n e m nella variabile x

p(x ) = a0 + a1x + a2 x 2 + ... + an x n

q(x ) = b0 + b1x + b2 x 2 + ... + bm x m I coefficienti ak e bk e il valore x in cui la funzione deve essere calcolata sono rappresentati con numeri di macchina; il valore calcolato per la funzione affetto dallerrore di arrotondamento dovuto allaritmetica floating point.

Universit di Torino

Capitolo 1 Nozioni introduttive

19

Tutte le altre funzioni devono essere calcolate per mezzo di algoritmi con i quali si ottiene un valore approssimato della funzione; tale valore affetto, oltre che dallerrore di arrotondamento, anche da un errore dovuto al metodo scelto per approssimare la funzione. Molte funzioni, ad esempio le funzioni trigonometriche, possono essere approssimate da opportune funzioni razionali; numerose funzioni elementari possono essere approssimate nellintorno dellorigine per mezzo dello sviluppo in serie di Taylor. Nel calcolo di una generica funzione f il valore effettivamente calcolato in corrispondenza a un dato valore x quindi affetto da errori indotti da diversi fenomeni: errore generato dalla rappresentazione dei dati come numeri di macchina; errore generato dal fatto che le operazioni sono effettuate in aritmetica floating point; errore generato, se la funzione non razionale, dalla sua approssimazione con una funzione razionale, oppure con lo sviluppo di Taylor o con altri metodi.

1.7.4 Discretizzazione
Molti problemi sono inizialmente formulati in termini di oggetti matematici quali funzioni o curve e coinvolgono operazioni come lintegrazione, la differenziazione o i limiti. Il procedimento di sostituire concetti matematici di tipo continuo mediante quantit calcolabili numericamente chiamato discretizzazione. Si consideri ad esempio il problema di calcolare lintegrale

I=

f (x)dx
a

(1.1)

dove f(x) una funzione continua su [a,b], calcolabile in ogni punto x [a,b]. Loperazione di integrazione pu essere sostituita da una somma finita, commettendo ovviamente un errore. La maggior parte dei metodi di integrazione numerica per approssimare lintegrale I consiste nello scegliere un certo numero di punti x0, x1, ... , xn nellintervallo [a,b] e nellapprossimare lintegrale I con una somma finita del tipo

m
k =0

f (x k )

(1.2)

dove i coefficienti mk , k = 0, 1, ...,n , sono scelti in modo opportuno. Lalgoritmo che si implementa sul calcolatore risolve il problema discreto (1.2), anzich il problema continuo (1.1). Se ad esempio si sceglie x0 = a, x1 = b, si pu costruire la formula del trapezio h I [ f (a ) + f (b )] h=ba 2 illustrata dalla fig. 1, nel caso semplice in cui f (x ) > 0 per ogni x [a,b].
f(x)

Figura 1
a=x 0 b=x1 x

Dipartimento di Matematica

20

M. Garetto Metodi Numerici

1.7.5 Iterazione
Spesso la soluzione di un problema matematico formulata sotto la forma di un processo infinito: esempi di tali processi sono lintegrazione, la differenziazione, i limiti, le somme infinite. Molti di questi processi infiniti possono essere formulati come iterazioni. Un metodo iterativo fornisce una successione di approssimazioni x0 , x1 , ... , xk,... della soluzione x; tale successione pu convergere alla soluzione stessa. Una particolare iterata calcolata con unopportuna formula, servendosi delle iterate precedenti.
Esempio 26 La costante e definita dalla serie

e=

k =0

k!

Poich la somma di una serie definita come il limite delle somme parziali (ridotte), si pu scrivere il procedimento iterativo seguente S 0 = 1 1 k = 1,2,.... S k = S k 1 + k! La successione di valori che si calcola con questo metodo iterativo S 0 = 1.0
S1 = 1 + 1 = 2.0 1 = 2.5000000 2! 1 S 3 = 2.5000000 + = 2.6666667 3! 1 S 4 = 2.6666667 + = 2.7083334 4! 1 S 5 = 2.7083334 + = 2.7166667 5! ....................... che converge al valore e 2.7182818 . S2 = 2 +
Esempio 27 Il numero irrazionale 2 la soluzione positiva dellequazione x2 = 2. Si pu dimostrare che la soluzione di questa equazione il limite della successione di iterate x0 = 2 1 2 k = 1,2 ,... xk = 2 xk 1 + x k 1 La successione di valori che si calcola con questo metodo iterativo x0 = 2

x1 = x2 x3

1 (2 + 1) = 1.5 2 1 3 4 = + = 1.41667 2 2 3 = 1.4142157

...................... che converge al valore 2 1.41421356


Universit di Torino

Capitolo 1 Nozioni introduttive

21

Si presentano a questo punto due problemi. Il primo legato al fatto che pu essere calcolato solo un numero finito di iterate, quindi si deve decidere quale iterata pu essere assunta come approssimazione della soluzione cercata; la scelta dei criteri di arresto per processi iterativi non sempre semplice. Il secondo problema quello della convergenza e consiste nel chiedersi se il procedimento converge e, in caso affermativo, se converge alla soluzione cercata. Ad esempio, per risolvere lequazione x2 = 2 si pu anche considerare il metodo iterativo x0 = 2 2 k = 1,2,... xk = x k 1 La successione di valori che si determina con questo metodo {2, 1, 2, 1, 2, 1,.....} che ovviamente non converge. Risulta quindi necessario avere una conoscenza chiara del procedimento iterativo, in modo da poter dire, prima di applicarlo, se la successione delle iterate converge.

1.8

Tipi di errore

Le considerazioni precedenti hanno reso evidenti vari errori che nascono nel corso della soluzione numerica di un problema matematico; questi errori possono essere sostanzialmente di due tipi diversi. Il primo tipo di errore detto errore di arrotondamento7 ed causato dalla rappresentazione finita dei numeri allinterno del calcolatore; questo errore si presenta ad esempio quando dei dati devono essere arrotondati o troncati a un certo numero di cifre per essere memorizzati nel computer. Pi in generale gli errori di arrotondamento nascono quando si effettua una operazione aritmetica su numeri nel calcolatore, e si produce un risultato che viene anchesso approssimato con un opportuno numero di macchina. Il secondo tipo di errore detto errore di troncamento8 e si presenta in varie forme. Il procedimento di approssimazione di una funzione per mezzo di unopportuna funzione razionale introduce un errore di questo tipo; analogamente il processo di discretizzazione, cos come larrestare un procedimento iterativo dopo un numero finito di passi. In molti casi, lerrore di troncamento introdotto prima che il calcolo numerico venga iniziato. Ad esempio quando un integrale sostituito da una somma finita, si introduce un certo errore di troncamento, mentre il calcolo numerico della somma introduce solo errori di arrotondamento. Quando lerrore di troncamento causato da un processo di discretizzazione, di solito accade che tanto pi piccolo questo errore, tanto pi complicato il corrispondente procedimento numerico. Inoltre generalmente lerrore di arrotondamento direttamente proporzionale alla complessit del calcolo, perci in molti casi ridurre lerrore di troncamento causa un aumento dellerrore di arrotondamento. Normalmente questi due errori vengono analizzati separatamente; bisogna comunque tener presente che spesso c una connessione tra di loro, che deve essere tenuta in considerazione.

1.9

Propagazione degli errori

La questione di come gli errori sui dati di un problema si propagano sui risultati di fondamentale importanza per la risoluzione numerica di un problema.
7

Attenzione a non confondere gli errori di arrotondamento e troncamento con le tecniche di arrotondamento e troncamento introdotte nel 1.4 per approssimare i numeri.

Dipartimento di Matematica

22

M. Garetto Metodi Numerici

Studiamo come gli errori si possono propagare effettuando successivamente dei calcoli; consideriamo il semplice caso della somma di due numeri x e y (valori esatti); siano x e y i valori approssimati di x e y, con i rispettivi errori x e y x = x + x
y = y + y .

Calcoliamo la somma x + y = x + x + y + y = x + y + x + y . Lerrore sulla somma la somma degli errori sugli addendi. In modo simile, ma un po pi complicato, si pu operare nel caso del prodotto; in generale un errore iniziale si propaga in una sequenza di calcoli. Una qualit auspicabile per ogni processo numerico che un errore piccolo sui dati iniziali produca piccoli cambiamenti sul risultato finale. Dato un problema matematico, per quanto riguarda la propagazione degli errori possiamo, in maniera schematica, distinguere il comportamento del problema e il comportamento di un particolare algoritmo utilizzato per risolvere tale problema. Nel primo caso, facendo lipotesi ideale di essere in grado di risolvere esattamente il problema, si interessati a vedere come piccoli cambiamenti (perturbazioni) sui dati del problema si trasmettono sui risultati; per caratterizzare un problema rispetto a questo tipo di comportamento si utilizza il termine di condizionamento.

) (

) (

) (

Definizione Un problema matematico per il quale piccole variazioni nei dati producono grosse variazioni nei risultati detto mal condizionato. Viceversa se il problema tale che piccoli cambiamenti sui dati causano cambiamenti dello stesso ordine di grandezza sulla soluzione, allora il problema detto ben condizionato.

Nel caso di un algoritmo, per indicare il suo comportamento rispetto alla propagazione degli errori si usa il termine di stabilit.
Definizione Un algoritmo nel quale la successione delle operazioni non amplifica gli errori di arrotondamento si dice stabile; se invece gli errori vengono pesantemente amplificati, lalgoritmo si dice instabile.

La distinzione tra il condizionamento di un problema e la stabilit di un algoritmo importante perch, come si vedr negli esempi seguenti, mentre per un problema ben condizionato possibile in generale trovare algoritmi stabili, invece per un problema mal condizionato opportuna una sua riformulazione, perch nessun algoritmo in grado di risolverlo senza un grave aumento degli errori sul risultato.

1.10

Problemi mal condizionati

Il condizionamento proprio del problema e non ha alcun legame n con gli errori di arrotondamento delle operazioni di macchina, n con il particolare procedimento di calcolo numerico seguito per determinarne la soluzione. Nel caso di un problema mal condizionato gi linevitabile perturbazione dei dati dovuta alla rappresentazione finita di macchina genera errori elevati nei risultati, qualunque sia poi lalgoritmo utilizzato. Gli esempi seguenti illustrano alcuni tipici casi di problemi mal condizionati.

Universit di Torino

Capitolo 1 Nozioni introduttive

23

Esempio 28 Sistema di equazioni lineari Si consideri il seguente sistema di equazioni lineari. x + y = 2 1001x + 1000 y = 2001 Risolviamo il sistema con il metodo di Cramer, con aritmetica esatta 1 1 D= = 1 1001 1000

(1.3)

D1 = x=

2 1 = 1 2001 1000

D2 =

1 2 = 1 1001 2001

D1 D y = 2 =1 =1 D D 1 Alteriamo ora di il coefficiente di x nella prima equazione 100 1 x + y = 2 1 + 100 1001x + 1000 y = 2001

(1.4)

La soluzione di questo sistema 1 1 1 1+ D= = 1 + 1000 1001 = 9 100 1001 1000 100


D1 = D2 = 2 1 100 1001 1 2001 1000 1+ 2 = 1

1 1901 = 1 + 2001 2002 = 100 2001 100 D 1901 ~ y= 2 = 900 D

D 1 ~ x = 1 = 9 D

Il piccolo cambiamento del coefficiente di x ha causato un cambiamento rilevante nella soluzione: si tratta di un problema mal condizionato. Si noti che entrambe le soluzioni sono calcolate in aritmetica esatta, quindi non sono stati introdotti errori di arrotondamento dovuti alluso del computer. La natura del mal condizionamento del problema precedente pu essere descritta mediante uninterpretazione geometrica. Le due equazioni del sistema (1.3) hanno come grafico le due rette tracciate nella figura seguente e la loro intersezione ha per coordinate la soluzione del sistema.

Figura 2

Dipartimento di Matematica

24

M. Garetto Metodi Numerici

Poich le due rette formano tra loro un angolo molto piccolo, perturbando la prima equazione si altera di poco la posizione della prima retta, ottenendo la retta tratteggiata, ma cambia molto la posizione del punto di intersezione e quindi le sue coordinate, che sono le soluzioni del sistema perturbato (1.4).
Esempio 29 Soluzione di equazioni Calcoliamo le radici dellequazione x 2 4x + = 0 . Per = 4 lequazione diventa

(x 2)2 = 0

e ha le due radici coincidenti x1 = x2 = 2 mentre per = 4 10 6 , che corrisponde a una perturbazione del termine noto di 10 6, si hanno le radici x1 = 2 103 x2 = 2 + 103. La perturbazione nei dati quindi amplificata nei risultati di un fattore 103. Si noti che anche in questo esempio tutti i calcoli sono svolti in aritmetica esatta, quindi senza alcun errore di arrotondamento; si tratta di nuovo di un problema mal condizionato. Un esempio analogo dato dal calcolo degli zeri del polinomio P(x ) = (x 1)(x 2) (x 20 ) In questo caso, a differenza del precedente, gli zeri x1 = 1, x2 = 2,....., x20 = 20 sono distinti e ben separati. Sviluppando il polinomio si ottiene

P( x ) = x 20 210 x19 + .... Il polinomio P (x ) = P(x ) 2 23 x19

ottenuto perturbando soltanto il coefficiente di x19 di una quantit dellordine di 107, ha cinque coppie di zeri complessi coniugati e tra i restanti dieci zeri reali il pi grande, approssimato a 8 cifre significative, x20 = 20.846908 . Si pu osservare che un cambiamento molto piccolo in un solo coefficiente (cambiamento dellordine degli errori di arrotondamento di macchina in semplice precisione) ha prodotto dei grossi errori sui risultati. Questi risultati sono stati ottenuti con unaritmetica con precisione molto elevata, per cui gli errori non sono imputabili a problemi di arrotondamento, ma sono dovuti al mal condizionamento del problema. La risoluzione di equazioni algebriche di grado elevato un problema in generale mal condizionato.

1.11

Algoritmi instabili

Molti metodi per risolvere problemi matematici funzionerebbero molto bene se si usasse laritmetica esatta. Con gli esempi che seguono si vuole mostrare che laritmetica floating point del calcolatore e gli errori di arrotondamento possono rendere completamente inefficace un algoritmo. Si osservi che per uno stesso problema si possono usare pi algoritmi diversi; esistono quindi algoritmi stabili e algoritmi instabili. Il fenomeno della cancellazione numerica molto spesso alla base di gran parte dei casi di instabilit numerica degli algoritmi.

Universit di Torino

Capitolo 1 Nozioni introduttive

25

Esempio 30 Soluzione dellequazione di secondo grado ax 2 + bx + c = 0 . Le due radici si ottengono con le note formule risolutive

x1 =

b + b 2 4ac 2a

x2 =

b b 2 4ac 2a

(1.5) b 2 4ac quasi uguale a b,

Si pu presentare cancellazione numerica nel calcolo di x1 se

oppure in x2 se b 2 4ac quasi uguale a b. Si consideri ad esempio lequazione x 2 + 1000.0100 x 2.5245315 = 0 I coefficienti sono dati con 8 cifre significative; effettuando i calcoli con 8 cifre significative si ha

1000.01 ( 1000.01 )2 + 4 2.5245315 1000.01 1000.0150 = 2 2 x1 = 1000.0125 x2 = 0.0025 Si pu osservare che nella radice x2 si sono perse ben 6 cifre significative: ci dovuto alla cancellazione nella sottrazione effettuata nel calcolo di x2. In questo caso si tratta di instabilit dellalgoritmo. Il fenomeno della cancellazione numerica pu essere evitato ricordando che c x1 x2 = a e perci, se la cancellazione numerica si presenta nel calcolo di x2, dopo aver calcolato x1 con la formula risolutiva (1.5), si calcola x2 con la formula c x2 = ax1 e viceversa se la cancellazione si presenta in x1. In questo esempio si ha 2.5245315 x2 = = 0.0025244999 1000.0125 con 8 cifre significative in entrambe le radici. x1,2 =
Esempio 31 Confrontare i risultati del calcolo dei valori delle funzioni

f (x ) = x

x +1 x

g (x ) =

x x +1 + x

per x = 500 , effettuando i calcoli con 6 cifre significative. Per la prima funzione si ottiene f (500 ) = 500 501 500 = 500(22.3830 22.3607 ) = 500 0.022300 = 11.1500 Per la seconda funzione si ha 500 500 500 g (500) = = = = 11.1748 501 + 500 22.3830 + 22.3607 44.7437

La seconda funzione ottenuta dalla prima moltiplicando e dividendo per f (x ) = x

x +1 + x x +1 + x Il valore esatto a 16 cifre significative, ottenuto con Maple, 11.17475530074720.

x +1 x =

) x(

x +1 x

)(

x +1 + x

)=

x +1 + x

Dipartimento di Matematica

26

M. Garetto Metodi Numerici

Gli errori assoluti sono rispettivamente


E f = 11.17475530074720 f (500 ) = 11.17475530074720 11.1500 0.25 10 1 Il valore ottenuto per g (500 ) pi preciso di f (500 ) , perch nellespressione di g (x ) non si ha cancellazione numerica. Le due funzioni sono algebricamente equivalenti e rappresentano lo stesso problema; il condizionamento del problema quindi lo stesso. Sono per disponibili due algoritmi diversi, di cui il secondo stabile, mentre il primo non lo : infatti nel primo interviene la cancellazione numerica, mentre nel secondo la cancellazione scomparsa, avendo effettuato formalmente loperazione di razionalizzazione dellespressione.
Esempio 32 Si supponga di voler utilizzare il calcolatore per avere delle indicazioni sul valore del limite lim f ( x )
x +

E g = 11.17475530074720 g (500) = 11.17475530074720 11.1748 0.45 10 4

con 2 f ( x ) = x (1.6) x +1 x calcolando il valore di f(x) per valori crescenti di x. Si osservi che la funzione f(x) pu essere scritta anche nella forma algebricamente equivalente 2 2 x x + 1 x x + 1 + x x = f (x ) = (1.7) 2 2 x +1 + x x +1 + x Nella tabella seguente si riportano i valori di f(x) ottenuti con le due espressioni in corrispondenza a valori crescenti di x, effettuando i calcoli con 7 cifre significative.

x 100 500 700 800 1000 2000 3000

(1.6) 0.5000000 0.5000000 0.4900000 0.4800000 0.0000000 0.0000000 0.0000000

(1.7) 0.4999875 0.4999995 0.4999996 0.4999997 0.5000000 0.5000000 0.5000000

Le informazioni ottenute sono discordanti. In base ai valori ottenuti con la (1.6) si potrebbe dedurre che lim f ( x ) = 0
x +

Invece con la (1.7) si pu dedurre il valore corretto del limite 1 lim f ( x ) = 2 x + Le ragioni di questo comportamento sono del tutto analoghe a quelle dellesempio precedente: nel calcolo con lespressione (1.6) si verifica la cancellazione numerica dovuta al fatto che per valori grandi di x si ha x2 + 1 x

Universit di Torino

Capitolo 1 Nozioni introduttive

27

Esempio 33 Si vuole approssimare il valore di e9 con lo sviluppo in serie di Taylor

x 2 x3 x 4 xn + + + ... + + ... 2! 3! 4! n! Ponendo in questa formula x = 9 si ottiene ex = 1+ x +


9 2 93 9 4 + ... (1.8) 2! 3! 4! Effettuando i calcoli con 7 cifre significative, le cifre significative del risultato ottenuto sommando n termini della (1.8) si stabilizzano sul valore S = 0.1784883 103 per n 40; poich e9 un numero positivo, lalgoritmo che si basa sulla formula (1.8) fornisce un risultato completamente inattendibile. Anche in questo caso la causa dellinstabilit dellalgoritmo la cancellazione numerica nella formula (1.8). Si pu per osservare che vale lidentit 1 e x = ex e si ottiene cos unaltra formula per il calcolo di e9 1 1 e9 = = (1.9) 9 2 e 9 93 9 4 + + + ... 1+ 9 + 2! 3! 4! e9 = 1 9 +

Per n 27 con la formula (1.9) si ottiene il risultato con 7 cifre significative corrette e 9 = 0.1234098 10 3 .
Molti metodi numerici calcolano una successione di valori, ciascuno dei quali ottenuto dai valori calcolati precedentemente: tale tecnica si chiama ricorsione. Se piccoli errori nei valori precedenti vengono fortemente amplificati nei calcoli successivi, il risultato finale pu essere molto inaccurato. Lesempio seguente illustra un metodo di ricorsione: lalgoritmo utilizzato instabile e viene modificato in modo da ottenere la stabilit.
Esempio 34 Si vuole determinare il valore dellintegrale

x
0

25 x 1

dx

Posto

I k = x k e x 1dx

si integra per parti e si ottiene

Ik = x e Inoltre

k x 1

1 0

k x k 1e x 1dx = 1 kI k 1 .

I 0 = e x 1dx = e x 1 = 1

1 . e

Si pu quindi trovare I 25 partendo da I 0 e calcolando successivamente I1 , I 2 ,, I 25 con la formula di ricorrenza I k = 1 kI k 1 k = 1,2,...,25 (1.10)

Dipartimento di Matematica

28

M. Garetto Metodi Numerici

Si ottiene la seguente tabella di valori8

k
0 1 5 10 15 20 24 25

Ik 6.3212 101 3.6788 101 1.4554 101 8.3878 102 5.9034 102 3.0192 101 7.7114 106 1.9279 108

I risultati sono inattendibili per grandi valori di k; infatti ogni I k deve essere positivo, mentre alcuni dei valori approssimati sono negativi. Inoltre I k tende a zero al crescere di k, mentre i valori approssimati della tabella crescono. Il grande errore dovuto al fatto che lerrore su I k 1 viene moltiplicato per k e propagato su I k . Un errore anche piccolo su I 0 viene propagato su I1 , poi moltiplicato per 2 nel calcolo di I 2 , poi ancora moltiplicato per 3 nel calcolo di I 3 , e cos via. Nel calcolo di I 25 lerrore iniziale su I 0 amplificato del fattore 25! 1025. Pi precisamente, i valori calcolati di I e con E lerrore su I si ha indicando con I
k k

=I +E I 0 0 0 = 1 I = 1 I E = I E I 1 0 0 0 1 0 I 2 = 1 2 I1 = 1 2(I1 E0 ) = 1 2 I1 + 2 E0 = I 2 + 2 E0 = 1 3I = 1 3(I + 2 E ) = I 6 E = I 3! E I = 1 4I = 1 4(I 3! E ) = I + 4! E I 4 3 3 0 4 0 ..... = I 25! E I 25 25 0 Molti algoritmi ricorsivi mostrano questo tipo di comportamento: si tratta di instabilit numerica. Una tecnica per evitarla consiste in questo esempio nel seguente procedimento: ricaviamo I k 1 dalla relazione di ricorrenza (1.10), e troviamo 1 1 I k 1 = I k k = N , N 1,...,25 (1.11) k k 1 In questa forma lerrore ad ogni passo viene moltiplicato per , e quindi si riduce. k Da quale valore I N si deve iniziare? Sappiamo che lim I k = 0
k

quindi ragionevole assumere I N = 0 per un opportuno valore N > 25 sufficientemente grande e poi calcolare I N 1 , I N 2 ,. fino a I 25 .

I valori di questa tabella e della successiva sono stati calcolati con Matlab

Universit di Torino

Capitolo 1 Nozioni introduttive

29

Per analizzare il comportamento dellerrore, usando le stesse notazioni di prima, si ha =I +E I N N N

1 1 1 1 1 I I N = (I N + E N ) = I N 1 E N N 1 = N N N N N 1 1 1 1 1 1 I I N 1 = EN I N 1 E N = I N 2 + N 2 = N 1 N 1 N 1 N 1 N N (N 1) .... 1 EN N (N 1)(N 2)...(N (N 26 )) lerrore E40 sul valore di I viene moltiplicato Per esempio scegliendo N = 40, nel calcolo di I 25 40 1 per il fattore 10 23 : lerrore diventa del tutto trascurabile! 40(40 1)(40 2 )...(26 ) Partendo da I 40 = 0 e procedendo nel modo sopra descritto, si ottiene la seguente tabella =I I 25 25

k
40 35 30 29 28 27 26 25

Ik 0.0 2.704628971076339 102 3.127967393216807 102 3.229067753559440 102 3.336928698153123 102 3.452252546494531 102 3.575842498277980 102 3.708621442373924 102

Un interessante esperimento consiste nel calcolare I 25 partendo da I 40 = 1 oppure da I 40 = 1 , anzich da I 40 = 0 : i risultati saranno gli stessi perch lerrore su I 40 viene completamente eliminato.

1.12

Efficienza computazionale

Il tempo di macchina richiesto per il completamento di unoperazione aritmetica in floating point di solito molto pi lungo del tempo necessario per fare altri tipi di operazioni, quali operazioni su interi, operazioni di confronto o logiche. Inoltre, la maggior parte degli algoritmi numerici non richiede un gran numero di operazioni non aritmetiche. Pertanto una stima ragionevole del tempo macchina richiesto da un certo algoritmo pu essere ottenuto con il conteggio del numero di operazioni aritmetiche in floating point. In quasi tutti i calcolatori addizioni e sottrazioni richiedono circa lo stesso tempo di esecuzione, per cui queste operazioni possono essere contate insieme. Invece le moltiplicazioni e le divisioni hanno un tempo di esecuzione sensibilmente diverso, perci vengono contate separatamente. Si usa la notazione E=aA+bM+cD per indicare un calcolo che richiede a addizioni, b moltiplicazioni e c divisioni floating-point. Il numero E di operazioni in virgola mobile eseguite con un certo algoritmo serve come utile misura dellefficienza dellalgoritmo. Se sono disponibili due algoritmi per risolvere lo stesso problema, preferibile in generale quello per cui il numero E pi piccolo.

Dipartimento di Matematica

30

M. Garetto Metodi Numerici

Calcolo del valore di un polinomio in un punto: metodo di Horner Uno dei calcoli numerici pi comuni la valutazione di un polinomio in un punto. Descriviamo due algoritmi per farlo e vediamo come unattenta analisi dellefficienza possa essere utile per scegliere lalgoritmo migliore. Dato un polinomio Pn ( x ) di grado n e coefficienti ai , i = 0,1,...,n

Pn ( x ) = a0 + a1x + a2 x 2 + ... + an x n il modo pi ovvio per calcolare il valore di Pn ( x ) in un assegnato punto x consiste nel calcolare i valori dei singoli monomi e sommarli. Questo metodo richiede n addizioni e 2 n moltiplicazioni; la sua efficienza data dal numero E=nA+2nM Lalgoritmo non consigliabile; un algoritmo molto pi efficiente il seguente, chiamato metodo di Horner, che descriviamo per semplicit nel caso del calcolo del valore di un polinomio di quarto grado P4 (x ) = a0 + a1x + a2 x 2 + a3 x 3 + a4 x 4 . P4 (x ) pu anche essere scritto nella forma seguente (forma nidificata)
P4 (x ) = a0 + a1x + a2 x 2 + a3 x 3 + a4 x 4 = = a0 + a1x + a2 x 2 + x 3 (a3 + a4 x ) = ... =

= a0 + x(a1 + x(a2 + x(a3 + a4 x ))) In generale si pu scrivere un polinomio Pn ( x ) di grado n nella forma nidificata Pn (x ) = a0 + x(a1 + x(a2 + .... + x(an 1 + an x )...)) Questo algoritmo richiede n addizioni e n moltiplicazioni e la sua efficienza E = n A + n M. Il metodo di Horner ottimale, nel senso che non possibile calcolare il valore di un polinomio, dato attraverso i suoi coefficienti, con meno di n addizioni e n moltiplicazioni.
Esempio 35 Calcolare il polinomio P3 ( x ) = 1.8 + 3.2 x 4.8 x 2 + 1.3x 3 in x = 4.71 usando laritmetica floating point con 3 cifre significative e con arrotondamento. Si noti che larrotondamento va effettuato dopo ogni calcolo.

La tabella seguente riassume i risultati dei calcoli

valore esatto valore approssimato con arrotondamento

x 4.71
4.71

x2 22.1841
22.2

x3 104.487111
105

3.2 x 15.072 15.1

4.8 x 2 106.48368 107

1 .3 x 3 135.8332443 136

Dettagli sui calcoli con 3 cifre significative:


x 2 = 4.712 = 22.2 x 3 = x 2 x = 22.2 4.71 = 105 4.8 x 2 = 4.8 22.2 = 107 1.3 x 3 = 1.3 105 = 136 Il valore esatto del polinomio P3 (x ) in x = 4.71 P3 (4.71) = 1.8 + 15.072 106.48368 + 135.8332443 = 46.2215643 Con laritmetica floating point a 3 cifre significative con arrotondamento si ottiene P3 (4.71) = 1.8 + 15.1 107 + 136 = 45.9

Universit di Torino

Capitolo 1 Nozioni introduttive

31

Lerrore relativo 46.2215643 45.9 0.0065 46.2215643 Il numero di operazioni effettuate con questo metodo E=3A+5M Il metodo alternativo consigliato basato sullalgoritmo di Horner, con il quale si ottiene P3 (x ) = 1.8 + x(3.2 + x( 4.8 + 1.3x )) Sostituendo x = 4.71 e effettuando i calcoli con 3 cifre significative con arrotondamento in ogni passo del calcolo si ha P3 (4.71) = 1.8 + 4.71(3.2 + 4.71( 4.8 + 1.3 4.71)) = 46.2 Lerrore relativo ora 46.2215643 46.2 Erel = 0.00047 46.2215643 Erel = Il numero di operazioni effettuate con questo metodo E=3A+3M Il calcolo con lalgoritmo di Horner ha ridotto sensibilmente lerrore relativo, e ci dovuto alla diminuzione del numero di operazioni effettuate: un modo per ridurre lerrore di arrotondamento consiste nel ridurre il numero di operazioni che producono errore. I polinomi dovrebbero sempre essere scritti nella forma nidificata di Horner, prima di valutarli in un punto.

1.13

Codifica degli algoritmi

Un algoritmo, come noto, un procedimento formato da una sequenza logica di istruzioni elementari, non ambigue che, eseguite in un ordine stabilito, consentono di trovare la soluzione di un problema in un numero finito di passi. Gli algoritmi vengono di solito formalizzati seguendo opportuni standard di utilizzo comune, che ne consentono poi unagevole traduzione in un programma eseguibile da un computer. Uno tra i formalismi pi diffusi la pseudocodifica basata su un linguaggio molto vicino a quello naturale scritto. La pseudocodifica presenta notevoli vantaggi, tra i quali si pu ricordare la possibilit di redigerla utilizzando un normale programma di videoscrittura e la facilit estrema di traduzione in un linguaggio di programmazione strutturato. Per la pseudocodifica si impiega lindentazione, una tecnica che prevede il rientro di gruppi di istruzioni cos da evidenziare i limiti di cicli ripetitivi di istruzioni o di alternative possibili. Le convenzioni e le strutture su cui basata la pseudocodifica sono le seguenti. Tipi di dati: la maggior parte delle variabili sono numeri interi o reali oppure arrays, vettori e matrici; per indicare il generico elemento di un vettore v o di una matrice A si usano le notazioni v(i) o A(i,j).
Struttura a blocchi: si usa lindentazione per mettere in evidenza i blocchi di istruzioni. Istruzione di assegnazione: per loperatore di assegnazione si usa il simbolo = . Struttura sequenziale: una sequenza di istruzioni viene scritta su righe separate.

Dipartimento di Matematica

32

M. Garetto Metodi Numerici

Struttura condizionale: ha la forma if < condizione > then < blocco istruzioni A > else < blocco istruzioni B > end if

Se al momento dellesecuzione la condizione vera si esegue la sequenza di istruzioni A, altrimenti si esegue la sequenza B. Lalternativa else pu essere omessa se vuota; si possono usare strutture condizionali annidate. Strutture ripetitive: nel caso in cui il numero di iterazioni sia indefinito si usa il ciclo while. Il ciclo while ha la forma while < condizione > do < blocco istruzioni S > end while Se la condizione vera si esegue il blocco di istruzioni S; poi si ripete il test sulla condizione: se falsa il ciclo termina, altrimenti si ripete il blocco di istruzioni S. Il processo continua finch la condizione diventa falsa. Se il numero di iterazioni noto e definito, si pu usare la struttura ripetitiva controllata da contatore, che ha due forme a seconda che il contatore incrementi o decrementi il suo valore 1for i = n to m do < blocco istruzioni > end for

2-

for i = m downto n do < blocco istruzioni > end for

Istruzioni di ingresso-uscita: si sintetizzano nella forma Input {lista di ingresso} Output {lista di uscita} Fine dellalgoritmo: si indica con listruzione End

Esempio 36 Come primo esempio di algoritmo codificato con il linguaggio sopra descritto riportiamo lalgoritmo di Horner per il calcolo del valore del polinomio Pn ( x ) in forma nidificata Pn (x ) = a0 + x(a1 + x(a2 + .... + x(an 1 + an x )...)) in un punto x. Algoritmo di Horner Input {n,(a(i),i=0,n),x} p=a(n) For i=n1 downto 0 do p=x*p+a(i) end for Output {x,p} End

Universit di Torino

Capitolo 1 Nozioni introduttive

33

Esempio 37 Algoritmo per il calcolo dellepsilon di macchina; in output la variabile meps fornisce il valore dellepsilon di macchina meps=1 while 1+meps>1 do meps=meps/2 end while meps=2*meps Output {meps} Esempio 38 Calcolo di n!

n ! = 1 2 3 ..... n 0 != 1

n0

Input {n} fatt=1 If n1 then for k=1 to n do fatt=fatt*k end for end if Output {fatt} Esempio 39 Calcolo del numero e con lo sviluppo in serie di Taylor 1 1 1 1 e = + + + ... + n0 0! 1! 2! n! Input {n} e=1 fatt=1 If n1 then for k=1 to n do fatt=fatt*k e=e+1/fatt end for end if Output {e}

Dipartimento di Matematica

34

M. Garetto Metodi Numerici

Universit di Torino

Capitolo 2 Algebra lineare numerica

35

2.
2.1

Algebra lineare numerica


Introduzione

Lalgebra lineare numerica consiste nello studio di algoritmi e software per la soluzione dei seguenti problemi: sistemi quadrati di n equazioni lineari in n incognite e sistemi rettangolari di n equazioni lineari in m incognite; calcolo di autovalori e autovettori di matrici. Nella soluzione di questi problemi importante il concetto di matrice; in tal senso possibile introdurre unaltra definizione di algebra lineare numerica, che pu essere vista come lo sviluppo di algoritmi per problemi numerici coinvolgenti matrici. Lalgebra lineare numerica importante nel calcolo scientifico per vari motivi: essa fornisce i modelli matematici per descrivere quantitativamente moltissimi fenomeni reali di fisica, ingegneria, statistica, biologia e cos via; ad esempio la determinazione delle tensioni delle correnti in una rete a corrente continua si riconduce a un sistema lineare. Anche quando i fenomeni reali non sono descrivibili direttamente come problemi di algebra lineare numerica, questi modelli possono per essere approssimati con modelli matematici di algebra lineare; ad esempio problemi descritti da sistemi di equazioni differenziali si riconducono a problemi di algebra lineare. Nei paragrafi seguenti riassumiamo brevemente le principali definizioni e propriet di vettori e matrici, utili per trattare i metodi dellalgebra lineare in ambito computazionale.

2.2

Operazioni fra vettori

Definizione Un vettore x reale a n dimensioni un insieme ordinato di n numeri reali x = (x1 , x2 ,..., xn ) I numeri x1 , x2 ,..., xn sono detti componenti di x. I vettori possono essere scritti sotto forma di vettori riga x = (x1 , x2 ,..., xn ) y = ( y1 , y 2 ,..., y n ) o di vettori colonna x1 y1 x2 y2 x = ... y = ... ... ... xn yn Per indicare la relazione tra vettore riga e vettore colonna si usa il simbolo T (operazione di trasposizione)

x1 x2 T (x1 , x2 ,..., xn ) = ... ... xn

x1 x2 ... = ( x , x ,..., x ) 1 2 n ... xn

Dipartimento di Matematica

36

M. Garetto Metodi Numerici

Siano x, y due vettori a n dimensioni x = (x1 , x 2 ,..., x n ) e c, d due numeri reali (scalari).

y = ( y1 , y 2 ,..., y n )

Definizioni 1. Vettori uguali x = y xi = y i i = 1,2 ,..., n 2. Somma di vettori x + y = (x1 + y1 , x 2 + y 2 ,..., x n + y n ) 3. Opposto di un vettore x = ( x1 , x 2 ,..., x n ) 4. Differenza di vettori x y = (x1 y1 , x 2 y 2 ,..., x n y n ) 5. Moltiplicazione per uno scalare cx = (cx1 ,cx 2 ,..., cx n ) 6. Combinazione lineare di due vettori cx + dy = (cx1 + dy1 ,cx2 + dy 2 ,..., cx n + dy n ) 7. Prodotto scalare di due vettori x y = x1 y1 + x 2 y 2 + ... + x n y n (Il prodotto scalare di due vettori un numero reale.) 8. Norma euclidea (o lunghezza) di x 9.
2 2 2 x = x1 + x2 + ... + xn Vettore nullo 0 = (0 ,0 ,...,0 )

La moltiplicazione per uno scalare c dilata il vettore x quando c > 1 , lo contrae quando c < 1 , come si pu vedere usando la definizione 8
2 2 2 2 2 2 cx = c 2 x1 + c 2 x2 + ... + c 2 xn = c x1 + x2 + ... + xn =c x

Vale unimportante relazione tra prodotto scalare e lunghezza di un vettore, che si ricava dalla definizione 7 di prodotto scalare di due vettori, sostituendo x a y
2 2 2 x x = x1 + x2 + ... + xn = x 2

Esempio 1 Sono dati i vettori x = ( 2 ,3,4,2 ) y = (5,4,2,6 ) Somma Differenza Prodotto per uno scalare

x + y = (3,1,6,8) x y = ( 7 ,7 ,2 ,4) 3x = ( 6,9,12,6)

Lunghezza di x Prodotto scalare Combinazione lineare di x e y di coefficienti c = 2 e d = 3

x = 4 + 9 + 16 + 4 = 33 x y = 10 12 + 8 + 12 = 2
cx + dy = (11,6 ,14 ,22 )

Universit di Torino

Capitolo 2 Algebra lineare numerica

37

Siano x, y, z vettori a n dimensioni e a,b scalari; per la somma di vettori e la moltiplicazione per uno scalare valgono le seguenti propriet. Propriet (Algebra dei vettori) 1. Propriet commutativa 2. Esistenza vettore nullo 0 3. Esistenza vettore opposto x 4. Propriet associativa 5. Propriet distributiva rispetto agli scalari 6. Propriet distributiva rispetto ai vettori 7. Propriet associativa rispetto agli scalari

x+y =y+x 0+x = x+0 x x = x + ( x ) = 0 (x + y ) + z = x + (y + z ) (a + b )x = ax + bx a(x + y ) = ax + ay a(bx ) = (ab )x

Definizione Si dice che m vettori v1 , v 2 ,...., v m sono linearmente indipendenti se lequazione c1 v 1 + c2 v 2 + ... + cm v m = 0 implica c1 = 0, c2 = 0 , ..., cm = 0 , ossia se lunica combinazione lineare che d il vettore nullo quella a coefficienti nulli. Se i vettori non sono linearmente indipendenti, si dicono linearmente dipendenti.
In altre parole i vettori sono linearmente dipendenti se esiste un insieme di numeri c1 , c 2 , ..., c m non tutti nulli, tali che c1 v 1 + c2 v 2 + ... + c m v m = 0

Propriet I vettori v1 , v 2 ,...., v m sono linearmente indipendenti se e solo se almeno uno di essi combinazione lineare degli altri.

2.3

Operazioni fra matrici

Definizione Una matrice una tabella di numeri, reali o complessi, ordinatamente disposti in righe e colonne. Una matrice con m righe e n colonne detta matrice m n.
La matrice A si pu indicare in una delle forme seguenti, dove aij indica lelemento della matrice posto all'incrocio tra la i-esima riga e la j-esima colonna i=1,2,...,m j=1,2,...,n A = aij

( ) A = (aij ) m n
a11 a A = 21 ... a m1

a12 a 22 ... am2

a1n ... a 2 n ... ... ... a mn ...

Ogni riga (colonna) pu essere vista come un vettore; la matrice A quindi linsieme di m vettori riga o anche di n vettori colonna.

Dipartimento di Matematica

38

M. Garetto Metodi Numerici

Esempio 2 La matrice di dimensioni 3 4 2 4 3 2 A = 1 5 2 4 3 1 6 5 formata dai tre vettori riga r1 = (2 4 3 2) r2 = (1 5 2 4) o anche dai quattro vettori colonna 4 3 2 c1 = 1 c2 = 5 c3 = 2 1 6 3 La matrice A pu essere rappresentata con questi vettori r1 A = r2 A = (c1 ,c 2 ,c3 ,c 4 ) r 3

r3 = (3 1 6 5)
2 c4 = 4 5

Si possono identificare due tipi di matrici 1 la matrice quadrata di dimensione n n (detta anche di ordine n), quando m = n; 2 la matrice rettangolare di dimensione m n, quando m n. I vettori possono essere visti come particolari matrici: un vettore colonna una matrice rettangolare n 1; un vettore riga una matrice rettangolare 1 n. Siano date le matrici A = aij m n e gli scalari c, p, q.

( )

B = bij

( )m n

Definizioni 1. Matrici uguali A = B aij = bij 2. Somma di matrici A + B = aij + bij

per i = 1,2,...,m,

j = 1,2,...,n j = 1,2,...,n

)m n

per i = 1,2,...,m,

3. 4. 5. 6. 7.

Matrice opposta A = aij

)m n
)

per i = 1,2,...,m,

j = 1,2,...,n

Differenza di matrici A B = aij bij per i = 1,2,...,m, j = 1,2,...,n m n Moltiplicazione per uno scalare c cA = caij per i = 1,2,...,m, j = 1,2,...,n

( )m n
(

Combinazione lineare delle matrici A e B pA + qB = paij + pbij per i = 1,2,...,m,

)m n

j = 1,2,...,n

Matrice nulla: una matrice i cui elementi sono tutti nulli 0 = (0)m n

Se le matrici A e B non hanno le stesse dimensioni, non possono essere n sommate n sottratte, n si pu fare la loro combinazione lineare.

Universit di Torino

Capitolo 2 Algebra lineare numerica

39

Esempio 3

1 2 3 A= 7 5 4 3 5 12 A+B= 8 1 3 10 15 5 5A = 35 25 20

2 3 9 B= 1 4 7 1 1 6 AB= 6 9 11

4 5 21 2A3B = 11 22 29

Siano A, B, C matrici di dimensioni m n, e p,q scalari


Propriet della somma di matrici 1. Propriet commutativa 2. Esistenza matrice nulla 3. Esistenza matrice opposta 4. Propriet associativa 5. Propriet distributiva per gli scalari 6. Propriet distributiva per le matrici 7. Propriet associativa per gli scalari

B+A=A+B 0+A=A+0=A A A = A + (A) = 0 (A + B) +C = A + (B + C) (p + q)A = pA + qA p(A + B) = pA + pB p(qA) = (pq)A

Definizione Prodotto di matrici Siano date le matrici A = aij B = bij m n n p aventi la propriet che le colonne di A sono tante quante le righe di B. La matrice prodotto C = AB una matrice di dimensioni m p tale che C = AB = cij

( )

( )

( )m p

cij = ai1b1 j + ai 2b2 j + ... + ainbnj =

k =1

aik bkj

per i = 1,2,,m j = 1,2,,p

Lelemento cij il prodotto scalare dell' i-esimo vettore riga di A per il j-esimo vettore colonna di B. Poich i vettori sono casi particolari di matrici, il prodotto di un vettore riga per un vettore colonna uguale a un numero e il prodotto di un vettore colonna per un vettore riga una matrice (nei casi in cui le dimensioni sono tali per cui i prodotti si possono fare). Siano A, B, C matrici tali che le somme e i prodotti sotto indicati abbiano senso; sia p uno scalare e I la matrice identit di ordine n; I la matrice quadrata definita nel seguente modo i= j 1 con ij = I = ij n n i j 0

( )

1 0 0 I= ... 0 0

0 0 1 ... ... ... ... ...

0 1 0

... ... 0 0 ... 0 0 ... 0 ... ... 0 1 0 0 0 1

Dipartimento di Matematica

40

M. Garetto Metodi Numerici

Propriet del prodotto di matrici 1. Propriet associativa 2. Matrice identit 3. Propriet distributiva a sinistra 4. Propriet distributiva a destra 5. Propriet associativa rispetto allo scalare
Esempio 4 Prodotto di vettori e prodotto di matrici 4 v = (1,2,3) w = 5 6

A(BC) = (AB)C IA = AI = A A(B +C)=AB + AC (A + B)C = AC + BC p(AB) = (pA)B = A(pB)

vw = 4 + 10 + 18 = 32

2 4 0 A= 1 2 3 2 8 AB = 13 3

4 8 12 wv = 5 10 15 6 12 18 1 2 B= 0 1 4 1

4 0 6 BA = 1 2 3 9 14 3 Si osservi che AB BA; AB e BA non hanno neppure le stesse dimensioni; il prodotto di due matrici esiste solo se il numero delle colonne di A uguale al numero delle righe di B: pu quindi verificarsi non solo AB BA, come nel caso appena esaminato, ma anche che uno dei due prodotti esista e laltro no, come nel caso seguente 5 2 1 2 3 B= A= 3 8 6 1 4 19 20 16 5 2 1 2 3 AB = BA = non esiste 7 34 25 3 8 6 1 4 Quindi in generale il prodotto di matrici non commutativo. Se le matrici sono quadrate i due prodotti AB e BA esistono sempre entrambi, ma non detto che siano uguali, ossia che il prodotto sia commutativo. Se AB = BA le matrici sono dette commutative.
Esempio 5 Matrici quadrate non commutative 1 2 3 A = 2 5 1 6 3 4 21 11 12 AB = 29 1 15 20 29 12

3 1 2 B = 4 1 2 5 2 3 8 7 14 BA = 14 19 21 19 29 29

AB BA

Matrici quadrate commutative 1 2 A= 2 1

2 1 B= 1 2

4 5 AB = BA = 5 4
Universit di Torino

Capitolo 2 Algebra lineare numerica

41

Le seguenti propriet, valide per i numeri reali, non valgono per le matrici.

Propriet 1. Annullamento del prodotto 2. Legge di cancellazione


Esempio 6

AB = 0 non implica A = 0 o B = 0 AX = AY con A 0 non implica X = Y

1 1 A= 1 1 1 1 A= 1 1 3 2 AX = 3 2 AY =

1 B= 1 1 X= 2 3 2 3 2

1 1 1 3 A 0

0 0 AB = 0 0 2 1 Y= 1 1 ma X Y.

2.4

Matrice trasposta

Definizione Data una matrice A di dimensione m n , la matrice di ordine n m che si ottiene scambiando le T righe di A con le colonne si dice matrice trasposta e si indica con il simbolo A T A = aij A = b ji

( )m n

( )n m

b ji = aij

1 i m

1 j n

Definizione T Una matrice quadrata A di dimensione n n si dice simmetrica se A = A. Propriet (Si suppone che le operazioni abbiano senso) T T 1. Trasposta della trasposta (A ) = A T T 2. Prodotto per uno scalare (kA ) = k(A ) kR T T T 3. Trasposta della somma (A+B) = A + B T T T 4. Trasposta del prodotto (AB) = B A T 5. La matrice C = A A una matrice simmetrica.
Esempio 7

4 2 A = 5 8 6 4 9 2 A = 3 5 7 8 1 6

9 3 7 1 0
T

4 2 5 8 6 T A = 9 3 7 1 0 4 3 8 A = 9 5 1 2 7 6 2 1 3 B = 6 4 2 3 5 7 2 6 3 5 B = 1 4 3 2 7
T

Dipartimento di Matematica

42

M. Garetto Metodi Numerici

6 9 5 T T (A + B) = 10 9 6 A +B 5 5 13 4 9 2 4 3 T C = A A = 3 5 7 9 5 8 1 6 2 7
T

4 3 8 2 6 3 6 9 5 = 9 5 1 + 1 4 5 = 10 9 6 2 7 6 3 2 7 5 5 13 8 101 71 53 1 = 71 83 71 6 53 71 101

2.5

Determinante

Il determinante di una matrice quadrata A di ordine n un numero reale associato alla matrice A e indicato con det(A) a1n a11 a12 a1n a11 a12 a 22 a2n a a 22 a2n a det(A) = 21 A = 21 .. .. .. .. a a nn a n1 a n 2 ann n1 a n 2

Definizioni 1 Se A = (a11 ) una matrice 1 1, allora det(A) = a11 . 2 Se A una matrice quadrata n n, il minore M ij il determinante della sottomatrice di A di
ordine (n 1) (n 1) ottenuta eliminando la riga i-esima e la colonna j-esima della matrice A. 3 Il determinante della matrice quadrata A di ordine n n con n > 1, dato da det(A) =

( 1)i + j aij M ij
j =1
n

per qualunque i = 1,2 ,..., n

oppure da det(A) =

( 1)i + j aij M ij
i =1

per qualunque j = 1,2 ,..., n

La riga o la colonna secondo cui sviluppare il calcolo del determinante possono essere scelte liberamente; questa flessibilit di scelta suggerisce che il modo pi conveniente per calcolare il determinante sviluppare secondo la riga (o la colonna) che contiene pi zeri. Si pu dimostrare che il calcolo del determinante di una matrice A di ordine n con questa definizione richiede un numero di operazioni (moltiplicazioni/divisioni e addizioni/sottrazioni) che O(n!); anche per piccoli valori di n il numero di operazioni diventa rapidamente troppo elevato per poter utilizzare tale definizione. Ad esempio per il calcolo del determinante di una matrice di ordine 10 occorre effettuare un numero di operazioni dellordine di 10!=3.628.800, il che impraticabile! Uno dei tanti scopi dellalgebra lineare numerica sviluppare un algoritmo efficiente per calcolare il determinante. Riassumiamo i casi particolari degli ordini n =1,2,3, per i quali il calcolo molto semplice.

Ordine 1 Matrice 1 1 Ordine 2


Matrice 2 2

A = (a11 )
a11 a12 A= a 21 a22

det(A) = a11

det(A) = a11 a22 a12 a21

Universit di Torino

Capitolo 2 Algebra lineare numerica

43

Ordine 3
a11 a12 a13 Matrice 3 3 A = a21 a22 a23 a 31 a32 a33 Per il calcolo del determinante di ordine 3 si pu usare una regola mnemonica valida solo per questo ordine (Regola di Sarrus); si aggiungono a destra due colonne uguali alle prime due colonne del determinante e si calcolano i prodotti degli elementi delle diagonali a11 a12 a13 a11 a12 a21 a22 a31 a32 a23 a21 a22 a33 a31 a32

det A = a11 a 22 a33 + a12 a 23 a31 + a13 a 21 a32


a13 a 22 a31 a11 a 23 a32 a12 a 21 a33
Esempio 8

4 9 A= det(A) = 4 3 9 1 = 3 1 3 2 3 8 2 3 3 8 2 4 5 1 4 5 B = 4 5 1 7 6 9 7 6 9 7 6 det(B) = 90 21 + 192 280 12 + 108 = 77

Propriet 1. Se la matrice B ottenuta da A scambiando k righe o colonne allora k det(B) = (1) det(A). 2. Se la matrice B ottenuta da A moltiplicando tutti gli elementi di una riga (colonna) per uno scalare k, allora det(B) = k det(A). 3. Se ad una riga (colonna) di A si sostituisce la sua combinazione lineare con altre righe (colonne) il determinante non cambia. 4. Se due o pi righe (colonne) di A sono linearmente dipendenti, allora det(A) = 0. In particolare il determinante di A nullo se A ha due righe (colonne) uguali, o se A ha una riga (colonna) di zeri. 5. Se A una matrice quadrata di dimensione n n, allora det(A) = det(AT). 6. Regola di Binet: se A e B sono matrici quadrate di dimensione n n, allora det(AB) = det(A)det(B).

2.6

Matrice inversa

Definizione Una matrice quadrata A di ordine n si dice non singolare o invertibile, se esiste una matrice A1 di ordine n tale che AA1 = A1A = I 1 La matrice A si dice matrice inversa di A. Se la matrice inversa A1 non esiste, la matrice A si dice singolare.

Dipartimento di Matematica

44

M. Garetto Metodi Numerici

Esempio 9

2 5 A= 1 3 2 5 AA1 = 1 3

3 5 A1 = 1 2 3 5 3 5 2 5 1 0 1 1 2 =A A= 1 2 = =I 1 3 0 1

Propriet 1. La matrice inversa, se esiste, unica. 2. Una matrice quadrata A invertibile se e solo se det(A) 0. 3. Se la matrice quadrata A invertibile, allora 1 det(A1)= . det (A ) 4. Inversa di un prodotto. Siano A e B due matrici quadrate di dimensione n n, con inverse A1 e B1 ; il prodotto AB invertibile e (AB) 1 = B1 A1 5. Inversa di una matrice 2 2. Condizione necessaria e sufficiente affinch la matrice a b A= c d

possieda inversa che sia det(A) = ad bc 0; in tal caso si ha d b 1 1 A = ad bc c a


Esempio 10

3 1 A= 7 4
1

det(A) = ad bc = 5 0 1 5 3 5

4 1 4 1 5 A = = 7 5 7 3 5
Esempio 11

1 1 Data la matrice A = 1 2 , determinare la matrice B tale che AB = I. La matrice B linversa A1 2 1 det(A) = ad bc = 1 0 A1 = 1 1


Esempio 12

k 4 1 , determinare i valori del parametro reale k in modo che A sia Data la matrice A = 2 k 1 singolare. Si impone che sia det(A) = (k 4)(k 1) + 2 = 0

k 2 5k + 6 = 0

k = 2, k = 3

Universit di Torino

Capitolo 2 Algebra lineare numerica

45

2.7

Norme di vettori e matrici

Definizione La norma di un vettore x un numero reale, indicato con x , che soddisfa le seguenti propriet 1. 2. 3. 4. x >0 x =0

per ogni x 0 se e se solo se x = 0 per ogni c R

cx = c x
x+y x + y

Si possono definire alcune norme fondamentali per i vettori. Sia dato il vettore x = (x1 , x2 ,..., xn )
Norma infinito Norma uno x = max xi 1 i n
x1=

xi
i =1

Norma euclidea (lunghezza del vettore)

x2=

xi2
i =1

Definizione La norma di una matrice quadrata A di ordine n un numero reale, indicato con ||A||, che soddisfa le seguenti propriet: 1. A >0 per ogni A 0 2. 3. 4. 5.

A =0
cA = c A

se e solo se A = 0 per ogni c R

In particolare A = A A+B A + B AB A B

Si possono definire alcune norme fondamentali per le matrici. Sia A = aij una matrice n n quadrata di ordine n.
Norma infinito

( )

A = max aij 1 i n j =1
A 1 = max
1 j n

Norma uno

aij
i =1

Norma di Frobenius Norma spettrale1

AF=

2 aij i =1 j =1

A 2 = AT A

Lo spettro di una matrice A linsieme di tutti gli autovalori di A; il raggio spettrale (A) definito come il massimo modulo degli autovalori di A (vedere anche 2.24, pag. 119).

Dipartimento di Matematica

46

M. Garetto Metodi Numerici

Se A una matrice simmetrica risulta A1= A


A 2 = (A )

Esempio 13 Siano dati il vettore x e le matrici A e B; calcolare le norme di x, A e B. x = (2,5,6) 1 2 3 1 2 3 A = 4 5 6 B = 4 5 6 7 8 9 7 8 9

x =6 x 1 = 2 + 5 + 6 = 13 x 2 = 4 + 25 + 36 = 65 A = max(1 + 2 + 3,4 + 5 + 6 ,7 + 8 + 9 ) = max(6 ,15,24 ) = 24 A 1 = max(1 + 4 + 7 ,2 + 5 + 8,3 + 6 + 9) = max(12 ,15,18) = 18 A F = 1 + 4 + 9 + 16 + 25 + 36 + 49 + 64 + 81 = 285 16.88 B = max(1 + 2 + 3,4 + 5 + 6 ,7 + 8 + 9 ) = 24 B 1 = max(1 + 4 + 7 ,2 + 5 + 8,3 + 6 + 9) = 18 B F = 1 + 4 + 9 + 16 + 25 + 36 + 49 + 64 + 81 = 285 16.88 Matrice simmetrica 1 4 6 C = 4 2 4 6 4 3 ( C = max 1 + 4 + 6,4 + 2 + 4 ,6 + 4 + 3) = 13 C 1 = max(1 + 4 + 6,4 + 2 + 4,6 + 4 + 3) = 13

2.8

Classificazioni delle matrici

E importante fare una classificazione delle matrici in base a propriet macroscopiche delle matrici stesse, ossia propriet che possono essere determinate in base allosservazione delle matrici. Una prima distinzione fra matrici piene e sparse. Una seconda distinzione fra matrici strutturate e non strutturate. Definizioni Una matrice si dice piena se per la maggior parte gli elementi sono diversi da zero. Una matrice si dice sparsa se per la maggior parte gli elementi sono nulli. Una matrice si dice strutturata se esiste una regola per costruire il valore numerico degli elementi e il posto da essi occupato. Le matrici sparse non strutturate hanno gli elementi nulli disposti senza una regola. Una matrice quadrata di ordine n non strutturata viene considerata sparsa quando il numero di elementi non nulli non superiore a n

Universit di Torino

Capitolo 2 Algebra lineare numerica

47

Esempio 14 La matrice, detta di Toeplitz, costruita a partire dai vettori c = (3,6,8,2,3) r = (3,8,5,1,4) 3 8 5 1 4 6 3 8 5 1 A = 8 6 3 8 5 2 8 6 3 8 3 2 8 6 3 una matrice in cui sono uguali gli elementi di ogni diagonale; c la prima colonna, r la prima riga: si tratta di una matrice piena strutturata. Esempio 15 La matrice di Hilbert 1 1 2 1 1 2 3 H= 1 1 4 3 ... 1 1 n n +1

1 3 1 4 1 5 ... 1 n+2

1 n 1 ... n +1 1 ... n+2 ... 1 ... 2n 1 ...

una matrice piena strutturata, i cui elementi sono definiti dalla formula 1 aij = i = 1,2 ,..., n j = 1,2,..., n i + j 1

2.9

Matrici speciali

Le seguenti matrici quadrate di ordine n costituiscono importanti esempi di matrici sparse strutturate.
Matrice diagonale

0 a11 a22 D= = diag (a11 , a22 ,..., ann ) ... 0 ann Gli elementi al di fuori della diagonale principale sono tutti nulli. La regola per definire gli elementi nulli strutturati aij = 0 i j Gli eventuali elementi nulli sulla diagonale sono non strutturati.
Esempio 16

5 0 D= 0 0

0 2

0 0 = diag(5,2,7,1) 0 7 0 0 0 1 0 0

Dipartimento di Matematica

48

M. Garetto Metodi Numerici

Un importante esempio di matrice diagonale la matrice identit 1 0 0 ... ... 0 0 1 0 0 ... 0 0 0 1 0 ... 0 = diag(1,1,...1) I= ... ... ... ... 0 ... ... 0 1 0 0 ... ... 0 0 1
Matrice triangolare superiore a11 a12 ... a1n a2 n 0 a22 U= ... 0 0 a nn La regola per definire gli elementi nulli strutturati (cio gli elementi del triangolo inferiore) aij = 0 i> j

Gli eventuali elementi nulli nel triangolo superiore sono non strutturati.
Matrice triangolare inferiore 0 a11 a22 a L = 21 ... a n1 an 2

0 0 .. ann

.. ..

La regola per definire gli elementi nulli strutturati (cio gli elementi del triangolo superiore) aij = 0 i< j Anche in questo caso ci possono essere elementi nulli non strutturati nel triangolo inferiore.
Propriet Se A una matrice triangolare superiore o inferiore di ordine n allora det(A) = a11 a 22 .... a nn In particolare per la matrice identit I si ha det(I) = 1.

Su questa propriet sar basato il metodo per il calcolo del determinante di una matrice quadrata A qualsiasi: tale calcolo viene reso semplice se si trasforma prima la matrice quadrata A in una matrice di forma triangolare avente lo stesso determinante.
Esempio 17 Matrice triangolare superiore (lelemento a 45 = 0 un elemento nullo non strutturato)

2 0 U = 0 0 0

4 6 0 0 0

2 1 9 1 3 1 2 1 0 3 0 0 0 2 3

det(U) = 72

Matrice triangolare inferiore (lelemento a31 = 0 un elemento nullo non strutturato)

Universit di Torino

Capitolo 2 Algebra lineare numerica

49

5 3 L = 0 5 3

0 0 1 5 0 0 2 3 2 0 6 4 3 2 0 0 1 0 0 0

det(L) = 100

Matrice tridiagonale 0 a11 a12 a23 0 a21 a22 ... ... T = ... an 1,n 2 an 1,n 1 an 1,n 0 an ,n 1 ann 0 La regola per definire gli elementi nulli strutturati, cio gli elementi dei due triangoli inferiore e superiore, aij = 0 i j >1

Eventuali elementi nulli sulle tre diagonali sono non strutturati.


Esempio 18 Matrice tridiagonale

5 3 T = 0 0 0

4 7 1 0 0

0 6 2 2 0

0 0 4 5 3

0 0 0 . 9 6

2.10

Soluzione di sistemi lineari: definizioni e propriet

Unequazione nelle incognite x1 , x2 ,..., xn si dice lineare quando si pu ridurre alla forma a1 x1 + a 2 x2 + ... + an x n = b dove a k , k = 1,2,..,n, e b sono numeri reali assegnati. I numeri a k , k = 1,2,..,n, si chiamano coefficienti delle incognite, b si dice termine noto. Se sono assegnate m equazioni lineari nelle stesse n incognite, si ottiene un sistema lineare di m equazioni in n incognite a11 x1 + a12 x 2 + ... + a1n x n = b1 a 21 x1 + a 22 x2 + ... + a 2n xn = b2 (2.1) ....................... a m1 x1 + a m 2 x 2 + ... + a mn xn = bm Soluzione del sistema lineare un insieme di valori numerici che, assegnati alle incognite, rendono soddisfatte contemporaneamente tutte le equazioni del sistema. Una soluzione rappresentabile con un vettore x di n elementi x = (x1 , x2 ,..., xn )T Un sistema lineare rappresentabile mediante matrici e vettori. Ogni equazione del sistema un prodotto di due vettori (ai1 ,ai 2 ,...,ain ) (x1 , x2 ,..., xn )T = bi i = 1,2 ,..., m

Dipartimento di Matematica

50

M. Garetto Metodi Numerici

Si possono collocare i coefficienti aij ,i = 1,..., m , j = 1,..., n in una matrice A di dimensione m n, le incognite xi e le costanti bi in due vettori colonna x e b di m elementi. Il sistema si scrive cos nella forma di equazione matriciale Ax = b ossia per esteso a11 a12 ... a1n x1 b1 a21 a22 ... a2n x2 b2 ... ... = ... ... a m1 am 2 ... amn xn bn Un sistema si dice omogeneo quando b = 0.
Esempio 19 Scrivere il sistema x1 + x2 + 2 x3 = 9 2 x1 + 4 x2 3x3 = 1 3x + 6 x 5 x = 0 2 3 1

in forma matriciale e verificare che la sua soluzione x = (1,2 ,3)T . Forma matriciale 1 1 2 x1 9 2 4 3 x2 = 1 3 6 5 x 0 3 Verifica 1 1 2 1 1 + 2 + 6 9 2 4 3 2 = 2 + 8 9 = 1 3 6 5 3 3 + 12 15 0 Riassumiamo alcune definizioni e risultati importanti riguardanti i sistemi lineari.
Definizioni Una matrice che si ottenga da A sopprimendo un certo numero di righe e/o colonne, si dice matrice estratta da A; se tale matrice quadrata di ordine r, il suo determinante si dice minore di ordine r. Si dice poi minore principale se la matrice A quadrata, e la matrice estratta ha la sua diagonale principale sulla diagonale principale di A. Il rango, o caratteristica, di una matrice l'ordine massimo dei minori non nulli in essa contenuti.

Il rango di una matrice r se 1 almeno un minore di ordine r diverso da zero; 2 tutti i minori di ordine r +1 sono nulli. Una matrice non nulla ha almeno rango r = 1; data una matrice di dimensione m n, il rango non pu superare il pi piccolo fra i numeri m e n. Sia (A, b ) la matrice ottenuta aggiungendo alla matrice A dei coefficienti una ulteriore colonna costituita dal vettore b dei termini noti; la matrice (A, b ) si dice matrice completa

Universit di Torino

Capitolo 2 Algebra lineare numerica

51

... a1n ... a 2n ... a m 2 ... a mn a11 a12 .. a1n a 21 a 22 .. a 2n (A, b ) = .. .. .. .. a n1 a n 2 .. a nn Si dimostra il seguente teorema a11 a A = 21 ... a m1 a12 a 22

b1 b b = 2 ... b n b1 b2 .. bn

Teorema di Rouch-Capelli Condizione necessaria e sufficiente affinch il sistema lineare Ax = b ammetta soluzioni (una o infinite) che la matrice dei coefficienti A e la matrice completa (A, b ) abbiano lo stesso rango r. La soluzione unica se il rango r uguale al numero di incognite n; se invece r < n, allora il sistema possiede n r soluzioni. E ovvio che se la matrice dei coefficienti e la matrice completa non hanno lo stesso rango, il sistema non ha soluzioni.
Esempio 20 Sistema con infinite soluzioni 3 x1 x 2 + x3 = 1 x 2 + x3 = 0

Le matrici

3 1 1 1 3 1 1 (A, b ) = A= 0 1 1 0 1 1 1 hanno entrambe rango 2, mentre il numero di incognite 3; per il teorema di Rouch-Capelli il sistema ha 3 2 = 1 soluzioni. Per determinare le soluzioni, si attribuisce a x1 un valore arbitrario a e si ricavano le altre due incognite, che dipendono da a 3a 1 x1 = a x 2 = x3 = 2
Esempio 21 Sistema con infinite soluzioni x1 + x 2 = 2 2 x1 + 2 x2 = 4

La matrice dei coefficienti 1 1 A= 2 2 ha determinante 1 1 det(A) = =0 2 2 perci il rango di A 1.

Dipartimento di Matematica

52

M. Garetto Metodi Numerici

Anche la matrice completa 1 1 2 (A, b ) = 2 2 4 ha rango 1; ci sono dunque 2 1 = 1 soluzioni x1 = a x2 = 2 a


Esempio 22 Sistema impossibile (nessuna soluzione) x1 x 2 = 3 2 x1 2 x2 = 5 La matrice dei coefficienti ha rango 1 e la matrice completa ha rango 2: non ci sono soluzioni.

Particolarmente interessante, soprattutto dal punto di vista dellanalisi numerica, il caso m = n, ossia il caso di un sistema di n equazioni in n incognite. Vale il seguente risultato

Teorema Sia A una matrice n n. I seguenti enunciati sono equivalenti 1. Il sistema lineare Ax = b possiede una e una sola soluzione per qualunque vettore b 0. 2. L'unica soluzione del sistema omogeneo Ax = 0 x = 0. 3. La matrice A non singolare, ossia esiste la matrice inversa A1. 4. det(A) 0. 5. Il rango di A n. 6. Le colonne e le righe di A sono linearmente indipendenti.
Dato il sistema lineare Ax = b (2.2) se risulta det(A)0 il sistema possiede una e una sola soluzione; tale soluzione pu essere determinata con il metodo della matrice inversa. Infatti, se det(A)0, allora esiste la matrice inversa A1; moltiplicando i due membri delluguaglianza (2.2) a sinistra per A1 si ottiene A 1Ax = A 1b ossia, essendo A 1A = I , e Ix = x x = A 1b La formula (2.3) fornisce lunica soluzione del sistema (2.2).
Esempio 23 Soluzione del sistema 3 x1 + x2 = 2 7 x1 + 4 x2 = 5

(2.3)

3 1 A= 7 4

2 b= 5 1 4 1 5 5 1 1 4 A = = 7 3 5 7 3 5 5

det(A) = 5

Universit di Torino

Capitolo 2 Algebra lineare numerica

53

4 x= 5 7 5

1 3 2 5 = 5 . 3 5 1 5 5

Questo metodo per risolvere un sistema lineare non consigliabile, perch non efficiente dal punto di vista computazionale, dato che richiede il calcolo della matrice inversa. Un altro metodo per risolvere un sistema lineare, nel caso in cui sia det(A) 0, il metodo di Cramer.

Regola di Cramer Se det(A) 0, il sistema Ax = b ammette una e una sola soluzione data da
det (A i ) , i = 1,2,..., n det (A ) dove A i la matrice che si ottiene da A sostituendo la colonna i-esima con la colonna dei termini noti b.

x = (x1 , x2 ,..., xn )T
xi =

Esempio 24 Risolvere con il metodo di Cramer il sistema 3x1 + x2 = 2 7 x1 + 4 x2 = 5 3 1 2 1 det(A) = =5 =3 det(A1) = 7 4 5 4

det(A2)=

3 2 7 5

=1

3 1 x1 = , x 2 = 5 5

3 1 x= , 5 5

Per trovare la soluzione di un sistema di n equazioni in n incognite si devono calcolare n +1 determinanti di ordine n; ciascun determinante di ordine n richiede a sua volta il calcolo di n determinanti di ordine n 1, e cos via. Per calcolare il valore di un determinante di ordine n si deve effettuare un numero di moltiplicazioni dellordine di n!. Per questo motivo il metodo di Cramer si utilizza solo per sistemi lineari con un numero di equazioni n 3. Studieremo pertanto algoritmi pi efficienti dal punto di vista computazionale.

2.11

Metodi numerici per la soluzione di sistemi lineari

I metodi numerici per la soluzione di sistemi lineari vengono suddivisi in due classi: metodi diretti e metodi iterativi. Con i metodi diretti, in assenza di errori di arrotondamento, in un numero finito di passi viene costruita la soluzione esatta. Questi metodi sono sostanzialmente basati sul metodo di eliminazione di Gauss. I metodi diretti sono generalmente i pi efficienti per sistemi con matrici dei coefficienti piene. Ai sistemi con matrici sparse e di ordine elevato si applicano pi vantaggiosamente i metodi iterativi, che generano una successione infinita di vettori, convergente, sotto opportune condizioni, alla soluzione cercata. I metodi iterativi, a differenza di quelli diretti, non modificano la matrice A dei coefficienti.

Dipartimento di Matematica

54

M. Garetto Metodi Numerici

2.12

Sorgenti di errore

Ci sono tre sorgenti di errore nella soluzione di sistemi lineari. La prima dovuta a errori nei coefficienti di A e/o nei termini noti di b; quando tali quantit sono sperimentali, questi errori non sono eliminabili. Se nota una limitazione sugli errori sperimentali, essa pu essere utilizzata per ottenere una limitazione sugli errori nella soluzione del sistema. Quando invece i coefficienti di A e il vettore b sono noti esattamente, ma devono essere arrotondati, ossia l'errore dovuto alla rappresentazione di macchina, possiamo usare un'aritmetica con precisione pi elevata per controllare questo tipo di errore. La seconda sorgente di errore lerrore di arrotondamento introdotto nel calcolo della soluzione, dovuto allaritmetica finita. Questi due tipi di errori si chiamano errori di round-off o di arrotondamento. La terza sorgente di errore lerrore di troncamento. Nei metodi diretti che, in assenza di errori di arrotondamento, in un numero finito di passi conducono alla soluzione esatta, non c' errore di troncamento. I metodi iterativi invece, se convergenti, convergono solo quando il numero di iterazioni tende ad infinito, quindi sono soggetti ad errori di troncamento.

2.13

Condizionamento di un sistema lineare

Un sistema lineare Ax = b detto mal condizionato se una piccola perturbazione nei coefficienti di A o nei termini noti b produce dei grossi errori nella soluzione x del sistema; si dimostra che il mal condizionamento del sistema dipende solo dalla matrice A. Quando un sistema mal condizionato, i metodi numerici per calcolare una soluzione approssimata del sistema danno luogo a grossi errori. Nel caso dei sistemi di due equazioni in due incognite il mal condizionamento si verifica quando le equazioni del sistema sono rappresentate da due rette quasi parallele (vedere 1.10); le conseguenze del mal condizionamento di un sistema sono tanto pi gravi quanto pi il numero di equazioni elevato. Esaminiamo il problema di stimare l'accuratezza della soluzione calcolata per un sistema lineare. Se det(A) = 0, il sistema Ax = b o non ha soluzioni o ne ha infinite (teorema di Rouch-Capelli): si potrebbe perci credere che il determinante della matrice A possa essere una misura del suo condizionamento. Poich il determinante di una matrice singolare nullo, sembra plausibile che, se il determinante piccolo (A quasi singolare), A sia mal condizionata. Viceversa, se il determinante grande, la matrice dovrebbe essere ben condizionata. Il seguente esempio mostra come il determinante sia completamente inutile per stabilire il condizionamento di una matrice.
Esempio 25 Si consideri la matrice triangolare superiore 1 1 1 ... 1 0 1 1 ... 1 A = 0 0 1 ... 1 ... ... ... 0 0 0 ... 1 Il determinante si calcola moltiplicando gli elementi della diagonale principale det(A) = 1

Universit di Torino

Capitolo 2 Algebra lineare numerica

55

ma si pu dimostrare che la matrice mal condizionata2. Si consideri ora la matrice diagonale 10 2 0 0 2 0 10 0 D= 0 0 10 2 ... ... 0 0 0 Per questa matrice si ha det(D) = 10 2 n ma la matrice ben condizionata3. 0 ... 0 ... 0 ... ... 10 2 ...

Quando det(A) 0 il sistema possiede soluzione unica, ma in certe condizioni si possono avere grossi errori sul risultato. Sia dato il sistema Ax = b con det(A) 0 e sia xE la soluzione esatta e xC una soluzione calcolata, che approssima la soluzione esatta. Indichiamo con r = b AxC il vettore residuo. Se xC xE allora il residuo r "piccolo" (nel senso della norma); infatti r = b AxC = AxE AxC = A(xE xC) . Si potrebbe perci pensare che il residuo fornisca uno strumento per valutare laccuratezza della soluzione, ossia che residuo r "piccolo" xC xE Questo vero se il problema ben condizionato, ma non vero quando mal condizionato, come mostra il seguente esempio.
Esempio 26 Consideriamo i due sistemi seguenti x1 + 2 x2 = 1 1. x1 + 2.005 x 2 = 1 2 1 A= 1 2.005 Soluzione (in aritmetica esatta)

(2.4) det(A) = 0.005

x = (801,400 )T

2.

x1 + 2 x2 = 1 x1 + 1.995 x2 = 1

(2.5)

Questo sistema ottenuto dal precedente modificando di poco il coefficiente di x2 nella seconda equazione.
2

Si veda pi avanti la definizione di numero di condizionamento: per questa matrice il numero di

condizionamento k(A)= n2 n1 ; al crescere di n questo numero diventa grande, e la matrice mal condizionata. 3 Per questa matrice il numero di condizionamento k(A) = 1.

Dipartimento di Matematica

56

M. Garetto Metodi Numerici

2 1 A= det(A) = 0.005 1 1.995 Soluzione (in aritmetica esatta) x = ( 799,400)T Consideriamo il sistema (2.4) e assumiamo come soluzione calcolata di tale sistema la soluzione esatta del sistema (2.5)

xE = (801,400 )T xC = ( 799,400 )T Calcoliamo il residuo r 2 799 1 1 0 1 1 r = b A xC = 1 1 2.005 = = 400 1 3 4 r = (0 ,4 )T r


2

=4

xE xC = (1600 ,800 )T Questo significa che il sistema mal condizionato, ossia un piccolo errore su un solo coefficiente della matrice A (lerrore su x2 nella seconda equazione del sistema) ha provocato un grosso errore sul risultato: una variazione relativa dello 0.5% in un coefficiente ha portato ad una variazione relativa del 200% del risultato. In conclusione anche il residuo inutile per stabilire il condizionamento di un sistema. Introduciamo ora la definizione di numero di condizionamento, un numero che misura quantitativamente il condizionamento di un sistema lineare. Sia dato il sistema lineare Ax = b e sia x soluzione esatta. Se ci sono perturbazioni in A e/o in b, la soluzione calcolata sar xC = x + x. Posto
errore assoluto = x errore relativo = x =
x

Il residuo piccolo, ma la soluzione esatta e la soluzione calcolata sono molto diverse

consideriamo dapprima il caso in cui il vettore b abbia subito una perturbazione b e studiamo leffetto di tale perturbazione sulla soluzione del sistema. Si dimostra che x A 1 A b Questa disuguaglianza mette in relazione la perturbazione relativa x sulla soluzione con la b sui termini noti. perturbazione relativa b = b Indichiamo ora con A una perturbazione nella matrice A. Si dimostra che x A 1 A A Questa disuguaglianza mette in relazione la perturbazione relativa x sulla soluzione con la A sulla matrice A . perturbazione relativa A = A Le due maggiorazioni trovate per x contengono entrambe il fattore A 1 A e suggeriscono

che se questo fattore grande, allora piccole perturbazioni nei dati A e/o b passono provocare grosse perturbazioni nella soluzione del sistema, ossia il sistema sia mal condizionato. Per questo motivo si introduce la seguente

Definizione Si definisce numero di condizionamento della matrice A il numero

k(A) = A 1 A

(2.6)

Universit di Torino

Capitolo 2 Algebra lineare numerica

57

Per ogni matrice A non singolare e per ogni norma di matrice (norma uno, norma infinito, norma 2) risulta k(A) 1. Infatti 1= I = A A 1 A 1 A Una matrice A ben condizionata se k(A) prossimo a 1, mentre mal condizionata se significativamente pi grande di 1. Il calcolo di k(A) richiede luso di una norma di matrice, e norme diverse danno valori numerici diversi, che portano per alle stesse conclusioni: la matrice ben/mal condizionata indipendentemente dalla particolare norma usata. La matrice A di un sistema mal condizionato Ax = b ha le seguenti particolarit una piccola perturbazione negli elementi di A causa significative perturbazioni nella soluzione; il numero di condizionamento della matrice A molto maggiore di 1; il valore calcolato di det(A) det (A1) significativamente diverso da 1; il valore calcolato di A 1 significativamente diverso da A; 1 il valore calcolato di A A significativamente diverso dalla matrice identit;

( )

il valore calcolato di A 1 A 1 quanto non differisca A A1.

( )

differisce dalla matrice identit significativamente di pi di

Esempio 27 Consideriamo di nuovo il sistema dellesempio 26 x1 + 2 x2 = 1 x1 + 2.005 x 2 = 1 Usando la norma infinito si ha 2 1 det(A) = 0.005 A= 1 2.005

A 1 =

2.005 2 401 400 1 2.005 2 = = 200 1 1 1 0.005 1 200 200

= 1 + 2.005 = 3.005

A 1

k(A) = 3.005 801 3 800 = 2400 >> 1 La matrice A mal condizionata.


Esempio 28 Riprendiamo lesempio 28, Cap. 1, pag. 23 x1 + x 2 = 2 1001x1 + 1000 x2 = 2001 La soluzione esatta di questo sistema x = (1 ,1)T

= 401 + 400 = 801

Alterando il coefficiente di x1 nella prima equazione di 1 x1 + x 2 = 2 1 + 100 1001x + 1000 x = 2001 1 2

1 si ottiene il sistema 100

Dipartimento di Matematica

58

M. Garetto Metodi Numerici

la cui soluzione esatta 1 1901 x = , 9 900 Il sistema mal condizionato. Infatti 1 1 A= 1001 1000

det(A) = 1

1000 1 1000 1 A 1 = 1 1001 1 = 1001 1 Usando la norma infinito si ha


A = 1001 + 1000 = 2001 k (A) = 2001 1002 2 10 6 >> 1 La matrice A mal condizionata.
Esempio 29 Un esempio classico di sistema mal condizionato il sistema la cui matrice dei coefficienti la matrice di Hilbert 1 1 1 ... 1 2 3 n 1 1 1 1 ... 2 3 4 n +1 H= 1 1 1 1 ... 4 5 n+2 3 ... ... ... 1 1 1 1 ... 2n 1 n n +1 n + 2

A 1

= 1001 + 1 = 1002

Nella tabella seguente riportiamo alcuni suoi numeri di condizionamento calcolati con luso della norma infinito4 n k(H) 2 27 3 748 4 28375 5 9.4105 6 2.9107 7 9.9108 8 3.41010 9 1.11012 10 3.51013

2.14 Metodi diretti


I metodi diretti trasformano il sistema lineare dato in un sistema equivalente, ma pi semplice dal punto di vista computazionale. Con questo tipo di metodi viene costruita una nuova matrice dei coefficienti, che garantisce una soluzione computazionale meno costosa in termini di tempo. Questi metodi non introducono errori di troncamento, perch la trasformazione e la soluzione del sistema avvengono coinvolgendo solo un numero finito di operazioni aritmetiche e non si effettuano passaggi al limite, che richiedono troncamento. Un algoritmo basato su un metodo diretto genera un risultato che differisce dalla soluzione esatta solo per errori di arrotondamento, dovuti allesecuzione su un mezzo di calcolo a precisione finita. Esaminiamo dapprima i sistemi pi semplici.

I calcoli sono stati effettuati con Matlab. Universit di Torino

Capitolo 2 Algebra lineare numerica

59

Sistemi diagonali
Un sistema diagonale ha la forma = b1 a11 x1 = b2 a22 x2 ... ... ann xn = bn Le equazioni sono indipendenti fra loro e si possono risolvere in qualunque ordine. La soluzione b xi = i , i = 1,2 ,..., n aii
Esempio 30

= 2 2 x1 7 x2 = 14 2 x3 = 4 Soluzione del sistema x1 = 1 x2 = 2 x3 = 2


x = ( 1,2,2)T Algoritmo Soluzione di un sistema diagonale Ax = b A matrice diagonale n n b vettore colonna n 1 x vettore colonna n 1 Lalgoritmo calcola la soluzione del sistema e il determinante della matrice dei coefficienti b xi = i i = 1,..., n aii
det(A)=

aii
i=1

Input{n,A,b} determ=1 For i=1 to n do x(i)=b(i)/A(i,i) determ=determ*A(i,i) end for Output{x,determ} End

Sistemi triangolari inferiori


Il sistema Ax = b detto triangolare inferiore se aij = 0 i< j e ha la forma seguente = b1 a11x1 = b2 a21x1 + a22 x2 ................. an1x1 + an 2 x2 + ... + ann xn = bn
Dipartimento di Matematica

60

M. Garetto Metodi Numerici

La prima equazione coinvolge solo lincognita x1 , la seconda le incognite x1 e x2 , ecc.; il sistema si risolve per sostituzione: si ricava x1 dalla prima equazione, poi x2 dalla seconda e cos via; questo procedimento si chiama sostituzione in avanti (forward substitution).
Esempio 31

=4 2 x1 =5 3 x1 + 2 x 2 x + 2 x 3x = 1 2 3 1 5 3 x1 1 x1 = 2 x2 = = 2 2 1 x = 2, , 0 2
T

x3 =

x1 + 2 x 2 1 =0 3

Algoritmo Soluzione di un sistema triangolare inferiore Ax = b (Forward substitution) A matrice triangolare inferiore n n b vettore colonna n 1 x vettore colonna n 1 Lalgoritmo calcola la soluzione del sistema e il determinante della matrice dei coefficienti b x1 = 1 a11
bi xi = det(A) =

aij x j
j =1
n

i 1

aii

i=2,3,...,n

aii
i =1

Input{n,A,b} determ=A(1,1) x(1)=b(1)/A(1,1) For i=2 to n do determ=determ*A(i,i) x(i)=b(i) For j=1 to i1 do x(i)=x(i)A(i,j)*x(j) end for x(i)=x(i)/A(i,i) end for Output{x,determ} End

Sistemi triangolari superiori


Il sistema Ax = b detto triangolare superiore se aij = 0 i> j e ha la forma

Universit di Torino

Capitolo 2 Algebra lineare numerica

61

a11 x1 + a12 x2 + a13 x3 + ... + a1n x n = b1 a 22 x 2 + a 23 x3 + ... + a2 n x n = b2 ................................... a nn xn = bn Lultima equazione coinvolge solo lincognita xn , la penultima le incognite xn1 e xn , ecc.; il sistema si risolve per sostituzione: si ricava xn dallultima equazione, poi x n1 dalla penultima e cos via; questo procedimento si chiama sostituzione allindietro (backward substitution).
Esempio 32

2 x1 + 2 x2 + 4 x3 = 6 7 x 2 + 11x3 = 3 2 x3 = 2 3 11x3 x3 = 1 x2 = = 2 7 x = (3, 2,1)T


Esempio 33

x1 =

6 2 x 2 4 x3 =3 2

4 x1 x2 + 2 x3 + 3x 4 = 20 2 x 2 7 x3 + 4 x 4 = 7 6 x3 + 5 x 4 = 4 3x4 = 6 6 x4 = = 2 3 4 5 x 4 4 10 = x3 = = 1 6 6 7 + 7 x3 4 x 4 7 7 8 x2 = = = 4 2 2 20 + x 2 2 x 3 3 x 4 20 4 + 2 6 x1 = = =3 4 4

x = (3,4,1,2)T

Algoritmo Soluzione di un sistema triangolare superiore Ax = b (Backward substitution) A matrice triangolare superiore n n b vettore colonna n 1 x vettore colonna n 1 Lalgoritmo calcola la soluzione del sistema e il determinante della matrice dei coefficienti b xn = n ann
bi xi =
det(A) =
j = i+1

aij x j
aii i=n 1,n 2,...,1
n

aii
i =1

Dipartimento di Matematica

62

M. Garetto Metodi Numerici

Input{n,A,b} determ=A(n,n) x(n)=b(n)/A(n,n) For i=n1 downto 1 do determ=determ*A(i,i) x(i)=b(i) For j=i+1 to n do x(i)=x(i)A(i,j)*x(j) end for x(i)=x(i)/A(i,i) end for Output{x,determ} End

I sistemi triangolari inferiori e superiori possono sempre essere risolti con gli algoritmi precedenti, purch gli elementi diagonali aii siano diversi da 0, cio la matrice sia non singolare: infatti per le matrici triangolari si ha det(A) = a11 a22 ... ann e det(A) = 0 se e solo se A singolare.
Esempio 34

3 x1 2 x 2 + x3 x 4 = 8 x3 + 2 x 4 = 3 2 x3 + 3 x4 = 11 5 x4 = 15 Il sistema non ha soluzioni, essendo det(A) = 0. Il tempo che occorre per completare i calcoli richiesti per la soluzione di un sistema dipende dal numero di operazioni aritmetiche floating point da eseguire; si pu verificare che il numero di operazioni necessarie per calcolare la soluzione di un sistema triangolare di ordine n (costo n2 . computazionale) dellordine di 2 I sistemi triangolari superiori sono un caso particolarmente importante, perch la forma triangolare superiore il risultato dellapplicazione del metodo di eliminazione di Gauss a sistemi di tipo generale.

2.15

Metodo di eliminazione di Gauss

Lidea alla base del metodo di eliminazione di Gauss di trasformare un sistema lineare di n equazioni in n incognite della forma generale Ax = b in un sistema equivalente5 avente la speciale forma triangolare superiore. La soluzione viene poi trovata con la sostituzione allindietro. La trasformazione avviene in modo che, operando in aritmetica esatta, si trova la soluzione esatta del sistema; dal punto di vista computazionale per la trasformazione comporta errori di round-off, quindi la soluzione potr differire dalla soluzione del sistema iniziale. Si ricordi ancora che non sono presenti errori di troncamento, ma solo di round-off.

Due sistemi lineari di n equazioni in n incognite si dicono equivalenti se hanno le stesse soluzioni. Universit di Torino

Capitolo 2 Soluzione di sistemi lineari

63

La trasformazione del sistema dato in sistema triangolare basata su alcune operazioni elementari, che si possono effettuare sulle equazioni del sistema senza produrre cambiamenti sulla soluzione unequazione del sistema pu essere moltiplicata per una costante non nulla; due equazioni possono essere sommate o sottratte e la somma (differenza) usata per sostituire una delle due equazioni; due equazioni del sistema possono essere scambiate fra loro. Sviluppiamo dunque lalgoritmo per risolvere il sistema lineare Ax = b di n equazioni in n incognite, che, utilizzando le operazioni elementari sopra elencate, trasforma il sistema del tipo Ax = b a11 x1 + a12 x 2 + a13 x3 + ... + a1n x n = b1 a 21 x1 + a 22 x2 + a 23 x3 + ... + a 2n x n = b2 ....................... a n1 x1 + a n 2 x2 + a n3 x3 + ... + a nn x n = bn nel sistema triangolare superiore Ux = c u11 x1 + u12 x2 + u13 x3 + ... + u1n xn = c1 u 22 x 2 + u 23 x3 + ... + u 2n xn = c2 ....................... u nn xn = cn

ad esso equivalente, che pu essere risolto con il metodo di backward substitution. Illustriamo il metodo con gli esempi seguenti.
Esempio 35 Il sistema quadrato E1 x1 + x2 + x3 = 1 E2 x1 + 2 x2 + 4 x3 = 1 x + 3x + 9 x = 1 E3 2 3 1 equivalente al sistema triangolare superiore x1 + x2 + x3 = 1 x2 + 3x3 = 2 2 x3 = 4

la cui soluzione x = (7 ,8,2)T Per ottenere il secondo sistema, combiniamo opportunamente le righe del primo sistema; le equazioni sono state etichettate con i simboli E1 , E 2 , E 3 per semplicit di riferimento.
Primo passo: ha lo scopo di eliminare x1 da E 2 e da E 3 . La prima equazione resta invariata; per eliminare x1 da E 2 si sostituisce E 2 con lequazione ottenuta sottraendo E1 da E 2 ; per eliminare x1 da E 3 si sostituisce E 3 con lequazione ottenuta sottraendo E1 da E 3

E1 E1 E 2 E1 E 2 E E E 1 3 3

x1 + x2 + x3 = 1 x2 + 3x3 = 2 2 x2 + 8 x3 = 0

E1 E2 E3

Dipartimento di Matematica

64

M. Garetto Metodi Numerici

Secondo passo: ha lo scopo di eliminare x2 da E 3 . Le prime due equazioni dellultimo sistema restano invariate; per eliminare x2 da E 3 si sostituisce E 3 con lequazione ottenuta sottraendo E 2 moltiplicata per la costante 2 da E 3

E1 x1 + x2 + x3 = 1 x2 + 3x3 = 2 E2 2 x3 = 4 E3 Il sistema ora nella forma triangolare superiore; con la sostituzione allindietro si trova la soluzione 4 x3 = 2 = 2 x = (7 ,8,2)T x2 = 2 3 x3 = 8 x = 1 x x = 7 2 3 1 E1 E1 E 2 E 2 E 2 E E 2 3 3
Esempio 36 Il sistema quadrato E1 3 x1 + 6 x2 + 3 x3 = 0 E2 2 x1 + 2 x2 + 3x3 = 3 x + 3x = 2 E3 2 1 equivalente al sistema triangolare superiore 3x1 + 6 x2 + 3 x3 = 0 2 x2 + x3 = 3 1 1 x3 = 2 2 Per ottenere il sistema triangolare eseguiamo i seguenti due passi. Primo passo: ha lo scopo di eliminare x1 da E 2 e da E 3 . La prima equazione resta invariata; per eliminare x1 da E 2 si sostituisce E 2 con lequazione 2 da E 2 ; per eliminare x1 da E 3 si sostituisce E 3 con ottenuta sottraendo E1 moltiplicata per 3 1 da E 3 lequazione ottenuta sottraendo E1 moltiplicata per 3 E1 E1 E1 3 x1 + 6 x2 + 3 x3 = 0 2 E2 2 x2 + x3 = 3 E 2 E1 E 2 3 x2 x3 = 2 E3 1 E E E 3 1 3 3 Secondo passo: ha lo scopo di eliminare x2 da E 3 . Le prime due equazioni dellultimo sistema restano invariate; per eliminare x2 da E 3 si sostituisce 1 E 3 con lequazione ottenuta sottraendo E 2 moltiplicata per la costante da E 3 2

Universit di Torino

Capitolo 2 Soluzione di sistemi lineari

65

E E 3 x1 + 6 x2 + 3x3 = 0 1 1 2 x 2 + x3 = 3 E 2 E 2 1 1 1 E 3 x3 = E 2 E 3 2 2 2 Il sistema ora nella forma triangolare superiore; con la sostituzione allindietro si trova la soluzione x3 = 1 3 + x3 = 1 x = (1,1,1)T x2 = 2 6 x2 3x3 =1 x1 = 3 Il passo linsieme delle operazioni che portano alleliminazione di una data incognita da tutte le equazioni in cui deve essere eliminata. Ad esempio al primo passo si elimina x1 da tutte le equazioni, tranne che dalla prima; al secondo passo si elimina x2 da tutte le equazioni, tranne che dalle prime due. I moltiplicatori sono i numeri per cui sono state moltiplicate le righe prima di effettuare le 2 1 1 , , ; i moltiplicatori dipendono sottrazioni; nellesempio precedente sono i numeri 3 3 2 dallequazione e dal passo. Alla soluzione del sistema si arriva quindi in due fasi eliminazione o triangolarizzazione, in pi passi; soluzione del sistema triangolare con il metodo di backward substitution. Descriviamo formalmente il metodo di eliminazione di Gauss assumendo per semplicit n = 3. Sia dato il sistema Ax = b (con det(A) 0) E1 a11x1 + a12 x2 + a13 x3 = b1 E2 a21x1 + a22 x2 + a23 x3 = b2 a x + a x + a x = b E3 31 1 32 2 33 3 3 La prima fase consiste nella triangolarizzazione del sistema.
Primo passo: ha lo scopo di eliminare x1 da E1 e E 2 . Si assume6 che sia a11 0 , e si calcolano i moltiplicatori a a m21 = 21 m31 = 31 a11 a11 Si sottrae E1 moltiplicata per m21 da E 2 , poi si sottrae E1 moltiplicata per m31 da E 3 , e si ottiene il sistema equivalente a quello dato E1 a11x1 + a12 x2 + a13 x3 = b1 ( ( ( 1) 1) 1) a x2 + a x3 = b E2 22 23 2 a (1) x2 + a (1) x3 = b (1) E3 32 33 3
Pi avanti ( 2.16, pag. 72) si vedr che questa ipotesi potr essere rimossa, con opportune modifiche del metodo. Dipartimento di Matematica
6

66

M. Garetto Metodi Numerici

(1) e b (1) sono definiti da Lapice (1) indica il primo passo. I coefficienti aij i

(1) = a m a aij ij i1 1 j
bi(1) = bi mi1bi

i = 2 ,3 i = 2 ,3

j = 2 ,3

Secondo passo: ha lo scopo di eliminare x2 da E 3 .

(1) 0 , e si calcola il moltiplicatore Si assume che sia a 22


m32 = a (1)
32 22

a (1)

Si sottrae E 2 moltiplicata per m32 da E 3 e si ottiene il sistema equivalente


a11 x1 + a12 x 2 + a13 x3 = b1 a (1) x2 + a (1) x3 = b (1) 22 23 2 ( ) 2 a x3 = b ( 2 ) 33 3

(2 ) e b (2 ) sono definiti da Lapice (2) indica il secondo passo. I nuovi coefficienti a33 3
(2 ) = b (1) m b (1) b3 32
3 2

(2 ) = a (1) m a (1) a33 32 23 33

I coefficienti

(1) , a (2 ) sono detti pivot. a11 , a 22 33

Successivamente, nella seconda fase si risolve il sistema triangolare con il metodo di backward substitution e si trova la soluzione x. Il metodo, descritto per n = 3, pu essere facilmente esteso al caso di un generico sistema Ax = b di n equazioni in n incognite. In generale, dopo il completamento di n 1 passi, supponendo che tutti i pivot siano non nulli (vedere la nota precedente), si ottiene il sistema triangolare equivalente a x + a x + a x + ......... + a x = b 12 2 1n n 1 13 3 11 1 (1) (1) (1) (1) a 22 x 2 + a 23 x3 + ........ + a 2 n x n = b2 ( 2) ( 2) ( 2) a33 x3 + ......... + a3 n x n = b3 ................................................ ( n 1) ( n 1) a nn xn = bn Si noti esplicitamente che le operazioni effettuate per la triangolarizzazione devono essere fatte non solo sui coefficienti della matrice A, ma anche sui termini noti del vettore b. Si pu osservare che nelleffettuare le operazioni descritte per la triangolarizzazione (vedere gli esempi 35 e 36) si riscrivono ad ogni passo tutte le equazioni, il che in parte inutile: le variabili restano sempre uguali, e cambiano solo i coefficienti e i termini noti delle equazioni. Per questo motivo si preferisce usare la forma matriciale, che contiene tutte le informazioni necessarie, senza dover riscrivere ogni volta tutte le variabili. Dato il sistema Ax = b, si scrive la matrice completa di dimensioni n (n + 1) , ottenuta aggiungendo alla matrice A dei coefficienti una ulteriore colonna costituita dai termini noti

Universit di Torino

Capitolo 2 Soluzione di sistemi lineari

67

a11 a12 .. a1n b1 a21 a22 .. a2n b2 (A, b ) = .. .. .. .. .. a n1 an 2 .. ann bn Eseguendo sulla matrice completa i passi della triangolarizzazione, si modificano successivamente le sue righe e, dopo n1 passi, la matrice contiene i coefficienti e i termini noti del sistema triangolare. Formalmente lalgoritmo di Gauss effettua le trasformazioni dei seguenti sistemi equivalenti
Ax = b A (1)x = b (1) A (2 )x = b (2 ) ....
1 passo 2 passo

.... A (n 1)x = b (n 1)
( n 1) passo

Il sistema A (n 1)x = b (n 1) triangolare superiore. Il numero di operazioni necessarie per triangolarizzare un sistema di n equazioni dellordine di
n3 ; a questo va aggiunto il costo computazionale per la soluzione del sistema triangolare 3 superiore, dellordine di prevalente su
Esempio 37
n2 n3 ; il costo principale quello della triangolarizzazione, perch 2 3

n2 . 2

x1 + x 2 + 2 x3 = 9 2 x1 + 3x 2 + 5 x3 = 22 4 x + 6 x + 6 x = 32 2 3 1 1 1 2 9 (A,b) = 2 3 5 22 4 6 6 32
Primo passo m21 = 2 m31 = 4 Indichiamo con R1 , R 2 e R 3 le righe della matrice completa. R1 R1 9 1 1 2 R 2 2R1 R 2 0 1 1 4 0 2 2 4 R 3 4R1 R 3
Secondo passo

m32 = 2

R1 R1 R2 R2

R 32R 2 R 3 Soluzione del sistema triangolare superiore 4 =3 x3 = 12 x 2 = 4 x3 = 1

9 1 1 2 0 1 1 4 0 0 4 12

x = (2,1,3)T

x1 = 9 x 2 2 x3 = 2

Dipartimento di Matematica

68

M. Garetto Metodi Numerici

Esempio 38

2 x1 + 2 x3 = 4 2 x 2 + 4 x3 = 8 x 2 x + 5 x = 0 2 3 1 0 2 4 2 2 4 8 (A,b) = 0 1 2 5 0 Primo passo


m21 = 0 m31 =

1 2

R1 R1 R2 R2 1 R 3 + R1 R 3 2 Secondo passo m32 = 1 R1 R1

2 0 2 4 0 2 4 8 0 2 6 2

2 0 2 4 0 2 4 8 R2 R2 0 0 10 10 R3 + R 2 R3 Soluzione del sistema triangolare superiore x3 = 1

8 4 x3 =2 2 4 2 x3 x1 = =1 2
x2 =
Esempio 39 Risolvere il sistema 2 x1 + x2 + 3x3 = 11 4 x1 + 3x 2 + 10 x3 = 28 2 x + 4 x + 17 x = 31 2 3 1

x = (1,2,1)T

La soluzione x = (3,2,1)T

Esempio 40 Risolvere il sistema 2 x1 + 2 x2 + x3 = 3 4 x1 + 2 x 2 5 x3 = 1 x x 3x = 0 3 1 2

La soluzione x = (2,1,1)T
Esempio 41

2 x1 + 4 x2 4 x3 = 12 x1 + 5 x2 5 x3 3x4 = 18 2 x1 + 3x 2 + x3 + 3x 4 = 8 x1 + 4 x2 2 x3 + 2 x 4 = 8

Universit di Torino

Capitolo 2 Soluzione di sistemi lineari

69

2 1 (A,b) = 2 1 Primo passo 2 0 0 0 Secondo passo 2 0 0 0 Terzo passo 2 0 0 0

4 4 0 12 5 5 3 18 3 1 3 8 4 2 2 8 1 m21 = m31 = 1 2 4 4 0 12 3 3 3 12 3 4 1 5 2 0 2 2
m32 =

m41 =

1 2

1 3

m42 =

2 3

4 4 0 12 3 3 3 12 0 4 2 0 0 2 4 6 1 m43 = 2 4 4 0 12 3 3 3 12 0 4 2 0 0 0 3 6

6 = 2 3 2 x4 =1 x3 = 4 12 + 3 x3 + 3 x4 =3 x2 = 3 12 4 x2 + 4 x3 =2 x1 = 2 x4 =
Esempio 42

x = (2 ,3,1,2)T

x1 + 2 x2 + x3 + 4 x4 = 13 2 x1 + 4 x3 + 3x 4 = 28 4 x1 + 2 x 2 + 2 x3 + x 4 = 20 3 x1 + x2 + 3 x3 + 2 x4 = 6 1 2 (A,b) = 4 3 2 0 2 1 1 4 2 3 4 13 3 28 1 20 2 6

Dipartimento di Matematica

70

M. Garetto Metodi Numerici

Primo passo 1 0 0 0 Secondo passo

m21 = 2 m31 = 4 2 1 4 13 4 2 5 2 6 2 15 32 7 6 14 45 m32 = 3 2 m42 = 7 4

m41 = 3

Terzo passo

1 4 13 1 2 5 2 0 4 2 0 0 5 15 35 2 19 21 97 0 0 2 4 2 19 m43 = 10 1 4 13 1 2 5 2 0 4 2 0 0 5 15 35 2 0 0 0 9 18 18 x4 = 9 = 2 15 35 x 4 2 =4 x3 = 5 2 2 x3 + 5 x 4 = 1 x2 = 4 x1 = 13 2 x2 x3 4 x 4 = 3

x = (3,1,4 ,2 )

Numerose applicazioni danno luogo a sistemi lineari, la cui matrice dei coefficienti tridiagonale. Leliminazione gaussiana in questo caso particolarmente semplice, perch basta eliminare i coefficienti della diagonale al di sotto della diagonale principale.

Esempio 43
=7 x1 + x2 =9 2 x1 + 3x2 x3 4 x2 + 2 x3 + 3 x4 = 10 2 x3 4 x4 = 12 0 7 1 1 0 2 3 1 0 9 (A,b) = 0 4 2 3 10 0 0 2 4 12 1 passo
m21 = 2

Universit di Torino

Capitolo 2 Soluzione di sistemi lineari

71

1 0 0 0 2 passo

1 0 0 7 1 1 0 5 4 2 3 10 0 2 4 12

m32 = 4 0 7 1 1 0 5 0 1 1 0 0 0 6 3 30 0 0 2 4 12

3 passo
m43 =
1 3 0 7 1 1 0 5 0 1 1 0 0 0 6 3 30 0 0 0 5 2
T

Soluzione
Esempio 44

34 1 26 2 x = , , , 5 5 5 5

2 x1 + x2 x + x3 1 + 2 x2 x2 + 2 x3 + x4 + 2 x4 + x5 x3 + 2 x5 x4 Usando leliminazione gaussiana si ottiene 2 1 0 0 0 1 1 2 1 0 0 0 (A,b) = 0 1 2 1 0 0 0 0 1 2 1 0 0 0 0 1 2 1


m21 =

=1 =0 =0 =0 =1

1 2 0 1 4 3 0 0

m32 =

2 3

m43 =

3 4

m54 =

4 5

2 0 0 0 0

1 3 2 0 0 0

0 0 1 5 4 0

0 0 0 1 6 5

x = (1,1,1 1,1)T

1 1 2 1 3 1 4 6 5

Dipartimento di Matematica

72

M. Garetto Metodi Numerici

Algoritmo Metodo di eliminazione di Gauss A matrice n n b vettore colonna n 1 Al termine dellalgoritmo A e b contengono coefficienti e termini noti del sistema triangolarizzato. I moltiplicatori di Gauss non vengono memorizzati. Per la soluzione del sistema triangolarizzato si usa poi lalgoritmo di backward substitution.
Input {n,A,b} For k=1 to n1 do For i=k+1 to n do m=A(i,k)/A(k,k) For j=k+1 to n do A(i,j)=A(i,j)m*A(k,j) end for b(i)=b(i)m*b(k) end for end for Output {A,b} End

2.16

Metodo di eliminazione di Gauss con pivoting

(k 1) = 0 , occorre effettuare uno scambio di due Se a un certo passo si trova un elemento pivot7 a kk righe, la riga k-esima con una delle successive, in modo che il nuovo pivot sia diverso da 0. Se si suppone che il sistema sia risolubile, cio sia det(A)0, si pu dimostrare che sempre possibile effettuare lo scambio sopra descritto. Pertanto, ogni sistema non singolare pu essere ricondotto alla forma triangolare superiore con il metodo di eliminazione di Gauss, pi eventuali scambi di righe. Il procedimento di scambio delle righe detto pivoting; il criterio per decidere quale riga scegliere per effettuare lo scambio detto strategia di pivoting. La pi semplice strategia di pivoting, detto pivoting banale, consiste nel cercare la prima riga, sia (k 1) 0 e nello scambiare tra loro le la riga r esima, successiva alla riga k esima, nella quale ark
righe r esima e k esima.
Esempio 45

x1 x 2 + 4 x3 = 1 2 x1 2 x2 + x3 = 1 x + x + 2x = 2 2 3 1 1 1 4 1 (A,b) = 2 2 1 1 1 1 2 2 m21 = 2 m31 = 1 1 1 1 4 0 0 7 1 0 2 2 1

Primo passo

Vedere nota pag. 65. Universit di Torino

Capitolo 2 Soluzione di sistemi lineari

73

(1) nullo; si scambia la seconda riga con la terza Lelemento pivot a 22


1 1 1 4 0 2 2 1 0 0 7 1 Soluzione del sistema triangolare 1 x3 = 7 1 + 2 x3 9 = x2 = 2 14 15 x1 = 1 + x 2 4 x3 = 14
Esempio 46

15 9 1 x= , , 14 14 7

x 2 + 4 x3 = 0 3 x1 x2 x3 = 8 2 + 2 x x x 2 3 =0 1 0 1 4 (A,b) = 1 1 1 1 2 2

0 3 8 0

Lelemento pivot a11 nullo; si scambia la prima riga con la seconda


3 1 1 1 8 4 0 0 1 1 2 2 0 m31 = 1

Primo passo

3 1 1 1 8 4 0 0 1 0 1 3 3 8 m32 = 1 Secondo passo 3 1 1 1 M 8 4 M 0 0 1 0 0 7 M 3 8 Soluzione del sistema triangolare 3 15 3 x = , , 28 14 56


T

Dipartimento di Matematica

74

M. Garetto Metodi Numerici

Esempio 47

x1 x2 + 2 x3 x4 = 8 2 x1 2 x 2 + 3x3 3x4 = 20 x1 + x2 + x3 = 2 x1 x2 + 4 x3 + 3x 4 = 4 1 1 2 2 (A,b) = 1 1 1 1 Primo passo


m21 = 2 m31 = 1 m41 = 1 1 1 2 1 M 8 0 0 1 1 M 4 0 2 1 1 M 6 0 0 2 4 M 12

2 1 M 8 3 3 M 20 1 0 M 2 4 3 M 4

(1) nullo; si scambia la seconda riga con la terza; poich nella seconda Lelemento pivot a 22 colonna gli elementi della terza e quarta riga sono gi nulli, il secondo passo completato. 1 1 2 1 M 8 0 2 1 1 M 6 0 0 1 1 M 4 0 0 2 4 M 12 Terzo passo m43 = 2 1 1 2 1 M 8 0 2 1 1 M 6 0 0 1 1 M 4 0 0 0 2 M 4 Soluzione del sistema triangolare x = ( 7 ,3,2 ,2 )T
Se possibile, anzich adottare la strategia banale di pivoting descritta prima, preferibile fare una scelta migliore del pivot, allo scopo di ridurre lerrore che si introduce nello svolgimento dei calcoli; questa strategia detta pivoting parziale. Per ridurre la propagazione dell'errore si sceglie come pivot l'elemento pi grande in valore assoluto nella colonna k esima al di sotto della diagonale, ossia

(k 1) = max a (k 1) , a (k 1) ,..., a (k 1) ark kk k +1,k nk

e si scambiano le righe resima e kesima, in modo da portare lelemento cos scelto nella posizione del pivot. Con questa scelta di solito l'errore propagato pi piccolo. (k 1) non nullo, ma piccolo in Questa scelta consigliabile anche quando l'elemento pivot akk valore assoluto rispetto agli altri elementi sotto la diagonale. Gli esempi seguenti illustrano i vantaggi derivanti dal pivoting parziale; in tali esempi si confrontano i risultati ottenuti con e senza pivoting, usando unaritmetica a precisione finita; per semplicit di calcolo si usa unaritmetica con quattro cifre significative.

Universit di Torino

Capitolo 2 Soluzione di sistemi lineari

75

Esempio 48 Si consideri il sistema seguente, nel quale i coefficienti e i termini noti sono assegnati con quattro cifre significative 1.133 x1 + 5.281x 2 = 6.414 24.14 x1 1.210 x2 = 22.93 La soluzione esatta di questo sistema

x = (1.000 ,1.000 )T Risolviamo il sistema con il metodo di Gauss eseguendo tutti i calcoli in aritmetica finita con quattro cifre significative con arrotondamento, senza effettuare pivoting. 24.14 = 21.31 m21 = 1.133 (1) a 22 = 1.210 21.315.281 = 1.210 112.5 = 113.7

(1) b2 = 22.93 21.316.414 = 22.93 136.7 = 113.8 Si ottiene il sistema triangolare 1.133 x1 + 5.281x2 = 6.414 113.7 x 2 = 113.8 Con la sostituzione allindietro si trova 113.8 (6.414 5.281 1.001) (6.414 5.286) x2 = = 1.001 x1 = = = 0.9956 113.7 1.133 1.133 x = (0.9956 ,1.001)T

Applichiamo ora la strategia di pivoting parziale, scambiando fra loro le due righe, ed eseguiamo ancora i calcoli con quattro cifre significative 24.14 x1 1.210 x2 = 22.93 1.133 x1 + 5.281x 2 = 6.414 1.133 m21 = = 0.04693 24.14 (1) a 22 = 5.281 0.4693 (1.210) = 5.338
(1) b2 = 6.414 0.04693 22.93 = 5.338 Si ottiene il sistema triangolare 24.14 x1 1.210 x 2 = 22.93 5.338 x 2 = 5.338 La sua soluzione, con la sostituzione allindietro

x = (1.000 ,1.000)T I risultati ottenuti applicando la strategia di pivoting parziale hanno quattro cifre significative esatte.

Esempio 49 Si consideri il sistema seguente, nel quale i coefficienti e i termini noti sono assegnati con 4 cifre significative 0.003000 x1 + 59.14 x2 = 59.17 5.291x1 6.130 x2 = 46.68 La soluzione esatta di questo sistema

x = (10.00 ,1.000 )T

Dipartimento di Matematica

76

M. Garetto Metodi Numerici

Risolviamo il sistema con il metodo di Gauss eseguendo tutti i calcoli in aritmetica finita con quattro cifre significative con arrotondamento, senza effettuare pivoting. 5.291 m21 = = 1764 0.003000 (1) a22 = 6.130 176459.14 = 6.130 104300 = 104300
(1) b2 = 46.68 176459.17 = 46.68 104400 = 104400 Si ottiene il sistema triangolare 0.003000 x1 + 59.14 x2 = 59.17 104300 x2 = 104400

Con la sostituzione allindietro si trova 104400 x2 = = 1.001 104300 (59.17 59.14 1.001) 59.17 59.20 0.03000 x1 = = = = 10 0.003000 0.003000 0.003000 x = ( 10 ,1.001)T La soluzione calcolata molto diversa dalla soluzione esatta, a causa degli errori di round-off.

Applichiamo ora la strategia di pivoting parziale, scambiando fra loro le due righe, ed eseguiamo ancora i calcoli con quattro cifre significative 5.291x1 6.130 x2 = 46.68 0.003000 x1 + 59.14 x2 = 59.17
m21 = 0.003000 = 0.0005670 5.291

(1) a 22 = 59.14 0.0005670 (6.130) = 59.14 + 0.003476 = 59.14


(1) b2 = 59.17 0.0005670 46.68 = 59.17 0.02647 = 59.14 Si ottiene il sistema triangolare 5.291x1 6.130 x2 = 46.68 59.14 x2 = 59.14

La sua soluzione, con la sostituzione allindietro x2 = 1.000 x2 = 10.00 x = (10.00 ,1.000 )T I risultati ottenuti applicando la strategia di pivoting parziale hanno quattro cifre significative esatte.
Esempio 50

x = (2.6 ,3.8,5)T Soluzione esatta Risolviamo il sistema con il metodo di Gauss eseguendo tutti i calcoli in aritmetica con 4 cifre significative, senza pivoting, usando la notazione matriciale. 6.000 2.000 2.000 2.000 2.000 0.6667 0.3333 1.000 1.000 2.000 1.000 0.0000

6 x1 + 2 x2 + 2 x3 = 2 2 1 2 x1 + x2 + x3 = 1 3 3 x1 + 2 x 2 x3 = 0

Universit di Torino

Capitolo 2 Soluzione di sistemi lineari

77

Primo passo 2.000 1.000 = 0.3333 m31 = = 0.1667 6.000 6.000 2.000 2.000 2.000 6.000 0.000 0.0001000 0.3333 1.667 0.000 1.667 1.333 0.3334 m21 = Secondo passo 1.667 = 1667 101 0.0001000 2.000 2.000 2.000 6.000 1.667 0.0000 0.0001000 0.3333 0.0000 0.0000 5555 2779 101 m32 = Risolvendo il sistema con la sostituzione allindietro, e svolgendo sempre i calcoli con quattro cifre significative, si trova 27790 x3 = = 5.003 5555 0.3333 ( 5.003) + 1.667 1.667 + 1.667 x2 = = = 0.0000 0.0001000 0.0001000 2.000 2.000 ( 5.003) x1 = = 1.335 6

x = (1.335 ,0.0000 ,5.003)T I risultati ottenuti sono molto diversi dalla soluzione esatta: ci dipende dallaver usato come pivot ( 2) = 0.0001 (piccolo rispetto a 1.667). al secondo passo di riduzione il numero a 22 Ripetiamo il calcolo della soluzione usando la strategia di pivoting parziale e usando sempre quattro cifre significative in tutti i calcoli; al termine del primo passo abbiamo ottenuto la matrice 2.000 2.000 2.000 6.000 0.0000 0.0001000 0.3333 1.667 0.0000 1.667 1.333 0.3334
Al secondo passo scambiamo la seconda riga con la terza 2.000 2.000 2.000 6.000 1.333 0.3334 1.667 0.0000 0.0000 0.0001000 0.3333 1.667
0.0001000 = 0.00005999 1.667 2.000 2.000 6.000 2.000 1.333 0.3334 0.0000 1.667 0.0000 0.0000 0.3332 1.667 x3 = 5.003 x2 = 3.8001 x1 = 2.602 m32 =

x = (2.602 ,3.801,5.003)T
I confronti necessari nel metodo di Gauss con pivoting non incidono in modo significativamente rilevante sul costo computazionale complessivo del metodo che resta dellordine di n3 . 3

Dipartimento di Matematica

78

M. Garetto Metodi Numerici

2.17

Calcolo del determinante

Il metodo di eliminazione di Gauss fornisce anche un metodo efficiente per il calcolo del determinante. Con il metodo di Gauss, come si visto, si trasforma il sistema lineare Ax = b, dove A una matrice quadrata di ordine n, in un sistema triangolare Ux = c; se nelleffettuare la triangolarizzazione della matrice A non si effettuano scambi di righe, si pu dimostrare che il determinante di A uguale al determinante di U; poich U una matrice triangolare superiore, il suo determinante uguale al prodotto degli elementi della diagonale principale det(A) = det(U) =

uii .
i =1

Se nelleffettuare la triangolarizzazione si applica il pivoting, occorre tener conto degli scambi effettuati; se sono stati fatti s scambi di righe si ha det(A) = ( 1)s det(U) = ( 1)s

uii .
i =1

Esempio 51 Riprendiamo in questo esempio i sistemi gi triangolarizzati negli esempi 41 e 47 Sistema Ax = b (esempio 41) 2 x1 + 4 x2 4 x3 = 12 x1 + 5 x2 5 x3 3x4 = 18 2 x1 + 3x 2 + x3 + 3x 4 = 8 x1 + 4 x2 2 x3 + 2 x 4 = 8 Con il metodo di eliminazione di Gauss, senza effettuare pivoting, abbiamo ottenuto il sistema triangolare 2 x1 + 4 x 2 4 x3 = 12 3 x2 3 x3 3x 4 = 12 4 x3 + 2 x 4 = 0 3x 4 = 6 Calcolando il prodotto degli elementi della diagonale principale del sistema triangolare, si ottiene il valore del determinante det(A) = 72

Sistema Ax = b (esempio 47) x1 x2 + 2 x3 x4 = 8 2 x1 2 x 2 + 3x3 3x4 = 20 x1 + x2 + x3 = 2 x1 x2 + 4 x3 + 3x 4 = 4 Con il metodo di eliminazione di Gauss, con pivoting, abbiamo ottenuto il sistema triangolare x1 x2 + 2 x3 x4 = 8 2 x2 x3 + x 4 = 6 x3 x 4 = 4 2 x4 = 4 Per il determinante, calcolando il prodotto degli elementi della diagonale principale del sistema triangolare e tenendo conto che si effettuato uno scambio di righe, si ottiene det(A) = ( 1)1 ( 4 ) = 4

Universit di Torino

Capitolo 2 Algebra lineare numerica

79

2.18

Calcolo della matrice inversa

Come abbiamo gi visto8, se nota la matrice inversa A1 di una matrice A, facile risolvere il sistema lineare Ax = b; infatti da Ax = b moltiplicando per A1 si ottiene A1 Ax = A1 b ma A1A = I, perci Ix = x = A1b Dal punto di vista computazionale non per efficiente determinare A1 allo scopo di risolvere il sistema Ax = b. E comunque interessante descrivere un metodo per determinare linversa di una matrice A, basato sul metodo di eliminazione di Gauss. Data la matrice quadrata A di ordine n non singolare, la matrice inversa di A una matrice B di ordine n tale che AB = I. Sia b1 j b2 j Bj = ... bnj la jesima colonna di B. Affinch B sia la matrice inversa di A, deve essere AB = I, ossia 0 a11 a12 ... a1n b1 j ... a21 a22 ... a2n b2 j AB j = =Cj =1 j = 1,..., n ... ... ... ... ... ... a n1 an 2 ... ann bnj 0 dove il vettore C j la jesima colonna della matrice identit I (in C j il valore 1 compare nella

jesima riga). Per determinare la matrice B occorre risolvere n sistemi lineari nei quali lincognita B j (jesima colonna della matrice inversa) e il termine noto C j (jesima colonna della matrice identit I). Illustriamo i dettagli del metodo per trovare B con un esempio nel caso semplice n = 3.
Esempio 52 Per determinare linversa della matrice 2 0 1 A = 3 2 5 1 1 0 consideriamo il prodotto AB, dove B una matrice di ordine 3 2 0 1 b11 b12 b13 AB = 3 2 5 b21 b22 b23 = 1 1 0 b 31 b32 b33 2b11 + b31 2b12 + b32 2b13 + b33 = 3b11 + 2b21 + 5b31 3b12 + 2b22 + 5b32 3b13 + 2b23 + 5b33 b11 b21 b12 b22 b13 b23
8

Vedere 2.10 pag. 52.

Dipartimento di Matematica

80

M. Garetto Metodi Numerici

Se B = A1 , allora AB = I 2b11 + b31 2b12 + b32 3b11 + 2b21 + 5b31 3b12 + 2b22 + 5b32 b11 b21 b12 b22

1 0 0 3b13 + 2b23 + 5b33 = 0 1 0 0 0 1 b13 b23

2b13 + b33

Si devono risolvere tre sistemi lineari nelle incognite bij , i = 1,2 ,3, j = 1,2 ,3 , che hanno la stessa matrice dei coefficienti e differiscono solo per i termini noti

2b11 + b31 = 1 3b11 + 2b21 + 5b31 = 0 b b = 0 11 21

2b12 + b32 = 0 3b12 + 2b22 + 5b32 = 1 b b = 0 12 22

2b13 + b33 = 0 3b13 + 2b23 + 5b33 = 0 b b = 1 13 23

Il metodo di eliminazione gaussiana pu essere applicato su una matrice completa pi grande, ottenuta aggiungendo alla matrice A dei coefficienti tre colonne costituite dai termini noti (ossia aggiungendo la matrice identit I) 2 0 1 1 0 0 3 2 5 0 1 0 1 1 0 0 0 1 Con il metodo di Gauss, eseguendo due passi, si ottiene 3 1 m21 = m31 = 2 2 2 0 1 1 0 0 7 3 0 2 1 0 2 2 1 1 0 1 0 1 2 2 1 m32 = 2 2 0 1 1 0 0 0 2 7 3 1 0 2 2 5 5 1 1 0 0 4 4 2 Applicando la sostituzione allindietro alle tre matrici complete seguenti, si ottengono le soluzioni dei tre sistemi lineari 2 0 1 0 2 0 1 0 2 0 1 1 0 2 7 1 0 2 7 0 0 2 7 3 2 2 2 2 5 5 1 5 5 1 0 0 0 0 0 0 4 4 2 4 4

Universit di Torino

Capitolo 2 Algebra lineare numerica

81

1 b12 = 5 b11 = 1 1 b21 = 1 b22 = 5 b = 1 31 2 b32 = 5 Questi valori costituiscono le colonne della matrice inversa 1 2 1 5 5 1 7 1 A = 1 5 5 2 4 1 5 5

2 b13 = 5 7 b23 = 5 4 b33 = 5

2.19

Fattorizzazione triangolare di una matrice

Introduciamo ora il concetto di fattorizzazione di una matrice non singolare A nel prodotto di una matrice U triangolare superiore e di una matrice L triangolare inferiore. Consideriamo per semplicit di notazione il caso n = 4, ma il ragionamento si estende immediatamente a una qualunque matrice di dimensione n n.
Definizione La matrice non singolare A ha una fattorizzazione triangolare se pu essere espressa come il prodotto di una matrice L triangolare inferiore e di una matrice U triangolare superiore.

Il seguente teorema fornisce il metodo per ottenere la fattorizzazione triangolare.


Teorema. Fattorizzazione triangolare A = LU, senza pivoting Si supponga di poter applicare il metodo di eliminazione di Gauss, senza effettuare scambi di righe, per risolvere il sistema Ax = b. Allora la matrice A pu essere fattorizzata nel prodotto A = LU, dove U la matrice triangolare superiore ottenuta con la triangolarizzazione, L ha come elementi sotto la diagonale principale i moltiplicatori di Gauss e gli elementi della diagonale principale sono tutti uguali a 1 0 0 0 u11 u12 u13 u14 a11 a12 a13 a14 1 1 0 0 0 u 22 u 23 u 24 a 21 a 22 a 23 a 24 m21 = LU = A= m m32 1 0 0 a31 a32 a33 a34 0 u33 u34 31 a m 0 0 u 44 41 a 42 a 43 a 44 41 m42 m43 1 0

Il costo computazionale per fattorizzare una matrice con il metodo di eliminazione di Gauss dellordine di

n3 , mentre la soluzione di un sistema triangolare inferiore o superiore ha un costo 3

n2 ; una volta determinata la fattorizzazione A = LU, si pu quindi utilizzare tale 2 fattorizzazione per risolvere pi sistemi lineari aventi la stessa matrice dei coefficienti e diversi termini noti, con una notevole riduzione del costo computazionale complessivo. dellordine di

Dipartimento di Matematica

82

M. Garetto Metodi Numerici

Soluzione di un sistema lineare con la fattorizzazione triangolare A = LU

Dato il sistema lineare Ax = b fattorizzando A nel prodotto LU, il sistema diventa LUx = b Posto y = Ux troviamo x risolvendo prima il sistema triangolare inferiore Ly = b che fornisce come soluzione il vettore y, e poi risolvendo il sistema triangolare superiore Ux = y che fornisce come soluzione il vettore x. Questi due sistemi sono semplici da risolvere perch sono triangolari (inferiore e superiore) = b1 y1 m y +y = b2 21 1 2 Ly = b = b3 m31 y1 + m32 y 2 + y3 m41 y1 + m42 y 2 + m43 y3 + y 4 = b4

u11 x1 + u12 x 2 + u13 x3 + u14 x 4= y1 u 22 x 2 + u 23 x3 + u 24 x 4= y 2 Ux = y u33 x3 + u34 x 4= y3 u 44 x 4= y 4 Questo metodo particolarmente vantaggioso nel caso in cui si devono risolvere pi sistemi con la stessa matrice dei coefficienti e diversi termini noti; in tal caso la matrice viene fattorizzata una volta sola, e poi si risolvono i due sistemi triangolari corrispondenti ad ogni vettore di termini noti. Con questa tecnica si richiede un numero minore di operazioni rispetto a quello necessario per risolvere i sistemi con il metodo di eliminazione di Gauss, con il quale si triangolarizza ogni volta la matrice dei coefficienti. I due metodi si equivalgono se applicati a un solo sistema.
Esempio 53 Scrivere la fattorizzazione A = LU per la matrice 3 3 2 2 A = 1 0 2 4 9 5 2

e risolvere il sistema lineare Ax = b con b = (1,3,1)T . La matrice L viene costruita moltiplicando a sinistra la matrice A per la matrice identit I 3 3 1 0 0 2 2 0 2 A = 0 1 0 1 0 0 1 4 9 5 2 Triangolarizziamo la matrice A con il metodo di eliminazione di Gauss. I moltiplicatori di Gauss mij vengono posti nella matrice I sotto la diagonale principale, nelle
posizioni indicate dai loro indici. 1 m21 = m31 = 2 2

Universit di Torino

Capitolo 2 Algebra lineare numerica

83

3 2 1 0 0 2 1 3 A = 1 0 0 4 2 2 0 1 0 3 2 m32 = 2

3 7 2 1

3 3 2 1 0 0 2 1 3 7 = LU A= 1 0 0 2 4 2 2 2 1 0 0 8 Serviamoci della fattorizzazione cos trovata per risolvere in due tempi il sistema Ax = b 1 0 0 y1 1 1 1 0 y2 = 3 Ly = b 2 2 2 1 y3 1
7 y = 1, ,8 2
T

Ux = y

3 3 2 2 x1 1 7 7 0 3 x2 = 4 2 2 0 0 8 x3 8

x = ( 1,0 ,1)T
Esempio 54 Risolvere i seguenti sistemi lineari Ax = b servendosi della fattorizzazione triangolare A = LU, con 3 1 4 2 9 A = 2 4 5 b 1 = 20 b 2 = 5 1 7 11 2 6 La matrice L viene costruita moltiplicando a sinistra la matrice A per la matrice identit I 3 1 1 0 0 4 A = 0 1 0 2 4 5 0 0 1 1 2 6 Triangolarizziamo la matrice A con il metodo di eliminazione di Gauss. 1 1 m21 = m31 = 2 4 1 0 0 4 3 1 1 5 9 1 0 0 A= 2 2 2 1 5 25 0 1 0 4 4 4

Dipartimento di Matematica

84

M. Garetto Metodi Numerici

m32 =

1 2

1 0 0 4 3 1 1 5 9 A = 1 0 0 = LU 2 2 2 1 1 17 1 0 0 2 2 4 Serviamoci della fattorizzazione cos trovata per risolvere in due tempi il sistema Ax = b1 1 0 0 y 2 1 1 1 0 y 2 = 20 = b1 Ly = 2 1 y3 7 1 1 2 4

y = ( 2 ,19,17 )T
4 3 1 x 2 1 5 9 x2 = 19 = y Ux = 0 2 2 17 17 x3 0 0 2
x = (3,4,2)T In modo analogo risolviamo ora in due tempi il sistema Ax = b2 1 0 0 y 9 1 1 1 0 y 2 = 5 = b2 Ly = 2 1 y3 11 1 1 2 4
1 17 y = 9, , 2 2 4 3 1 9 x 1 1 5 9 Ux = 0 =y x2 = 2 2 2 17 17 x3 0 0 2 2 x = (2,2,1)T
Esempio 55 Risolvere i seguenti sistemi lineari Ax = b servendosi della fattorizzazione triangolare A = LU 0 4 8 8 4 A = 2 3 5 b1 = 1 b 2 = 3 1 1 3 3 4
T

Universit di Torino

Capitolo 2 Algebra lineare numerica

85

Fattorizzazione A = LU 1 0 0 4 8 8 4 8 8 1 1 0 0 A = 2 3 5 = 1 - 1 = LU 2 1 3 4 0 3 1 0 1 1 4 Primo sistema

y = (0,1,0 )T Secondo sistema y = ( 4,1,3)T

x = (2 ,1,0)T x = (1,0 ,1)T

In generale dunque, se non sono necessari scambi di righe, la fattorizzazione A = LU esiste ed unica e si ha 0 0 0 ... 1 a11 a12 a13 ... ... a1n 1 0 0 ... m21 (1) (1) (1) 0 a 22 a 23 ... ... a 2 n 0 ... U= L = m31 m32 1 0 0 ... ... ... ... 0 ... ... ( n 1) 0 0 0 ... 0 a nn mn1 mn 2 ... mn,n-1 1 Si noti che, tenendo conto del fatto che gli elementi della diagonale principale di L sono tutti uguali a 1, per non occupare inutilmente memoria sufficiente memorizzare un'unica matrice che contiene nel triangolo inferiore i moltiplicatori e nel triangolo superiore i coefficienti della matrice U ... a1n a11 a12 a13 ... (1) (1) (1) ... a2 m21 a22 a 23 ... n ( 2) ( 2) m m32 a33 ... ... a3 n (2.7) 31 ... ... ... ( n 1) mn1 mn 2 mn3 ... mn ,n1 a nn

Matrici permutazione
La fattorizzazione A = LU prevede che non ci siano scambi di righe. Pu per verificarsi che una matrice non singolare non possa essere direttamente fattorizzata nella forma A = LU.
Esempio 56

1 2 6 A = 4 8 1 2 3 5 Applichiamo il metodo di eliminazione di Gauss, memorizzando i moltiplicatori di Gauss nel triangolo inferiore della matrice A 6 1 0 0 1 2 6 1 0 0 1 2 A = 0 1 0 4 8 1 = 4 1 0 4 0 25 0 0 1 2 3 5 2 0 1 0 7 17
(1) Si ottiene il pivot nullo a22 = 0 e il procedimento si arresta. Per poter proseguire nelloperazione di fattorizzazione occorre fare uno scambio di righe; in tal caso la fattorizzazione esiste, ma non della forma A = LU. Per tener conto degli scambi dovuti al pivoting nel metodo di fattorizzazione occorre introdurre la definizione di matrice permutazione.

Dipartimento di Matematica

86

M. Garetto Metodi Numerici

Definizione Una matrice permutazione P di ordine n n una matrice in cui ogni riga e ogni colonna contiene un solo elemento non nullo e tale elemento vale 1. Una matrice permutazione si ottiene dalla matrice identit scambiandone le righe.
Esempio 57 La matrice P una matrice permutazione di ordine tre 1 0 0 P = 0 0 1 0 1 0 P ottenuta dalla matrice identit scambiando la seconda riga con la terza.

Data la matrice A non singolare a11 a12 a13 A = a 21 a 22 a 23 a 31 a32 a33 moltiplicando A a sinistra per la matrice permutazione P si ottiene come effetto di scambiare la seconda e la terza riga di A 1 0 0 a11 a12 a13 a11 a12 a13 PA = 0 0 1 a 21 a 22 a 23 = a31 a32 a33 0 1 0 a 31 a32 a33 a 21 a 22 a 23 Questa propriet pu essere ovviamente estesa a un ordine n qualunque. In generale quindi il prodotto PA ha come effetto di scambiare le corrispondenti righe della matrice A; inoltre si pu facilmente verificare che P 1 = PT . Vale il teorema
Teorema. Fattorizzazione triangolare PA = LU, con pivoting Si supponga di poter applicare il metodo di eliminazione di Gauss, effettuando scambi di righe, per risolvere il sistema Ax = b. Allora esiste una matrice permutazione P per cui PA ha una fattorizzazione triangolare PA = LU, dove U la matrice triangolare superiore ottenuta con la triangolarizzazione, L ha come elementi sotto la diagonale principale i moltiplicatori di Gauss e gli elementi della diagonale principale sono tutti uguali a 1

Dalla fattorizzazione PA = LU, ricordando che P 1 = PT segue che P 1 PA = P 1 LU A = ( P 1 L)U A = ( PT L)U La matrice U nella fattorizzazione di A triangolare superiore, ma ( PT L) non triangolare inferiore.

Soluzione di un sistema lineare con la fattorizzazione triangolare PA = LU


Dato il sistema lineare Ax = b, dopo aver trovato la fattorizzazione triangolare PA = LU, moltiplicando a sinistra per P si ottiene PAx = Pb e sostituendo LUx = Pb

Universit di Torino

Capitolo 2 Algebra lineare numerica

87

Posto
y = Ux troviamo la soluzione x del sistema Ax = b risolvendo prima il sistema triangolare inferiore Ly = Pb che fornisce come soluzione il vettore y, e poi risolvendo il sistema triangolare superiore Ux = y che fornisce come soluzione il vettore x.
Esempio 58 Consideriamo la matrice A dellesempio 56 1 2 6 A = 4 8 1 2 3 5 Allinizio del processo di triangolarizzazione assumiamo come matrice permutazione P la matrice identit; eseguiamo il primo passo del metodo di Gauss usando ununica matrice della forma (2.7) in cui memorizziamo anche i moltiplicatori (nella prima colonna sotto la diagonale) m21 = 4 m31 = 2

6 1 2 6 1 2 4 8 1 4 0 25 2 3 5 2 7 17 Per poter procedere occorre scambiare nella matrice ottenuta la seconda riga con la terza 6 6 1 2 1 2 17 4 0 25 2 7 2 7 4 0 25 17 Questa matrice contiene nel triangolo inferiore la matrice L e nel triangolo superiore la matrice U; per tener conto dello scambio fra seconda e terza riga, scambiamo nella matrice identit queste due righe e la matrice permutazione diventa 1 0 0 P = 0 0 1 0 1 0 Abbiamo cos ottenuto la fattorizzazione PA = LU, con 6 1 2 1 0 0 U = 0 7 17 L = 2 1 0 0 0 25 4 0 1
Esempio 59

1 0 1 A = 1 2 1 1 1 1 Scambiamo la prima riga con la seconda, per evitare il pivot nullo a11 1 1 2 1 0 1 1 1 2 1 0 1 1 1 1 1 1 1

Dipartimento di Matematica

88

M. Garetto Metodi Numerici

La matrice permutazione diventa 0 1 0 P = 1 0 0 0 0 1

m32 = 1 1 2 1 1 2 1 1 2 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 2 Fattorizzazione PA = LU 1 0 0 1 2 1 U = 0 1 L = 0 1 0 1 0 0 1 1 1 1
Esempio 60

Triangolarizzazione con il metodo di Gauss m21 = 0 m31 = 1

3 1 1 2 2 4 5 1 A= 8 1 3 8 1 2 6 4 Con il metodo di eliminazione di Gauss si ottiene m21 = 2 m31 = 3 m41 = 1 3 1 1 1 2 1 2 3 1 2 4 5 1 2 0 1 3 8 8 1 3 2 1 2 1 1 4 3 5 2 6 4 Per procedere si scambia la seconda riga con la terza 1 1 1 2 3 1 2 3 1 2 0 1 3 2 1 2 3 2 1 2 2 0 1 1 1 4 3 5 1 4 3 5 Lo stesso scambio viene effettuato nella matrice permutazione, che diventa 1 0 0 0 0 0 1 0 P= 0 1 0 0 0 0 0 1
m32 = 0 1 3 2 1 2 3 m42 = 2 m43 = 1 1 3 2 1 1 2 1 2 0 1 1 2 1 9 2 3 1 3 2 1 1 2 1 2 0 1 1 2 1 10 2 3 1 2 1 2 0 1 1 4 3 5

Universit di Torino

Capitolo 2 Algebra lineare numerica

89

Si ottiene la fattorizzazione 1 0 0 0 P= 0 1 0 0
Esempio 61

PA = LU con 0 0 1 1 0 3 L= 0 0 2 0 1 1

0 1 0 0 0 1 0 2 1 1 0 0

1 0 U= 0 0

1 2 1 2 0 1 1 0 0 10 2 3

0 1 1 1 1 1 1 2 A= 1 1 1 0 1 2 0 2 Si ha a11 = 0 , perci non esiste una fattorizzazione A = LU. Scambiando la prima riga con la seconda e applicando il metodo di eliminazione di Gauss si ottiene m21 = 0 m31 = 1 m41 = 1 1 1 1 2 1 1 1 2 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 2 1 1 1 1 0 2 0 2 0 1 0 0 1 0 0 0 P= 0 0 1 0 0 0 0 1 Per poter procedere si scambia ancora la terza riga con la quarta m32 = 1 m42 = 0 m43 = 0 1 1 1 2 1 1 1 2 0 1 1 1 0 1 1 1 1 1 1 0 1 1 2 1 1 0 0 2 1 0 0 2 Lo stesso scambio viene effettuato nella matrice permutazione, che diventa 0 1 0 0 1 0 0 0 P= 0 0 0 1 0 0 1 0 Si ottiene la fattorizzazione PA = LU con 0 1 0 0 1 0 0 0 1 1 1 2 1 0 0 0 0 1 0 0 0 1 1 1 P= L= U= 0 0 2 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0 0 2

Dipartimento di Matematica

90

M. Garetto Metodi Numerici

Esempio 62 Risolvere il sistema Ax = b con la fattorizzazione PA = LU 1 2 3 0 3 3 6 9 3 6 A= b= 2 1 4 1 2 1 2 2 2 4 Fattorizzazione con il metodo di Gauss m21 = 3 m31 = 2 m41 = 1 0 1 2 3 1 2 3 0 0 3 3 0 3 6 9 3 2 1 4 1 2 5 2 1 1 0 1 2 1 2 2 2 Scambio della seconda riga con la terza 0 0 1 2 3 1 2 3 0 3 3 0 2 5 2 1 2 5 2 1 3 0 0 3 1 0 1 2 1 0 1 2 1 0 0 0 0 0 1 0 P= 0 1 0 0 0 0 0 1 Scambio della terza riga con la quarta 0 0 1 2 3 1 2 3 2 5 2 1 2 5 2 1 3 0 0 3 1 0 1 2 1 0 1 2 3 0 0 3 1 0 0 0 0 0 1 0 P= 0 0 0 1 0 1 0 0 Fattorizzazione PA = LU 0 1 0 0 0 1 2 3 2 1 0 0 0 5 2 1 L= U= 1 0 1 0 0 0 1 2 3 0 0 1 0 0 0 3 Soluzione del sistema triangolare inferiore Ly = Pb 1 0 0 0 y1 3 2 1 0 0 y2 2 = Pb = Ly = y 1 0 1 0 4 3 3 0 0 1 y 6 4

Universit di Torino

Capitolo 2 Algebra lineare numerica

91

La moltiplicazione Pb ha come effetto gli stessi scambi avvenuti con il pivoting (seconda riga con la terza, poi terza con la quarta). y = ( 3,8,1,3)T Soluzione del sistema triangolare superiore Ux = y 0 x1 1 2 3 3 0 5 2 1 x2 8 0 0 1 2 x = y = 1 3 3 0 0 0 3 x4

x = (2,1,1,1)T

Calcolo del determinante e della matrice inversa con la fattorizzazione triangolare


La fattorizzazione triangolare di una matrice A importante anche per il calcolo del determinante e della matrice inversa di A. Se la fattorizzazione del tipo A = LU, si ha det(A) = det (LU) e applicando le propriet del determinante det(A) = det(L) det(U) Il calcolo di det(L) e det(U) semplice: infatti U una matrice triangolare superiore e il suo determinante uguale al prodotto degli elementi della diagonale principale; L una matrice triangolare inferiore con gli elementi della diagonale principale tutti uguali a 1, perci det(L) = 1. Se invece la fattorizzazione del tipo PA = LU (ossia si fanno scambi di righe), allora det(PA) = det (LU) det(P) det(A) = det(L) det(U) det(U) det(A) = det(P) (si ricordi che det(L) = 1). Il calcolo di det(P) semplice: infatti P una matrice permutazione, ottenuta dalla matrice identit con k scambi di righe, quindi

det(P) = ( 1)k (si ricordi che det(I) = 1). Per la matrice inversa, se la fattorizzazione del tipo A = LU, ricordando le propriet della matrice inversa, si ha A1 = (LU) 1 = U1L1 Se invece la fattorizzazione del tipo PA = LU, allora (PA)1 = (LU) 1 A1P1 = U1L1 A1P1P = U1L1P A1 = U1L1P La matrice inversa di una matrice triangolare inferiore/superiore ancora una matrice triangolare inferiore/superiore e il suo calcolo pi semplice del calcolo dellinversa di una matrice quadrata non triangolare. Su queste considerazioni sono basati i comandi Matlab per il calcolo del determinante e dellinversa di una matrice A.

Esempio 63 Calcolo dellinversa della matrice 1 2 1 A= 1 2 1 1 2 1


Dipartimento di Matematica

92

M. Garetto Metodi Numerici

Con la fattorizzazione triangolare PA = LU si ottiene 1 2 1 1 0 0 U = 0 4 0 L = 1 1 0 0 0 2 1 0 1

1 0 0 P = 0 0 1 0 1 0 Linversa della matrice triangolare superiore U una matrice del tipo b11 b12 b13 B = 0 b22 b23 . 0 0 b33 La matrice B si calcola imponendo che sia 1 2 1 b11 b12 UB = 0 4 0 0 b22 0 0 2 0 0 b11 b12 + 2b22 4b22 0 0 0

1 0 0 0 1 0 0 0 1 Si risolvono i tre corrispondenti sistemi triangolari superiori b13 + 2b23 b33 = 0 b12 + 2b22 = 0 {b11 = 1 4b23 = 0 4b22 = 1 2b = 1 33 1 1 b13 = 2 = b 12 2 {b11 = 1 b23 = 0 b = 1 1 22 b33 = 4 2 1 1 1 2 2 1 U1 = 0 0 4 1 0 0 2 In modo del tutto analogo si ottiene 1 0 0 1 L = 1 1 0 1 0 1 Linversa A1 data dal prodotto 1 1 0 2 2 1 1 1 1 1 A =U L P= 0 4 4 1 1 0 2 2

b13 b23 = b33 b13 + 2b23 b33 4b23 =I= 2b33

Universit di Torino

Capitolo 2 Algebra lineare numerica

93

2.20

Matrici di tipo particolare

Per alcuni tipi particolari di matrici il metodo di eliminazione di Gauss pu essere applicato senza effettuare pivoting. Il primo tipo di matrici descritto con la seguente definizione.
Definizione Una matrice A si dice a diagonale strettamente dominante se

aii >

j =1, j i

aij

i = 1,2,,n.

Esempio 64 La matrice A a diagonale strettamente dominante 8 1 2 A = 2 9 3 2 3 10 Infatti 8 > 1 + 2 , 9 > 2 + 3 e 10 > 2 + 3 .

Vale il seguente teorema9


Teorema Una matrice A a diagonale strettamente dominante non singolare. Inoltre il metodo di eliminazione gaussiana pu essere applicato per risolvere il sistema lineare Ax = b (la cui soluzione esiste ed unica, essendo A non singolare) senza effettuare pivoting, e il metodo stabile.

Il secondo tipo di matrici descritto con la seguente definizione.


Definizione Una matrice A si dice definita positiva se simmetrica e se xTAx > 0, per ogni vettore a n dimensioni x 0.
Esempio 65 La matrice A definita positiva 4 1 0 A = 1 5 1 0 1 4

Per verificarlo, sia x un qualunque vettore colonna a 3 dimensioni e calcoliamo xTAx 4 1 0 x1 4 x1 x2 T x Ax = (x1 , x2 , x3 ) 1 5 1 x2 = (x1 , x2 , x3 ) x1 + 5 x2 x3 = 0 1 4 x x + 4x 2 3 3 = x1 (4 x1 x2 ) + x2 ( x1 + 5 x2 x3 ) + x3 ( x2 + 4 x3 ) =
2 2 2 = 4 x1 2 x1x2 + 5 x2 2 x2 x3 + 4 x3 = 2 2 2 = 3 x1 + x2 + x3 + (x1 x2 )2 + (x2 x3 )2 > 0 Questa condizione verificata per ogni vettore x 0.

Il teorema sar applicato nel Capitolo 3, 3.8, per assicurare lesistenza e lunicit della soluzione del sistema lineare da risolversi per determinare la funzione spline cubica interpolante.

Dipartimento di Matematica

94

M. Garetto Metodi Numerici

Esempio 66 La matrice simmetrica X, detta matrice di Pascal, ottenuta a partire dai coefficienti binomiali (collocati sulle diagonali) costituisce un esempio di matrice definita positiva; per n = 5 si ha 1 1 1 1 1 1 2 3 4 5 X = 1 3 6 10 15 1 4 10 20 35 1 5 15 35 70

Stabilire se una matrice definita positiva usando la definizione, come nellesempio 65, pu essere difficile, ma esistono criteri di verifica molto pi semplici, basati sugli autovalori (vedere 2.24, propriet pag. 118). Per una matrice A definita positiva si dimostra che i = 1,2,..., n ; aii > 0 A possiede inversa (ossia non singolare). Si noti per che il verificarsi di queste due condizioni per una matrice A non assicura che A sia definita positiva (ossia le condizioni non sono necessarie e sufficienti). Vale il seguente Teorema La matrice simmetrica A definita positiva se e solo se il sistema lineare Ax = b pu essere risolto con il metodo di eliminazione di Gauss senza pivoting. Inoltre in tal caso il metodo stabile rispetto agli errori di round-off.

2.21

Metodi iterativi

Il metodo di eliminazione di Gauss indicato quando il sistema lineare Ax = b ha dimensioni moderate. Quando la matrice dei coefficienti A di ordine elevato e sparsa, preferibile usare i metodi iterativi. Infatti in questo caso la matrice iniziale ha un numero di elementi non nulli molto minore di n2, ma il metodo di Gauss cambia le equazioni del sistema ad ogni passo, cosicch la matrice dei coefficienti pu diventare sempre meno sparsa e richiedere quindi la memorizzazione di un numero eccessivo di elementi. I metodi iterativi hanno invece la caratteristica di conservare la struttura della matrice dei coefficienti. Partendo da un'approssimazione iniziale x (0) , essi definiscono una successione di approssimazioni { x ( k ) } convergente, sotto opportune ipotesi, alla soluzione x del sistema lineare Ax = b. Si pone dunque il problema della scelta dell'approssimazione iniziale per avviare il calcolo delle iterate, e del criterio di arresto per arrestare il calcolo delle iterate successive. Un metodo iterativo deve essere arrestato dopo aver calcolato un numero finito di iterate successive; oltre agli errori di arrotondamento, si introduce quindi un errore di troncamento, dovuto all'arresto del calcolo dopo un numero finito di iterazioni. Un criterio di arresto comunemente adottato
x (k +1) x (k ) x (k +1)

dove una tolleranza prefissata. Questo test non sempre affidabile: ad esempio verificato nel caso in cui si generi una successione costante, diversa dalla soluzione. Quindi per costruire un buon algoritmo, il test di arresto va sempre associato ad un numero massimo di iterazioni consentite.

Universit di Torino

Capitolo 2 Algebra lineare numerica

95

2.22

Metodo iterativo di Jacobi

Scriviamo il sistema Ax = b in modo esplicito a11 x1 + a12 x2 + ... + a1n xn = b1 a 21 x1 + a 22 x2 + ... + a2 n x n = b2 ....................... a n1 x1 + a n 2 x2 + ... + ann x n = bn dove le equazioni sono ordinate in modo che aii 0 i = 1,2 ,..., n . Se questa condizione non fosse verificata, la si pu ottenere, purch A non sia singolare, scambiando le righe di A in modo che i nuovi elementi diagonali siano tutti non nulli; gli scambi devono essere fatti anche sul vettore b. Ricavando x1 dalla prima equazione, x2 dalla seconda e cos via, il sistema pu essere riscritto nella forma

bi xi =

i 1

j =1

aij x j aii

j =i +1

aij x j
i = 1,2,..., n

Data un'approssimazione iniziale x (0) della soluzione x, il metodo iterativo di Jacobi consiste nel calcolare le successive approssimazioni

(k +1) , x (k +1) ,..., x (k +1) x (k +1) = x1 n 2


bi aij x (k )
j =1 j i 1 n

k = 0 ,1,2 ,...

con la relazione

xi(k +1) =

j = i +1

aij x(jk )
, i = 1,2,..., n k = 0 ,1,2,...

aii

Il teorema seguente fornisce una condizione sufficiente per la convergenza del metodo di Jacobi.
Teorema. Condizione sufficiente per la convergenza del metodo di Jacobi, qualunque sia l'approssimazione iniziale x (0) , che la matrice A sia a diagonale strettamente dominante.
Esempio 67 Risolvere con il metodo di Jacobi il sistema lineare 4 x1 x2 + x3 = 7 4 x1 8 x2 + x3 = 21 2 x + x + 5 x = 15 1 2 3

Il metodo converge: infatti la matrice dei coefficienti 4 1 1 A = 4 8 1 2 1 5 a diagonale strettamente dominante. Ricaviamo x1 , x2 e x3 rispettivamente dalla prima, seconda e terza equazione del sistema

Dipartimento di Matematica

96

M. Garetto Metodi Numerici

7 + x 2 x3 x1 = 4 21 + 4 x1 + x3 x2 = 8 15 + 2 x1 x2 x3 = 5 La convergenza del metodo di Jacobi, nel caso in cui la diagonale di A sia strettamente dominante, non dipende dalla scelta dellapprossimazione iniziale; perci comodo scegliere come

Partendo dunque dall'approssimazione iniziale x (0 ) = (0,0,0)T si ottiene


(1) 7 x1 = 4 = 1.75 (1) 21 = 2.625 x 2 = 8 (1) 15 x 3 = 5 = 3 .0 Riapplicando il metodo si ottiene poi (2 ) 7 + 2.625 3 = 1.65625 x1 = 4 (2 ) 21 + 4 1.75 + 3 = 3.875 x 2 = 8 (2 ) 15 + 2 1.75 2.625 = 3.175 x 3 = 5 Ripetendo il procedimento si ottengono le iterate riportate nella tabella10 k 0 1 2 3 4 5 10 15 16

approssimazione iniziale il vettore nullo x (0 ) = (0,0,0)T .

(k ) x1
0.00000000000000 1.75000000000000 1.65625000000000 1.92500000000000 1.99062500000000 1.98710937500000 . 1.99998681640625 . 1.99999985168457 1.99999998146057

(k ) x2
0.00000000000000 2.62500000000000 3.87500000000000 3.85000000000000 3.94843750000000 3.99531250000000 . 3.99992749023437 . 3.99999970336914 3.99999989803314

(k ) x3
0.00000000000000 3.00000000000000 3.17500000000000 2.88750000000000 3.00000000000000 3.00656250000000 . 3.00000000000000 . 3.00000034606934 3.00000000000000

Dopo 16 iterazioni il metodo fornisce lapprossimazione (con 7 cifre significative) x (16 ) = (2.000000 , 4.000000 , 3.000000)T La soluzione esatta del sistema x = (2 ,4 ,3)T .

10

I risultati riportati nelle tabelle di questo esempio e degli esempi successivi sono stati ottenuti con Matlab, scegliendo come tolleranza per il criterio di arresto = 1.0E07. Universit di Torino

Capitolo 2 Algebra lineare numerica

97

Esempio 68 Applichiamo il metodo di Jacobi al sistema 2 x1 + x2 + 5 x3 = 15 4 x1 8 x2 + x3 = 21 4x x + x = 7 2 3 1

Questo sistema lo stesso dellesempio 67, ma le equazioni sono ordinate in modo diverso. Ricaviamo x1 , x2 e x3 rispettivamente dalla prima, seconda e terza equazione del sistema 15 + x2 + 5 x3 x1 = 2 21 + 4 x1 + x3 x2 = 8 7 4 x = x + x2 3 1

Partendo ancora dall'approssimazione iniziale x(0 ) = (0,0,0)T si ottiene (1) 15 x1 = 2 = 7.5 (1) 21 = x 2 = 8 x (1) = 7 4 + 2 = 5.00 3 Ripetendo il procedimento si ottengono le iterate riportate nella tabella k 0 1 2 3 4

(k ) x1
0.00000000000000 7.50000000000000 11.312500000000 84.8750000000000 97.2968750000000

(k ) x2
0.00000000000000 2.62500000000000 0.25000000000000 12.9062500000000 40.2500000000000

(k ) x3
0.00000000000000 7.00000000000000 37.0000000000000 38.5000000000000 319.593750000000

Il metodo chiaramente divergente: la condizione sufficiente di convergenza non verificata, perch la matrice dei coefficienti 2 1 5 A = 4 8 1 4 1 1 non a diagonale strettamente dominante, quindi la convergenza non assicurata: la condizione di convergenza solo sufficiente, perci il metodo potrebbe convergere anche se la matrice non a diagonale dominante (cosa che qui non accade). In questo esempio la convergenza pu essere facilmente garantita riordinando le equazioni in modo che la nuova matrice dei coefficienti sia a diagonale dominante: basta ordinarle nel modo visto nellesempio 67.

Dipartimento di Matematica

98

M. Garetto Metodi Numerici

Esempio 69 Risolvere il sistema lineare seguente con il metodo di Jacobi, facendo in modo che il metodo risulti convergente x1 + 4 x2 x3 = 3 4 x1 x2 = 1 x +3 x = 4 3 2

La matrice dei coefficienti 1 4 1 A = 4 1 0 0 1 3 non a diagonale strettamente dominante, perci il metodo di Jacobi potrebbe non convergere. Scambiando la prima equazione del sistema con la seconda si ottiene un nuovo sistema, equivalente al precedente, la cui matrice dei coefficienti a diagonale strettamente dominante. 4 x1 x2 = 1 4 1 0 A = 1 4 1 x1 + 4 x2 x3 = 3 0 1 x + 3 x = 4 3 3 2

Scegliendo come approssimazione iniziale il vettore nullo x (0 ) = (0,0,0)T si costruisce la seguente tabella di iterate k 0 1 2 3 4 5 . 10

x2 1 x1 = 4 3 + x1 + x3 x2 = 4 x = 4 x2 3 3

(k ) x1
0.00000000000000 0.25000000000000 0.06250000000000 0.00520833333333 0.00130208333333 0.00010850694444 . 0.00000001177376

(k ) x2
0.00000000000000 0.75000000000000 1.02083333333333 1.00520833333333 0.99956597222222 0.99989149305556 . 1.00000000392459

(k ) x3
0.00000000000000 1.33333333333333 1.08333333333333 0.99305555555556 0.99826388888889 1.00014467592593 . 1.00000001569834

Dopo 10 iterazioni il metodo fornisce lapprossimazione (con 7 cifre significative) x (16 ) = (0.000000 ,1.000000 ,1.000000)T La soluzione esatta del sistema x = (0 ,1 ,1)T .
Esempio 70 Risolvere con il metodo di Jacobi il sistema lineare 2 x1 x2 + 5 x3 = 5 x1 + 5 x2 x3 = 12 5 x 2 x + x = 0 2 3 1

Universit di Torino

Capitolo 2 Algebra lineare numerica

99

La matrice dei coefficienti 2 1 5 A = 1 5 1 5 2 1 non a diagonale strettamente dominante, perci non assicurata la convergenza del metodo. Scambiando la prima equazione con la terza si ottiene un sistema equivalente al precedente 5 x1 2 x2 + x3 = 0 x1 + 5 x2 x3 = 12 2 x x + 5 x = 5 3 1 2 la cui matrice dei coefficienti a diagonale strettamente dominante, perci il metodo di Jacobi applicato a questo sistema converge. Scegliendo come approssimazione iniziale il vettore nullo x (0 ) = (0,0,0)T e applicando il metodo di Jacobi si costruisce la seguente tabella di iterate
2 x 2 x3 x1 = 5 x1 + x3 12 x2 = 5 x1 + x 2 5 2 x = 3 5 k 0 1 2 3 4 5 . 10 . 16

(k ) x1
0.00000000000000 0.00000000000000 1.16000000000000 0.98400000000000 1.03040000000000 0.99552000000000 . 1.00002867200000 . 1.00000003486515

(k ) x2
0.00000000000000 2.40000000000000 2.20000000000000 2.06400000000000 1.99840000000000 1.99776000000000 . 2.00000081920000 . 1.99999999586468

(k ) x3
0.00000000000000 1.00000000000000 0.52000000000000 1.02400000000000 0.98080000000000 1.01248000000000 . 0.99996282880000 . 0.9999999517917

Dopo 16 iterazioni il metodo fornisce lapprossimazione (con 7 cifre significative) x (16 ) = (1.000000 , 2.000000 , 1.000000)T La soluzione esatta del sistema x = (1 ,2 ,1)T . Se si applica il metodo di Jacobi al sistema assegnato, senza scambiare le righe, non si ha la convergenza 5 + x2 5 x3 x1 = 2 12 x1 + x3 x2 = 5 x3 = 5 x1 + 2 x2

Dipartimento di Matematica

100

M. Garetto Metodi Numerici

k 0 1 2 3 4 5

(k ) x1
0.00000000000000 2.50000000000000 1.30000000000000 44.3000000000000 30.1900000000000 579.990000000000

(k ) x2
0.00000000000000 2.40000000000000 2.90000000000000 6.12000000000000 13.7200000000000 55.1860000000000

(k ) x3
0.00000000000000 0.00000000000000 17.3000000000000 12.3000000000000 233.740000000000 178.390000000000

Il metodo chiaramente divergente. Algoritmo Metodo iterativo di Jacobi Input: A matrice n n b vettore colonna n 1 itmax numero massimo di iterazioni consentite err tolleranza per il criterio di arresto (norma infinito)
bi
i 1

x (k +1) x (k ) err x (k +1)

xi(k +1) =

aij x(jk ) aij x(jk )


j =1 j = i +1

aii

i=1,2 ,...,n

k=0,1,2 ,....

Output: x vettore soluzione ind indicatore: ind = 0 la precisione richiesta stata raggiunta con un numero di iterazioni minore di itmax ind = 1 la precisione richiesta non stata raggiunta con itmax iterazioni Se la matrice dei coefficienti non a diagonale dominante (condizione sufficiente per la convergenza) lalgoritmo si arresta.

Nota: poich la condizione solo sufficiente, il metodo potrebbe convergere anche se la condizione non verificata.
Input {n,A,b,itmax,err} {controllo condizione di convergenza} condconv=1 For i=1 to n do s=0 For j=1 to n do s=s+abs(A(i,j)) end for If s2*abs(A(i,i)) then condconv=0 end if end for If condconv=0 then Output(matrice non a diagonale dominante) Stop end if

Universit di Torino

Capitolo 2 Algebra lineare numerica

101

{inizializzazione variabili} For j=1 to n do x(j)=0 newx(j)=0 diffx(j)=0 end for {metodo di Jacobi} For k=1 to itmax do For r=1 to n do sum=b(r) For c=1 to n do If c r then sum=sumA(r,c)*x(c) end if end for newx(r)=sum/A(r,r) end for For r=1 to n do diffx(r)=newx(r)x(r) {aggiornamento iterazioni} x(r)=newx(r) end for {controllo criterio di arresto} If diffx err* x then {condizione di arresto verificata - fine algoritmo} ind=0 Output {x,ind} Stop end if end for {numero massimo di iterazioni raggiunto - fine algoritmo} ind=1 Output {x,ind} End

2.23

Metodo iterativo di Gauss-Seidel

precedente x (k ) .

Nel metodo di Jacobi ogni singola componente di x (k +1) dipende unicamente dall'approssimazione

(k +1) , anzich utilizzare la precedente iterata x (k ) ; poi si pu utilizzare nella determinazione di x2 1

(k +1) , si pu gi utilizzare questo nuovo valore Si pu per osservare che, dopo aver calcolato x1 (k +1) e x (k +1) nel calcolo di x (k +1) , e cos via: in altre parole si possono utilizzare le nuove x1 2 3 componenti non appena sono disponibili. Questo procedimento rappresenta il metodo iterativo di Gauss-Seidel
xi(k +1) = bi

i 1

j =1

aij x (k +1)
j

j =i +1

aij x(jk )
, i = 1,2 ,..., n k = 0 ,1,2 ,...

aii

Dipartimento di Matematica

102

M. Garetto Metodi Numerici

Il teorema seguente fornisce una condizione sufficiente per la convergenza del metodo di GaussSeidel.

Teorema. Condizione sufficiente per la convergenza del metodo di Gauss-Seidel, qualunque sia l'approssimazione iniziale x (0) , che la matrice A sia a diagonale strettamente dominante.
La condizione per la convergenza uguale a quella del metodo di Jacobi. Poich la condizione solo sufficiente, entrambi i metodi possono convergere anche quando A non a diagonale strettamente dominante. La convergenza di uno dei due metodi non implica quella dell'altro. Tuttavia, se entrambi convergono, Gauss-Seidel converge di solito pi rapidamente. La convergenza del metodo di Jacobi, nel caso in cui la diagonale di A sia strettamente dominante, non dipende dalla scelta dellapprossimazione iniziale; perci comodo scegliere come approssimazione iniziale il vettore nullo x (0 ) = (0,0,0)T

Esempio 71 Consideriamo di nuovo il sistema dellesempio 67 4 x1 x2 + x3 = 7 4 x1 8 x 2 + x3 = 21 2 x + x + 5 x = 15 1 2 3 La matrice dei coefficienti a diagonale strettamente dominante, perci il metodo converge. Ricaviamo x1 , x2 e x3 rispettivamente dalla prima, seconda e terza equazione del sistema

Partendo dall'approssimazione iniziale x(0 ) = (0,0,0)T si ottiene (1) 7 x1 = 4 = 1.75 (1) 21 + 4 1.75 = 3 .5 x2 = 8 (1) 15 + 2 1.75 3.5 = 3 .0 x3 = 5 Riapplicando il metodo si ottiene (1) 7 + 3.5 3.0 = 1.875 x1 = 4 (1) 21 + 4 1.875 + 3.0 = 3.9375 x2 = 8 (1) 15 + 2 1.875 3.9375 = 2.9625 x3 = 5 Ripetendo il procedimento si ottiene la tabella seguente

7 + x 2 x3 x1 = 4 21 + 4 x1 + x3 x2 = 8 15 + 2 x1 x2 x3 = 5

Universit di Torino

Capitolo 2 Algebra lineare numerica

103

k 0 1 2 3 4 5 9

(k ) x1
0.00000000000000 1.75000000000000 1.87500000000000 1.99375000000000 1.99828125000000 1.99987890625000 1.99999996443024

(k ) x2
0.00000000000000 3.50000000000000 3.93750000000000 3.99218750000000 3.99902343750000 3.99987792968750 3.99999997019768

(k ) x3
0.00000000000000 3.00000000000000 2.96250000000000 2.99906250000000 2.99950781250000 2.99997597656250 2.99999999173256

Dopo 9 iterazioni il metodo fornisce lapprossimazione (con 7 cifre significative)

x (16 ) = (2.000000 , 4.000000 , 3.000000 )T

La soluzione esatta del sistema x = (2 ,4 ,3)T .


Esempio 72 Risolvere il sistema lineare 5 x1 x2 + x3 = 10 2 x1 + 8 x2 x3 = 11 x + x + 4 x = 3 2 3 1 con i metodi iterativi di Jacobi e Gauss-Seidel. La matrice dei coefficienti 5 1 1 A = 2 8 1 1 1 4 a diagonale strettamente dominante, perci entrambi i metodi convergono. Ricaviamo x1 , x2 e x3 rispettivamente dalla prima, seconda e terza equazione del sistema

Partendo dall'approssimazione iniziale x (0 ) = (0,0,0)T con il metodo di Jacobi si ottiene (1) 10 x1 = 5 = 2 (1) 11 x 2 = = 1.375 8 (1) 3 x3 = 4 = 0.75 (2 ) 10 + 1.375 0.75 = 2.125 x1 = 5 (2 ) 11 4 + 0.75 = 0.96875 x2 = 8 (2 ) 3 + 2 1.375 = 0.90625 x3 = 4

10 + x2 x3 x1 = 5 11 2 x 2 + x3 x2 = 8 3 + x1 x 2 x3 = 4

x (1) = (2 ,1.375,0.75)T

x (2 ) = (2.125, 0.96875, 0.90625)T

Dipartimento di Matematica

104

M. Garetto Metodi Numerici

Ripetendo il procedimento si ottiene la tabella seguente k 0 1 2 3 4 5 10 17

(k ) x1
0.00000000000000 2.00000000000000 2.12500000000000 2.01250000000000 1.98359375000000 1.99757812500000 2.00003113422394 1.99999996719624

(k ) x2
0.00000000000000 1.37500000000000 0.96875000000000 0.95703125000000 1.00175781250000 1.00583496093750 1.00001029353142 . 1.00000002472162

(k ) x3
0.00000000000000 0.75000000000000 0.90625000000000 1.03906250000000 1.01386718750000 0.99545898437500 0.99995753235817 1.00000000269355

Con il metodo di Gauss-Seidel si ottiene invece (1) 10 x1 = 5 = 2 (1) 11 4 = 0.875 x2 = 8 (1) 3 + 2 0.875 = 1.03125 x3 = 4

x (2 ) = (1.96875, 1.0117188, 0.98925780 )T Ripetendo il procedimento si ottiene la tabella seguente


k 0 1 2 3 4 5 10

x(1) = (2,0.875,1.03125)T (2 ) 10 + 0.875 1.03125 = 1.96875 x1 = 5 (2 ) 11 2 1.96875 + 1.03125 = 1.0117188 x2 = 8 (2 ) 3 + 1.96875 1.01172 = 0.98925780 x3 = 4

(k ) x1
0.00000000000000 2.00000000000000 1.96875000000000 2.00449218750000 1.99915893554688 2.00014897918701 1.99999997279568

(k ) x2
0.00000000000000 0.87500000000000 1.01171875000000 0.99753417968750 1.00042770385742 0.99992310619354 1.00000001400703

(k ) x3
0.00000000000000 1.03125000000000 0.98925781250000 1.00173950195313 0.99968280792236 1.00005646824837 0.99999998969716

La soluzione esatta del sistema x = (2,1,1)T . Si noti che, a parit di tolleranza = 1.0E07, la convergenza con il metodo di Jacobi si ottiene con 17 iterazioni, mentre con il metodo di Gauss-Seidel ne bastano 10: entrambi i metodi convergono e il metodo di Gauss-Seidel converge pi rapidamente.

Universit di Torino

Capitolo 2 Algebra lineare numerica

105

Esempio 73 Risolvere il sistema lineare x4 = 5 4 x1 4 x2 x3 = 10 = 10 x2 + 4 x3 + 4 x4 = 5 x1 con i metodi iterativi di Jacobi e Gauss-Seidel. La matrice dei coefficienti (sparsa strutturata) 4 0 0 1 0 4 1 0 A= 0 1 4 0 1 0 0 4 a diagonale strettamente dominante, perci entrambi i metodi convergono. Ricaviamo x1 , x2 , x3 e x4 rispettivamente dalla prima, seconda, terza e quarta equazione

Partendo dall'approssimazione iniziale x (0 ) = (0,0,0)T con il metodo di Jacobi si ottiene k 0 1 2 3 4 5 . 13

5 + x4 x1 = 4 x = 10 + x3 2 4 10 + x2 x = 3 4 5 + x1 x4 = 4

(k ) x1
0.00000000000000 1.25000000000000 0.93750000000000 1.01562500000000 0.99609375000000 1.00097656250000 . 1.00000001490116

(k ) x2
0.00000000000000 2.50000000000000 1.87500000000000 2.03125000000000 1.99218750000000 2.00195312500000 . 2.00000002980232

(k ) x3
0.00000000000000 2.50000000000000 1.87500000000000 2.03125000000000 1.99218750000000 2.00195312500000 . 2.00000002980232

(k ) x4
0.00000000000000 1.25000000000000 0.93750000000000 1.01562500000000 0.99609375000000 1.00097656250000 . 1.00000001490116

Con il metodo di Gauss-Seidel si ottiene invece k 0 1 2 3 4 5 8

(k ) x1
0.00000000000000 1.25000000000000 1.01562500000000 1.00097656250000 1.00006103515625 1.00000381469727 1.00000000093132

(k ) x2
0.00000000000000 2.50000000000000 2.03125000000000 2.00195312500000 2.00012207031250 2.00000762939453 2.00000000186265

(k ) x3

(k ) x4

0.00000000000000 0.00000000000000 1.87500000000000 0.93750000000000 1.99218750000000 0.99609375000000 1.99951171875000 0.99975585937500 1.99996948242188 0.99998474121094 1.99999809265137 0.99999904632568 1.99999999953434 0.99999999976717

Dipartimento di Matematica

106

M. Garetto Metodi Numerici

Il confronto fra i risultati ottenuti con i due metodi mette in rilievo la convergenza pi rapida del secondo metodo.
Esempio 74 Risolvere con i metodi iterativi di Jacobi e Gauss Seidel il sistema lineare x3 + 4 x4 = 2 =5 x1 + 4 x 2 x3 x2 + 4 x3 x 4 = 5 =2 4 x1 x2 La matrice dei coefficienti (sparsa strutturata) 0 0 1 4 1 4 1 0 A= 0 1 4 1 4 1 0 0 non a diagonale strettamente dominante, perci entrambi i metodi potrebbero non convergere. Scambiando la prima equazione con lultima, la matrice diventa a diagonale strettamente dominante ed entrambi i metodi convergono. =2 4 x1 x2 =5 x1 + 4 x 2 x3 x2 + 4 x3 x 4 = 5 x3 + 4 x 4 = 2 2 + x2 x1 = 4 x = 5 + x1 + x3 2 4 x = 5 + x2 + x4 3 4 2 + x3 x4 = 4

Partendo dall'approssimazione iniziale x (0 ) = (0,0,0)T con il metodo di Jacobi si ottiene k 0 1 2 3 4 5 10 19

(k ) x1
0.00000000000000 0.50000000000000 0.81250000000000 0.92187500000000 0.96875000000000 0.98730468750000

(k ) x2
0.00000000000000 1.25000000000000 1.68750000000000 1.87500000000000 1.94921875000000 1.97949218750000

(k ) x3
0.00000000000000 1.25000000000000 1.68750000000000 1.87500000000000 1.94921875000000 1.97949218750000

(k ) x4
0.00000000000000 0.50000000000000 0.81250000000000 0.92187500000000 0.96875000000000 0.98730468750000

0.99986267089844

1.99977779388428

1.99977779388428

0.99986267089844

0.99999996017868

1.99999993556776

1.99999993556776

0.99999996017868

Universit di Torino

Capitolo 2 Algebra lineare numerica

107

Con il metodo di Gauss-Seidel si ottiene invece k 0 1 2 3 4 5 11

(k ) x1
0.00000000000000 0.50000000000000 0.84375000000000 0.96484375000000 0.99401855468750 0.99901580810547 0.99999998109297

(k ) x2
0.00000000000000 1.37500000000000 1.85937500000000 1.97607421875000 1.99606323242188 1.99935531616211 1.99999998762519

(k ) x3
0.00000000000000 1.59375000000000 1.93945312500000 1.99023437500000 1.99840545654297 1.99973917007446 1.99999999499428

(k ) x4
0.00000000000000 0.89843750000000 0.98486328125000 0.99755859375000 0.99960136413574 0.99993479251862 0.99999999874857

Nel metodo di Gauss-Seidel, che converge pi rapidamente, la prima componente della soluzione la meno accurata. In generale con questo metodo le prime componenti sono meno accurate, perch utilizzano literata precedente, non essendoci nuove approssimazioni gi disponibili. Algoritmo Metodo iterativo di Gauss-Seidel Input: A matrice n n b vettore colonna n 1 itmax numero massimo di iterazioni consentite err tolleranza per il criterio di arresto (norma infinito) bi
i 1 j =1

x (k +1) x (k ) err x (k +1)

xi(k +1) =

aij x (jk +1) aii

j = i +1

aij x(jk )
i=1,2,...,n k=0,1,2,....

Output: x vettore soluzione ind indicatore: ind=0 la precisione richiesta stata raggiunta con un numero di iterazioni minore di itmax ind=1 la precisione richiesta non stata raggiunta con itmax iterazioni Se la matrice dei coefficienti non a diagonale dominante (condizione sufficiente per la convergenza) lalgoritmo si arresta.

Nota: poich la condizione solo sufficiente, il metodo potrebbe convergere anche se la condizione non verificata.
Input {n,A,b,itmax,err} {controllo condizione di convergenza} condconv=1 For i=1 to n do s=0 For j=1 to n do s=s+abs(A(i,j)) end for If s 2*abs(A(i,i)) then condconv=0 end if end for

Dipartimento di Matematica

108

M. Garetto Metodi Numerici

condconv=0 then Output(matrice non a diagonale dominante) Stop end if {inizializzazione variabili} For j=1 to n do x(j)=0 oldx(j)=0 diffx(j)=0 end for {metodo di Gauss-Seidel} For k=1 to itmax do For r = 1 to n do sum=b(r) For c = 1 to n do If c r then sum=sumA(r,c)*x(c) end if end for x(r)=sum/A(r,r) end for For r = 1 to n do diffx(r)=x(r)oldx(r) {aggiornamento iterazioni} oldx(r)=x(r) end for {controllo criterio di arresto} If diffx err* x then
If

{condizione di arresto verificata - fine algoritmo} ind=0 Output {x,ind} Stop end if end for {numero massimo di iterazioni raggiunto - fine algoritmo} ind=1 Output {x,ind} End

2.24

Autovalori e autovettori

In molte applicazioni dellalgebra lineare si trattano sistemi lineari di n equazioni in n incognite della forma Ax = x, dove A una matrice quadrata di ordine n, x un vettore di n elementi e uno scalare, che pu essere reale o complesso. Sistemi di questo tipo sono in effetti sistemi omogenei, dal momento che possono essere riscritti nella forma x Ax = 0 o ancora, introducendo la matrice identit I, come (I A)x = 0

Universit di Torino

Capitolo 2 Algebra lineare numerica

109

Esempio 75 Il sistema lineare x1 + 3x2 = x1 4 x1 + 2 x2 = x2

in forma matriciale x1 1 3 x1 4 2 x = x 2 2 della forma Ax = x, con x1 1 3 x= A= 4 2 x . 2 Il sistema pu essere riscritto come x1 1 3 x1 0 = x 2 4 2 x2 0


1 0 x1 1 3 x1 0 0 1 = x2 4 2 x2 0

o ancora
1 3 x1 0 4 2 = x2 0 che della forma (I A)x = 0 con 1 3 I A = 4 2

Il primo problema determinare quei valori di per cui il sistema omogeneo ha soluzioni non banali; tali valori si chiamano autovalori di A. Se un autovalore di A, allora le soluzioni non banali del sistema si chiamano autovettori di A corrispondenti a . Il sistema omogeneo (I A)x = 0 ha soluzione non banale se e solo se A I una matrice singolare ossia se e solo se det (I A ) = 0 . Questa detta equazione caratteristica di A; gli autovalori di A si possono trovare risolvendo lequazione rispetto a .
Esempio 76 Il vettore

1 x= 2 un autovettore della matrice 3 0 A= 8 1


corrispondente allautovalore = 3. Infatti 3 0 1 3 Ax = 8 1 = = 3x 2 6 Riassumendo, sia A una matrice quadrata di ordine n e x un vettore di n elementi; valgono le seguenti definizioni

Dipartimento di Matematica

110

M. Garetto Metodi Numerici

Definizioni Un numero reale o complesso, detto autovalore di una matrice quadrata A quando esiste un vettore x, reale o complesso, non nullo, tale che Ax = x Il vettore x l'autovettore di A corrispondente all'autovalore . L'equazione caratteristica di A lequazione det(I A) = 0
Il determinante det(I A) ha la forma a11 a12 ... a1n a21 a22 ... a2n ... ... ... ... an1 an 2 ... ann Si pu dimostrare facilmente che il determinante det(I A) un polinomio di grado n nella n variabile , e il coefficiente di uguale a 1, ossia P() = det(I A) = n + c1n 1 + c2n 2 + ... + cn

Definizione Il polinomio P() = det(I A) detto polinomio caratteristico. Gli autovalori di A sono le radici dell'equazione caratteristica det(I A) = 0
Dal teorema fondamentale dell'algebra segue che lequazione caratteristica ha nel campo complesso n radici, fra reali e complesse, tenendo conto della loro molteplicit. Pertanto una matrice di ordine n ha n autovalori nel campo complesso. Gli autovettori sono determinati a meno di un fattore moltiplicativo 0, ossia se x un autovettore di A anche x un autovettore di A, corrispondente allo stesso autovalore; infatti A(x ) = (Ax ) = (x ) = (x ) .
Esempio 77 Data la matrice

1 3 A= 3 1 il polinomio caratteristico

1 3 = ( 1)2 9 = 2 2 8 3 1 L'equazione caratteristica corrispondente 2 2 8 = 0 ed ha come radici (autovalori di A) 1 = 2 e 2 = 4 . L'autovettore corrispondente a 1 = 2 si calcola risolvendo il sistema (1I A )x = 0 che in questo caso 3 x1 0 2 1 3 = 2 1 x2 0 P( ) = det(I A) =

Universit di Torino

Capitolo 2 Algebra lineare numerica

111

3 3 x1 0 3 3 = x 2 0

Dallequazione
3x1 3x2 = 0

x2 = x1 con x1 arbitrario. Pertanto qualunque vettore del tipo 1 x= 1


con 0 costante arbitraria, autovettore di A corrispondente all'autovalore 1 = 2. Analogamente lautovettore corrispondente all'autovalore 2 = 4 si calcola risolvendo il sistema
4 1 3 x1 0 3 4 1 = x2 0 3 3 x1 0 3 3 = x2 0 e si ottiene che qualunque vettore del tipo 1 x= 1 con 0 costante arbitraria, autovettore di A corrispondente a 2 = 4.
Esempio 78 Determinare gli autovalori e i corrispondenti autovettori della matrice

si ha

1 1 1 A = 0 3 3 2 1 1
1 1 1 I A = 0 3 3 2 1 1 Polinomio caratteristico P() = det(I A) = ( 1)[( 3)( 1) 3] + 2[3 + ( 3)] = ( 3)( 2 ) Equazione caratteristica ( 3)( 2 ) = 0 Autovalori 1 = 0 2 = 3 3 = 2 Autovettori Autovalore 1 = 0 (1I A )x = 0 1 1 1 x1 0 0 3 3 x2 = 0 2 1 1 x 0 3

Dipartimento di Matematica

112

M. Garetto Metodi Numerici

x1 + x2 + x3 = 0 3 x2 + 3 x3 = 0 2 x x x = 0 1 2 3 x2 = x3 x1 = 0

con x3 arbitrario

Lautovettore corrispondente a 1 = 0 0 0 costante arbitraria x = 1 1 Autovalore 2 = 3 ( 2 I A )x = 0

2 1 1 x1 0 0 0 3 x2 = 0 2 1 2 x 0 3 2 x1 x2 x3 = 0 3 x3 = 0 2 x x + 2 x = 0 3 1 2 x3 = 0 x2 = 2 x1 con x1 arbitrario Lautovettore corrispondente a 2 = 3 1 0 costante arbitraria x = 2 0 Autovalore 3 = 2 (3I A )x = 0 1 1 1 x1 0 0 1 3 x2 = 0 2 1 1 x 0 3 x1 x2 x3 = 0 x2 + 3 x3 = 0 2 x x + x = 0 3 1 2 x2 = 3 x3 x1 = 2 x3

con x3 arbitrario

Lautovettore corrispondente a 3 = 2 2 0 costante arbitraria x = 3 1


Esempio 79 Determinare gli autovalori e i corrispondenti autovettori della matrice 1 0 0 A = 0 0 1 4 17 8
Universit di Torino

Capitolo 2 Algebra lineare numerica

113

0 1 I A = 0 1 4 17 8 Polinomio caratteristico P() = det(I A) = [( 8) + 17 ] 4 = 3 82 + 17 4 Equazione caratteristica 3 82 + 17 4 = 0 Le eventuali soluzioni intere di questa equazione (a coefficienti interi) vanno cercate fra i divisori del termine noto 4, ossia le sole possibili soluzioni intere sono i numeri 1, 2, 4. Sostituendo questi valori direttamente nellequazione si trova che = 4 una soluzione e lequazione caratteristica pu essere riscritta nella forma ( 4) 2 4 + 1 = 0 Gli autovalori sono 1 = 4 2 = 2 + 3 3 = 2 3 . Autovettori Autovalore 1 = 4 (1I A )x = 0

4 1 0 x1 0 4 1 x2 = 0 0 4 17 4 x 0 3 4 x1 x2 = 0 4 x2 x3 = 0 4 x + 17 x 4 x = 0 1 2 3 1 1 x3 x2 = x3 con x3 arbitrario 16 4 Lautovettore corrispondente a 1 = 4 1 16 1 x = 0 costante arbitraria 4 1 x1 =


Autovalore 2 = 2 + 3 ( 2 I A )x = 0

x1 0 2 + 3 0 1 0 2+ 3 1 x2 = 0 4 17 x 0 6 + 3 3 2 + 3 x1 x2 = 0 2 + 3 x2 x3 = 0 4 x1 + 17 x2 + 6 + 3 x3 = 0

( (

) )

x1 = 2 3 x3
Dipartimento di Matematica

)2

x2 = 2 3 x3

con x3 arbitrario

114

M. Garetto Metodi Numerici

Lautovettore corrispondente a 2 = 2 + 3 2 3 2 x = 2 3 0 1

costante arbitraria

Autovalore 2 = 2 3 (3I A )x = 0 x1 0 2 3 1 0 0 2 3 1 x2 = 0 4 x 0 17 6 3 3 2 3 x1 x2 = 0 2 3 x2 x3 = 0 4 x1 + 17 x2 + 6 3 x3 = 0

( (

) )

x2 = 2 + 3 x3 Lautovettore corrispondente a 2 = 2 3 2+ 3 2 x = 2+ 3 1

x1 = 2 + 3 x3

)2

con x3 arbitrario

costante arbitraria

Dal momento che gli autovalori sono gli zeri di un polinomio, essi sono spesso dei numeri complessi, anche quando gli elementi della matrice A sono numeri reali; quando ci accade gli autovettori hanno elementi complessi. Il seguente esempio illustra questo caso.
Esempio 80 Determinare gli autovalori e i corrispondenti autovettori della matrice 1 0 2 A = 0 1 1 1 1 1

2 1 0 I A = 0 1 1 1 1 1 Polinomio caratteristico P() = det(I A) = ( 1)[( 1)( 1) + 1] + 2( 1) = ( 1) 2 2 + 4 Equazione caratteristica ( 1) 2 2 + 4 = 0 Autovalori 1 = 1 2 = 1 + 3i 3 = 1 3i

Universit di Torino

Capitolo 2 Algebra lineare numerica

115

Autovettori Autovalore 1 = 1 (1I A )x = 0 0 0 2 x1 0 1 x2 = 0 0 0 1 1 0 x 0 3 2 x3 = 0 x3 = 0 x x = 0 1 2 x2 = x1 x3 = 0 con x1 arbitrario Lautovettore corrispondente a 1 = 1 1 0 costante arbitraria x = 1 0 Autovalore 2 = 1 + 3i ( 2 I A )x = 0
1 + 3i 1 x1 0 0 2 x2 = 0 0 1 + 3i 1 1 1 1 + 3i 1 1 x 0 3

3i 0 1

0 3i 1

2 x 0 1 1 x2 = 0 3i x 0 3

2 3 ix3 x1 = 3ix1 2 x3 = 0 3 3 ix3 3ix2 + x3 = 0 x2 = 3 x x + 3ix3 = 0 x3 arbitrario 1 2 Lautovettore corrispondente a 2 = 1 + 3i 2 3 i 3 3 i 0 costante arbitraria x = 3 1 Autovalore 3 = 1 3i (3I A )x = 0

Dipartimento di Matematica

116

M. Garetto Metodi Numerici

1 3i 1 x1 0 0 2 x2 = 0 0 1 3i 1 1 1 1 3i 1 x 0 1 3

3i 0 x 0 2 1 0 1 x2 = 0 3i 1 x 0 1 3i 3 2 3 ix3 x1 = 3ix1 + 2 x3 = 0 3 3 ix3 3ix2 + x3 = 0 x2 = 3 x x 3ix3 = 0 x3 arbitrario 1 2 Lautovettore corrispondente a 2 = 1 3i 2 3 i 3 3 i x = 3 1

0 costante arbitraria

Autovalori di una matrice triangolare a11 a12 ... a1n 0 a22 ... a2n A = ... ... ... ... 0 0 ... ann a11 a12 ... a1n a22 ... a2n 0 = ( a11 )( a22 )...( ann ) det (I A ) = det ... ... ... ... 0 ... ann 0 (si ricordi che il determinante di una matrice triangolare uguale al prodotto degli elementi della diagonale principale). Equazione caratteristica ( a11 )( a22 )...( ann ) = 0 Autovalori = a11 , = a22 , ..., = ann Lo stesso accade per una matrice triangolare inferiore e per una matrice diagonale; vale quindi la Propriet Se una matrice di ordine n triangolare inferiore o superiore o diagonale, allora gli autovalori sono uguali agli elementi della diagonale principale di A.

Universit di Torino

Capitolo 2 Algebra lineare numerica

117

Esempio 81

1 0 0 2 2 A = 1 0 3 1 5 8 4 Autovalori 1 = 1 , 2 2 = 2 , 3 3 = 1 4

Riassumendo quanto illustrato dagli esempi precedenti, se A una matrice quadrata di ordine n, e uno scalare, reale o complesso, le seguenti affermazioni sono equivalenti un autovalore di A; il sistema di equazioni (I A)x = 0 ha soluzioni non banali; c un vettore non nullo x tale che Ax = x; una soluzione dellequazione caratteristica det(I A) = 0. Sia A una matrice quadrata di ordine n e un suo autovalore. Si possono dimostrare numerose propriet, alcune delle quali sono qui elencate.
Propriet 1.

Se un autovalore di A e x il corrispondente autovettore, allora


1

1 autovalore della
k k

matrice inversa A e x lautovettore corrispondente.


2. Se un autovalore di A e x il corrispondente autovettore, allora autovalore di A , k= 2,3,... , e x lautovettore corrispondente. 3.

La matrice A e la trasposta A hanno gli stessi autovalori.

Esempio 82 La matrice

1 3 A= 3 1 ha gli autovalori (Esempio 77) 1 = 2 2 = 4 La matrice inversa (propriet 5, pag. 44) 1 3 1 A = 8 8 3 1 8 8 I suoi autovalori sono 1 1 1 = 2 = . 2 4 1 Gli autovettori di A sono uguali agli autovettori di A (Esempio 77). 4 Gli autovalori della matrice A sono 1 = ( 2)4 = 16 2 = 4 4 = 256 .

Dipartimento di Matematica

118

M. Garetto Metodi Numerici

Definizione Sia A una matrice quadrata di ordine n; la traccia di A definita come la somma degli elementi diagonali di A

tr (A) =

aii
i =1

Si pu dimostrare che

i =1

i = tr(A)

i = det(A)
i =1

Valgono le ulteriori
Propriet 4. A singolare se e solo se = 0 un autovalore di A. 5. Autovettori corrispondenti ad autovalori distinti sono linearmente indipendenti. 6. Se A simmetrica, allora tutti gli autovalori sono reali e gli autovettori sono ortogonali. 7. Una matrice simmetrica definita positiva se e solo se tutti gli autovalori sono positivi.
Esempio 83 La matrice (Esempio 78)

1 1 1 A = 0 3 3 2 1 1
ha gli autovalori

1 = 0 2 = 3 3 = 2 Il determinante della matrice nullo, perci la matrice singolare: fra i suoi autovalori c 1 = 0 .
Esempio 84 Stabilire se la matrice 2 0 1 A = 0 2 0 1 0 2 definita positiva. La matrice simmetrica; inoltre

0 1 2 2 0 = ( 2) 2 4 + 3 det(I A) = det 0 1 0 2

Gli autovalori sono 1 = 2, 2 = 1, 3 = 3 La matrice definita positiva perch gli autovalori sono tutti positivi.
Esempio 85 Stabilire se la matrice 1 1 1 A = 1 1 0 1 0 1 definita positiva.
Universit di Torino

Capitolo 2 Algebra lineare numerica

119

La matrice simmetrica; inoltre 1 1 1 0 = ( 1) 2 2 1 det(I A) = det 1 1 1 0 1 Gli autovalori sono 1 = 1 2 = 1 2 3 = 1 + 2 La matrice non definita positiva perch gli autovalori non sono tutti positivi.

Definizioni L'insieme degli autovalori di A costituisce lo spettro di A. La molteplicit dellautovalore come radice dell'equazione caratteristica detta molteplicit algebrica di ed indicata con () . Il raggio spettrale di una matrice quadrata A definito come il modulo massimo degli autovalori di A (A) = max { | i |: i autovalore di A}
1 i n

Ricordiamo che la norma 2 di una matrice A data da


|| A ||2 = AT A Pertanto se A simmetrica si ha || A ||2 = (A) In generale, per ogni norma di A, si dimostra che (A) || A || Esempio 86 3 1 A= 2 2

det(I A) = ( 3)( 2) + 2 = 2 5 + 8 Autovalori

1 3 I A = 2 2

2 5 + 8 = 0 Raggio spettrale
(A ) = 1 = 2 =

5 25 32 5 i 7 = . 2 2

25 7 + = 2 2 2.83 4 4

Norme di A
A1=5 A =4

Calcolo della norma A 2 3 2 T T A A= A = 1 2 13 1 T I A A = 1 5


Autovalori

13 1 1 5

det(I A) = ( 13)( 5) 1 = 2 18 + 64

2 18 + 64 = 0
Dipartimento di Matematica

= 9 17 .

120

M. Garetto Metodi Numerici

Raggio spettrale

AT A = 9 + 17

A 2 = ( AT A ) = 9 + 17 3.62 E quindi verificata la propriet (A) ||A|| .

2.25

Localizzazione degli autovalori

Molti fra i metodi per approssimare gli autovalori di una matrice sono di tipo iterativo e necessitano di unapprossimazione iniziale degli autovalori per iniziare il calcolo delle successive approssimazioni; quindi utile poter determinare regioni del piano complesso in cui si trovano gli autovalori di una matrice A. Per questa ragione importante il seguente
Teorema di Gerschgorin Sia data la matrice A di ordine n, e con Ri , i=1,2,...,n si indichi il cerchio del piano complesso di centro aii e raggio ri

ri =

aij
j =1 j i
n

Ri = {z C : z aii ri }

Gli autovalori di A cadono nel dominio R


R=

U Ri .
i =1

Inoltre lunione di k di questi cerchi che non interseca i rimanenti n k cerchi contiene k autovalori (contati con la loro molteplicit). T Il teorema vale anche per la matrice A che ha gli stessi autovalori di A. Sia quindi Si , i=1,2,...,n il cerchio del piano complesso di centro aii e raggio si
si =

a ji
j =1 j i

Si = {z C : z aii si }

Gli autovalori di A appartengono anche al dominio S


S=

U Si
i =1

Allora gli autovalori di A appartengono all'insieme intersezione R S . Se i cerchi sono disgiunti, ogni autovalore cade in un cerchio. Quando la matrice A simmetrica, sufficiente considerare l'intersezione della regione R (o della T regione S, poich A = A ) con l'asse reale, perch gli autovalori sono reali; in questo caso individueremo dei segmenti dellasse reale contenenti gli autovalori.
Esempio 87 Applichiamo il teorema di Gerschgorin alla matrice 4 1 1 0 0 1 3 1 0 0 A = 0 1 1 0 0 0 2 1 0 0 0 1 8 0 0
Universit di Torino

Capitolo 2 Algebra lineare numerica

121

i cui autovalori sono 1 = 5 + 10


2 = 3 = 3 4 = 2 5 = 5 10 Tutti gli autovalori appartengono all'insieme R unione dei cerchi seguenti R1 = {z C : z 4 2}

R2 = {z C : z 3 2} R4 = {z C : z 2 1} R5 = {z C : z 8 1} R3 = {z C : z 1 1}

Figura 1

La regione R formata da due componenti: una lunione di quattro cerchi e ad essa appartengono quattro autovalori; laltra formata da un solo cerchio e quindi contiene un autovalore. Tutti gli autovalori appartengono anche all'insieme S unione dei cerchi seguenti S1 = {z C : z 4 1}

S 2 = {z C : z 3 2} S3 = {z C : z 1 2}

S 4 = {z C : z 2 1}

S5 = {z C : z 8 < 1}

Figura 2

Dipartimento di Matematica

122

M. Garetto Metodi Numerici

La regione C ha due componenti: la prima contiene quattro autovalori, la seconda uno. Pertanto tutti gli autovalori appartengono all'insieme intersezione R S.

Figura 3

Esempio 88 Localizzare gli autovalori della matrice 15 2 2 A = 1 10 3 2 1 0 Si ha ||A||1 = 18 (A) 18 . ||A|| = 19 Tutti gli autovalori appartengono all'insieme R unione dei cerchi seguenti R1 = {z C : z 15 4}

R3 = {z C : z 3}

R2 = {z C : z 10 4}

Figura 4

La regione R formata da due componenti: una lunione di due cerchi e in essa ci sono due autovalori; laltra formata da un solo cerchio e quindi contiene un autovalore. Tutti gli autovalori appartengono anche all'insieme S unione dei cerchi seguenti S1 = {z C : z 15 3}

S3 = {z C : z 5}

S 2 = {z C : z 10 3}

Universit di Torino

Capitolo 2 Algebra lineare numerica

123

Figura 5

La regione S ha due componenti: la prima contiene due autovalori, la seconda uno. Pertanto tutti gli autovalori appartengono all'insieme intersezione R C.

Figura 6

Un autovalore contenuto in R3 ; gli altri due appartengono a S1S2 . I due autovalori contenuti in S1S2 possono essere reali o complessi e hanno modulo compreso fra 7 e 18. Lautovalore contenuto in R3 reale: infatti se avesse parte immaginaria non nulla, anche il suo complesso coniugato dovrebbe essere un autovalore di A, essendo radice di un polinomio a coefficienti reali.
Esempio 89 Localizzare gli autovalori della matrice 2 1 0 A = 1 3 1 1 0 1 Si ha ||A||1 = 4 ||A|| = 5

(A) 4 .

Tutti gli autovalori appartengono all'insieme R unione dei cerchi seguenti R1 = {z C : z 2 1}

R2 = {z C : z 3 2} R3 = {z C : z 1 1}

Dipartimento di Matematica

124

M. Garetto Metodi Numerici

Figura 7

Tutti gli autovalori appartengono anche all'insieme S unione dei cerchi seguenti S1 = {z C : z 2 2}

S 2 = {z C : z 3 1} S3 = {z C : z 1 1}

Figura 8

Pertanto tutti gli autovalori appartengono all'insieme intersezione R S.

Figura 9

Universit di Torino

Capitolo 2 Algebra lineare numerica

125

Esempio 90 Localizzare gli autovalori della matrice 4 1 2 A = 1 3 1 2 1 10

La matrice simmetrica, perci gli autovalori sono tutti reali. Si ha (A) 13 . ||A|| = ||A||1 = 13 Tutti gli autovalori appartengono all'insieme R unione dei cerchi seguenti R1 = {z C : z 4 3}

R3 = {z C : z 10 3} I cerchi Si coincidono con i cerchi Ri perch la matrice simmetrica.

R2 = {z C : z 3 2}

Figura 10

Il pi grande degli autovalori compreso fra 7 e 13.

2.26

Metodi numerici per il calcolo degli autovalori

La determinazione degli autovalori di una matrice come radici dell'equazione caratteristica in genere sconsigliabile sia per lelevato costo computazionale, sia perch gli errori di arrotondamento, generati nel calcolo dei coefficienti di P(), possono indurre grossi errori nel calcolo degli zeri del polinomio11. Ad esempio, data una matrice A simmetrica con autovalori 1 = 1, 2 = 2, ...,20 = 20 , determinare questi ultimi come radici dellequazione caratteristica significa trasformare un problema ben condizionato (la determinazione degli autovalori di una matrice simmetrica) in uno mal condizionato (il calcolo degli zeri di un polinomio di grado elevato). Fra i diversi metodi numerici per calcolare gli autovalori e gli autovettori di una matrice, alcuni hanno carattere generale e sono convenientemente applicabili a matrici dense e senza struttura, altri utilizzano in modo specifico eventuali propriet di struttura o sparsit della matrice, permettendo cos di trattare anche problemi con dimensioni molto elevate. Alcuni dei metodi possono essere utilizzati per calcolare tutti gli autovalori e autovettori di una matrice, altri invece servono per calcolare solo alcuni autovalori, per esempio quelli pi grandi in modulo, ed i corrispondenti autovettori, come richiesto in molte applicazioni.
11

Il calcolo degli zeri di un polinomio di grado elevato un problema mal condizionato (1.10, pag. 24).

Dipartimento di Matematica

126

M. Garetto Metodi Numerici

Per scegliere un metodo numerico efficiente e adatto al problema da risolvere, conviene dare dapprima una risposta alle seguenti domande richiesto solo lautovalore pi grande in modulo, o il pi piccolo, e il corrispondente autovettore? sono richiesti tutti gli autovalori e autovettori, oppure solo gli autovalori? la matrice ha propriet speciali (simmetrica, tridiagonale, sparsa)? Come esempio di metodo per il calcolo degli autovalori descriviamo il metodo delle potenze, utile per calcolare unapprossimazione dellautovalore di modulo massimo e del corrispondente autovettore.

2.27

Metodo delle potenze

Il metodo delle potenze un metodo iterativo per il calcolo dell'autovalore di modulo massimo e corrispondente autovettore di una matrice A.
Definizioni Si definisce autovalore dominante 1 di una matrice A lautovalore di modulo massimo; lautovettore corrispondente a 1 detto autovettore dominante. Un autovettore v detto normalizzato se ||v||=1.

Siano 1 , 2 ,..., n gli autovalori di una matrice A di ordine n (non singolare) tali che 1 > 2 .... n ossia lautovalore dominante ha molteplicit 1; sia v lunico autovettore corrispondente a 1 normalizzato in una data norma vettoriale (di solito si usa la norma infinito) ||v||=1 Allora v e |1| possono essere trovati con il seguente procedimento iterativo detto metodo delle potenze.
Teorema (Metodo delle potenze) A partire da un opportuno vettore iniziale v0, ||v0|| = 1

v 0 = (1,1,...,1)T si generi in modo ricorsivo la successione {vk} cos definita


u k = Av k 1 k=1,2,... 1 v k = c u k k dove ck uno scalare tale che v k = 1 . Usando la norma infinito, ck la componente di modulo massimo di u k . Si dimostra che le successioni {ck } e {v k } convergono rispettivamente allautovalore dominante 1 e al corrispondente autovettore normalizzato v
k

lim v k = v

lim ck = 1

Come criterio di arresto del procedimento iterativo si assume la condizione seguente ck +1 ck ck +1 dove una tolleranza prefissata.

Universit di Torino

Capitolo 2 Algebra lineare numerica

127

Esempio 91 Approssimare lautovalore di modulo massimo e il corrispondente autovettore della matrice 5 4 A= 3 3 Risolvendo lequazione caratteristica si trovano gli autovalori 1 = 3 2 = 1 Lautovettore normalizzato corrispondente allautovalore 1 = 3

1 v = 1, 2 Per applicare il metodo delle potenze usiamo le formule u k = Av k 1 k=1,2,... 1 v k = c uk k

iniziando con v0 = (1,1)T. Prima iterazione

5 4 1 1 u1 = 3 3 = 1 0
c1 = 1

v1 = (1,0)T

Seconda iterazione
5 4 1 5 u2 = 3 3 = 0 3 c2 = 5 3 v2 = 1, 5
T

Terza iterazione
13 1 5 4 5 u3 = 3 3 3 = 5 6 5
13 5 Iterando successivamente si ottiene12

c3 =

6 v3 = 1, 13

ck 1.0000 5.0000 2.6000 3.1538 2.9512 3.0165 2.9945 ....... 3.0000

1 2 3 4 5 6 7 ... 14

v k (1) 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 ....... 1.0000

v k (2 ) 0.0000 0.6000 0.4615 0.5122 0.4959 0.5014 0.4995 ....... 0.5000

12

I risultati, in questo esempio e nei successivi, sono stati ottenuti con Matlab, con tolleranza =1.0E04.

Dipartimento di Matematica

128

M. Garetto Metodi Numerici

La successione {ck } converge a La successione dei vettori {v k } converge a

1 = 3

v = (1, 0.5)T
Esempio 92 Approssimare lautovalore di modulo massimo e il corrispondente autovettore della matrice

0 11 5 7 A = 2 17 4 26 10
Usiamo le formule
u k = Av k 1 k=1,2,... 1 = v u k k ck T iniziando con v0 = (1,1,1) . Prima iterazione 0 11 5 1 6 u1 = 2 17 7 1 = 8 4 26 10 1 12

c1 =12
Seconda iterazione

1 2 v1 = , ,1 2 3

1 7 0 11 5 2 3 2 10 u2 = 2 17 7 = 3 3 4 26 10 1 16 3

c2 =
Terza iterazione

16 3

7 5 v2 = , ,1 16 8

7 15 0 11 5 16 8 5 11 u3 = 2 17 7 = 4 26 10 8 4 9 1 2

c3 =

9 2

5 11 v3 = , ,1 12 18

Universit di Torino

Capitolo 2 Algebra lineare numerica

129

Iterando successivamente si ottiene

k 1 2 3 4 5 6 13

ck 12.0000 5.3333 4.5000 4.2222 4.1053 4.0513 4.0004

v k (1) 0.5000 0.4375 0.4167 0.4079 0.4038 0.4019 0.4000

v k (2 ) 0.6667 0.6250 0.6111 0.6053 0.6026 0.6013 0.6000

v k (3) 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

La successione delle costanti {ck } converge a 1 = 4 La successione dei vettori {v k } converge a

v = (0.4,0.6,1.0)T
Osservazioni 1. La velocit di convergenza del metodo inversamente proporzionale al fattore r= 2 1

ed tanto pi alta quanto pi r piccolo. 2. Se 1 2 la convergenza della successione a 1 pu risultare troppo lenta. In questo caso si usa il metodo solo per ottenere una stima iniziale dellautovalore, da migliorare poi con un altro metodo che converga pi velocemente. 3. Se 1 reale ed ha molteplicit k

1 = 2 = ... = k > k +1 ... n


determinazione degli altri autovettori corrispondenti a 1, che risultano ancora linearmente indipendenti nonostante gli autovalori siano coincidenti. La convergenza in questo caso risulta generalmente lenta. 4. Il metodo non pu convergere ad autovalori e autovettori complessi. 5. Anche quando 1 e 2 sono reali e distinti ma hanno lo stesso modulo, ossia il metodo converge ancora a 1 e ad un suo autovettore; in questo caso per sorgono difficolt nella

1 = 2 e 1 = 2 il metodo generalmente non converge.


Esempio 93 Applicare il metodo delle potenze alla matrice 1 1 1 A= 5 3 1 8 8 4 i cui autovalori sono 1 = 4 , 2 = 4 , 3 = 2 .

Dipartimento di Matematica

130

M. Garetto Metodi Numerici

Usiamo le formule u k = Av k 1 k=1,2,... 1 v k = c uk k T iniziando con v0 = (1,1,1) . Con Matlab si ottengono i risultati della seguente tabella

k 1 2 3 4 5 10 29 30 49 50

ck 12.000 2.8333 5.6471 3.2083 4.9870 3.3314 4.8000 3.3333 4.8000 3.3333

v k (1) 0.0833 0.0588 0.1042 0.1688 0.1510 0.1995 0.1667 0.2000 0.1667 0.2000

v k (2 ) 0.7500 1.0000 0.5625 1.0000 0.5156 1.0000 0.5000 1.0000 0.5000 1.0000

v k (3) 1.0000 0.4706 1.0000 0.4156 1.0000 0.4002 1.0000 0.4000 1.0000 0.4000

Il metodo non converge: due autovalori sono reali e distinti ma hanno lo stesso modulo.
Esempio 94 Applicare il metodo delle potenze alla matrice 3 1 A= 2 2

i cui autovalori sono 1 =

5+i 7 5i 7 , 2 = . 2 2

Usiamo le formule u k = Av k 1 k=1,2,... 1 v k = c uk k T iniziando con v0 = (1,1,1) . Con Matlab si ottengono i risultati della seguente tabella k 1 2 3 4 24 25 49 50 ck 4.0000 3.0000 2.3333 1.6429 2.8621 3.2650 1.7388 3.4013

v k (1) 0.5000 0.1667 0.2143 1.0000 1.0000 1.0000 0.8004 1.0000

v k (2) 1.0000 1.0000 1.0000 0.9565 0.2650 0.4502 1.0000 0.1173

Il metodo non converge: gli autovalori sono complessi coniugati.

Universit di Torino

Capitolo 2 Algebra lineare numerica

131

Algoritmo Metodo delle potenze Calcolo dellautovalore di modulo massimo 1 e corrispondente autovettore della matrice A. Input: A matrice n n itmax numero massimo di iterazioni err tolleranza per il criterio di arresto ck +1 ck ck +1

vettore iniziale, tale che v 0 = 1 u k = A v k -1 k = 1,2,... 1 v k = c u k k ck scalare tale che v k = 1 v0 Output: lambda approssimazione dellautovalore di modulo massimo 1 v vettore n 1, approssimazione del corrispondente autovettore ind indicatore: ind=0 la precisione richiesta stata raggiunta con un numero di iterazioni minore di itmax ind=1 la precisione richiesta non stata raggiunta con itmax iterazioni Input {n,A,itmax,err} {inizializzazione del vettore v} For i=1 to n do v(i)=1 end for {calcolo degli u(k)} cold=0 For k = 1 to itmax do For j = 1 to n do u(j)=0 For r = 1 to n do u(j)=u(j)+A(j,r)*v(r) end for end for {calcolo della componente di modulo massimo del vettore u} [M,s]= max(abs(u)) c=u(s) {normalizzazione di u} For i = 1 to n do v(i)=u(i)/c end for {controllo del criterio di arresto} If abs(ccold) err*abs(c) then ind=0 lambda=c Output {lambda,v,ind} Stop end if cold=c end for ind=1 lambda=c Output {lambda,v,ind} End
Dipartimento di Matematica

132

M. Garetto Metodi Numerici

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

133

3.
3.1

Interpolazione e approssimazione
Introduzione

In molti problemi matematici emerge lesigenza di dover approssimare una funzione f(x), definita mediante una sua rappresentazione analitica, oppure nota solo in alcuni punti xk , k = 0,1,...,n , con unaltra funzione f*(x) di forma pi semplice, su cui si possa facilmente operare, per esempio derivare o integrare. Supponiamo ad esempio di aver eseguito delle misurazioni y k , k = 0,1,...,n, corrispondenti a valori prefissati xk , k = 0,1,...,n, della variabile indipendente, relative a un determinato fenomeno; vogliamo costruire una funzione f*(x) che descriva sufficientemente bene il fenomeno e ci permetta di fare delle stime attendibili in punti x diversi dai punti xk . Supponiamo invece di dover calcolare

f ( x)dx
a

nel caso in cui lespressione di f ( x) sia tale da non permetterci di ottenere il valore dellintegrale con i metodi dellanalisi. Conviene in questo caso approssimare f ( x) nellintervallo [a,b] con unaltra funzione f*(x) di forma pi semplice, su cui sia possibile operare analiticamente e dedurre unapprossimazione del risultato incognito con una certa tolleranza.

Per affrontare un problema di approssimazione indispensabile 1 individuare la classe delle funzioni approssimanti F = { f * ( x)} 2 fissata la classe F, adottare un criterio per la scelta di un suo particolare elemento f*(x). Le classi F pi usate sono:
1 Polinomi algebrici di grado n P = f * ( x ) = a0 + a1 x + ... + a n x n Per individuare un elemento della classe P necessario fissare i valori degli n + 1 parametri a0 , a1 ,..., an , ossia i coefficienti del polinomio.

2 Polinomi trigonometrici di grado n e frequenza n (ak cos kx + bk sin kx ) = f * ( x ) = a0 + k =1 Per individuare un elemento della classe occorre fissare i valori dei 2n + 1 parametri a0 , a1 ,..., an , b1 ,...,bn , ossia i coefficienti del polinomio trigonometrico.

3 Funzioni razionali P ( x) R = f * ( x) = n , Pn ( x) , Pm ( x) P Pm ( x ) Per individuare un elemento della classe R occorre fissare i valori degli n + m + 2 coefficienti dei due polinomi. La classe dei polinomi algebrici indicata per lapprossimazione di funzioni continue su intervalli chiusi e limitati; la classe dei polinomi trigonometrici per funzioni periodiche; la classe delle funzioni razionali utile per approssimare funzioni che hanno delle singolarit (punti in cui f ( x) tende allinfinito) o per rappresentare fenomeni non periodici su intervalli non limitati.

Dipartimento di Matematica

134

M. Garetto Metodi Numerici

4 Funzioni spline S = { f * ( x) = funzione spline di ordine n} Il generico elemento f*(x) della classe S costituito dallunione di tratti contigui di polinomi algebrici di grado n; i tratti contigui sono uniti in modo da assicurare la continuit di f*(x) e di tutte le sue derivate di ordine fino a n 1 in tutto lintervallo [a,b] a cui appartengono i punti xk . La classe delle funzioni spline costituisce unalternativa alle classi dei polinomi algebrici e dei polinomi trigonometrici, utile per esempio quando le approssimazioni con funzioni di queste classi richiedono luso di polinomi di grado troppo elevato o troppo oscillanti.
Supponiamo che siano assegnati n + 1 valori y k , k = 0,1,...,n, di una funzione y = f ( x) in corrispondenza a n + 1 valori xk . Dopo aver individuato la classe F pi adatta per lapprossimazione della funzione, dovremo scegliere un elemento f*(x) F. La scelta pu essere fatta con criteri diversi. 1 Interpolazione Come funzione f*(x) scegliamo lelemento di F che soddisfa le condizioni f * (xk ) = y k k = 0,1,..., n Il numero dei parametri presenti in f*(x) generalmente uguale al numero dei punti xk , cio n + 1 . Questo criterio indicato quando i valori y k sono forniti con accuratezza elevata.
2 Minimi quadrati Come funzione f*(x) scegliamo lelemento di F che minimizza la quantit
k =0

[ f * (xk ) yk ]2

Questo criterio pi adatto del precedente, quando i dati y k non sono molto accurati. Quando si applica questo criterio, il numero dei parametri in f*(x) minore del numero di punti xk .

3.2

Interpolazione polinomiale. Formula di interpolazione di Lagrange

Uno dei motivi dellimportanza dei polinomi nellapprossimazione delle funzioni che essi approssimano uniformemente le funzioni continue. Data una qualunque funzione definita e continua su un intervallo chiuso e limitato, esiste un polinomio prossimo quanto si vuole alla funzione data; questo risultato espresso dal seguente
Teorema di approssimazione di Weierstrass Sia f una funzione definita e continua sullintervallo [a,b] chiuso e limitato; allora per ogni >0 esiste un polinomio P( x) tale che

f (x ) P ( x) <

x [a ,b]

Un altro importante motivo per la scelta della classe dei polinomi nellapprossimazione delle funzioni che la derivata e lintegrale indefinito di un polinomio sono facili da calcolare e sono anchessi polinomi. Esaminiamo dunque il problema dellapprossimazione mediante polinomi, con il criterio dellinterpolazione. Il problema dellinterpolazione pu essere formulato in due modi. 1 Dato un insieme di punti x0 , x1 ,...xn e di valori corrispondenti y 0 , y1 ,..., y n , trovare un polinomio Pn ( x) di grado minore o uguale a n, tale che Pn (xk ) = y k k = 0 ,1,...,n .
Universit di Torino

Capitolo 3 Interpolazione e approssimazione

135

2 Dato un insieme di punti x0 , x1 ,...xn e una funzione continua f ( x) , trovare un polinomio Pn ( x) di grado minore o uguale a n, tale che Pn (xk ) = f (xk ) k = 0,1,...,n . Nel primo caso si cerca di adattare un polinomio ai dati, mentre nel secondo si cerca di approssimare una funzione assegnata con un polinomio. Sebbene si tratti di due problemi distinti, possiamo sempre considerare il primo come un caso particolare del secondo, prendendo y k = f (x k ) per ogni k, per cui tratteremo il problema dellinterpolazione riferendoci al secondo tipo di problema. Un polinomio di grado n individuato dai suoi n + 1 coefficienti; ci attendiamo quindi che un polinomio di interpolazione di grado n sia completamente determinato assegnando n + 1 valori y k = f (xk ) . Siano assegnati n + 1 valori y k = f (x k ) di una funzione f ( x) in n + 1 punti distinti xk appartenenti allintervallo [a,b] a x0 < x1 < ... < xn b Ci proponiamo di determinare il polinomio di grado minore o uguale a n che passa per i punti assegnati Pn (xk ) = f (x k ) k = 0,1,..., n (3.1) Si dice che il polinomio Pn ( x) interpola f ( x) nei punti x0 , x1 ,...xn , detti nodi. Tale polinomio pu essere usato per approssimare il valore di f ( x) in un punto x diverso dai nodi. Se x appartiene allintervallo [a,b], si parla di interpolazione, in caso contrario di estrapolazione. Dati gli n + 1 punti xk , si considera il polinomio Pn ( x) di grado n, che ha lespressione

Pn ( x) = a0 + a1 x + ... + a n x n e si impongono le condizioni (3.1); si trova in questo modo il sistema lineare n a0 + a1 x0 + ... + a n x0 = f ( x0 ) n a0 + a1 x1 + ... + a n x1 = f (x1 ) ... n a0 + a1 xn + ... + a n xn = f (xn )

(3.2)

nelle incognite a0 , a1 ,..., a n . La soluzione di questo sistema, se esiste, fornisce i coefficienti del polinomio Pn ( x) . Si dimostra che, se i nodi sono distinti, allora Pn ( x ) esiste ed unico. Vale infatti il seguente
Teorema Siano assegnati n + 1 punti distinti x0 , x1 ,..., xn e i corrispondenti valori di una funzione f ( x) in tali punti. Allora esiste ed unico il polinomio Pn ( x) di grado minore o uguale a n tale che Pn ( xk ) = f ( xk ) k = 0 ,1,..., n .

Si pu per dimostrare che la matrice dei coefficienti del sistema (3.2), detta matrice di Vandermonde, mal condizionata; inoltre anche il numero di operazioni necessarie per risolvere il sistema elevato; questo modo di procedere per determinare le incognite a0 , a1 ,..., a n quindi del tutto sconsigliabile. Per leffettiva costruzione del polinomio occorre cercare rappresentazioni alternative ben condizionate e meno costose in termini di operazioni aritmetiche. Una delle pi semplici la formula di interpolazione di Lagrange.

Dipartimento di Matematica

136

M. Garetto Metodi Numerici

Siano dati n + 1 valori y k = f (x k ) di una funzione f ( x) in n + 1 punti distinti xk appartenenti allintervallo [a,b] a x0 < x1 < ... < xn b Definiamo dapprima le funzioni (x x0 )(x x1 ).....(x xn ) Lk ( x ) = k = 01,..., n (x xk )(xk x0 )....(xk xk 1 )(xk xk +1 )....(xk xn ) Tali funzioni sono polinomi di grado n, detti polinomi fondamentali di Lagrange; ad essi si pu dare una forma pi semplice ponendo n ( x ) = (x x0 )(x x1 )....( x xn ) Derivando la funzione n ( x ) e calcolandone il valore in xk si ha ' n (xk ) = (xk x0 )....(xk xk 1 )(xk xk +1 )(xk xn ) quindi n (x ) Lk ( x ) = k = 0 ,1,..., n (x xk )' n (xk ) Servendosi dei polinomi fondamentali, si costruisce il polinomio di interpolazione di Lagrange, che ha lespressione
Pn ( x) =

Lk (x) f (xk ) = (x xkn)'n (xk ) f (xk )


k =0 k =0

(x )

(3.3)

Si verifica facilmente che

se i k 0 Lk ( xi ) = (3.4) se i = k 1 e da questo segue subito che Pn ( xk ) = f ( xk ) k = 0 ,1,..., n . Inoltre Pn ( x) un polinomio di grado n (si ricordi che Lk (x ) un polinomio di grado n) e si dimostra facilmente che unico. Perci Pn ( x) risolve il problema dellinterpolazione; la formula (3.3) detta formula di interpolazione di Lagrange.
Esempio 1

1 usando i tre nodi seguenti nellintervallo [1,4] x x0 = 1 x1 = 2 x2 = 4 . Scriviamo lespressione dei polinomi fondamentali di Lagrange (x 1)(x 2)(x 4) = (x 2)(x 4) = 1 x 2 2 x + 8 L0 ( x) = (x 1)(1 2)(1 4) (1 2)(1 4) 3 3 (x 1)(x 2)(x 4) = (x 1)(x 4) = 1 x 2 + 5 x 2 L1 ( x) = (x 2)(2 1)(2 4) (2 1)(2 4) 2 2 (x 1)(x 2)(x 4) = (x 1)(x 2) = 1 x 2 1 x + 1 L2 ( x) = (x 4)(4 1)(4 2) (4 1)(4 2) 6 2 3 Si verifica facilmente che vale la propriet (3.4) L0 (1) = 1 L0 (2) = L0 ( 4) = 0

Interpolare la funzione f (x ) =

L1 (1) = 0 Si ha f (x0 ) = 1

L1 (2) = 1

L1 (4) = 0

L2 (1) = L2 (2) = 0 f (x1 ) = 1 2

L2 (4) = 1 f ( x2 ) = 1 4
Universit di Torino

Capitolo 3 Interpolazione e approssimazione

137

Il polinomio di interpolazione il seguente

P2 (x ) =

k =0

Lk (x ) f (xk ) =

8 5 1 1 1 1 1 1 1 = x 2 2 x + 1 + x 2 + x 2 + x 2 x + = 3 2 2 3 4 3 2 2 6 1 7 7 = x2 x + 8 8 4 Nella fig. 1 riportiamo i grafici dei polinomi L0 ( x) , L1 ( x) e L2 ( x) ; nella fig. 2 i grafici della 1 funzione f (x ) = e del polinomio di interpolazione P2 (x ) . x

Figura 1

Figura 2

Esempio 2 Data la tabella di dati

xk 0 1 2 4

yk 1 1 2 5

costruire il polinomio di interpolazione di Lagrange di terzo grado e usarlo per approssimare f(3).
P3 ( x) =

(x 1)(x 2)(x 4) 1 + x(x 2)(x 4) 1 + (0 1)(0 2)(0 4) 1(1 2)(1 4 ) x( x 1)( x 4) x(x 1)( x 2 ) + 2+ 5 = 2(2 1)(2 4 ) 4(4 1)(4 2)
=

1 x 3 + 9 x 2 8 x + 12 12 f (3) P3 (3) = 3.5

Nella fig. 3 sono rappresentati i dati assegnati e il polinomio di interpolazione P3 (x )

Dipartimento di Matematica

138

M. Garetto Metodi Numerici

Figura 3

Esempio 3

1 Data la funzione f ( x) = cos(x ) nellintervallo 0 , , costruire il polinomio di interpolazione di 2 1 1 secondo grado che interpola f ( x) sui nodi x0 = 0 , x1 = , x2 = e approssimare con il 4 2 polinomio il valore f (0.3) = cos(0.3) . I valori della funzione f ( x) nei nodi sono 2 y1 = cos = y 2 = cos = 0 2 2 4 Il polinomio di interpolazione di secondo grado ha lespressione 1 1 1 1 x x x x x x 2 4 2 2 4 P2 (x ) = 1 + + 0 = 1 1 2 11 1 1 4 4 24 4 2 y 0 = cos 0 = 1 = 8 1 2 x2 + 4 2 6 x + 1 f (0.3) = cos(0.3) P2 (0.3) = 0.598822
Esempio 4

Usando solo i valori della funzione f (x ) = sin x nei punti x0 = 0 , x1 = lintegrale

, x2 = approssimare 2

sin xdx
I valori della funzione nei nodi sono f (0) = 0 , f = 1, f ( ) = 0 2 Il polinomio di interpolazione dato da P2 (x ) =
k =0

Lk (x ) f (xk ) = L1(x ) =

4 x( x ) = 2 x 2 + x 2 2

Il valore approssimato dellintegrale dato da

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

139

sin xdx 2 ( x
4
0 0

+ x dx =

2 2.094 3

3.3 Errore per la formula di interpolazione di Lagrange


Data una funzione continua f(x), dopo aver costruito il polinomio di interpolazione di Lagrange Pn ( x) di grado n che interpola f(x) nei punti (x k , f (xk )) , k = 0,1,..., n , vogliamo stimare lerrore En (x ) che si commette approssimando la funzione f(x) con il polinomio di interpolazione in un punto x appartenente allintervallo [a,b] e diverso dai nodi E n (x ) = f ( x ) Pn (x ) Il problema non pu avere una soluzione quando non si conosce lespressione analitica di f(x), ma solo i valori da essa assunti nei nodi. Quando per la funzione f(x) nota e sufficientemente regolare, si pu avere qualche informazione sullerrore. Vale infatti il seguente
Teorema Sia f(x) una funzione definita in un intervallo [a,b] e siano assegnati n + 1 nodi distinti a x0 < x1 < ... < xn b Si supponga che f(x) sia continua e possieda derivate continue fino allordine n + 1 in [a,b]; indicando lerrore con E n (x ) = f ( x ) Pn (x ) si dimostra che per ogni x[a,b] si ha (x ) ( n +1) (c ) f (3.5) E n (x ) = n (n + 1)! dove c = c(x) un punto opportuno dellintervallo (a,b).

La rappresentazione trovata per E n (x ) ha importanza soprattutto teorica; infatti il suo utilizzo

richiede non solo il calcolo della derivata f ( n +1) ( x ) , ma soprattutto la sua valutazione in un punto c non noto, anche se il teorema ne garantisce lesistenza. Lespressione trovata per lerrore consente per di trovare la seguente maggiorazione per lerrore in un punto fissato x appartenente allintervallo [a,b] n (x ) M E n (x ) = f (x ) Pn (x ) (3.6) (n + 1)! n +1 con M n +1 = max f ( n +1) (x ) x[ a ,b] In generale per ogni x [a,b] si ha n ( x ) < (b a )n +1 perci in tutto lintervallo [a,b] si ha
En

(b a )n +1 M (n + 1)! n +1

(3.7)

Se lampiezza b a dellintervallo piccola, lerrore, che dipende da b a, generalmente contenuto; ci giustifica linteresse per la costruzione delle funzioni polinomiali a tratti o funzioni spline, che saranno trattate nel 3.8.

Dipartimento di Matematica

140

M. Garetto Metodi Numerici

Esempio 5 Costruire il polinomio di Lagrange che interpola la funzione f ( x) = sin(x ) 1 1 nei nodi x0 = 0, x1 = , x2 = . 6 2 1 Approssimare f e calcolare lerrore. 4 I valori della funzione nei nodi sono riportati nella tabella seguente

y k = f ( xk ) 0 1 sin = 6 2 sin = 1 2 1 1 1 1 x x x x x x 7 6 6 2 2 1 P2 (x ) = 0 + + 1 = 3 x 2 + x 1 1 11 1 2 11 1 2 22 6 6 2 66 2 3 7 1 1 f P2 = + = 0.6875 16 8 4 4 Nella fig. 4 sono rappresentati la funzione e il polinomio di interpolazione xk 0 1 6 1 2

Figura 4

Il valore di f(x) con 6 cifre significative 2 1 f = sin = 0.707105 4 2 4 Con la formula (3.6) si calcola una maggiorazione dellerrore (x ) E2 ( x ) 2 M3 M 3 = max f (3) (x ) 3! x[0,1 ]
f ( x) = sin(x ) f (3) ( x) = 3 cos(x )
2

M 3 = max f (3) ( x) = 3 0 x 1
2

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

141

1 1 2 (x ) = x x x 6 2 1 1 1 1 1 1 1 2 = = 5.21 10 3 192 4 4 4 6 4 2 Per lerrore si trova la maggiorazione


1 5.21 10 3 0.27 10 1 E2 6 4 1 Lerrore effettivo in x = dato dalla differenza fra il valore esatto della funzione e il valore 4 approssimato trovato con la formula di interpolazione E = sin 0.6875 = 0.707105 0.6875 0.2 10 1 4 La maggiorazione trovata per lerrore in accordo con lerrore effettivo.
Esempio 6 Data la funzione
3

f ( x) = (2 x 1)4 trovare il polinomio di interpolazione di secondo grado che interpola f(x) nellintervallo [0,1] usando la formula di Lagrange con nodi equidistanti e approssimare f(0.75). I nodi e i corrispondenti valori della funzione sono
xk 0 0.5 1 yk 1 0 1

Il polinomio di interpolazione ha lespressione (x 0.5)(x 1) 1 + x(x 0.5) 1 = 4 x 2 4 x + 1 P2 (x ) = ( 0.5)( 1) 0.5 f (0.75) P2 (0.75) = 0.25 Il valore esatto della funzione

f (0.75) = (1.5 1)4 = 0.0625 Il risultato completamente inattendibile: un polinomio di secondo grado non approssima bene un polinomio di quarto grado, come viene illustrato dalla fig. 5.

Figura 5

Dipartimento di Matematica

142

M. Garetto Metodi Numerici

3.4 Formula di interpolazione lineare


La formula di interpolazione lineare il caso pi semplice della formula di Lagrange. Con questa formula si determina il polinomio di primo grado che passa per due punti assegnati. Linterpolazione lineare veniva spesso usata in passato per interpolare su tabelle di funzioni, ma ora la diffusione dei computer e delle calcolatrici ha reso molto meno importante questo tipo di applicazione. Tuttavia linterpolazione ancora uno strumento importante nella matematica computazionale: ad esempio quasi tutti i grafici prodotti dai computer sono il risultato di un procedimento di interpolazione lineare a tratti, secondo il quale il computer per rappresentare la curva disegna una linea spezzata formata da un elevato numero di segmenti molto piccoli. Per costruire la formula di interpolazione lineare si usano due nodi x0 e x1 , e si approssima la funzione y = f(x) con la retta che passa per i punti (x0 , y 0 ) e (x1 , y1 ) . Il polinomio di interpolazione lineare P1(x) ha lespressione x x0 x x1 y1 P y0 + 1( x ) = x1 x0 x0 x1 Questa espressione pu essere riscritta per comodit nella forma pi semplice y1 y 0 ( x x0 ) P 1 ( x) = y0 + x1 x0 La fig. 6 mostra i grafici di f (x ) e di P 1 (x ) .

Figura 6

Lapprossimazione di f(x) con una retta d luogo ad un errore di interpolazione E1. Se f(x) possiede derivata seconda continua e viene approssimata in un punto x diverso dai nodi x0 < x < x1 = x0 + h si dimostra facilmente1 che per lerrore di interpolazione vale la maggiorazione E1 h2 M2 8 con
M2 = max f ' ' ( x) x0 x x1 (3.8)

Dalla formula per lerrore di interpolazione (3.6) si ha 1 (x ) E1 (x ) M2 2 La funzione 1 (x ) = (x x0 )(x x1 ) raggiunge il massimo nel punto medio dellintervallo

(x0 , x1 ) ;

sostituendo lascissa del punto medio x = si ottiene

x0 + x1 nellespressione di 1 ( x ) e ricordando che h = x1 x0 , 2

x + x1 x + x1 h2 1 (x ) 0 x0 0 x1 = 4 2 2

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

143

Esempio 7 Per approssimare la radice quadrata di un numero x che non sia un quadrato perfetto si pu procedere nel modo seguente: si considerano le radici quadrate di due numeri x0 e x1 che sono quadrati perfetti e fra i quali compreso x, e si costruisce il polinomio di interpolazione lineare sui punti x0 e x1 , come mostra questo esempio.

Si vuole approssimare il valore di

polinomio di interpolazione lineare che approssima la funzione f (x ) = x nei due nodi. Il polinomio dato da y1 y0 (x x0 ) = 0.8 + 0.9 0.8 (x 0.64) P 1 ( x ) = y0 + x1 x0 0.81 0.64 0 .7 P 1 (0.7 ) = 0.8 + Calcolo dellerrore
h2 M2 8 h = 0.81 0.64 = 0.17 E1 M2 = E1
0.64 x 0.81

0.7 : si scelgono i nodi x0 = 0.64 , x1 = 0.81 e si trova il

0 .9 0 .8 (0.7 0.64) = 0.8353 0.81 0.64

max

f ' ' (x ) =

1 1 = 0 .5 4 0 . 64 0.8 0.64 x 0.81 4 x x max

0.17 2 0.5 0.2 10 2 8 Le cifre decimali corrette nel valore 0.7 0.8353 sono due.
La formula di interpolazione lineare viene spesso utilizzata per approssimare i valori di una funzione f(x) , di cui si conosce una tabella di valori y k su un insieme di nodi xk equidistanti. Per approssimare f(x) in un punto x non coincidente con uno dei nodi, si scelgono sulla tabella due nodi fra i quali sia compreso il punto x, si costruisce il polinomio di interpolazione lineare P1(x) che interpola f(x) in tali nodi e si usa questo polinomio per approssimare f(x) nel punto x,
Esempio 8 Calcolare un valore approssimato di sin(0.25) e di sin(1.25) usando linterpolazione lineare sulla seguente tabella della funzione f ( x) = sin x

x 0 0.5 1.0 1.5 2.0 1 Calcolo del valore approssimato di sin(0.25) . Per interpolare in x = 0.25 , si scelgono i nodi x0 = 0 x1 = 0.5 Il polinomio di interpolazione lineare P1(x) dato da 0.47943 0 P x = 0.95886 x 1 ( x) = 0 + 0.5 Il valore di P 1 ( x ) nel punto x = 0.25 P 1 (0.25) = 0.95885 0.25 = 0.2397

sin x 0 0.47943 0.84147 0.99749 0.90930

Dipartimento di Matematica

144

M. Garetto Metodi Numerici

Calcolo dellerrore h2 M2 8 h = 0 .5 M2 = E1 E1

0.0 x 0.5

max

f ' ' (x ) =

0.0 x 0.5

max

sin x = sin(0.5) 0.5

0.52 0.5 0.2 10 1 8

Il valore approssimato P 1 (0.25) = 0.2397 ha una cifra decimale esatta. 2 Calcolo del valore approssimato di sin(1.25) . Per interpolare in x = 1.25 , si scelgono i nodi x0 = 1.0, x1 = 1.5 . Il polinomio di interpolazione lineare P1(x) dato da 0.99749 0.84147 (x 1.0) = 0.31204 x + 0.52943 P 1 ( x ) = 0.84147 + 0 .5 Il valore di P 1 ( x ) nel punto x = 1.25 P 1 (1.25) = 0.31204 1.25 + 0.52943 = 0.9195 Calcolo dellerrore h2 M2 8 h = 0.5 M2 = E1 E1

1.0 x 1.5

max

f ' ' (x ) =

1.0 x 1.5

max sin x = sin(1.5) 1

0 .5 2 1 0.3 10 1 8

Il valore approssimato P 1 (1.25) = 0.9195 ha una cifra decimale esatta.


Esempio 9 Calcolare un valore approssimato di e 0.926 usando linterpolazione lineare sulla seguente tabella

della funzione f ( x) = e x x 0.90 0.91 0.92 0.93 0.94 0.95


ex 2.4596031 2.4843225 2.5092904 2.5345092 2.5599814 2.5857097

Per interpolare in x = 0.926 , si scelgono i nodi x0 = 0.92 , x1 = 0.93 . Il polinomio di interpolazione lineare P1(x) dato da 2.5345092 2.5092904 (x 0.92) P 1 ( x ) = 2.5092904 + 0.01 2.5345092 2.5092904 (0.926 0.92) = 2.5244217 P 1 (0.926) = 2.5092904 + 0.01 Il valore di e 0.926 con 8 cifre significative e 0.926 = 2.5243914
Universit di Torino

Capitolo 3 Interpolazione e approssimazione

145

Calcolo dellerrore

E1

h2 M2 8 M2 =
2 0.92 x 0.93

h = 0.01 E1

max

f ' ' (x ) = e 0.93 2.535

0.01 2.535 0.32 10 4 8

Il valore approssimato P 1 (0.926) = 2.5244217 ha quattro cifre decimali esatte. Costruiamo ora il polinomio di interpolazione di secondo grado per approssimare e 0.926 , servendosi della stessa tabella. Scegliamo i nodi2 x0 = 0.92 x1 = 0.93 x2 = 0.94 Il polinomio di interpolazione (x 0.93)(x 0.94) 2.5092904 + (x 0.92)(x 0.94) 2.5345092 + P2 ( x) = ( 0.01)( 0.02) 0.01( 0.01) (x 0.92)(x 0.93) 2.5599814 + 0.02 0.01 P2 (0.926) = 2.5243912 Calcolo dellerrore 2 (0.926) E 2 (0.926 ) M3 6
M3 =
0.92 x 0.94

max

f (3) (x ) = e 0.94 2.56

E2 (0.926 )

(0.926 0.92)(0.926 0.93)(0.926 0.94)


6

2.56 0.14 10 6

Il valore approssimato P2 (0.926) = 2.5243912 ha sei cifre decimali esatte. In questo esempio laggiunta di un nodo porta a un aumento evidente della precisione dellapprossimazione (da quattro a sei cifre decimali): in generale aumentando il numero dei nodi si pu rendere lerrore sempre pi piccolo? A questa domanda sar data una risposta nel 3.6. Da questo esempio inoltre risulta evidente un grave limite della formula di Lagrange: laggiunta di un nuovo nodo richiede di ripetere per intero il procedimento di calcolo.

3.5

Formula di interpolazione di Newton

Lalto numero di operazioni necessarie per valutare il polinomio di Lagrange in un singolo punto rende tale formula inadatta per le applicazioni: se ad esempio necessario valutare il polinomio di interpolazione in pi punti diversi, la mole di calcoli molto elevata.

Si potrebbero anche scegliere i nodi

x0 = 0.91

x1 = 0.92

x2 = 0.93

Dipartimento di Matematica

146

M. Garetto Metodi Numerici

Inoltre a volte utile trovare pi polinomi di interpolazione P 1 ( x ), P2 ( x ),..., Pn ( x ) e poi scegliere 3 quello che meglio soddisfa le esigenze del caso . Se si usano i polinomi di Lagrange, non c alcuna relazione costruttiva fra Pn 1 (x ) e Pn ( x ) e ciascun polinomio deve essere costruito individualmente4. La formula di Newton definisce lo stesso polinomio di interpolazione, ma in una forma ricorsiva P 1 ( x ) = a0 + a1 ( x x0 ) P2 ( x) = a0 + a1 (x x0 ) + a 2 (x x0 )(x x1 ) = P 1 ( x ) + a 2 ( x x0 )( x x1 ) ........... = Pn 1 ( x) + a n (x x0 )( x x1 )...(x x n 1 )

Pn ( x) = a0 + a1 (x x0 ) + a 2 ( x x0 )( x x1 ) + ... + a n (x x0 )(x x1 )...(x xn 1 ) =

dove a0 , a1 ,..., a n sono costanti opportune. Il polinomio Pn ( x ) ottenuto da Pn 1 (x ) con la relazione di ricorrenza Pn ( x) = Pn 1 ( x) + an (x x0 )(x x1 )...( x xn 1 ) . Per scrivere questa nuova rappresentazione del polinomio di interpolazione, occorre preliminarmente introdurre delle quantit dette differenze divise. Siano dati n + 1 nodi distinti x0 , x1 ,..., xn . Le differenze divise si definiscono come segue Differenze divise del primo ordine Prima differenza divisa del primo ordine5 f [x1 ] f [x0 ] f [x0 , x1 ] = x1 x0 Seconda differenza divisa del primo ordine6 f [x2 ] f [x1 ] f [x1 , x2 ] = x2 x1 In generale f [xk ] f [xk 1 ] f [xk 1 , xk ] = k = 1,..., n xk xk 1 Differenze divise del secondo ordine Prima differenza divisa del secondo ordine f [x1 , x 2 ] f [x0 , x1 ] f [x0 , x1 , x 2 ] = x 2 x0 In generale f [xk 1 , xk ] f [xk 2 , xk 1 ] f [xk 2 , xk 1 , xk ] = k = 2 ,..., n xk xk 2

Differenze divise del terzo ordine f [xk 2 , xk 1 , xk ] f [xk 3 , xk 2 , xk 1 ] f [xk 3 , x k 2 , xk 1 , xk ] = xk xk 3 ............

k = 3,..., n

Una difficolt pratica con la formula di Lagrange che spesso difficoltoso stabilire a priori il grado del polinomio necessario per ottenere una data accuratezza; in tal caso il procedimento pi comune calcolare il valore approssimato con polinomi di vari gradi diversi finch si raggiunge laccuratezza voluta. 4 Si veda lesempio 9 e losservazione conclusiva. 5 Per uniformit di scrittura si pone f [x k ] = f ( x k ) k = 0,1,..., n 6 Per uniformit di scrittura si pone f [x k ] = f ( x k ) k = 0,1,..., n Universit di Torino

Capitolo 3 Interpolazione e approssimazione

147

Differenza divisa di ordine n f [x1 ,..., xn ] f [x0 ,..., xn 1 ] f [x0 ,..., x n ] = x n x0 Per il calcolo delle differenze divise si pu disporre il calcolo nella seguente tabella

xk
x0 x1 x2 x3 x4

f [x0 ] f [x1 ] f [x2 ] f [x3 ] f [x4 ]

f [x k ]

Tabella delle differenze divise 1 ordine 2 ordine 3 ordine

4 ordine

f [x0 , x1 ] f [x1 , x2 ] f [x2 , x3 ] f [x3 , x4 ]

f [x0 , x1 , x2 ] f [x1 , x2 , x3 ] f [x2 , x3 , x4 ]

f [x0 , x1 , x2 , x3 ] f [x1 , x2 , x3 , x4 ]

f [x0 , x1 , x2 , x3 , x4 ]

Propriet delle differenze divise 1 Lordine dei punti x0 , x1 ,..., xn non ha alcuna influenza sul calcolo delle differenze divise; ad esempio si pu facilmente verificare che f [x1 ] f [x 2 ] f [x 2 ] f [x1 ] f [x2 , x1 ] = = = f [x1 , x2 ] x1 x2 x 2 x1 2 Nellipotesi che f(x) sia derivabile un numero sufficiente di volte, la definizione delle differenze divise pu essere estesa al caso in cui alcuni o anche tutti i nodi xk siano coincidenti; si definisce ad esempio f [x 2 ] f [x1 ] f [x1 , x1 ] = lim f [x1 , x2 ] = lim = f ' ( x1 ) x 2 x1 x 2 x1 x 2 x1

I coefficienti a k , k = 0,1,,n, del polinomio Pn ( x ) dipendono dai valori della funzione f (x ) nei nodi; il seguente teorema mostra che gli a k possono essere calcolati usando le differenze divise.
Teorema Siano dati n + 1 punti distinti x0 , x1 ,..., xn appartenenti allintervallo [a,b]. Servendosi delle differenze divise, il polinomio di interpolazione Pn (x ) pu essere scritto nella forma seguente (formula di interpolazione di Newton alle differenze divise) Pn (x ) = f [x0 ] + f [x0 , x1 ](x x0 ) + f [x0 , x1 , x2 ](x x0 )( x x1 ) + .... + (3.9) + f [x0 , x1 ,..., x n ](x x0 )(x x1 )...(x xn 1 )

Lerrore di interpolazione dato ancora dalla formula (3.6), per lunicit del polinomio di interpolazione. La formula di interpolazione di Newton particolarmente interessante dal punto di vista computazionale perch richiede un numero di operazioni molto minore di quella di Lagrange.
Esempio 10 Siano assegnati i punti della seguente tabella

xk yk

0 3

1 6

2 12

3 24

Costruire la tabella delle differenze divise e scrivere il polinomio di interpolazione P3 (x ) che passa per i punti assegnati.
Dipartimento di Matematica

148

M. Garetto Metodi Numerici

Tabella delle differenze divise xk 0 1 2 3 yk 3 6 12 24 1 ordine


3

2 ordine

3 ordine

6 12

3 2

1 2

Le differenze divise necessarie per costruire il polinomio di interpolazione di Newton sono disposte lungo la diagonale principale della tabella a partire dal valore y0 (numeri in grassetto nella tabella). Il polinomio di interpolazione di terzo grado ha lespressione 3 1 1 5 P3 ( x ) = 3 + 3x + x( x 1) + x(x 1)(x 2) = x 3 + x + 3 2 2 2 2
Esempio 11 Siano assegnati i punti della seguente tabella

xk 0 1 2 3 4 5 6

yk 5 5 3 5 17 45 95

Costruire la tabella delle differenze divise e scrivere il polinomio di interpolazione che passa per i punti assegnati. Tabella delle differenze divise xk 0 1 2 3 4 5 6 yk 5 5 3 5 17 45 95 1 ordine 0 2 2 12 28 50 2 ordine 3 ordine 4 ordine 5 ordine 6 ordine

1 2 5 8 11

1 1 1 1

0 0 0

0 0

Il polinomio di interpolazione ha grado minore di n = 6 perch alcune differenze divise sono nulle, e ha lespressione P3 ( x ) = 5 x( x 1) + x( x 1)( x 2) = x 3 4 x 2 + 3 x + 5
Esempio 12 Trovare il polinomio di interpolazione di secondo grado che interpola la funzione f (x ) = x + 1 nellintervallo [0,1] con nodi equidistanti. Calcolare lerrore che si commette approssimando il valore di f (x ) nel punto x = 0.75 con il valore del polinomio P2 ( x ) in tale punto.

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

149

Tabella delle differenze divise

xk 0 1 2
1

yk 1
3 = 1.2247 2

1 ordine

2 ordine

0.4494

2 = 1.4142

0.3790

0.0704

Il polinomio di interpolazione di secondo grado ha lespressione 1 P2 ( x ) = 1 + 0.4494 x 0.0704 x x = 0.0704 x 2 + 0.4846 x + 1 2 P2 (0.75) = 1.3239 Calcolo dellerrore 2 (0.75) E 2 (0.75) M3 3! 5 3 3 f (x ) = x + 1 f (3) (x ) = (x + 1) 2 M 3 = max f (3) (x ) = 8 8 0 x 1 0.75 0.25 ( 0.25) 3 E 2 (0.75) 0.3 10 2 6 8 Il valore approssimato P2 (0.75) = 1.3239 ha due cifre decimali esatte.
Esempio 13 Trovare il polinomio di interpolazione di terzo grado che interpola la funzione f (x ) = 2 x nellintervallo [0,3] con nodi equidistanti. Calcolare lerrore che si commette approssimando il valore di f (x ) nel punto x = 1.5 con il valore del polinomio P3 (x ) in tale punto. Trovare il polinomio di interpolazione di quarto grado che si ottiene aggiungendo lulteriore nodo x4 = 4 . Tabella delle differenze divise

xk 0 1
2 3 4

yk 1 2
4 8 16

1 ordine
1

2 ordine

3 ordine

4 ordine

2 4 8

1 2

1 2

1 6 1 3

1 24

Il polinomio di interpolazione di terzo grado ha lespressione 1 1 1 5 P3 ( x ) = 1 + x + x(x 1) + x( x 1)(x 2) = x 3 + x + 1 2 6 6 6 1 5 P3 (1.5) = 1.53 + 1.5 + 1 = 2.8125 6 6 Calcolo dellerrore 3 (1.5) E3 (1.5) M4 4!

Dipartimento di Matematica

150

M. Garetto Metodi Numerici

f (x ) = 2 x E3 (1.5)

f (4 ) (x ) = 2 x (ln 2 )4 1.5 0.5 ( 0.5) ( 1.5)

M 4 = max f (4 ) (x ) = 2 3 (ln 2 )4
0 x 3

24 Il valore approssimato P3 (1.5) = 2.8125 ha una cifra decimale esatta. Aggiungendo il nodo x4 = 4 si ottiene il polinomio di quarto grado 1 1 4 1 3 11 2 7 P4 (x ) = P3 ( x ) + x(x 1)( x 2 )(x 3) = x x + x + x +1 24 24 12 24 12 Da questo esempio risulta chiaro il vantaggio della formula di interpolazione di Newton rispetto a quella di Lagrange: laggiunta di un nodo non richiede la ripetizione di tutti i calcoli, ma solo il calcolo dellultima riga nella tabella delle differenze divise e laggiunta di un termine al polinomio P3 (x ) precedentemente calcolato.
Esempio 14 Data la tabella della funzione f (x ) = ln x

8(ln 2)4 0.4 10 1

x 1.0 1.2 1.4 1.6 1.8 2.0

ln x 0.0 0.1823 0.3365 0.4700 0.5878 0.6931

approssimare il valore di ln(1.5) con il polinomio di interpolazione lineare e con il polinomio di interpolazione di secondo grado e stimare lerrore di interpolazione. Il polinomio di interpolazione lineare pu essere trovato con la formula di Newton, scegliendo come nodi i due punti fra cui compreso x = 1.5 . Tabella delle differenze divise

xk 1.4 1.6

ln xk 0.3365 0.4700

1 ordine
0.6675

Il polinomio di interpolazione lineare ha lespressione P 1 ( x ) = 0.3365 + 0.6675( x 1.4 )

ln(1.5) P 1 (1.5) = 0.3365 + 0.6675 0.1 = 0.4032 Errore con linterpolazione lineare
E1

(0.2)2 M
8

f (x ) = ln x E1

f ' ' (x ) = 1

1 x
2

M2 =

1.4 x 1.6

max

1 x
2

1 1.4 2

0.3 10 2 8 1 .4 2 Con linterpolazione lineare si ottengono due cifre decimali esatte. Il polinomio di interpolazione di secondo grado pu essere trovato con la formula di Newton aggiungendo un nodo alla tabella delle differenze divise

(0.2)2

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

151

xk 1.4 1.6 1.8

ln xk 0.3365 0.4700 0.5878

1 ordine
0.6675 0.5890

2 ordine

0.1962

ln(1.5) P2 (1.5) = 0.4032 0.1962 0.1 ( 0.1) = 0.4052 Errore con il polinomio di interpolazione di secondo grado 2 (1.5) E 2 (1.5) M3 3! 2 2 2 f (3) (x ) = M 3 = max = 3 3 1.4 x 1.8 x x 1.4 3 0.1 ( 0.1) ( 0.3) 2 E 2 (1.5) 0.4 10 3 3 6 1 .4 Con il polinomio di interpolazione di secondo grado si ottengono tre cifre decimali esatte.

Il polinomio di interpolazione di secondo grado ha lespressione P2 ( x ) = P 1 ( x ) 0.1962( x 1.4 )( x 1.6 )

3.6

Polinomi di Chebyshev

Studiamo linterpolazione polinomiale di f ( x ) sullintervallo [1,1] nei nodi 1 x0 < x1 < ... < xn 1 Sia per la formula di Lagrange che per la formula di Newton, indicando lerrore con E n (x ) = f ( x ) Pn (x ) vale la maggiorazione ( 3.3, formula (3.6)) (x ) En (x ) = f (x ) Pn (x ) n M (n + 1)! n +1 con n (x ) = (x x0 )(x x1 )....(x xn ) Il nostro scopo di rendere minimo il massimo dellerrore En (x ) , con x [ 1,1] . Se il problema consente di scegliere liberamente i nodi su cui interpolare, conviene far uso dei polinomi di Chebyshev, che consentono di rendere minimo il massimo di n (x ) . Per illustrare questo procedimento elenchiamo alcune delle propriet dei polinomi di Chebyshev. I primi polinomi di Chebyshev sono i seguenti e il loro grafico illustrato nella fig. 7 T0 (x ) = 1
T1 (x ) = x T2 (x ) = 2 x 2 1 T3 (x ) = 4 x 3 3 x T4 (x ) = 8 x 4 8 x 2 + 1 T5 (x ) = 16 x 5 20 x 3 + 58 x .....
M n +1 = max f ( n +1) (x ) . x[1,1]

Dipartimento di Matematica

152

M. Garetto Metodi Numerici

Figura 7

Propriet dei polinomi di Chebyshev 1 Relazione di ricorrenza Posto T0 (x ) = 1 e T1 (x ) = x , i polinomi di Chebyshev possono essere generati con la seguente relazione di ricorrenza Tn (x ) = 2 xTn 1 (x ) Tn 2 (x ) n = 2 ,3,... 2 Primo coefficiente Il coefficiente di x n in Tn (x ) uguale a 2n 1 , n 1 . 3 Simmetria Quando n = 2m , T2m (x ) una funzione pari, ossia T2m ( x ) = T2 m (x ) , quando n = 2m + 1 , T2 m +1 ( x ) una funzione dispari, ossia T2m +1 ( x ) = T2m +1 (x ) 4 Zeri distinti in [1,1] Il polinomio Tn (x ) ha n zeri distinti xk appartenenti allintervallo [1,1], dati da (2k + 1) k = 0,1,..., n 1 . xk = cos 2n Questi punti sono detti ascisse o nodi di Chebyshev. 5 Valori estremi Tn ( x ) 1 per 1x1.

Si dimostra che per rendere minimo il massimo di n (x ) in tutto lintervallo [1,1] occorre scegliere come nodi x0 , x1 ,..., xn i nodi di Chebyshev, ossia gli n + 1 zeri del polinomio Tn +1 ( x ) . Vale infatti il seguente
Teorema Sia n fissato. Fra tutti i possibili polinomi n (x ) , e quindi fra tutte le possibili scelte di n + 1 nodi T (x ) distinti xk , k=0,,n, in [1,1], il polinomio Q(x ) = n +1 lunico per cui si ha 2n max Q(x ) max n (x ) .
1 x 1 1 x 1

Inoltre 1 max Q(x ) = n 1 x 1 2

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

153

scegliere come nodi i nodi di Chebyshev, cio gli n + 1 zeri del polinomio Tn +1 ( x ) (2k + 1) , k = 0,1,..., n xk = cos 2(n + 1) e in tal caso si ha 1 En (x ) = f ( x ) Pn ( x ) n M n +1 2 (n + 1)! con

In base a questo teorema, per rendere minimo il massimo di n (x ) nellintervallo [1,1] occorre

M n +1 = max f ( n +1) (x ) . x[1,1] Nel caso pi generale in cui si interpoli su un intervallo [a,b] diverso da [1,1], bisogna effettuare il seguente cambiamento di variabile ba a+b x= t+ 2 2 dove a x b e 1 t 1 . Gli n + 1 nodi di Chebyshev relativi allintervallo [a,b] sono i punti ba a+b xk = tk + , k = 0 ,1,..., n 2 2 dove t k , k=0,1,,n, sono gli n + 1 nodi di Chebyshev relativi allintervallo [1,1], dati da (2k + 1) , k = 0,1,..., n . tk = cos 2(n + 1) Per lerrore vale la maggiorazione

(b a )n +1 M En ( x ) = f ( x ) Pn (x ) 2n +1 n +1 (n + 1)! 2

M n +1 = max f ( n +1) (x ) x[a ,b]


Esempio 15 Data la funzione f ( x ) = x 4 , costruire il polinomio di secondo grado che la interpola su nodi equidistanti nellintervallo [1,1]; costruire inoltre il polinomio di secondo grado che la interpola su nodi di Chebyshev, e studiare nei due casi il comportamento di 2 ( x ) . a Nodi equidistanti x0 = 1, x1 = 0, x2 = 1 Tabella delle differenze divise

xk
1 0 1

4 y k = xk 1 0 1

1 ordine

2 ordine

1 1

P2 (x ) = 1 ( x + 1) + x( x + 1) = x 2 b Nodi di Chebyshev (2k + 1) , k = 0,1,2 xk = cos 6

Polinomio di interpolazione su nodi equidistanti

Dipartimento di Matematica

154

M. Garetto Metodi Numerici

3 = , 6 2 Tabella delle differenze divise x0 = cos

x1 = cos

3 = 0, 6

x2 = cos

5 3 = 6 2

xk
3 2 0 3 2

4 y k = xk

1 ordine

2 ordine

9 16

0
9 16

3 3 8 3 3 8

3 4

Polinomio di interpolazione su nodi di Chebyshev 9 3 3 x + 3 + 3 x x + 3 = 3 x 2 P 2 (x ) = 16 8 2 4 2 4 c 2 (x ) su nodi equidistanti

2 (x ) = x(x + 1)(x 1) = x3 x 2 (x ) su nodi di Chebyshev


3 x 3 = x 3 3 x 2 ( x ) = x x + 2 2 4 Grafici di 2 (x ) e di 2 (x )

1 x 1

max 2 ( x ) =

2 3 0.385 9
1 4

1 x 1

max 2 (x ) =

Figura 8

Dal confronto fra i massimi di 2 (x ) e 2 ( x ) si constata che i nodi di Chebyshev consentono di rendere minimo il massimo del polinomio 2 ( x ) , come indicato dal Teorema (pag. 152).

Esempio 16 Costruire il polinomio di terzo grado che interpola la funzione f (x ) = e x nellintervallo [1,1] minimizzando il massimo dellerrore in [1,1] e stimare lerrore. Per minimizzare il massimo dellerrore si usano i nodi di Chebyshev (2k + 1) , k = 0,1,2,3 xk = cos 8

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

155

0.9239, 8 5 x2 = cos 0.3827 , 8 Tabella delle differenze divise x0 = cos xk 0.9239 0.3827 0.3827 0.9239 yk = e k 2.5191 1.4662 0.6820 0.3970
x

x1 = cos

3 0.3827 , 8 7 x3 = cos 0.9239 8

1 ordine

2 ordine

3 ordine

1.9455 1.0246 0.5266

0.7048 0.3811

0.1752

Polinomio di interpolazione su nodi di Chebyshev P3 (x ) = 2.5191 + 1.9455(x 0.9239) + 0.7048(x 0.9239)(x 0.3827 ) + + 0.1752(x 0.9239)(x 0.3827 )(x + 0.3827 ) = = 0.1752 x 3 + 0.5430 x 2 + 0.9989 x + 0.9946 Errore 1 E3 ( x ) 3 M4 2 4!
M 4 = max f ( 4) (x ) x[1,1]

f ( 4) ( x ) = e x M4 = e 1 E3 (x ) 3 e 0.142 10 1 2 4!

3.7

Convergenza delle formule di interpolazione

Quando una funzione f(x) viene approssimata con un polinomio di interpolazione, lerrore nei nodi di interpolazione nullo. In base a questo fatto si potrebbe pensare che lapprossimazione di f(x) migliori allaumentare del numero dei nodi, ossia che al crescere di n, la successione dei polinomi di interpolazione Pn (x ) converga a f(x) in tutto lintervallo [a,b]
n

lim f (x ) Pn (x ) = 0

x [a ,b]

Si pu dimostrare che questo in generale non vero: si possono trovare molti esempi di funzioni per cui la successione di polinomi Pn (x ) non converge a f(x) per n . Vale il teorema seguente, che fornisce una condizione sufficiente per la convergenza

Teorema Siano dati n + 1 punti distinti x0 , x1 ,..., xn appartenenti allintervallo [a,b] e sia x [a ,b] ; il polinomio Pn (x ) converge uniformemente a f ( x) per n se la pi piccola delle distanze dei punti di [a,b] dalle singolarit della funzione7 f ( z ) maggiore di b a .
Un esempio classico (esempio di Runge) in cui non si ha la convergenza costituito dalla funzione 1 f ( x) = 1+ x2 interpolata su nodi equidistanti nellintervallo [5,5].

f ( z ) funzione della variabile complessa z.

Dipartimento di Matematica

156

M. Garetto Metodi Numerici

In questo caso la successione di polinomi di interpolazione non converge a f(x) per n ; in altre parole lerrore E n (x ) = f ( x) Pn ( x) non tende a zero per n . La funzione 1 f ( z) = 1+ z2 ha i poli nei punti z = i , troppo vicini ai punti dellintervallo [5,5]. Per illustrare il modo in cui Pn (x ) approssima f(x) al variare di x nellintervallo [5,5], si osservino le figg. 9 e 10 seguenti, in cui si riportano i grafici di f(x) e i grafici di P4 (x ) e di P 10 ( x ) , costruiti rispettivamente su 5 e su 11 nodi equidistanti.

Figura 9

Figura 10

Si osservano oscillazioni ampie vicino agli estremi dellintervallo. La divergenza di Pn (x ) da f(x) per x < 4 e x > 4 peggiora al crescere di n. Questo problema si verifica perch i nodi sono equidistanti. Si pu per dimostrare che con una scelta diversa dei nodi (non equidistanti) si pu ottenere la convergenza della successione dei polinomi di interpolazione. A questo scopo devono essere usati i nodi di Chebyshev. In generale si pu dimostrare che, se f ( x) e f ' ( x) sono continue sullintervallo [a,b], linterpolazione con nodi di Chebyshev fornisce una successione di polinomi {Pn ( x )} che converge uniformemente a f ( x) su [a,b].

Osservazione Quando si considera la formula dellerrore di interpolazione (3.5), il polinomio n ( x) = (x x0 )(x x1 )....(x xn ) un termine importante nel determinare il comportamento dellerrore. Per grandi valori di n (n > 5), i valori di n ( x) variano molto nellintervallo (x0 , xn ) ; pi precisamente n ( x) assume valori molto pi grandi nei sottointervalli (x0 , x1 ) e ( x n 1 , x n ) , rispetto ai valori assunti nella parte centrale dellintervallo. Questo fatto viene ben evidenziato dal grafico nella fig. 11, dove rappresentato il polinomio 8 ( x) costruito su 9 nodi equidistanti nellintervallo [2,2].

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

157

Figura 11

Quando si considera n ( x) come parte integrante della formula dellerrore, quanto prima osservato ha la conseguenza che lerrore di interpolazione su x generalmente pi piccolo quando x nella zona centrale dellintervallo di interpolazione. Queste difficolt sconsigliano luso di formule con un alto numero di nodi, sia equidistanti che in generale arbitrari. Un caso interessante in cui i polinomi di grado elevato danno risultati non adeguati illustrato nellesempio 18, 3.8.

3.8

Interpolazione con funzioni polinomiali a tratti.

Siano assegnati n +1 punti distinti (xk , y k ) tali che a = x0 < x1 < ... < xn = b Esiste un unico polinomio Pn ( x ) di grado n passante per tali punti; tuttavia quando il numero n dei punti elevato, il comportamento di Pn (x ) pu essere troppo oscillante e quindi non accettabile; in questi casi si preferisce operare con tratti di polinomi di grado basso. Nel caso pi semplice usiamo un polinomio di primo grado in ogni sottointervallo (x k , xk +1 ) e costruiamo cos una spezzata che unisce i vari punti (xk , y k ) . Questo metodo detto interpolazione lineare a tratti. Le funzioni polinomiali a tratti cos costruite sono continue in tutto lintervallo [a,b], ma in generale non derivabili in tutti i nodi, dove ci sono dei punti angolosi. Se supponiamo n dispari e dividiamo linsieme dei nodi in terne consecutive, si pu costruire in ogni intervallo ( xk , xk + 2 ) il polinomio di interpolazione di secondo grado. In questo caso la funzione polinomiale a tratti lunione di archi di parabole passanti per tre punti consecutivi. Anche le funzioni polinomiali a tratti costruite seguendo questa strategia sono continue in tutto lintervallo, ma di solito non derivabili nei punti di unione di due archi contigui, dove ci sono dei punti angolosi.
Esempio 17 Siano assegnati i dati della seguente tabella

xk 0.0 1.0 2.0 2.5 3.0 3.5 4.0

yk 2.5 0.5 0.5 1.5 1.5 1.1 0.0

Dipartimento di Matematica

158

M. Garetto Metodi Numerici

Il polinomio di interpolazione di Lagrange di sesto grado ha il grafico rappresentato nella fig. 12; il polinomio di sesto grado presenta oscillazioni piuttosto ampie.

Figura 12

Con linterpolazione lineare a tratti si costruisce la spezzata rappresentata nella fig. 13; in ogni nodo c un punto angoloso.

Figura 13

Interpolando invece con tratti di polinomi di secondo grado si ottiene la curva rappresentata nella fig. 14; nei nodi di ascissa x2 = 2 e x4 = 3 sono ancora presenti due punti angolosi.

Figura 14

Un altro modo di risolvere il problema dellinterpolazione con funzioni polinomiali a tratti consiste nellusare polinomi di terzo grado costruiti fra coppie di nodi, imponendo che la polinomiale a tratti passi per tutti i nodi e abbia la derivata prima e seconda continue in tutti i punti dellintervallo [a,b]: la polinomiale cos costruita si chiama spline cubica.

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

159

Le funzioni spline cubiche sono diventate uno strumento molto importante per la rappresentazione analitica di dati, perch sono funzioni regolari (continue e con derivate prima e seconda continue), non hanno oscillazioni troppo grandi, come accade invece con polinomi di grado elevato, e sono ragionevolmente semplici da costruire con laiuto di un computer8. Nella fig. 15 rappresentata la spline cubica che interpola i dati dellesempio 17.

Figura 15

Definizione Siano dati n +1 punti distinti (xk , y k ) tali che a = x0 < x1 < ... < xn = b y k = f (xk ) k = 0,1,..., n Una funzione S(x) continua, e con derivate prima e seconda continue in [a,b] , viene detta spline cubica per lapprossimazione della funzione y = f(x) se 1 in ogni intervallo [xk , xk +1 ] , k = 0,1,...,n 1, S(x) un polinomio al pi di terzo grado; 2 S (xk ) = f (xk ) k = 0 ,1,..., n

Per determinare la spline cubica S(x) che interpola la funzione f(x) nei nodi a = x0 < x1 < ... < xn = b , indichiamo con S k (x ) , k = 0,1,...,n 1, il polinomio che coincide con S(x) nellintervallo [x k , x k +1 ] , e imponiamo le condizioni assegnate nella definizione precedente. 1 S(x) un polinomio al pi di terzo grado, indicato con S k (x ) , in ogni sottointervallo [xk , xk +1 ] , k = 0,1,...,n 1. 2 S(x) interpola f(x) nei nodi, ossia passa per tutti i punti assegnati S (xk ) = f (xk ) k = 0 ,1,..., n 3 Continuit di S(x)

S k (xk +1 ) = S k +1 (xk +1 )
4 Continuit della derivata prima di S(x)

k = 0 ,1,...n 2

S 'k (x k +1 ) = S 'k +1 (x k +1 ) k = 0,1,...n 2 5 Continuit della derivata seconda di S(x) S 'k' (xk +1 ) = S 'k' +1 (xk +1 ) k = 0 ,1,...n 2 Queste condizioni conducono a un sistema lineare di 4n 2 equazioni nelle 4n incognite costituite dai coefficienti dei polinomi (una spline cubica composta da n polinomi al pi di terzo grado, e ciascuno di essi individuato da quattro coefficienti); per determinare le incognite occorre perci imporre due condizioni aggiuntive opportune. Le due condizioni mancanti possono essere imposte in pi modi diversi; fra le scelte possibili le pi comuni sono le seguenti

La costruzione di funzioni spline senza laiuto di un computer richiede calcoli piuttosto laboriosi, come si vedr con gli esempi 21 e 22. Dipartimento di Matematica

160

M. Garetto Metodi Numerici

6 Spline naturale. Si impone

S ' ' (a ) = S ' ' (b ) = 0


S ' (a ) = f ' (a )

6 Spline vincolata (o completa). Se sono noti i valori di f ' (a ) e f ' (b ) , si impone

S ' (b ) = f ' (b ) 6 Spline periodica. Se la funzione periodica di periodo b a, ossia f (a ) = f (b ) , si impone S ' (a ) = S ' (b ) S ' ' (a ) = S ' ' (b ) 6 Spline not-a-knot. Si impone la continuit della derivate terza nel secondo e nel penultimo nodo

S 0''' (x1 ) = S1''' ( x1 )

S n 2''' (xn 1 ) = S n 1''' (xn 1 ) Si dimostra il seguente


Teorema Dati n +1 punti distinti (xk , y k ) tali che a = x0 < x1 < ... < xn = b y k = f (xk ) k = 0,1,..., n esiste ed unica la spline cubica che approssima f(x) e verifica una delle condizioni: spline naturale, spline vincolata, spline periodica, spline not-a-knot.

Per determinare i coefficienti dei polinomi S k (x ) si potrebbe risolvere il sistema lineare di 4n equazioni costruito imponendo le condizioni 1 5 e una delle condizioni aggiuntive 6; possibile per ridurre il numero di equazioni e risolvere un sistema di n +1 equazioni, considerando come nuove incognite i valori della derivata seconda nei nodi, ossia le quantit M k = S ' ' (xk ) k = 0,1,..., n dette momenti. Con il procedimento che segue, si trasforma il sistema di 4n 2 equazioni in un sistema di n 1 equazioni nelle n +1 incognite M k , k = 0 ,1,..., n . Poich S(x) un polinomio a tratti di terzo grado, la sua derivata seconda S '' ( x ) un polinomio a tratti di primo grado nellintervallo [x0 , xn ] e pu essere rappresentata con la formula di interpolazione di Lagrange. Con la formula di interpolazione lineare per S '' (x ) = S '' k ( x ) nellintervallo [x k , x k +1 ] si ottiene x xk +1 x xk '' S '' + S '' (xk +1 ) k ( x ) = S ( xk ) xk xk +1 xk +1 xk

Costruzione di una spline cubica

Ponendo hk = xk +1 xk e sostituendo M k = S '' (xk ) , M k +1 = S '' ( xk +1 ) , si ha xk +1 x x xk per xk x xk +1 e k=0, 1,, n1. S '' + M k +1 k (x ) = M k hk hk Integrando due volte e indicando con Pk e Qk le due costanti di integrazione si ottiene
S 'k (x ) = M k
S k (x ) = M k

(xk +1 x )2 + M
2hk
6hk

k +1

(x xk )2 + P
2hk
6hk

(3.10) (3.11)

(xk +1 x )3 + M

k +1

(x xk )3 + P (x x ) + Q k k k

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

161

Le condizioni di interpolazione nei nodi sono S (xk ) = yk e S (xk +1 ) = yk +1 . Imponiamo tali condizioni sostituendo xk e x k + 1 nella (3.11)
yk = M k

(xk +1 xk )3 + Q
6hk 6hk

k k +1 xk

yk +1 = M k +1

(xk +1 xk )3 + P (x
k

) + Qk

Risolvendo queste due equazioni si ricavano Pk e Qk


h2 Qk = yk M k k 6 yk +1 yk hk (M k M k +1 ) Pk = + 6 hk Imponiamo ora le condizioni di continuit della derivata prima di S(x) nella (3.10) S 'k 1 (xk ) = S 'k (xk ) k = 1,...n 1 Si ha h h y yk 1 hk 1 (M k 1 M k ) S 'k 1 (xk ) = M k k 1 + Pk 1 = M k k 1 + k + 2 2 6 hk 1 h h y yk hk (M k M k +1 ) S 'k (xk ) = M k k + Pk = M k k + k +1 + 2 2 6 hk Uguagliando si ottiene

(3.12)

(3.13)

h y yk 1 hk 1 (M k 1 M k ) = M k hk + yk +1 yk + hk (M k M k +1 ) M k k 1 + k + 2 6 2 6 hk 1 hk h h y yk yk yk 1 h +h M k 1 k 1 + M k k 1 k + M k +1 k = k +1 6 3 6 hk hk 1

e infine, con
y yk d k = k +1 hk

M k 1hk 1 + 2 M k (hk 1 + hk ) + M k +1hk = 6(d k d k 1 ) k = 1,2,..., n 1 (3.14) Le equazioni (3.14) costituiscono un sistema di n1 equazioni nelle n+1 incognite M 0 , M1 ,, M n . Altre due relazioni si ricavano imponendo una delle condizioni aggiuntive 6, pag. 160 (spline naturale, vincolata, periodica, not-a-knot). Ad esempio per ottenere la spline naturale si impone la condizione S ' ' (a ) = S ' ' (b ) = 0 che fornisce le due relazioni aggiuntive M0 = 0

y yk 1 d k 1 = k hk 1

Mn = 0 Si ottiene in questo caso (spline naturale) il sistema 2M1 (h0 + h1 ) + M 2 h1 = 6(d1 d 0 )

M n 2 hn 2 + 2M n 1 (hn 2 + hn 1 ) = 6(d n 1 d n 2 ) Il sistema a diagonale strettamente dominante e simmetrico, perci possiede soluzione unica e pu essere risolto con il metodo di eliminazione di Gauss senza pivoting9.
9

M k 1hk 1 + 2M k (hk 1 + hk ) + M k +1hk = 6(d k d k 1 )

k = 2,..., n 2

(3.15)

Vedere 2.20, Teorema pag.93.

Dipartimento di Matematica

162

M. Garetto Metodi Numerici

Esempio 18 Si vuole approssimare la funzione segno x<0 0 f (x ) = sgn(x ) = x>0 1 La funzione segno ha una brusca variazione per x = 0; nelle figure 1619 si confrontano i polinomi di interpolazione di gradi diversi e si osserva come allaumentare del grado del polinomio si hanno oscillazioni sempre pi rilevanti, che comportano unapprossimazione della funzione sempre peggiore. Nella figura 20 rappresentata la funzione spline ottenuta usando 10 nodi equidistanti (gli stessi usati per costruire il polinomio di grado 9); si osserva come le oscillazioni siano molto meno importanti e di conseguenza lapprossimazione della funzione sia molto migliore.
Polinomio di grado 3
1.5

Polinomio di grado 5
1.5

0.5

0.5

-0.5 -4

-3

-2

-1

-0.5 -4

-3

-2

-1

Figura 16
Polinomio di grado 7
2

Figura 17
Polinomio di grado 9
2

1.5

1.5

0.5

0.5

-0.5

-0.5

-1 -4

-3

-2

-1

-1 -4

-3

-2

-1

Figura 18
Funzione spline cubica
1.2

Figura 19

0.8

0.6

0.4

0.2

-0.2 -4

-3

-2

-1

Figura 20

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

163

Esempio 19 Verificare che la funzione 3 2 1 x 2 x 3x + 2 x + 1 S ( x) = 3 2 2 x3 x + 9 x 22 x + 17 una spline cubica naturale in [1,3]. La funzione S(x) deve essere continua e con derivate prima e seconda continue in [1,3]. Indichiamo con S 0 (x ) il primo tratto di S(x) e con S1 (x ) il secondo tratto

S 0 (x ) = x 3 3x 2 + 2 x + 1 S1 (x ) = x 3 + 9 x 2 22 x + 17 Continuit di S (x ) in x = 2

1 x 2 2 x3

S 0 (2 ) = 1 S ( x ) continua in x = 2 S1 (2) = 1

Continuit di S ' (x ) in x = 2
' (x ) = 3x 2 6 x + 2 S0 ' (x ) = 3x 2 + 18 x 22 S1 ' (2) = 2 S0 ' S (x ) continua in x = 2 ' S1 (2) = 2

Continuit di S ' ' ( x ) in x = 2

'' (x ) = 6 x 6 S0 '' (x ) = 6 x + 18 S1 '' (2) = 6 S0 '' S (x ) continua in x = 2. '' S1 (2) = 6 La funzione S (x ) quindi una spline cubica; anche una spline naturale se

'' (x0 ) = S'n' 1(xn ) = 0 S0

Si ha
'' (1) = 0 S0 S (x ) una spline naturale . '' S1 (3) = 0

Esempio 20 Verificare che la funzione 1 3 2 1 x 4 x + 12 x + 9 x + 1 2 1 1 S ( x ) = 4 x 3 + 3 x x 2 2 1 3 2 x 1 4 x 12 x + 9 x 1 2 una spline cubica naturale in [1,1]. La funzione S(x) deve essere continua e con derivate prima e seconda continue in [1,1].

Dipartimento di Matematica

164

M. Garetto Metodi Numerici

S 0 (x ) = 4 x 3 + 12 x 2 + 9 x + 1 S1 (x ) = 4 x 3 + 3x S 0 (x ) = 4 x 3 12 x 2 + 9 x 1 Continuit di S (x ) in x =

1 x

1 2 1 1 x 2 2 1 x 1 2

1 1 e in x = 2 2 1 S 0 = 1 1 2 S ( x ) continua in x = 2 1 S1 = 1 2

1 S1 = 1 1 2 S ( x ) continua in x = 2 1 S 2 = 1 2
1 1 Continuit di S ' ( x ) in x = e in x = 2 2
' (x ) = 12 x 2 + 24 x + 9 S0 ' (x ) = 12 x 2 + 3 S1

S '2 (x ) = 12 x 2 24 x + 9 ' 1 S0 = 0 1 2 ' S (x ) continua in x = 2 ' 1 S1 = 0 2 '1 S1 =0 1 2 ' S (x ) continua in x = 2 1 S '2 = 0 2


1 1 Continuit di S ' ' (x ) in x = e in x = 2 2
'' (x ) = 24 x + 24 S0 '' (x ) = 24 x S1 ' (x ) = 24 x 24 S '2

'' 1 S0 = 12 1 2 '' S (x ) continua in x = 2 '' 1 S1 = 12 2

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

165

La funzione S (x ) quindi una spline cubica; anche una spline naturale se


'' (x0 ) = S 'n' 1 (xn ) = 0 S0

'' 1 S1 = 12 1 2 '' S (x ) continua in x = 2 '1 S '2 = 12 2

Si ha
'' ( 1) = 0 S0 S (x ) una spline naturale . '' S 2 (1) = 0

Esempio 21 Determinare la spline cubica naturale che passa per i punti (0,0) (1,0.5) (2,2) (3,1.5) Calcoliamo dapprima le quantit h0 = h1 = h2 = 1

y y0 d0 = 1 = 0.5 h0 y y d1 = 2 1 = 1.5 h1 y y2 d2 = 3 = 0.5 h2 La spline cubica naturale, perci M0 = 0 M3 = 0 Il sistema (3.15) per determinare i momenti il seguente 2(1 + 1)M1 + M 2 = 6(1.5 0.5) M1 + 2(1 + 1)M 2 = 6( 0.5 1.5)
4 M 1 + M 2 = 6 M1 + 4 M 2 = 12 Le soluzioni del sistema sono M1 = 2.4 M 2 = 3.6 Con le espressioni (3.11), (3.12) e (3.13) ricaviamo le funzioni S 0 (x ) , S1 ( x ) e S 2 (x ) (x x0 )3 + P (x x ) + Q S0 (x ) = M1 0 0 0 6h0

y y0 h0 1 P0 = 1 + (M 0 M1 ) = 0.5 2.4 = 0.1 h0 6 6


h2 Q0 = y0 M 0 0 = 0 6

S 0 ( x ) = 2 .4 S1 ( x ) = M1

x3 + 0.1x = 0.4 x 3 + 0.1x 6

(x2 x )3 + M (x x1 )3 + P (x x ) + Q
6h1
2

6h1

Dipartimento di Matematica

166

M. Garetto Metodi Numerici

y2 y1 h1 1 P + (M 1 M 2 ) = 2 0.5 + (2.4 + 3.6 ) = 2.5 1= h1 6 6

h2 1 Q1 = y1 M1 1 = 0.5 2.4 = 0.1 6 6


S1 ( x ) = 2.4 6 6

(2 x )3 3.6 (x 1)3 + 2.5(x 1) + 0.1 = x3 + 4.2 x 2 4.1x + 1.4

S 2 (x ) = M 2

(x3 x )3 + P (x x ) + Q 2 2 2
6h2

y y2 h2 1 P2 = 3 + M 2 = 1.5 2 3.6 = 1.1 h2 6 6

1 h2 Q2 = y2 M 2 2 = 2 + 3.6 = 2.6 6 6 S 2 ( x ) = 3.6 6

(3 x )3 1.1(x 2) + 2.6 = 0.6 x3 5.4 x 2 + 15.1x 11.4


0 x 1 1 x 2 2 x3

La funzione spline naturale 0.4 x 3 + 0.1x S (x ) = x 3 + 4.2 x 2 4.1x + 1.4 0.6 x 3 5.4 x 2 + 15.1x 11.4 Il grafico di S ( x ) rappresentato nella fig. 21

Figura 21

Esempio 22 Determinare la spline cubica naturale che interpola la funzione f (x ) = sin x nellintervallo [1,1] 1 1 sui nodi x0 = 1, x1 = , x2 = , x3 = 1. 2 2 La funzione f (x ) = sin x nei nodi assume i valori y0 = 0, y1 = 1, y2 = 1, y3 = 0. Calcoliamo dapprima le quantit 1 1 h0 = h1 = 1 h2 = 2 2

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

167

y y0 1 d0 = 1 = = 2 1 h0 2 y2 y1 1 + 1 = =2 d1 = h1 1 y y2 1 d2 = 3 = = 2 1 h2 2 La spline cubica naturale, perci M0 = 0 M3 = 0 Il sistema (3.15) per determinare i momenti il seguente 1 2 2 + 1 M1 + M 2 = 6(2 + 2) 1 M + 2 1 + M 2 = 6( 2 2) 1 2 3M 1 + M 2 = 24 M1 + 3M 2 = 24 Le soluzioni del sistema sono M1 = 12 M 2 = 12 Con le espressioni (3.11), (3.12) e (3.13) ricaviamo le funzioni S 0 (x ) , S1 ( x ) e S 2 (x ) (x x0 )3 + P (x x ) + Q S0 (x ) = M1 0 0 0 6h0 1 y1 y0 h0 1 2 P0 = + (M 0 M1 ) = 12 = 3 1 6 h0 6 2

h2 Q0 = y0 M 0 0 = 0 6

S 0 ( x ) = 12

(x + 1)3 3(x + 1) = 4 x3 + 12 x 2 + 9 x + 1
6 1 2

S1 ( x ) = M 1

(x2 x )3 + M (x x1 )3 + P (x x ) + Q
6h1
2

6h1

y2 y1 h1 1 P + (M1 M 2 ) = 2 0.5 + (12 + 12 ) = 6 1= h1 6 6 h2 1 Q1 = y1 M1 1 = 1 12 = 3 6 6 1 1 x x+ 2 2 12 S1 ( x ) = 12 + 6( x + 2) 3 = 4 x 3 + 3x 6 6 S 2 (x ) = M 2


3 3

(x3 x )3 + P (x x ) + Q 2 2 2
6h2

Dipartimento di Matematica

168

M. Garetto Metodi Numerici

1 y y2 h2 1 2 P2 = 3 + M2 = 12 = 3 1 6 6 h2 2 1 2 h2 Q2 = y2 M 2 = 1 + 12 4 = 1.5 6 6 S 2 ( x ) = 12 6 1 2 2

(1 x )3 3 x 1 + 1.5 = 4 x3 12 x 2 + 9 x 1

La funzione spline naturale 3 2 4 x + 12 x + 9 x + 1 S ( x ) = 4 x 3 + 3 x 3 2 4 x 12 x + 9 x 1 Il grafico di S ( x ) rappresentato nella fig. 22

1 x

1 2

1 1 x 2 2 1 x 1 2

Figura 22

Caso dei nodi equidistanti

Se gli n+1 nodi a = x0 < x1 < ... < xn = b sono equidistanti, posto h = xk +1 xk , k = 0,1,..., n 1 , il sistema (3.14) per la determinazione dei momenti diventa 6 (3.16) M k 1 + 4M k + M k +1 = 2 ( yk +1 2 yk + yk 1 ) k = 1,2,..., n 1 h Per la stima dellerrore di troncamento nellinterpolazione con una spline cubica su nodi equidistanti si dimostra che vale il seguente
Teorema Sia f (x ) una funzione derivabile due volte con continuit sullintervallo [a,b] e sia

M = max f " (x ) .
a x b

Se S (x ) la spline cubica che interpola f (x ) su nodi equidistanti in [a,b], allora per ogni x[a,b] si ha 7 ET = f ( x ) S (x ) h 2 M 8

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

169

Esempio 23 Determinare la spline cubica naturale che passa per i punti 1 1 1 (1,1) 2, 3, 4, 2 3 2 Si ha h = 1 , M 0 = 0 e M 3 = 0 (spline naturale). Il sistema (3.16) per la determinazione dei momenti il seguente 1 1 4M1 + M 2 = 6 3 2 + 1 1 2 1 M + 4M = 6 + 1 2 4 3 2

4 M 1 + M 2 = 2 1 M1 + 4M 2 = 2 La soluzione 1 M2 = 0 . 2 Le (3.11), (3.12), (3.13) per la determinazione della spline nel caso dei nodi equidistanti diventano M1 = S k (x ) = M k

(xk +1 x )3 + M
6h
h 6
2

k +1

(x xk )3 + P (x x ) + Q k k k
6h

Qk = yk M k

y yk hk (M k M k +1 ) Pk = k +1 + 6 hk Con queste formule si ottiene 1 1 7 P0 = = Q0 = 1 2 12 12 S0 (x ) = P 1=

1 (x 1)3 7 1 1 1 3 ( x 1) + 1 = x 3 x 2 x + 2 6 12 12 4 3 2 Q1 = 1 1 5 = 2 12 12

1 1 1 1 + = 3 2 12 12

S1 ( x ) = P2 =

1 (3 x )3 1 5 1 3 7 17 (x 2) + = x3 + x 2 x + 2 6 12 12 12 4 3 6

1 1 1 1 = Q2 = 4 3 12 3 1 1 1 7 S 2 ( x ) = ( x 3) + = x + 12 3 12 12 La funzione spline naturale 3 1 3 1 2 1 12 x 4 x 3 x + 2 3 7 17 1 S ( x ) = x 3 + x 2 x + 4 3 6 12 7 1 12 x + 12

1 x 2 2 x3 3 x 4

Dipartimento di Matematica

170

M. Garetto Metodi Numerici

Il grafico di S ( x ) rappresentato nella fig. 23

Figura 23

3.9

Interpolazione trigonometrica

Una classe molto importante di funzioni costituita dalle funzioni periodiche. Una funzione f (x ) detta periodica di periodo P se f (x + P ) = f (x ) x R . Le pi note funzioni periodiche sono le funzioni trigonometriche. Le funzioni periodiche sono frequentemente utilizzate nelle applicazioni: ad esempio molti fenomeni fisici, quali la luce e il suono, hanno un carattere periodico; questo fatto giustifica lo studio di una formula di interpolazione adatta per interpolare dati originati da tali funzioni. In questo contesto viene introdotta la trasformata di Fourier (FFT, Fast Fourier Transform), utilizzata per la soluzione di problemi connessi a funzioni periodiche. Si osservi dapprima che con un opportuno cambiamento della variabile indipendente sempre possibile fare in modo che il periodo sia P = 2 , ossia la funzione soddisfi la propriet f ( x + 2 ) = f ( x ) x R .

Infatti se g (x ) ha periodo P, allora la funzione essendo

Px f (x ) = g sar periodica con periodo 2, 2

P ( x + 2 ) Px Px + P = g = f (x ) . f ( x + 2 ) = g = g 2 2 2 Assumeremo quindi che f (x ) sia una funzione periodica con periodo 2. Le funzioni trigonometriche hanno molte caratteristiche simili a quelle dei polinomi; esse si calcolano facilmente mediante serie rapidamente convergenti; inoltre le loro derivate successive sono ancora funzioni dello stesso tipo e cos i loro integrali. Esse hanno anche propriet di ortogonalit e di periodicit (che non hanno i polinomi) e costituiscono quindi la classe di funzioni pi adatta per approssimare funzioni periodiche.
Definizione Una funzione della forma

a T (x ) = 0 + a j cos jx + b j sin jx 2 j =1 detta polinomio trigonometrico di grado m.

(
m

(3.17)

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

171

Data una funzione f (x ) reale definita nellintervallo [0,2], il problema dellinterpolazione trigonometrica consiste nel determinare il polinomio trigonometrico T (x ) di grado minimo tale che T ( xk ) = y k k = 0,1,..., n 1 dove yk = f ( xk ) sono i valori assunti da f (x ) negli n punti 2k xk = k = 0,1,..., n 1 . n Si pu dimostrare il seguente Teorema Il polinomio trigonometrico di interpolazione per la funzione xk , k = 0,1,..., n 1 , unico ed ha la forma

f (x )

negli

punti

m 1 a a j cos jx + b j sin jx se n = 2m 1 0+ 2 = 1 j T (x ) = a0 m 1 a a j cos jx + b j sin jx + m cos mx se n = 2m 2 + 2 = 1 j e i coefficienti a j ,b j , j = 0 ,1,2 ,..., m , possono essere ottenuti con le seguenti formule

( (

) )

(3.18)

aj =

2 yi cos jxi , n i =0

n 1

j = 0 ,1,..., m

(3.19)

bj =

2 yi sin jxi , n i =0

n 1

j = 1,..., m 1

(3.20)

E opportuno ricordare che esistono algoritmi pi efficienti per il calcolo dei coefficienti a j e b j , ad esempio lalgoritmo FFT (Fast Fourier Transform). Unimportante propriet di cui gode linterpolazione trigonometrica quella della convergenza, per n che tende allinfinito, del polinomio Tn ( x ) alla funzione f (x ) , se sono soddisfatte opportune ipotesi di regolarit. Vale a tale proposito il seguente
Teorema Sia f (x ) una funzione periodica di periodo 2 e derivabile due volte con continuit. Allora per ogni > 0 esiste un polinomio trigonometrico di interpolazione T (x ) tale che

f (x ) T (x )

per ogni x

Esempio 24 Sia f (x ) la funzione continua a tratti ottenuta per estensione periodica di periodo 2 della funzione f (x ) = x per 0 x < 2 . Scrivere i polinomi trigonometrici di interpolazione costruiti rispettivamente su 3 nodi e su 8 nodi. 2k xk = k = 0 ,1,2 n = 3 , dispari 3 Nodi 2 4 x0 = 0 x1 = x2 = 3 3 a T (x ) = 0 + a1 cos x + b1 sin x 2

Dipartimento di Matematica

172

M. Garetto Metodi Numerici

Calcolo dei coefficienti

a0 = a1 = b1 =

2 2 2 4 4 + yi = = 3 i =0 3 3 3 3

2 2 2 2 2 4 4 2 2 1 4 1 2 + yi cos xi = cos cos = + = 3 i =0 3 3 3 3 3 3 3 2 3 2 3

2 2 2 2 2 4 4 2 2 3 4 3 = 2 3 + + yi sin xi = sin sin = 3 i =0 3 3 3 3 3 3 3 9 3 2 2

2 2 2 3 cos x sin x 3 3 9 Nella fig. 24 sono riportati il grafico su tre periodi della funzione f (x ) e il grafico del polinomio trigonometrico di interpolazione T (x ) su 3 nodi. T (x ) =

Figura 24

n = 8 , pari
Nodi
x0 = 0 x5 = x1 = 4

xk =

2k k = 8 4

k = 0 ,1,...,7

x2 =

x3 =

3 4

x4 =

5 3 7 x6 = x7 = 4 2 4 a0 T (x ) = + a1 cos x + b1 sin x + a2 cos 2 x + b2 sin 2 x + 2 a + a3 cos 3x + b3 sin 3 x + 4 cos 4 x 2 Calcolo dei coefficienti a0 = a1 = 1 1 3 5 3 7 7 yi = + + ++ + + = 4 i =0 44 2 4 4 2 4 4

1 1 3 3 yi cos xi = cos + cos + cos + cos + 4 i =0 4 4 4 2 2 4 4

+ =

5 5 3 3 7 7 cos cos = + cos + 4 4 2 2 4 4

1 2 3 2 + 5 2 + 7 2 = + 4 4 4 4 2 4 2 2 4 2

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

173

a2 =

a3 =

a4 =

b1 =

1 1 3 3 + sin + yi sin xi = sin + sin + sin 4 i =0 44 4 2 2 4 4

+ =

5 5 3 3 7 7 + + sin sin sin = 4 4 2 2 4 4

1 2 3 2 5 2 3 7 2 + + = 1+ 2 4 2 4 2 4 2 2 4 2 4 4 2 b2 = b3 = 1 2 4 4

7 cos x 1 + 2 sin x cos 2 x sin 2 x cos 3x + 1 2 sin 3 x cos 4 x = 8 4 4 4 4 4 4 8 7 = (cos x + cos 2 x + cos 3x + sin 2 x ) 1 + 2 sin x + 1 2 sin 3x cos 4 x 8 4 4 4 8 Nella fig. 25 sono riportati il grafico su tre periodi della funzione f (x ) e il grafico del polinomio trigonometrico di interpolazione T (x ) su 8 nodi. T (x ) =

Figura 25

Esempio 25 Sia f (x ) la funzione continua a tratti ottenuta per estensione periodica di periodo 2 della funzione f ( x ) = x(2 x ) per 0 x < 2 . Scrivere i polinomi trigonometrici di interpolazione costruiti rispettivamente su 3 nodi e su 8 nodi. 2k xk = k = 0 ,1,2 n = 3 , dispari 3 Nodi 2 4 x0 = 0 x1 = x2 = 3 3 a0 T (x ) = + a1 cos x + b1 sin x 2

Calcolo dei coefficienti


a0 = 2 2 2 2 4 4 32 2 yi = 2 = 2 + 3 i =0 3 3 3 3 3 27

Dipartimento di Matematica

174

M. Garetto Metodi Numerici

a1 = b1 =

2 4 4 16 2 2 2 4 2 2 2 + = yi cos xi = cos cos 2 2 3 3 27 3 3 3 3 i =0 3 3

2 4 4 2 2 4 2 2 2 + yi sin xi = =0 2 sin 2 sin 3 3 3 3 3 3 i =0 3 3

16 2 16 2 cos x 27 27 Nella fig. 26 sono riportati il grafico su tre periodi della funzione f (x ) e il grafico del polinomio trigonometrico di interpolazione T (x ) su 3 nodi. T (x ) =

Figura 26

n = 8 , pari
Nodi x0 = 0 x5 = x1 = 4

xk =

2k k = 8 4

k = 0 ,1,...,7

x2 =

x3 =

3 4

x4 =

5 3 7 x6 = x7 = 4 2 4 a0 T (x ) = + a1 cos x + b1 sin x + a2 cos 2 x + b2 sin 2 x + 2 a + a3 cos 3x + b3 sin 3 x + 4 cos 4 x 2 Calcolo dei coefficienti

a0 =

3 1 1 3 yi = 2 + 2 + 2 + (2 ) + 4 i =0 4 4 4 2 2 4 4

+ a1 =

5 5 3 3 7 7 21 2 2 + 2 + 2 = 4 4 2 2 4 4 16

2 2 2 2 a2 = a3 = a4 = 2+ 2 2 2 8 8 8 16 1 3 3 3 b1 = 2 sin + 2 sin + 2 sin + (2 ) sin + 4 4 4 4 2 2 2 4 4 4


5 5 5 3 3 3 7 7 7 + 2 sin + =0 2 sin 2 sin 4 4 4 2 2 2 4 4 4 b2 = 0 b3 = 0 +

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

175

21 2 2 2 2 2 2 + 2 cos x cos 2 x 2 2 cos 3 x cos 4 x 32 8 8 8 32 Nella fig. 27 sono riportati il grafico su tre periodi della funzione f (x ) e il grafico del polinomio trigonometrico di interpolazione T (x ) su 8 nodi. T (x ) =

Figura 27

f (x ) = 2 x 2 9 nellintervallo x . Con una semplice traslazione si ottengono i nodi nellintervallo x 2k xk = k = 0 ,1,2,3 4 3 x0 = , x1 = = , x2 = 0 , x3 = = 2 2 2 2 2 2 y0 = 2 2 9 , y1 = 9, y2 = 9, y3 = 9 2 2 a a T (x ) = 0 + a1 cos x + b1 sin x + 2 cos 2 x 2 2 Calcolo dei coefficienti 3 3 2 2 2 1 1 99+ 9 = a0 = yi = 2 2 9 + 18 2 i =0 2 2 2 2 3 2 2 1 1 a1 = yi cos xi = 2 2 9 cos( ) + 9 cos 9 cos 0 + 9 cos = 2 2 2 2 2 i =0 2 2

Esempio 26 Scrivere il polinomio trigonometrico di interpolazione costruito su 4 nodi per la funzione

3 2 2 2 1 1 yi cos 2 xi = 2 2 9 cos( 2 ) + 9 cos = 9 cos( ) 9 cos 0 + 2 2 2 i =0 2 2 3 2 2 1 1 b1 = yi sin xi = 2 2 9 sin( ) + 9 sin 9 sin 0 + 9 sin = 0 2 2 2 2 i =0 2 2

a2 =

3 2 2 cos 2 x 9 2 cos x + 4 4 Nella fig. 28 sono riportati il grafico della funzione f (x ) e il grafico del polinomio trigonometrico di interpolazione T (x ) su 4 nodi. T (x ) =

Dipartimento di Matematica

176

M. Garetto Metodi Numerici

Figura 28

3.10

Metodo dei minimi quadrati

Nella scienza e nellingegneria si presenta spesso il caso in cui un esperimento produce una tabella di valori y k in corrispondenza a certe ascisse xk distinte, e si deve risolvere il problema di adattare una curva ai dati sperimentali.. Le misure di grandezze fisiche sono in genere affette da errori dovuti alle misurazioni effettuate con strumenti aventi una certa precisione; non quindi consigliabile usare linterpolazione polinomiale per costruire un polinomio che passa per ogni punto. Si vuole piuttosto ricavare una funzione che, pur non passando necessariamente per i punti suddetti, rappresenti la tendenza dei dati, e permetta di fare stime in punti intermedi. Lapproccio pi comune a questo problema noto come fitting di dati ai minimi quadrati. Nelle figure seguenti si riportano sette punti che rappresentano dati ottenuti sperimentalmente; nella fig. 29 si rappresenta il polinomio di interpolazione di sesto grado: la curva passa per tutti i punti, ma caratterizzata da oscillazioni troppo ampie per poter essere vantaggiosamente utilizzata per lapprossimazione nei punti intermedi.
Polinomio di interpolazione di grado 6
11
8

Retta di regressione

10
7

9
6

6
4

5
3

3
2

2
1

0 0 1 2 3 4 5 6 7 8

0 0 1 2 3 4 5 6 7 8

Figura 29

Figura 30

Dato che ogni punto pu essere affetto da errore, la strategia migliore consiste nel cercare una funzione approssimante, ad esempio una retta, che si adatti allandamento generale mostrato dai dati senza passare necessariamente per alcun punto, come illustrato nella fig. 30.

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

177

3.11

Regressione lineare

Lesempio pi semplice di approssimazione ai minimi quadrati lutilizzo di una retta y = f ( x) = Ax + B (3.21) per rappresentare un insieme di punti definiti da coppie di dati (x1 , y1 ),(x2 , y2 ),...,(xn , yn ) . Per trovare la migliore approssimazione lineare della forma (3.21) occorre studiare gli errori, detti anche residui ek = f (xk ) y k = Axk + B y k k = 1, 2,,n ossia le differenze tra i valori assunti dalla retta y = f ( x ) in xk e la misura sperimentale y k . La scelta della migliore approssimazione lineare pu essere fatta in linea di principio con pi criteri diversi, ma solo uno fra quelli che esamineremo conduce a una soluzione unica. Una possibile strategia per determinare la retta che meglio approssima landamento dei dati consiste nello scegliere la retta che minimizza la somma degli errori
k =1

ek =

k =1

( Axk + B yk )

(3.22)

Questo criterio risulta inadeguato, come mostra la fig. 31, che rappresenta lapprossimazione di due soli punti con una retta. Ovviamente la retta migliore quella che congiunge i due punti; qualsiasi retta passante per il punto medio per rende minima la quantit (3.22), che diventa nulla perch gli errori si cancellano. La soluzione quindi non unica.
5

Figura 31

Si pu allora pensare di minimizzare la somma dei valori assoluti degli errori


k =1

ek = Axk + B yk
k =1

(3.23)

La fig. 32 mostra che anche questo criterio inadeguato: nel caso dei quattro punti disegnati in figura, qualsiasi retta passante per il punto di intersezione delle rette che uniscono i punti a due a due e compresa fra esse soddisfa il criterio (3.23). Anche questo criterio inadeguato, perch non porta a una soluzione unica.
5

Figura 32

Dipartimento di Matematica

178

M. Garetto Metodi Numerici

La strategia che permette di superare questi inconvenienti consiste nel minimizzare la somma dei quadrati degli errori. Dato un insieme di n punti (x1 , y1 ), (x2 , y2 ),..., ( xn , yn ) , tali che le ascisse xk non siano tutte coincidenti, la retta dei minimi quadrati o retta di regressione la retta y = f (x ) = Ax + B per la quale minima la quantit
E ( A, B ) =
k =1

(ek )2 = ( Axk + B yk )2
k =1

(3.24)

La caratteristica pi importante di questo criterio che consente di determinare ununica retta di regressione per ogni insieme di dati. La fig. 33 illustra il criterio adottato: si richiede che sia minima la somma dei quadrati delle lunghezze dei segmenti che costituiscono le distanze verticali dei punti dalla retta.

(xk,Axk+B)

(xk,yk)

Figura 33

Vale il seguente
Teorema Dati n punti (x1 , y1 ), (x2 , y 2 ),..., ( xn , y n ) , tali che le ascisse xk non siano tutte coincidenti10, i coefficienti della retta di regressione y = f ( x ) = Ax + B sono la soluzione del sistema lineare n n n 2 xk y k A xk + B xk = k =1 k =1 k =1 (3.25) n n yk A x k + nB = k =1 k =1

detto sistema delle equazioni normali. Per dimostrare questo risultato si deve rendere minima la quantit
E ( A, B ) =
k =1

( Axk + B yk )2

dove A e B sono le variabili e i punti (x k , y k ) sono noti. In un punto di minimo di E(A,B) le E E e si annullano. derivate parziali A B
10

Se le ascisse fossero tutte coincidenti, i punti sarebbero tutti allineati verticalmente e la soluzione sarebbe banale. Universit di Torino

Capitolo 3 Interpolazione e approssimazione

179

Calcoliamo le derivate parziali rispetto ad A e rispetto a B

E 2 2 xk ( Axk + B y k ) = 2 = Axk + Bxk xk y k A k =1 k =1

(
n

E = 2( Axk + B y k ) = 2 ( Axk + B y k ) B k =1 k =1 Imponendo che le derivate parziali siano nulle si trova

k =1 n

(Axk2 + Bxk xk yk ) = A xk2 + B xk xk yk = 0


n n n k =1

k =1

( Axk + B yk ) = A xk + nB yk = 0
k =1 k =1

k =1 n

k =1

Queste due equazioni formano un sistema lineare di due equazioni nelle incognite A e B n n n 2 A x B x xk y k + = k k k =1 k =1 k =1 n n yk A x k + nB = k =1 k =1 La soluzione di questo sistema pu essere trovata ad esempio con il metodo di Cramer. Se le ascisse xk non sono tutte coincidenti, il determinante dei coefficienti del sistema diverso da zero, perci la soluzione unica.

Osservazione Si pu facilmente dimostrare che i coefficienti A e B della retta di regressione possono anche essere calcolati con le formule seguenti, che utilizzano la media aritmetica dei valori xk e y k

x= C= A=

1 xk n k =1

y=
2

1 yk n k =1 (3.26)

k =1

(xk x )
n

1 xk x yk y C k =1

(
n

)(

B = y Ax

Esempio 27 Determinare la retta di regressione lineare per i dati riportati nelle prime due colonne della tabella seguente 2 xk yk xk y k xk 10 1 1 10 0 9 0 0 1 7 7 1 2 5 10 4 3 4 12 9 4 3 12 16 5 0 0 25 6 36 1 6 20 37 25 92

Dipartimento di Matematica

180

M. Garetto Metodi Numerici

Per scrivere il sistema lineare (3.25) conviene disporre i calcoli nella tabella, dove nellultima riga si riportano le somme delle colonne. Il sistema delle equazioni normali il seguente 92 A + 20 B = 25 20 A + 8 B = 37 Troviamo la soluzione con il metodo di Cramer 92 20 25 20 92 25 D= = 336 DA = = 540 DB = = 2904 20 8 37 8 20 37 D D 540 2904 A= A = B= B = 1.61 8.64 D D 336 336 La retta di regressione ha equazione y = 1.61x + 8.64

Figura 34

Esempio 28 Nella seguente tabella si riportano le misure y k dell'ossigeno consumato da una persona che cammina, in corrispondenza a varie velocit xk della persona. Si osservi che il grafico dei punti assegnati (fig. 35) mostra chiaramente che il volume dell'ossigeno consumato all'incirca una funzione lineare della velocit dell'individuo.
velocit (Km/h) ossigeno (litri/h)

xk 0 1 2 3 4 5 6 7 8 36

yk 19.0 20.0 20.5 21.5 22.0 23.0 23.0 23.5 24.0 196.5

xk y k 0 20.0 41.0 64.5 88.0 115.0 138.0 164.5 192.0 823.0

2 xk

0 1 4 9 16 25 36 49 64 204

Il sistema delle equazioni normali 204 A + 36 B = 823 36 A + 9 B = 196.5 La sua soluzione con il metodo di Cramer 204 36 823 36 D= = 540 DA = = 333 36 9 196.5 9

DB =

204 823 = 10458 36 196.5

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

181

333 0.62 540 La retta di regressione ha equazione y = 0.62 x + 19.37 A=

B=

10458 19.37 540

Figura 35

Esempio 29 Si vuole studiare la relazione che intercorre tra il numero xk di anni di studio di una lingua straniera e il punteggio y k ottenuto in un test di conoscenza della lingua.

anni di studio xk 3 4 4 2 5 3 4 5 3 2 35

punteggio yk 57 78 72 58 89 63 73 84 75 48 697

xk y k 171 312 288 116 445 189 292 420 225 96 2554

2 xk

9 16 16 4 25 9 16 25 9 4 133

Il grafico dei punti (xk , y k ) nella fig. 36 evidenzia la relazione lineare fra i dati: determiniamo l'equazione della retta di regressione lineare. Il sistema delle equazioni normali 133 A + 35 B = 2554 35 A + 10 B = 697 La soluzione con il metodo di Cramer 133 35 2554 35 133 2554 = 105 = 1145 = 3311 D= DA = DB = 35 10 697 10 35 697
3311 1145 10.90 31.53 B= 105 105 La retta di regressione lineare ha equazione y = 10.90 x + 31.53 Si osservi che in questo esempio alcuni dei punti (non tutti!) sono allineati verticalmente. A=

Dipartimento di Matematica

182

M. Garetto Metodi Numerici

Figura 36

Se si vuole ad esempio stimare qual il punteggio che si potr conseguire studiando per tre anni e mezzo la lingua, si trova x = 3 .5 y = 10.9 3.5 + 31.53 70
Esempio 30 Determinare la retta di regressione lineare per i dati riportati nelle prime due colonne della tabella seguente, usando le formule (3.26)

xk 3 5 6 8 9 11 42
x= C= A=

yk 3 4 4 6 5 8 30
1 42 xk = =7 n k =1 6

xk x

yk y

(xk x )(yk y ) (xk x )2


8 2 1 1 0 12 24 16 4 1 1 4 16 42

4 2 1 1 2 4

2 1 1 1 0 3

y=

1 30 yk = =5 n k =1 6

k =1

(xk x )
n

= 42

1 24 xk x y k y = = 0.57 C k =1 42

(
n

)(

B = y A x = 5 0.57 7 = 1.01 La retta di regressione ha equazione y = 0.57 x + 1.01

Figura 37

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

183

Esempio 31 Determinare la retta di regressione lineare per i dati riportati nelle prime due colonne della tabella seguente e valutare lerrore totale E dato dalla (3.24).

xk 0 1 3 4 6 14

yk 1.0 1.4 2.1 2.3 3.0 9.8

xk y k 0 1.4 6.3 9.2 18.0 34.9

2 xk 0 1 9 16 36 62

Sistema delle equazioni normali 62 A + 14 B = 34.9 14 A + 5B = 9.8 Soluzione del sistema e retta di regressione A 0.327 B 1.044

y = 0.327 x + 1.044 Calcolo dellerrore xk 0 1 3 4 6 Axk + B 1.044 1.371 2.025 2.352 3.007 yk 1.0 1.4 2.1 2.3 3.0

( Axk + B y k )2
0.0019 0.0008 0.0056 0.0027 0.0000 E = 0.0111

E=

k =1

( Axk + B yk )2 = 0.0111

Lerrore E il minimo che pu essere ottenuto usando una retta per approssimare i dati.

3.12

Regressione polinomiale

Poich molti dati sperimentali non sono ben approssimati da una retta, si pu generalizzare la nozione di fitting di dati ai minimi quadrati considerando come funzione approssimante un polinomio di grado m. Nel caso pi semplice del polinomio di secondo grado si trova la parabola dei minimi quadrati. Siano dati i punti ( x1 , y1 ), (x 2 , y 2 ),..., ( x n , y n ) ; cerchiamo la parabola y = Ax 2 + Bx + C per cui minima la quantit E ( A, B ,C ) = Vale il seguente
n k =1

(Axk2 + Bxk + C yk )

Dipartimento di Matematica

184

M. Garetto Metodi Numerici

Teorema Dati n punti (x1 , y1 ), (x2 , y2 ),..., ( xn , yn ) , tali che le ascisse xk non siano tutte coincidenti, i coefficienti della parabola dei minimi quadrati

y = Ax 2 + Bx + C sono la soluzione del sistema lineare n n 3 n 2 n 2 4 A + B xk xk + C xk = xk y k k =1 k =1 k =1 k =1 n n n n 3 2 xk + B xk + C xk = xk y k A k =1 k =1 k =1 k =1 n n n 2 + B xk xk + nC = yk A k =1 k =1 k =1

(3.27)

Le derivate parziali di E(A,B,C) rispetto ad A, B, C sono

E 2 2 ( Axk = 2 xk + Bxk + C y k ) A k =1


n n

E 2 = 2 x k ( Axk + Bxk + C y k ) B k =1 E 2 = 2 ( Axk + Bxk + C y k ) C k =1 Uguagliando a zero le derivate parziali e applicando la propriet distributiva delladdizione si trova il sistema (3.27), che possiede soluzione unica.

Esempio 32 Trovare la parabola dei minimi quadrati per i punti (3,3), (2,2), (0,1), (2,1), (4,3). Per ricavare il sistema delle equazioni normali disponiamo i calcoli nella tabella seguente

xk 3 2 0 2 4 1

yk 3 2 1 1 3 10

2 xk 9 4 0 4 16 33

3 xk

27 8 0 8 64 37

4 xk 81 16 0 16 256 369

xk y k 9 4 0 2 12 1

2 xk yk 27 8 0 4 48 87

Il sistema delle equazioni normali

369 A + 37 B + 33C = 87 37 A + 33B + C = 1 33 A + B + 5C = 10


La soluzione 3596 3948 0.178 B= 0.196 20176 20176 La parabola dei minimi quadrati ha equazione y = 0.178 x 2 0.196 x + 0.863 A= C= 17408 0.863 20176

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

185

Figura 38

Polinomi di grado pi elevato del secondo vengono usati raramente, a meno che sia noto a priori che i dati hanno un andamento di tipo polinomiale; infatti un polinomio di grado m ha m 1 punti di massimo o minimo, quindi pu oscillare molto, specialmente se m elevato, come mostra il seguente esempio. Esempio 33 I dati seguenti sono ottenuti dalla funzione y =

1 x (0.25,4.0) (1.0,1.0) (1.5,0.6667 ) (2.0,0.5) (2.5,0.4) Con la regressione polinomiale si ottengono i polinomi seguenti (fig. 39)
P2 (x ) = 0.3728 x 2 2.6204 x + 4.0814 P3 ( x ) = 0.2720 x 3 + 2.3952 x 2 6.2051x + 5.3388

(5.0,0.2)

P4 (x ) = 0.1755 x 4 1.8474 x 3 + 6.6198 x 2 10.0406 x + 6.1210 P5 ( x ) = 0.1067 x 5 + 1.3070 x 4 5.9479 x 3 + 12.9285 x 2 13.9478 x + 6.7669

Figura 39

I polinomi P3 ( x ) , P4 (x ) e P5 (x ) mostrano ampie oscillazioni nellintervallo [2,5].

3.13

Metodi di linearizzazione

Talvolta, nei casi in cui i dati sperimentali non evidenziano una correlazione di tipo lineare, possibile con un semplice cambiamento di variabile ricondursi alla ricerca della retta di regressione: il procedimento detto linearizzazione dei dati.

Dipartimento di Matematica

186

M. Garetto Metodi Numerici

Esaminiamo questo metodo in alcuni casi semplici. Supponiamo che siano assegnati i dati (x1 , y1 ), (x 2 , y 2 ), ..., (x n , y n ) e che la relazione che intercorre tra i dati sia del tipo

y =CxA C >0 ossia y cresce proporzionalmente a una potenza di x. Applicando il logaritmo naturale a entrambi i membri si ottiene ln y = ln C + A ln x e con le sostituzioni X = ln x Y = ln y B = ln C si ha Y = AX + B
Questa equazione esprime un legame lineare tra le variabili X e Y. Si determina perci la retta di regressione relativa ai dati

( X 1 ,Y1 ) = (ln x1 ,ln y1 ), ..., ( X n ,Yn ) = (ln xn ,ln y n )


e si ricava l'equazione della curva approssimante

y =CxA con C = e B dove A e B sono i coefficienti della retta di regressione Y = AX + B .


Esempio 34 Trovare la curva del tipo y = C x A che approssima i seguenti dati

xk yk

1 0.9

1.5 3.5

2 7.5

2.5 17

3 30.5

Linearizziamo11 i dati con il cambiamento di variabile X = ln x Y = ln y

xk
1 1.5 2 2.5 3

yk
0.9 3.5 7.5 17 30.5

X k = ln x k
0 0.4055 0.6931 0.9163 1.0986 3.1135

Yk = ln y k 0.1054 1.2528 2.0149 2.8332 3.4177 9.4132

X k Yk
0 0.5080 1.3966 2.5960 3.7548 8.2554

2 Xk 0 0.1644 0.4805 0.8396 1.2069 2.6914

Il sistema delle equazioni normali 2.6914 A + 3.1135 B = 8.2554 3.1135 A + 5 B = 9.4132 ed ha la soluzione A = 3.18 B = 0.098

B = ln C C = e B = e 0.098 = 0.91 La funzione che approssima i dati assegnati y = 0.91 x 3.18 Nella fig. 40 sono rappresentati i dati e la funzione approssimante.

11

In questo esempio e nei seguenti i calcoli sono stati svolti con Matlab. Universit di Torino

Capitolo 3 Interpolazione e approssimazione

187

Figura 40

Esempio 35 La tabella fornisce i valori sperimentali della pressione P di una data massa di gas, corrispondenti a diversi valori del volume V

volume V pressione P

54.3 61.2

61.8 49.5

72.4 37.6

88.7 28.4

118.6 194.0 19.2 10.1

Secondo i principi della termodinamica deve esistere tra le due variabili una relazione della forma

PV = C = costante C = costante Scrivere lequazione che lega P e V e stimare P per V = 100. Dallequazione PV = C applicando il logaritmo a entrambi i membri si ottiene
ln PV = ln C ln P + ln V = ln C ln P = ln V + ln C e con le sostituzioni X = ln V Y = ln P B = ln C A = si ha Y = AX + B Questa equazione esprime un legame lineare tra le variabili X e Y. volume V 54.3 61.8 72.4 88.7 118.6 194.0 pressione P 61.2 49.5 37.6 28.4 19.2 10.1 X = ln V Y = ln P XY X2

( )

3.9945 4.1239 4.2822 4.4853 4.7758 5.2679 26.9295

4.1141 3.9020 3.6270 3.3464 2.9549 2.3125 20.2570

16.4341 16.0914 15.5316 15.0094 14.1119 12.1821 89.3605

15.9562 17.0066 18.3373 20.1176 22.8079 27.7503 121.9758

Il sistema delle equazioni normali 121.9758 A + 26.9295B = 89.3605 26.9295 A + 6 B = 20.2570 ed ha la soluzione A = 1.4043 B = 9.6788 = 1.4043 A =
B = ln C
Dipartimento di Matematica

C = e B = e9.6788 = 15975

188

M. Garetto Metodi Numerici

Lequazione richiesta P V 1.4043 = 15975 Per V = 100 si ha 15975 P= = 24.8222 1001.4043 Nella fig. 41 sono rappresentati i dati e la funzione approssimante.

Figura 41

Supponiamo ora che la relazione che intercorre tra i dati (x1 , y1 ), (x2 , y 2 ), ..., (xn , y n ) sia del tipo

y = C e Ax C >0 ossia y cresce in modo proporzionale ad una funzione esponenziale. Applicando il logaritmo a entrambi i membri si ottiene ln y = ln C + A x e con le sostituzioni X =x Y = ln y B = ln C si ha Y = AX + B Questa equazione esprime un legame lineare tra le variabili X e Y. Si determina perci la retta di regressione relativa ai dati ( X 1 ,Y1 ) = (x1 ,ln y1 ), ..., ( X n ,Yn ) = (xn ,ln y n ) e si ricava l'equazione della curva approssimante y = C e Ax con C = e B dove A e B sono i coefficienti della retta di regressione Y = AX + B .
Esempio 36 Trovare la curva del tipo y = C e Ax che approssima i seguenti dati

xk yk

1 6.7

0 4.1

1 2.1

2 1.3

3 0.9

Linearizziamo i dati con il cambiamento di variabile X =x Y = ln y xk 1 0 1 2 3 yk 6.7 4.1 2.1 1.3 0.9 X k = xk 1 0 1 2 3 5 Yk = ln y k 1.9021 1.4110 0.7419 0.2624 0.1054 4.2120 X k Yk 1.9021 0.0 0.7419 0.5247 0.3161 0.9515
2 Xk 1 0 1 4 9 15

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

189

Il sistema delle equazioni normali 15 A + 5 B = 0.9515 5 A + 5 B = 4.2120 ed ha la soluzione A = 0.516

B = 1.359

B = ln C C = e B = e1.359 = 3.89 La funzione che approssima i dati assegnati

y = 3.89 e 0.516 x Nella fig. 42 sono rappresentati i dati e la funzione approssimante.

Figura 42

Esempio 37 Trovare la curva del tipo y = C e Ax che approssima i seguenti dati

xk yk

0 1.5

1 2.5

2 3.5

3 5.0

4 7.5

Linearizziamo i dati con il cambiamento di variabile X =x Y = ln y

xk 0 1 2 3 4

yk 1.5 2.5 3.5 5.0 7.5

X k = xk 0 1 2 3 4 10

Yk = ln y k 0.4055 0.9163 1.2528 1.6094 2.0149 6.1989

X k Yk 0.0 0.9163 2.5055 4.8283 8.0596 16.3097

2 Xk 0 1 4 9 16 30

Il sistema delle equazioni normali 30 A + 10 B = 16.3097 10 A + 5B = 6.1989 A = 0.391 B = 0.457 B = ln C C = e B = e 0.457 = 1.579 La funzione che approssima i dati assegnati y = 1.579 e 0.391x Nella fig. 43 sono rappresentati i dati e la funzione approssimante.
Dipartimento di Matematica

190

M. Garetto Metodi Numerici

Figura 43

Esempio 38 Trovare la curva del tipo y = C a x che approssima i seguenti dati

xk yk

1 4.5

2 10.9

3 19.8

4 42.6

5 83.6

6 170.5

Applicando il logaritmo a entrambi i membri dellequazione y = C a x si ottiene ln y = ln C + x ln a e con le sostituzioni X =x Y = ln y B = ln C A = ln a si ha Y = AX + B Linearizziamo i dati con il cambiamento di variabile X =x Y = ln y

xk
1 2 3 4 5 6

yk
4.5 10.9 19.8 42.6 83.6 170.5

X k = xk 1 2 3 4 5 6 21

Yk = ln y k
1.5041 2.3888 2.9857 3.7519 4.4260 5.1387 20.1952

X k Yk
1.5041 4.7775 8.9570 15.0074 22.1302 30.8324 83.2087

2 Xk 1 4 9 16 25 36 91

Il sistema delle equazioni normali 91A + 21B = 83.2087 21A + 6 B = 20.1952 A = 0.7157 B = 0.8608
B = ln C C = e B = e 0.8608 = 2.365 A = ln a a = e A = e 0.7157 = 2.046 La funzione che approssima i dati assegnati y = 2.365 2.046 x Nella fig. 44 sono rappresentati i dati e la funzione approssimante.

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

191

Figura 44

Esempio 39 Siano assegnati i seguenti dati

xk yk

1 0.6

2 1.9

3 4.3

4 7.6

5 12.6

a Trovare la curva del tipo y = C e Ax che approssima i dati; b trovare la curva del tipo y = C x A che approssima i dati. c Usare il criterio dei minimi quadrati per stabilire qual la curva che approssima meglio i dati. a Linearizziamo i dati con il cambiamento di variabile X =x Y = ln y xk 1 2 3 4 5 yk 0.6 1.9 4.3 7.6 12.6 X ki = x k 1 2 3 4 5 15 Yk = ln y k 0.5108 0.6419 1.4586 2.0281 2.5337 6.1515 X k Yk 0.5108 1.2837 4.3758 8.1126 12.6685 25.9298
2 Xk 1 4 9 16 25 55

Sistema delle equazioni normali 55 A + 15 B = 25.9298 15 A + 5B = 6.1515 A = 0.7475 B = 1.0123


B = ln C C = e B = e 1.0123 = 0.3634

La funzione del tipo y = C e Ax che approssima i dati assegnati y = 0.3634 e 0.7475 x 0 0.4805 1.2069 b Linearizziamo i dati con il cambiamento di variabile X = ln x Y = ln y 1.9218 2.5903

xk
1 2 3 4 5

yk
0.6 1.9 4.3 7.6 12.6

X k = ln xk
0.0 0.6931 1.0986 1.3863 1.6094 4.7875

Yk = ln y k
0.5108 0.6419 1.4586 2.0281 2.5337 6.1515

X k Yk
0.0 0.4449 1.6025 2.8116 4.0778 8.9368

2 Xk 0.0 0.4805 1.2069 1.9218 2.5803 6.1995

Dipartimento di Matematica

192

M. Garetto Metodi Numerici

Sistema delle equazioni normali 6.1995 A + 4.7875B = 8.9368 4.7875 A + 5 B = 6.1515 A = 1.8860 B = 0.5755
B = ln C C = e B = e 0.5755 = 0.5624

La funzione del tipo y = C x A che approssima i dati assegnati y = 0.5624 x1.886 . c Per stabilire qual la curva che approssima meglio i dati assegnati ci serviamo del criterio dei minimi quadrati e calcoliamo nei due casi il valore della quantit (errore)
E=
k =1

( AX k + B Yk )2 .

La curva che approssima meglio i dati quella per cui il valore di E pi piccolo. Per la curva trovata al punto a, si ha A = 0.748 B = 1.012

X k = xk
1 2 3 4 5
E=
5 k =1

Yk = ln y k
0.5108 0.6419 1.4586 2.0281 2.5337

AX k + B
0.2648 0.4827 1.2302 1.9777 2.7252

( AX k + B Yk )2
0.0605 0.0253 0.0522 0.0025 0.0367

( AX k + B Yk )2 0.1773
0.0042 0.0058 0.0003 0.0003 0.0112 Yi = ln yi 0.5108 0.6419 1.4586 2.0281 2.5337 AX i + B 0.5755 0.7179 1.4745 2.0113 2.4277

Per la curva trovata al punto b, si ha A = 1.886 B = 0.5755 X i = ln xi 0.0 0.6931 1.0986 1.3863 1.6094 E=
5 k =1

( AX k + B Yk )2
0.0042 0.0058 0.0003 0.0003 0.0112

( AX k + B Yk )2 0.0217
y = 0.363e
0.748 x

Lapprossimazione migliore si ottiene con la curva trovata al punto b.

1.886 y = 0.563 x

Figura 45

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

193

La tecnica di linearizzazione pu essere usata in molti altri casi; nella tabella seguente sono elencate alcune fra le funzioni approssimanti di uso pi comune e i corrispondenti cambiamenti di variabili necessari per linearizzare i dati.
Funzione

y = f (x )

Forma linearizzata

Y = AX + B

Cambiamenti di variabili e costanti

y =CxA
y = C e Ax y = A ln x + B A y= +B x 1 y= Ax + B

ln y = A ln x + ln C
ln y = A x + ln C y = A ln x + B 1 y= A +B x 1 = Ax + B y

X = ln x C =e X =x
B

Y = ln y Y = ln y Y=y
Y=y Y= 1 y

C =e X = ln x 1 X = x
B

X =x
X =x C = eB

y=

L 1 + Ce Ax
1 B + Ae
x

L ln y 1 = Ax + ln C
1 = Ae x + B y

L Y = ln y 1 L = costante assegnata 1 X = e x Y= y

y=

Esempio 40 Siano assegnati i seguenti dati

xk yk

1 6.62

0 3.94

1 2.17

2 1.35

3 0.89

a Trovare la curva del tipo y = C e Ax che approssima i dati. 1 b Trovare la curva del tipo y = che approssima i dati. Ax + B c Usare il criterio dei minimi quadrati per stabilire qual la curva che approssima meglio i dati. a Linearizziamo i dati con il cambiamento di variabile X =x Y = ln y xk
1 0 1 2 3

yk 6.62 3.94 2.17 1.35 0.89

X k = xk 1 0 1 2 3 5

Yk = ln y k 1.8901 1.3712 0.7747 0.3001 0.1165 4.2196

X k Yk
1.8901 0.0 0.7747 0.6002 0.3496 0.8648

2 Xk 1 0 1 4 9 15

Sistema delle equazioni normali 15 A + 5 B = 0.8648 5 A + 5 B = 4.2196 A = 0.508 B = 1.352

B = ln C
Dipartimento di Matematica

C = e B = e1.352 = 3.865

194

M. Garetto Metodi Numerici

La funzione del tipo y = C e Ax che approssima i dati assegnati y = 3.865 e 0.508 x b Linearizziamo i dati con il cambiamento di variabile (tabella pag. 193) 1 X =x Y= y xk 1 0 1 2 3 yk X k = xk 1 0 1 2 3 5 Yk =

6.62 3.94 2.17 1.35 0.89

1 yk 0.1511 0.2538 0.4608 0.7407 1.1236 2.7300

X k Yk 0.1511 0.0 0.4608 1.4815 3.3708 5.1620

2 Xk

1 0 1 4 9 15

Sistema delle equazioni normali 15 A + 5B = 5.1620 5 A + 5B = 2.7300 A = 0.243 B = 0.303 1 che approssima i dati assegnati La funzione del tipo y = Ax + B 1 y= 0.243 x + 0.303 c Per stabilire qual la curva che approssima meglio i dati assegnati ci serviamo del criterio dei minimi quadrati e calcoliamo nei due casi il valore della quantit
E=
k =1

( AX k + B Yk )2 .

La curva che approssima meglio i dati quella per cui il valore di E pi piccolo. Per la curva trovata al punto a, si ha A = 0.508 B = 1.352
X k = xk 1 0 1 2 3
E=
5

Yk = ln y k 1.8901 1.3712 0.7747 0.3001 0.1165

AX k + B 1.8600 1.3520 0.8440 0.3360 0.1720

AX k + B Yk 0.0009 0.0004 0.0048 0.0013 0.0031

k =1

( AX k + B Yk )2 = 0.0104
X k = xk
1 0 1 2 3
Yk = 1 yk 0.1511 0.2538 0.4608 0.7407 1.1236

Per la curva trovata al punto b, si ha A = 0.243 B = 0.303

AX k + B
0.0600 0.3030 0.5460 0.7890 1.0320

AX k + B Yk
0.0083 0.0024 0.0073 0.0023 0.0084
Universit di Torino

Capitolo 3 Interpolazione e approssimazione

195

E=

k =1

( AX k + B Yk )2 = 0.0287

Lapprossimazione migliore si ottiene con la curva trovata al punto a. Nella fig. 46 sono rappresentati i dati e le due funzioni approssimanti.
y= 1 0.243 x + 0.303

y = 3.865e

0.508 x

Figura 46

Esempio 41 Quando una popolazione limitata da un valore limite L, la sua crescita descritta da una funzione avente la forma L y= 1 + Ce Ax La funzione detta curva logistica. Trovare A e C per i dati seguenti, con L = 1000. xk yk

0 200

1 400

2 650

3 850

4 950

b Linearizziamo i dati con il cambiamento di variabile (tabella pag. 193) 1000 X =x Y = ln y 1

xk
0 1 2 3 4

yk
200 400 650 850 950

X k = xk
0 1 2 3 4 10

1000 Yk = ln y 1 k 1.3863 0.4055 0.6190 1.7346 2.9444 3.5063

X k Yk
0 0.4055 1.2381 5.2038 11.7778 17.8142

2 Xk

0 1 4 9 16 30

Sistema delle equazioni normali 30 A + 10 B = 17.8142 10 A + 5 B = 3.5063 A = 1.080 B = 1.459


C = e B = e1.459 = 4.302 La funzione che approssima i dati assegnati 1000 y= 1 + 4.302 e 1.08 x

Dipartimento di Matematica

196

M. Garetto Metodi Numerici

Figura 47

Esempio 42 Trovare lequazione della curva del tipo y = A ln(x + 1) + B che approssima i dati riportati nelle prime due colonne della tabella seguente, con il criterio dei minimi quadrati.

Linearizziamo i dati con il cambiamento di variabile X =x Y = ln y

xk
0 1 2 3 4 5

yk
3.1 6.5 8.6 9.8 11.2 12.2

X k = ln( xk + 1)
0.0 0.6931 1.0986 1.3863 1.6094 1.7918 6.5793

Yk = y k 3.1 6.5 8.6 9.8 11.2 12.2 51.4

X k Yk
0.0 4.5055 9.4481 13.5857 18.0257 21.8595 67.4244

2 Xk 0.0 0.4805 1.2069 1.9218 2.5903 3.2104 9.4099

Sistema delle equazioni normali 9.4099 A + 6.5793B = 67.4244 6.5793 A + 6 B = 51.4 A = 5.04 B = 3.04 La funzione del tipo y = A ln(x + 1) + B che approssima i dati assegnati y = 5.04 ln(x + 1) + 3.04

Figura 48

Universit di Torino

Capitolo 3 Interpolazione e approssimazione

197

Esempio 43 Trovare lequazione della curva del tipo y = 3 3e ax che approssima i dati riportati nelle prime due colonne della tabella seguente, con il criterio dei minimi quadrati.

Data lequazione y = 3 3e ax , applicando il logaritmo a entrambi i membri si ottiene

3 y = 3e ax

ln(3 y ) = ln 3e ax ln(3 y ) = ln 3 ax Linearizziamo i dati con il cambiamento di variabile X =x Y = ln(3 y ) A = a B = ln 3 Poich il coefficiente B noto basta usare una sola equazione del sistema delle equazioni normali (ad esempio la seconda) xk 2 4 6 12 18 24 yk 1.07 1.88 2.26 2.78 2.97 2.99 X k = xk 2 4 6 12 18 24 66 Yk = ln(3 y k ) 0.6575 0.1133 0.3011 1.5141 3.5066 4.6052 9.1561

L equazione normale 66 A + 6 ln 3 = 9.1561 ed ha la soluzione 6 ln 3 9.1561 A= = 0.24 66 y = 3 3e 0.24 x

a = 0.24

La funzione del tipo y = 3 3e ax che approssima i dati assegnati

Figura 49

Dipartimento di Matematica

198

M. Garetto Metodi Numerici

Universit di Torino

Capitolo 4 Integrazione numerica

199

4.
4.1

Integrazione numerica
Introduzione

Sia f ( x) una funzione definita su un intervallo [a,b]. Il problema che si vuole studiare quello dellapprossimazione dellintegrale definito I = f ( x)dx
a

(4.1)

Per funzioni f ( x) non negative su [a,b], lintegrale espresso dalla (4.1) corrisponde allarea della regione di piano sottesa dalla curva f ( x) fra a e b.
10 9

f(x)

0 0 1

Figura 1

Questa interpretazione grafica sar pi volte utile per sviluppare i metodi di integrazione numerica. Nel caso in cui f ( x) sia una funzione continua, il teorema fondamentale del calcolo integrale assicura lesistenza su [a,b] di una funzione F ( x) , detta primitiva di f ( x) , tale che
I=

f ( x)dx = F (b) F (a) .


a

Non sempre per la primitiva F ( x) esprimibile elementarmente (ossia per mezzo delle funzioni elementari); ad esempio gli integrali
2 ex sin x cos x dx e x dx dx dx x x x non sono esprimibili elementarmente, anche se le funzioni integrande sono continue. Inoltre il calcolo di F (a) e F (b) pu presentare delle difficolt. Per queste ragioni importante disporre di metodi numerici per il calcolo approssimato dellintegrale I. Con le formule di integrazione approssimata possibile trattare, oltre al caso delle funzioni continue su un intervallo limitato, anche il caso di funzioni i cui valori sono noti solo in un insieme finito di punti, come accade nel caso di dati ottenuti sperimentalmente, o ancora i casi di funzioni con singolarit, o di funzioni su intervalli illimitati1. I metodi di integrazione numerica utilizzano di solito solo i valori della funzione f ( x) su un insieme finito di punti dellintervallo [a,b] e in generale non possibile stimare la bont dellapprossimazione ottenuta con il metodo numerico; per poter calcolare tale stima occorre disporre dellespressione analitica della funzione f ( x) e avere informazioni sulle sue propriet.

Lultimo caso non sar trattato in queste lezioni.

Dipartimento di Matematica

200

M. Garetto Metodi Numerici

4.2

Formule di quadratura di tipo interpolatorio

Le formule di integrazione approssimata o di quadratura sono in generale della forma

Sn =

dove gli n + 1 punti x k [a ,b] , k = 0,1,...,n , sono detti nodi della formula di integrazione e i numeri wk , k = 0,1,...,n , sono detti coefficienti o pesi; tali coefficienti non dipendono dalla funzione f ( x) , ma dal numero dei nodi e dalla loro scelta. La quantit Rn = I S n (4.3) detta resto o errore della formula di quadratura.
Definizione Si dice che la formula di quadratura (4.2) ha grado di precisione d, se risulta Rn = 0 , cio la formula esatta, quando la funzione integranda un polinomio qualsiasi di grado minore o uguale a d, ed inoltre esiste almeno un polinomio di grado d +1 per il quale Rn 0 .

k =0

wk f (xk )

(4.2)

Una delle tecniche pi usate per ricavare formule di quadratura consiste nel sostituire alla funzione f ( x) un polinomio P( x) che lapprossimi e quindi considerare lintegrale

P(x)dx
a

come unapprossimazione dellintegrale I. Assegnati n + 1 nodi distinti xk , k = 0,1,...,n, appartenenti allintervallo [a,b] a x0 < x1 < ... < x n b il metodo pi semplice per costruire una formula di quadratura consiste nellapprossimare f ( x) con il polinomio di interpolazione di Lagrange Pn ( x) di grado n che interpola f ( x) nei nodi xk
Pn ( x) =
k =0

Lk ( x ) f ( x k )
b b b

f (x ) = Pn ( x ) + E n ( x ) Integrando si ottiene

f ( x)dx = [Pn ( x) + En ( x)]dx = Pn ( x)dx + En ( x)dx =


a

Lk ( x) f (x k )dx + E n ( x)dx = k =0
a a

a b n

a b

b n Lk ( x) dx f ( xk ) + E n (x )dx = wk f (x k ) + Rn = k = 0 a k = 0 a

dove si posto wk = Lk ( x)dx


a

Rn = E n ( x)dx
a

Le formule costruite in questo modo vengono dette di tipo interpolatorio.

Universit di Torino

Capitolo 4 Integrazione numerica

201

Esse hanno grado di precisione almeno n, ossia sono esatte quando f ( x) un polinomio qualunque di grado minore o uguale a n: infatti in questo caso lerrore di interpolazione E n ( x) = 0 . Affinch la formula di quadratura definisca una buona discretizzazione dellintegrale I necessario che
n

lim S n = lim

wk f (xk ) = f ( x)dx
k =0 a

In questo caso si dice che la formula di quadratura convergente. Esistono condizioni che assicurano la convergenza sia per intervalli limitati che illimitati; per esempio quando [a,b] un intervallo limitato e f ( x) una funzione continua su [a,b], la convergenza garantita se

wk M
k =0

dove M una costante indipendente da n. Finora lunica condizione imposta ai nodi che siano distinti; esamineremo formule di quadratura associate a diverse scelte di nodi. Se si utilizzano nodi equidistanti si ottengono le formule di quadratura di Newton-Cotes; esistono formule di Newton-Cotes di tipo chiuso e aperto. Il tipo chiuso si ha quando x0 = a e xn = b ; il tipo aperto quando i nodi sono tutti interni allintervallo [a,b]. Si possono anche usare come nodi gli zeri di opportuni polinomi, detti polinomi ortogonali; in tal caso si ottengono le formule di quadratura di Gauss. Queste formule sono pi complicate delle formule di Newton-Cotes, ma il risultato quasi sempre molto pi accurato, a parit di numero di nodi. Nei paragrafi seguenti saranno illustrate le pi semplici fra le formule di Newton-Cotes: la formula dei trapezi e la formula di Simpson, di tipo chiuso, e la formula del punto medio, di tipo aperto. Sar analizzato lerrore di queste formule, nel caso in cui la funzione integranda, di cui deve essere nota lespressione analitica, soddisfi propriet di continuit e derivabilit. Sar inoltre introdotta la formula di quadratura di Gauss-Legendre, che la pi semplice fra le formule di tipo gaussiano.

4.3

Formule di quadratura di Newton-Cotes di tipo chiuso

Siano assegnati n + 1 nodi equidistanti xk , k = 0,1,...,n, appartenenti allintervallo [a,b] a = x0 < x1 < ... < xn = b ba xk = a + kh k = 0 ,1,..., n h= n Approssimando f ( x) con il polinomio di interpolazione di Lagrange Pn ( x ) di grado n che interpola f ( x) nei nodi equidistanti xk , si costruisce la formula di quadratura di Newton-Cotes di tipo chiuso

f ( x )dx =

wk f (xk ) + Rn
k =0

(4.4)

dove i coefficienti wk , k = 0,1,,n, sono detti costanti di Cotes e dipendono solo da k e da n, e non dalla funzione f ( x) . Si pu dimostrare che le formule di quadratura di Newton-Cotes hanno grado di precisione n, se n dispari, e grado di precisione n + 1, se n pari.
Dipartimento di Matematica

202

M. Garetto Metodi Numerici

Il comportamento molto oscillante dei polinomi di interpolazione di grado elevato e il fatto che essi non siano convergenti al crescere di n, questioni gi discusse nel Cap. 3, sono i motivi principali per cui non si utilizzano formule di Newton-Cotes con un elevato numero di nodi. Inoltre queste formule per n > 8 hanno alcuni coefficienti wk negativi e di modulo crescente al crescere di n; questo fatto d origine a problemi di instabilit numerica dovuta a errori di cancellazione, che ne sconsigliano luso per elevati valori di n.

4.4

Formula dei trapezi

La formula dei trapezi la formula di Newton-Cotes di tipo chiuso pi semplice; essa si ottiene usando come nodi i punti x0 = a x1 = b e approssimando la funzione f ( x) con il polinomio di interpolazione lineare P 1 ( x) costruito su tali nodi f (b) f (a ) (x a ) P 1 ( x) = f (a ) + ba Integrando questo polinomio fra gli estremi a e b si ha

f (b) f ( a) f (b) f (a ) ( x a )2 ( ) P ( x ) dx = f ( a ) + x a dx = xf ( a ) + = 1 ba ba 2

f (b) f (a ) (b a )2 b a [ f (a) + f (b)] = ba 2 2 Indicando con h = b a lampiezza dellintervallo di integrazione, si ottiene la seguente formula = (b a ) f (a) +
Formula dei trapezi
b

f ( x)dx = 2 [ f ( x0 ) + f ( x1)] + R1
h
a

(4.5)

La formula dei trapezi prende questo nome perch, quando la funzione f ( x) assume valori non negativi su [a,b], consiste nellapprossimare larea sottesa dalla curva f ( x) nellintervallo [a,b] con larea del trapezio individuato dal polinomio di interpolazione lineare (fig. 2).

Figura 2
a b

Se la funzione f ( x) possiede derivata seconda continua in [a,b], si pu dimostrare che il resto della formula dei trapezi ha lespressione h 3 '' f (c ) (4.6) 12 dove c un punto opportuno dellintervallo (a,b). Dallespressione del resto si deduce subito che la formula dei trapezi ha grado di precisione 1. R1 =

Universit di Torino

Capitolo 4 Integrazione numerica

203

La formula (4.6) ha importanza soprattutto teorica: infatti il suo utilizzo richiede la valutazione della derivata seconda in un punto c non noto, anche se esistente. Per mezzo di tale formula si pu per ricavare una maggiorazione del resto, utile per stimare laccuratezza con cui viene approssimato lintegrale; indicando con M 2 il massimo valore assunto dalla derivata seconda in [a,b], si ha R1 h3 M2 12 M 2 = max f '' ( x)
a x b

(4.7)

4.5

Formula di Simpson

La formula di Simpson la formula di Newton-Cotes di tipo chiuso che si ottiene usando come nodi i punti a+b x0 = a x2 = b x1 = 2 e approssimando la funzione f ( x) con il polinomio di interpolazione di secondo grado P2 ( x) costruito su tali nodi. Integrando questo polinomio fra gli estremi a e b, e indicando con ba h= 2 lampiezza di ciascuna delle due parti uguali in cui i nodi dividono lintervallo [a,b], si ottiene la formula di Simpson
Formula di Simpson
b

f ( x)dx = 3 [ f (x0 ) + 4 f (x1 ) + f (x2 )] + R2


h
a

(4.8)

Quando la funzione f ( x) assume valori non negativi in [a,b], la formula di Simpson consiste geometricamente nellapprossimare larea sottesa dalla curva f ( x) nellintervallo [a,b] con larea sottesa dal polinomio di interpolazione di secondo grado, ossia dalla parabola (fig. 3).
f(x)

P2(x)

Figura 3
a b

Se la funzione f ( x) possiede derivata quarta continua in [a,b], si pu dimostrare che il resto della formula di Simpson ha lespressione
h 5 ( 4) f (c ) (4.9) 90 dove c un punto opportuno dellintervallo (a,b). La formula di Simpson ha grado di precisione tre. Anche la formula (4.9) ha importanza soprattutto teorica: infatti il suo utilizzo richiede la valutazione della derivata quarta in un punto c non noto, anche se esistente. R2 =
Dipartimento di Matematica

204

M. Garetto Metodi Numerici

Per mezzo di tale formula si pu per ricavare una maggiorazione del resto, utile per stimare laccuratezza con cui viene approssimato lintegrale; indicando con M 4 il massimo valore assunto dalla derivata quarta in [a,b], si ha R2 h5 M4 90 M 4 = max f ( 4) ( x)
a x b

(4.10)

4.6

Formula di Simpson

3 8

3 la formula di Newton-Cotes di tipo chiuso che si ottiene dividendo 8 ba lintervallo in tre parti uguali di ampiezza h = con i nodi 3 2a + b a + 2b x0 = a x3 = b x1 = x2 = 3 3 e approssimando la funzione f ( x) con il polinomio di interpolazione di terzo grado P3 ( x) costruito su tali nodi. 3 Integrando questo polinomio fra gli estremi a e b, si ottiene la formula di Simpson 8 La formula di Simpson
Formula di Simpson
b

3 8

3h f ( x)dx = 8 [ f (x0 ) + 3 f (x1 ) + 3 f (x2 ) + f (x3 )] + R3


a

(4.11)

Se la funzione f ( x) possiede derivata quarta continua in [a,b], si pu dimostrare che il resto della 3 formula di Simpson ha lespressione 8 3h5 ( 4) f (c ) (4.12) 80 dove c un punto opportuno dellintervallo (a,b). Per mezzo di questa formula si pu ricavare una maggiorazione del resto, utile per stimare laccuratezza con cui viene approssimato lintegrale; indicando con M 4 il massimo valore assunto dalla derivata quarta in [a,b], si ha R3 = 3h5 M4 M 4 = max f ( 4) ( x) 80 a x b 3 ha grado di precisione tre. La formula di Simpson 8 R3
Esempio 1

(4.13)

Approssimare con le formule dei trapezi, di Simpson e di Simpson rispettivi errori I=


2

3 lintegrale I e stimare i 8

x dx

Universit di Torino

Capitolo 4 Integrazione numerica

205

Applichiamo la formula dei trapezi (4.5) usando come nodi i punti x0 = 1 x1 = 2 h = b a =1

1 [ f (1) + f (2)] = 1 1 + 2 1.2071 2 2 La stima dellerrore con la (4.7) la seguente h3 R1 M2 12 I


1 2 1 x f '' ( x) = x 2 2 4 1 M 2 = max f '' ( x) = f ' ' (1) = 4 1 x 2 1 1 R1 0.2 10 1 12 4 In base alla stima dellerrore si pu affermare che il valore approssimato dellintegrale trovato con la formula dei trapezi ha una cifra decimale esatta. Applichiamo ora la formula di Simpson (4.8), usando come nodi i punti a+b ba 1 x0 = 1 x1 = = 1.5 x2 = 2 h= = 2 2 2 1 1 I [ f (1) + 4 f (1.5) + f (2)] = 1 + 4 1.5 + 2 1.21887 6 6 La stima dellerrore con la (4.10) la seguente h5 R2 M4 90 f ( x) = x f ' ( x) =
1 3

f ( x) = x
1 x 2

f ''' ( x) =

3 2 x 8 15 16

f ( 4) ( x ) =

15 2 x 16

M 4 = max f ( 4) ( x) = f ( 4) (1) = R2

1 1 15 5 0.33 10 3 90 2 16 Il valore approssimato dellintegrale trovato con la formula di Simpson ha tre cifre decimali esatte. 3 Applichiamo infine la formula di Simpson (4.11), usando come nodi i punti 8 2a + b 4 a + 2b 5 1 x0 = 1 x1 = x2 = x2 = 2 h= = = 3 3 3 3 3 1 1 4 5 4 5 I f (1) + 3 f + 3 f + f (2) = 1+ 3 +3 + 2 1.2189123 8 3 3 3 3 8 La stima dellerrore con la (4.13) la seguente
R3 3h5 M4 80
7

15 2 15 x M 4 = max f ( 4) ( x) = 16 16 1 x 2 3 1 15 R3 0.15 10 3 80 35 16 3 Il valore approssimato dellintegrale con la formula di Simpson ha tre cifre decimali esatte. 8 f ( 4) ( x ) =
Dipartimento di Matematica

206

M. Garetto Metodi Numerici

Esempio 2

Approssimare con le formule dei trapezi, di Simpson e di Simpson rispettivi errori I = ln(x + 2 )dx
1 2

3 lintegrale I e stimare i 8

Applichiamo la formula dei trapezi (4.5) usando come nodi i punti x0 = 1 x1 = 2 h = b a =1

1 [ f (1) + f (2)] = 1 (ln 3 + ln 4) 1.2425 2 2 La stima dellerrore con la (4.7) la seguente h3 R1 M2 12 1 1 f ( x) = ln(x + 2) f ' ( x) = f '' ( x) = x+2 (x + 2)2 I
M 2 = max f '' ( x) = f ' ' (1) =
1 x 2

1 9

1 1 0.1 10 1 12 9 Il valore approssimato dellintegrale trovato con la formula dei trapezi ha una cifra decimale esatta. Applichiamo ora la formula di Simpson (4.8), usando come nodi i punti a+b ba 1 x0 = 1 x1 = = 1.5 x2 = 2 h= = 2 2 2 1 1 I [ f (1) + 4 f (1.5) + f (2)] = (ln 3 + 4 ln 3.5 + ln 4 ) 1.249326 6 6 La stima dellerrore con la (4.10) la seguente R1 R2 h5 M4 90 f '' ' ( x ) = 2

f ( x) = ln(x + 2)

(x + 2)
6 81

f ( 4) ( x ) =

(x + 2)4

M 4 = max f ( 4) ( x) = f ( 4) (1) =
1 x 2

1 1 6 0.3 10 4 90 25 81 Il valore approssimato trovato con la formula di Simpson ha quattro cifre decimali esatte. 3 Applichiamo infine la formula di Simpson (4.11), usando come nodi i punti 8 2a + b 4 a + 2b 5 ba 1 x0 = 1 x1 = x2 = x2 = 2 h= = = = 3 3 3 3 3 3 1 1 10 11 5 4 I f (1) + 3 f + 3 f + f (2) = ln 3 + 3 ln + 3 ln + ln 4 1.249334 8 3 3 8 3 3 R3

Universit di Torino

Capitolo 4 Integrazione numerica

207

La stima dellerrore con la (4.13) la seguente

R3

3h5 M4 80 6

f ( 4) ( x ) = R3

(x + 2 )

M 4 = max f ( 4) ( x) =
1 x 2

6 81

3 1 6 0.12 10 4 80 35 81
3 ha quattro cifre decimali esatte. 8

Il valore approssimato trovato con la formula di Simpson

Esempio 3 Approssimare con la formula dei trapezi e con la formula di Simpson lintegrale

I=

(1 + e
1 0

sin(4 x) dx

Applichiamo la formula dei trapezi (4.5) usando come nodi i punti x0 = 0 x1 = 1 h = b a =1

1 [ f (0) + f (1)] = 1 1 + 1 + e 1 sin(4) 0.8608 2 2 Applichiamo ora la formula di Simpson (4.8), usando come nodi i punti a +b ba 1 x0 = 0 x1 = = 0.5 x2 = 1 h= = 2 2 2 1 1 I [ f (0) + 4 f (0.5) + f (1)] = 1 + 4 1 + e 0.5 sin(2) + 1 + e 1 sin(4) 1.3213 6 6 3 Applichiamo infine la formula di Simpson (4.11), usando come nodi i punti 8 ba 1 1 2 = x0 = 0 x1 = x2 = x2 = 1 h= 3 3 3 3 1 2 1 I f (0) + 3 f + 3 f + f (1) = 8 3 3 I

[ (

1 2 8 4 1 1 + 31 + e 3 sin + 31 + e 3 sin + 1 + e 1 sin 4 1.3144 3 3 8 Il valore esatto dellintegrale (con otto cifre significative) I = 1.3082506 Anche se, come era prevedibile, con le formule di Simpson si ottiene un risultato migliore, i risultati ottenuti sono tutti poco accurati; per ottenere risultati pi accurati si possono usare le formule composte, che saranno trattate nel 4.7. = Gli esempi che seguono hanno lo scopo di illustrare il significato della definizione di grado di precisione.
Esempio 4 Verificare con la definizione che la seguente formula dei trapezi ha grado di precisione uno

f ( x)dx

1 [ f (0) + f (1)] 2

Dipartimento di Matematica

208

M. Garetto Metodi Numerici

In base alla definizione di grado di precisione di una formula di quadratura, occorre verificare che la formula fornisce il risultato esatto quando f ( x) un qualunque polinomio di grado minore o uguale a uno; inoltre si deve verificare che esiste un polinomio di secondo grado per il quale il risultato esatto e quello approssimato ottenuto con la formula dei trapezi sono diversi. Loperazione di integrazione gode della seguente propriet di linearit

(f (x ) + g (x ))dx = f (x )dx + g (x )dx


a a a

quindi sar sufficiente verificare che la formula fornisce il risultato esatto quando f ( x) = 1 e
f ( x) = x e non lo fornisce per f ( x) = x 2 . Se f ( x) = 1 , con la formula dei trapezi si ottiene il risultato esatto I esatto = dx = 1
0

I trapezi =

1 [ f (0) + f (1)] = 1 (1 + 1) = 1 2 2

Se f ( x) = x , si ottiene ancora lo stesso risultato

x2 1 I esatto = xdx = = 2 0 2 0

I trapezi =

1 [ f (0) + f (1)] = 1 (0 + 1) = 1 2 2 2

Se invece f ( x) = x 2 , si ottengono risultati diversi


I esatto =

x3 1 x dx = = 3 0 3
2

I trapezi =

1 [ f (0) + f (1)] = 1 2 2

Si suggerisce di verificare con la stessa tecnica che la formula di Simpson

f ( x)dx

1 [ f (0) + 4 f (0.5) + f (1)] 6

ha grado di precisione tre. A tale scopo occorre verificare che la formula fornisce il risultato esatto quando f ( x) un generico polinomio di grado minore o uguale a tre; inoltre si deve verificare che per f ( x) = x 4 il risultato esatto e quello approssimato ottenuto con la formula dei trapezi sono diversi.
Esempio 5 Approssimare con la formula dei trapezi e con la formula di Simpson lintegrale

I=

(x
1 0

+ 3 x 1 dx

e confrontare i risultati ottenuti con il risultato esatto. La formula dei trapezi fornisce il risultato 1 1 I [ f (0) + f (1)] = ( 1 + 3) = 1 2 2 La formula di Simpson fornisce il risultato 1 1 1 3 3 1 I f (0) + 4 f + f (1) = 1 + 4 + 1 + 3 = 6 8 2 4 2 6 Il valore esatto dellintegrale calcolato per via analitica
x4 3 1 3 x2 I = +3 x = + 1 = 4 2 0 4 2 4
Universit di Torino
1

Capitolo 4 Integrazione numerica

209

Il risultato ottenuto con la formula di Simpson esatto perch questa formula ha grado di precisione tre e la funzione integranda f ( x) = x 3 + 3x 1 un polinomio di terzo grado; invece con la formula dei trapezi, che ha grado di precisione uno, si ottiene un risultato approssimato.

4.7

Formule di quadratura composte

Come si gi osservato, luso di formule di Newton-Cotes con un elevato numero di nodi sconsigliabile sia per problemi di instabilit numerica, sia perch la convergenza non assicurata; inoltre al crescere del numero dei nodi, cresce lordine della derivata che compare nellespressione del resto, che pu quindi essere difficile da stimare. Per queste ragioni si preferisce utilizzare le formule composte, che si ottengono mediante lapplicazione ripetuta di formule di quadratura con basso grado di precisione. Suddividendo lintervallo [a,b] in m parti uguali con i punti a = x0 < x1 < x2 < ..... < xm = b
x k = a + kh
b

k = 0 ,1,..., m
m 1 x k +1

h=

ba m

per la propriet additiva degli integrali si pu scrivere

f ( x)dx = k f ( x)dx =0
a xk

Applicando a ciascun sottointegrale una data formula di quadratura e sommando i risultati, si ottiene una formula composta. Sia f ( x) una funzione definita su [a,b]; dividiamo lintervallo [a,b] in m parti uguali con i punti a = x0 < x1 < x2 < ..... < xm = b ba m e applichiamo la formula dei trapezi (4.5) al generico sottointervallo [xk , xk +1 ] xk = a + kh k = 0,1,..., m h=
x k +1

f ( x)dx 2 [ f ( xk ) + f ( xk +1 )]
h
m 1 x k +1

xk

Per la propriet additiva degli integrali si ha


f ( x)dx f ( x)dx = k =0
a xk b

Sommando i valori approssimati ottenuti per ciascun sottointervallo con la formula dei trapezi, si ottiene la formula dei trapezi composta
Formula dei trapezi composta
b

f ( x)dx

h [ f ( x0 ) + f ( xm ) + 2( f ( x1 ) + f ( x2 ) + ... + f ( xm 1 ) )] 2

(4.14)

Nelle figg. 5 e 6 viene illustrata linterpretazione geometrica della formula dei trapezi composta nel caso di una funzione f ( x) non negativa su [a,b], per una suddivisione dellintervallo in m=2 e m=4 parti; si confrontano questi due casi con la formula dei trapezi non composta (fig. 4).

Dipartimento di Matematica

210

M. Garetto Metodi Numerici

Formula dei trapezi

Formula dei trapezi composta

Formula dei trapezi composta

x0=a

x1

x2=b

x0=a

x1

x2

x3

x4=b

Figura 4

Figura 5

Figura 6

Se la funzione f ( x) possiede derivata seconda continua in [a,b], si pu dimostrare che il resto della formula dei trapezi composta ha lespressione (4.15) 12m dove c un punto opportuno dellintervallo (a,b). La formula dei trapezi composta ha grado di precisione uno. Per mezzo della formula (4.15) si pu ricavare una maggiorazione del resto, utile per stimare laccuratezza con cui viene approssimato lintegrale; indicando con M 2 il massimo valore assunto dalla derivata seconda in [a,b], si ha
2

Rm =

(b a )3

f ' ' (c )

Rm

(b a )3 M
12m
2

M 2 = max f ' ' ( x)


a xb

(4.16)

Esempio 6 Approssimare con la formula dei trapezi composta lintegrale

I=

x dx

dividendo lintervallo in quattro parti e valutare lerrore. Dividendo lintervallo [1,2] in quattro parti si ha 1 h= m=4 4 5 3 7 x0 = 1 x1 = x2 = x3 = x4 = 2 4 2 4 5 1 3 7 I f (1) + f (2) + 2 f + f + f = 8 2 4 4
5 3 7 1 1.2182 + + 1 + 2 + 2 2 2 2 8 Per stimare il resto si usa la formula (4.16) 1 R4 M2 M 2 = max f ' ' ( x) 2 1 x 2 12 4 =
f ( x) = x 1 3 f ' ' ( x) = x 2 4 M 2 = max 1 1 1 = 3 4 4 1 x 2 x

R4

1 1 0.13 10 2 192 4

Universit di Torino

Capitolo 4 Integrazione numerica

211

Con la formula dei trapezi composta con m = 4 si ottengono due cifre decimali esatte; si ricordi (esempio 1) che con la formula dei trapezi non composta si ottiene una sola cifra decimale esatta. Sia f ( x) una funzione definita su [a,b]; dividiamo ora lintervallo [a,b] in 2m parti uguali con i punti a = x0 < x1 < x2 < ..... < x2m = b ba 2m e applichiamo la formula di Simpson (4.8) al generico sottointervallo [xk , xk + 2 ] xk = a + kh k = 0,1,...,2m h=
xk +2

xk

f ( x)dx 3 [ f ( xk ) + 4 f ( xk +1 ) + f ( xk + 2 )]
h
2m 2 x k + 2

Per la propriet additiva degli integrali si ha f ( x)dx f ( x)dx = k =0


a xk b

Sommando i valori approssimati ottenuti per ciascun sottointervallo con la formula di Simpson, si ottiene la formula di Simpson composta
Formula di Simpson composta
b

f ( x )dx 3 [ f ( x0 ) + f ( x2m ) + 4( f ( x1 ) + f ( x3 ) + ... + f ( x2m 1 )) +


h
a

(4.17)

+ 2( f ( x 2 ) + f ( x 4 ) + ... + f ( x2 m 2 ) )]

Se la funzione f ( x) possiede derivata quarta continua in [a,b], si pu dimostrare che il resto della formula di Simpson composta ha lespressione (4.18) 2880m dove c un punto opportuno dellintervallo (a,b). La formula di Simpson composta ha grado di precisione tre. Per mezzo della formula (4.18) si pu ricavare una maggiorazione del resto, utile per stimare laccuratezza con cui viene approssimato lintegrale; indicando con M 4 il massimo valore assunto dalla derivata quarta in [a,b], si ha
4

R2 m =

(b a )5

f (4) (c)

R2 m

(b a )5

ba ba , e per la formula di Simpson h = ,i m 2m resti delle formule di quadratura composte (formule (4.15) e (4.18)) possono essere scritti anche nella forma seguente. Resto della formula dei trapezi composta

2880m

M4

M 4 = max f (4) ( x)
a x b

(4.19)

Ricordando che per la formula dei trapezi h =

f ' ' (c ) = O h 2 12 Resto della formula di Simpson composta Rm = R2m =

(b a ) h 2

( )

(4.20)

(b a ) h 4
180

f (4) (c) = O h 4

( )

(4.21)

Dipartimento di Matematica

212

M. Garetto Metodi Numerici

Le formule (4.20) e (4.21) mostrano che il resto della formula di Simpson composta tende a zero pi rapidamente del resto della formula dei trapezi composta, al tendere di h a zero. In base alle espressioni del resto (4.20) e (4.21) ci si attende che lerrore si riduca rispettivamente 1 1 di un fattore oppure , se il passo h viene dimezzato (vedere esempi 10 e 11). 4 16
Esempio 7 Approssimare con la formula di Simpson composta lintegrale

I=

x dx

dividendo lintervallo in quattro parti e valutare lerrore. Dividendo lintervallo [1,2] in quattro parti si ottiene 1 h= 2m = 4 m=2 4 5 3 7 x0 = 1 x1 = x2 = x3 = x4 = 2 4 2 4 5 1 3 7 I f (1) + f (2) + 4 f + f + 2 f 1.218945 12 2 4 4 Per stimare il resto si usa la formula (4.19) R4

(b a )5

2880 2

M4

M 4 = max f (4) ( x)
1 x 2

f ( x) = x
1 x 2

f (3) ( x) = 15 16

3 5 x 2 8

f ( 4) ( x ) =

15 7 x 2 16

M 4 = max f ( 4) ( x) = R4 1 2880 2
4

15 0.21 10 4 16

Con la formula di Simpson composta con 2m = 4 si ottengono quattro cifre decimali esatte; si ricordi che con la formula dei trapezi composta (esempio 6) con m = 4 si ottengono invece due cifre decimali esatte. E opportuno osservare che per confrontare correttamente formule di quadratura diverse si deve usare lo stesso numero di nodi, effettuando cos lo stesso numero di valutazioni della funzione, come si vede negli esempi che seguono.
Esempio 8 Approssimare con la formula dei trapezi composta e con la formula di Simpson composta lintegrale

I = sin 2 x dx
0

( )

dividendo lintervallo [0,2] in quattro parti uguali. Dividendo lintervallo [0,2] in quattro parti e applicando la formula dei trapezi composta si ottiene (fig. 7) m=4 h = 0.5 x0 = 0 x1 = 0.5 x2 = 1 x3 = 1.5 x4 = 2
Universit di Torino

Capitolo 4 Integrazione numerica

213

0 .5 [ f (0) + f (2) + 2( f (0.5) + f (1) + f (1.5))] = 2 0 .5 = sin 2 2 + 2 sin 2 0.5 + sin(2) + sin 2 1.5 1.3446 2 Applicando invece la formula di Simpson composta si ottiene (fig. 8) 2m = 4 h = 0.5 x0 = 0 x1 = 0.5 x2 = 1 x3 = 1.5 x4 = 2 0 .5 [ f (0) + f (2) + 4( f (0.5) + f (1.5)) + 2 f (1)] = I 3 0.5 = sin 2 2 + 4 sin 2 0.5 + sin 2 1.5 + 2 sin(2 ) 1.4384 2 Il valore dellintegrale (con 8 cifre significative) I = 1.4994665 I

{ ( ) [ (

)]}

{ ( ) [ (
Formula dei trapezi composta

)]

Formula di Simpson composta

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0.5

1.5

0.5

1.5

Figura 7

Figura 8

Lesempio seguente illustra luso delle formule dei trapezi e di Simpson per lintegrazione di dati sperimentali, nel caso in cui i nodi siano equidistanti.
Esempio 9 Calcolare lintegrale della seguente tabella di dati sperimentali con la formula dei trapezi composta e con la formula di Simpson composta.

xk y k = f (xk )

0 1

0.1 7

0.2 4

0.3 3

0.4 5

0.5 8

0.6 9

Con la formula dei trapezi composta si ottiene 0.1 [ f (0) + f (0.6) + 2( f (0.1) + f (0.2) + f (0.3) + f (0.4) + f (0.5))] = I 2 = 0.05 [1 + 9 + 2(7 + 4 + 3 + 5 + 8)] = 3.2 Con la formula di Simpson composta si ottiene 0.1 [ f (0) + f (0.6) + 4( f (0.1) + f (0.3) + f (0.5)) + 2( f (0.2) + f (0.4))] = I 3 = 0.05 [1 + 9 + 4(7 + 3 + 8) + 2(4 + 5)] = 3.3333 Poich non nota lespressione analitica della funzione f ( x) , non possibile stimare lerrore.
Esempio 10 Approssimare con la formula dei trapezi composta e con la formula di Simpson composta lintegrale seguente, dividendo lintervallo [0,1] in 4,8,16,32 parti uguali.

I = e x dx
0

Dipartimento di Matematica

214

M. Garetto Metodi Numerici

Nelle due tabelle seguenti sono sintetizzati i risultati ottenuti con le due formule; nella prima colonna indicato il numero di sottointervalli, nella seconda colonna il valore approssimato ottenuto con la formula di quadratura, nella terza colonna lerrore assoluto, ottenuto come differenza fra il valore esatto e il valore approssimato. Il valore dellintegrale2 (con 8 cifre decimali esatte) I = 0.74682413

m 4 8 16 32 2m 4 8 16 32

I trapezi 0.74298410 0.74586561 0.74658460 0.74676425 I Simpson 0.74685538 0.74682612 0.74682426 0.74682414

errore

0.38 102 0.96 103 0.24 103 0.60 104


errore

0.31 104 0.20 105 0.11 106 0.80 108

Si osserva che nel caso della formula dei trapezi, al dimezzarsi del passo h, lerrore si riduce di un 1 1 . fattore ; analogamente nel caso della formula di Simpson lerrore si riduce di un fattore 4 16
Esempio 11 Approssimare con la formula dei trapezi composta e con la formula di Simpson composta lintegrale seguente, dividendo lintervallo [0,2] in 10, 20, 40, 80, 160 parti uguali.

I=

(1 + e
2 0

sin( 4 x) dx

Nelle due tabelle seguenti sono sintetizzati i risultati ottenuti con le due formule; nella prima colonna indicato il numero di sottointervalli, nella seconda colonna il valore approssimato ottenuto con la formula di quadratura, nella terza colonna lerrore assoluto, ottenuto come differenza fra il valore esatto e il valore approssimato. Il valore esatto dellintegrale2 (con 8 cifre decimali esatte) I = 2.23205118

m 10 20 40 80 160
2m 10 20 40 80 160
2

I trapezi
2.21787520 2.22853237 2.23117303 2.23183174 2.23199633

errore

0.14 101 0.35 102 0.88 103 0.22 103 0.55 104
errore

I Simpson
2.23260204 2.23208451 2.23205325 2.23205131 2.23205119
2

0.55 103 0.33 104 0.21 105 0.13 106 0.80 108

Il valore stato calcolato con Maple (si ricordi che la funzione e x non integrabile elementarmente). Universit di Torino

Capitolo 4 Integrazione numerica

215

Anche in questo caso con la formula dei trapezi, al dimezzarsi del passo h, lerrore si riduce di un 1 1 fattore ; analogamente nel caso della formula di Simpson lerrore si riduce di un fattore . 4 16 Si dimostra che le formule di quadratura composte hanno la propriet di essere stabili rispetto allerrore di arrotondamento, al tendere di h a zero; questo significa che, anche se si deve dividere lintervallo in un numero pi elevato di parti per assicurare laccuratezza del risultato, tuttavia il corrispondente aumento della mole di calcoli non porta a un aumento dellerrore di arrotondamento, che si mantiene limitato (e indipendente da h e m). Si pu ancora osservare che il resto delle formule composte nella forma (4.15) e (4.18) dipende da m e tale resto tende a zero al crescere di m; questo significa che le formule composte sono convergenti, ossia lim Rm = 0
m

Si pu quindi avere un resto piccolo quanto si vuole prendendo m sufficientemente grande, ossia in altre parole con entrambe le formule possibile scegliere un valore di m in modo tale che il resto sia minore di una quantit prefissata piccola a piacere. In particolare, se M 2 = max f ' ' ( x)
a x b

M 4 = max f ( 4) ( x)
a x b

e si richiede che sia |R| , con la formula dei trapezi baster prendere (vedere esempi 12, 13, 14) 12 e con la formula di Simpson m4 m

(b a )3 M (b a )5 M
2880

(4.22)

(4.23)

Esempio 12 Calcolare in quante parti occorre suddividere lintervallo [0,4] per approssimare lintegrale

cos(2 x)dx
0

con un errore

1 10 4 (accuratezza di 4 cifre decimali corrette), utilizzando le formule 2 composte dei trapezi e di Simpson.

La maggiorazione del resto della formula dei trapezi composta ha la seguente espressione

Rm

(b a )3 M
2

12m f ( x) = cos(2 x )

2 '

M 2 = max f ' ' ( x)


a xb

f ( x) = 2 sin(2 x )

M 2 = max 4 cos(2 x ) = 4 Rm
0 x 4 3

f ' ' ( x ) = 4 cos(2 x )

12m

4 =

64 3m 2 1 10 4 2

Per ottenere 4 cifre decimali corrette richiediamo che sia R

Dipartimento di Matematica

216

M. Garetto Metodi Numerici

1 10 4 2 3m Risolvendo la disuguaglianza si trova 128 m 10 4 653.2 3 Per ottenere la precisione richiesta, con la formula dei trapezi composta occorre assumere almeno m = 654, ossia dividere lintervallo in 654 parti uguali (un numero decisamente elevato). La maggiorazione del resto della formula di Simpson composta ha la seguente espressione
2

64

R2 m

(b a )5

2880m f ( x) = cos(2 x )
0 x 4 5

M4
f
( 4)

M 4 = max f (4) ( x)
a x b

( x) = 16 cos(2 x )

M 4 = max f ( 4) ( x) = 16 R2 m 4 16
1 10 4 2

2880m 4

Per ottenere 4 cifre decimali corrette richiediamo che sia R 45 2880m


4

16

1 10 4 2

8 18.4 2880 Per ottenere laccuratezza richiesta, con la formula di Simpson composta occorre assumere almeno m = 19, ossia dividere lintervallo in 38 parti uguali (un numero di parti decisamente pi ragionevole). m 80 4

Esempio 13 Calcolare in quante parti occorre suddividere lintervallo [0,1] per approssimare lintegrale

sin x e
0

dx

con un errore

1 10 5 (accuratezza di 5 cifre decimali corrette), utilizzando le formule 2 composte dei trapezi e di Simpson. R

La maggiorazione del resto della formula dei trapezi composta ha la seguente espressione Rm

(b a )3 M
2

12m f ( x) = sin xe x max cos x = 1

2 '

M 2 = max f ' ' ( x) f ( x) = e


a x b x

(cos x sin x )

f ' ' ( x ) = 2 cos xe x

Si ha
0 x 1 0 x 1

max e x = 1

quindi M 2 = max 2 cos xe x = 2


0 x 1

Rm

1 12m
2

2 =

1 6m 2

Universit di Torino

Capitolo 4 Integrazione numerica

217

Imponiamo che sia R

1 10 5 2

1 6m
2

1 10 5 2

10 5 182.6 3 Per ottenere laccuratezza richiesta, con la formula dei trapezi composta occorre assumere almeno m = 183, ossia dividere lintervallo in 183 parti uguali. La maggiorazione del resto della formula di Simpson composta ha la seguente espressione m R2 m

(b a )5

2880m f ( x) = sin xe x

M4

M 4 = max f (4) ( x)
a x b

( 4)

( x) = 4 sin xe x
max e x = 1

Si ha
0 x 1

max sin x = sin(1) 0.84

0 x 1

quindi M 4 = max f ( 4) ( x) = 4 0.84 3.4


0 x 1

3 .4 2880m 4 1 Imponiamo che sia R 10 5 2 3.4 1 6 .8 10 5 m4 105 3.9 4 2880 2 2880m Per ottenere laccuratezza richiesta, con la formula di Simpson composta occorre assumere almeno m = 4, ossia dividere lintervallo in 8 parti uguali.
Esempio 14 Calcolare lintegrale

R2 m

I=

1 dx x +1

con le formule di quadratura composte dei trapezi e di Simpson, dividendo lintervallo [0,2] in 4 parti uguali e valutare lerrore per entrambe le formule. Calcolare in quante parti occorre dividere lintervallo [0,2] per ottenere unaccuratezza di 4 cifre decimali corrette con entrambe le formule. Formula dei trapezi composta m=4 h = 0.5 1 2 1 2 0 .5 [ f (0) + f (2) + 2( f (0.5) + f (1) + f (1.5) )] = 1 1 + + 2 + + 1.1167 I 4 3 3 2 5 2 Stima del resto con la formula dei trapezi 1 1 2 f ( x) = f ' ( x) = f ' ' ( x) = 2 x +1 (x + 1) (x + 1)3
M 2 = max f ' ' ( x) = 2
0 x 2

Dipartimento di Matematica

218

M. Garetto Metodi Numerici

12 4 Formula di Simpson composta 2m = 4 m = 2 h = 0.5 0 .5 1 2 2 1 [ f (0) + f (2) + 4( f (0.5) + f (1.5)) + 2 f (1)] = 1 I 1.1000 1 + + 4 + + 2 3 6 3 3 5 2 Stima del resto con la formula di Simpson 1 6 24 f ( x) = f (3) ( x) = f ( 4) ( x ) = 4 x +1 (x + 1) (x + 1)5 M 4 = max f (4) ( x) = 24 R4
0 x 2 5

R4

23
2

2 0.8 10 1

2880 2 Per ottenere unaccuratezza di 4 cifre decimali esatte deve essere 1 R 10 4 2 Con la formula dei trapezi si deve assumere come m un valore tale che (formula (4.22))
32 23 2 m 10 4 163.3 1 12 4 12 10 2 ossia si deve dividere lintervallo [0,2] in almeno 164 parti. Con la formula di Simpson si deve assumere come m un valore tale che (formula (4.23)) m

24 0.2 10 1

6 25 24 m 40 4 8.5 1 2880 2880 10 4 2 ossia si deve dividere lintervallo [0,2] in almeno 18 parti. m4

4.8

Formule di quadratura di Newton-Cotes di tipo aperto

Siano assegnati n + 1 nodi equidistanti xk , k = 0,1,...,n, appartenenti allintervallo (a,b) a < x0 < x1 < ... < xn < b ba h= x0 = a + h xk = x0 + kh k = 1,..., n n+2 Approssimando f ( x) con il polinomio di interpolazione di Lagrange Pn ( x) di grado n che interpola f ( x) nei nodi equidistanti xk , si costruisce la formula di quadratura di Newton-Cotes di tipo aperto

f ( x )dx =

wk f (xk ) + Rn
k =0

(4.24)

La pi semplice formula di Newton-Cotes di tipo aperto la formula del punto medio, detta anche formula del rettangolo; usando come unico nodo il punto x0 (punto medio dellintervallo [a,b] ba x0 = a + h h= 2 si ottiene la seguente formula
Universit di Torino

Capitolo 4 Integrazione numerica

219

Formula del punto medio o del rettangolo

f ( x)dx = 2hf (x0 ) + R0


a

(4.25)

Se la funzione f ( x) possiede derivata seconda continua in [a,b], si pu dimostrare che il resto della formula del punto medio ha lespressione h3 '' f (c ) (4.26) 3 dove c un punto opportuno dellintervallo (a,b). Dallespressione del resto si deduce che la formula del punto medio ha grado di precisione uno. La formula del punto medio prende anche il nome di formula del rettangolo (fig. 9) perch, quando la funzione f ( x) assume valori non negativi su [a,b], consiste nellapprossimare larea sottesa dalla curva f ( x) nellintervallo [a,b] con larea del rettangolo avente come base il segmento di R0 = a+b estremi a e b e come altezza f . 2

Figura 9
a x0 b

Per mezzo della formula (4.26) si pu ricavare una maggiorazione del resto, utile per stimare laccuratezza con cui viene approssimato lintegrale; indicando con M 2 il massimo valore assunto dalla derivata seconda in [a,b], si ha R0 h3 M2 3 M 2 = max f '' ( x)
a x b

(4.27)

Esempio 15 Approssimare con la formula del punto medio lintegrale I e stimare lerrore

I=

x dx

Applichiamo la formula del punto medio (4.25) usando come nodo il punto 3 ba 1 x0 = h= = 2 2 2 3 3 I f = 1.2247 2 2 La stima dellerrore con la (4.27) la seguente R0 h3 M2 24

Dipartimento di Matematica

220

M. Garetto Metodi Numerici

1 1 1 x 2 f '' ( x) = x 2 2 4 1 M 2 = max f '' ( x) = f ' ' (1) = 4 1 x 2 1 1 R0 0.11 10 1 24 4 In base alla stima dellerrore si pu affermare che il valore approssimato dellintegrale trovato con la formula del punto medio ha una cifra decimale esatta. f ( x) = x f ' ( x) =

4.9

Formula del punto medio composta

Con lo stesso procedimento gi utilizzato per costruire le formule composte dei trapezi e di Simpson si pu ricavare la formula del punto medio composta. Sia f ( x) una funzione definita su [a,b]; dividiamo lintervallo [a,b] in m parti uguali con i punti a = x0 < x1 < x 2 < ..... < xm = b

ba m e applichiamo la formula del punto medio (4.26) al generico sottointervallo [xk , xk +1 ] x k = a + kh


x k +1

k = 0,1,..., m

h=

xk

f ( x)dx hf

x k + x k +1 2

Per la propriet additiva degli integrali si ha

f ( x)dx f ( x)dx = k =0
a xk

m 1 x k +1

Sommando i valori approssimati ottenuti per ciascun sottointervallo con la formula del punto medio, si ottiene la formula del punto medio composta
Formula del punto medio composta
b m 1

x +x f ( x)dx h f 0 1 + 2

x + x2 f 1 + ... + 2

+ x m x x + x k +1 f m 1 f k = h 2 2 k =0

(4.28)

Se la funzione f ( x) possiede derivata seconda continua in [a,b], si pu dimostrare che il resto della formula del punto medio composta ha lespressione (4.29) 24m dove c un punto opportuno dellintervallo (a,b). La formula del punto medio composta ha grado di precisione uno. Per mezzo della formula (4.29) si pu ricavare una maggiorazione del resto, utile per stimare laccuratezza con cui viene approssimato lintegrale; indicando con M 2 il massimo valore assunto dalla derivata seconda in [a,b], si ha
2

Rm =

(b a )3

f ' ' (c )

Rm

(b a )3 M
24m
2

M 2 = max f ' ' ( x)


a xb

(4.30)

Universit di Torino

Capitolo 4 Integrazione numerica

221

Esempio 16 Approssimare lintegrale

I=

x dx

con la formula del punto medio composta dividendo lintervallo in due parti uguali e valutare lerrore. Dividendo lintervallo [1,2] in due parti si ottiene 1 h= m=2 2 3 x0 = 1 x1 = x2 = 2 2 x0 + x1 5 x1 + x 2 7 = = 1 4 2 4 1 5 7 7 1 5 1.2205 I f + f = + 2 4 4 4 2 4 Per stimare il resto si usa la formula (4.30) 1 R2 M2 M 2 = max f ' ' ( x) 2 1 x 2 24 2

f ( x) = x
R2

1 3 f ' ' ( x) = x 2 4

M 2 = max

1 1 1 = 4 1 x 2 4 x 3

1 1 0.26 10 2 96 4

Esempio 17 Approssimare lintegrale

I=

x dx
1
1

con la formula del punto medio composta dividendo lintervallo in quattro parti uguali e stimare lerrore. In quante parti si deve suddividere lintervallo per ottenere un risultato con unaccuratezza di quattro cifre decimali esatte? Dividendo lintervallo [1,2] in quattro parti si ottiene ba 1 m=4 h= = m 4 5 3 7 x0 = 1 x1 = x2 = x3 = x4 = 2 4 2 4 x0 + x1 9 x2 + x3 13 x3 + x4 15 x1 + x 2 11 = = = = 1 8 2 8 2 8 2 8 1 9 11 13 15 1 8 8 8 8 I f + f + f + f = + + + 0.6912 4 8 8 8 8 4 9 11 13 15 Per stimare il resto si usa la formula (4.30) 1 R4 M2 24 16

Dipartimento di Matematica

222

M. Garetto Metodi Numerici

1 2 f '' ( x) = 3 M 2 = max f '' ( x) = 2 x 1 x 2 x 1 R4 2 0.5 10 2 24 16 Con la formula del punto medio composta con m = 4 si ottengono due cifre decimali esatte. Servendosi della maggiorazione (4.30) del resto della formula del punto medio composta (b a )3 M Rm M 2 = max f ' ' ( x) 2 2 a x b 24m 1 1 Rm 2 = 24m 2 12m 2 1 per ottenere 4 cifre decimali corrette imponiamo che sia R 10 4 2 1 1 10 4 2 2 12m Risolvendo la disuguaglianza si trova 1 m 10 4 40.8 6 Per ottenere laccuratezza richiesta, con la formula del punto medio composta occorre assumere almeno m = 41, ossia dividere lintervallo in 41 parti uguali. f ( x) =
Esempio 18 Approssimare lintegrale

I=

1 x 1

dx

con la formula del punto medio composta dividendo lintervallo in due parti uguali e stimare lerrore. In quante parti si deve suddividere lintervallo per ottenere un risultato con unaccuratezza di quattro cifre decimali esatte? Dividendo lintervallo [1,2] in due parti si ottiene h =1 m=2 x0 = 3 x1 = 4 x2 = 5 x0 + x1 7 x1 + x2 9 = = 3.5 = = 4.5 1 4 2 4 1 1 I f (3.5) + f (4.5) = + 1.1670 2.5 3.5 Per stimare il resto si usa la formula (4.30)

R2

23
2

24 2 1 f ( x) = x 1

M2

M 2 = max f ' ' ( x)


3 x 5

f ' ( x) = 1 =

3 1 (x 1) 2 2

f ' ' ( x) =

5 3 (x 1) 2 4

M 2 = max R2

3 3 x 5 4

(x 1)5

3 1 0.133 4 25

1 0.133 0.11 10 1 12 Con la formula del punto medio composta con m = 2 si ottiene una sola cifra decimale esatta.
Universit di Torino

Capitolo 4 Integrazione numerica

223

La maggiorazione (4.30) del resto della formula del punto medio composta

3 1 1 = 24m 2 4 2 5 16 2m 2 1 Imponiamo che sia R 10 4 2 1 1 1 10 4 m 10 4 29.7 2 2 8 2 16 2m Per ottenere laccuratezza richiesta, con la formula del punto medio composta occorre assumere almeno m = 30, ossia dividere lintervallo in 30 parti uguali. Rm

23

4.10

Formule di quadratura gaussiane

Le formule di quadratura di Newton-Cotes di tipo chiuso trattate nei precedenti hanno in comune la caratteristica che il valore approssimato dellintegrale basato sui valori della funzione integranda in un certo numero di punti equidistanti fissati nellintervallo di integrazione [a,b]. Ad esempio con la formula dei trapezi si approssima larea sottesa dalla funzione f ( x) su [a,b] con larea sottesa dalla retta che unisce i punti (a , f (a) ) e (b , f (b) ) , come illustra la fig. 10

x0=a

x1=b

x1

x2

Figura 10

Figura 11

Poich la retta passa per i punti estremi, ci sono casi, come quello illustrato nella fig. 10, in cui la formula dei trapezi ha un resto grande; se per si scegliessero i due nodi non obbligatoriamente negli estremi, ma in due punti interni allintervallo (fig. 11), si potrebbe individuare una retta tale che larea da essa sottesa in [a,b] fornisca unapprossimazione pi precisa dellintegrale. Basandosi su questa strategia si costruiscono le formule di quadratura gaussiane, e in particolare le formule di quadratura di Gauss-Legendre, che saranno qui descritte. Per costruire le formule di quadratura di Gauss-Legendre, che sono di tipo interpolatorio, i nodi x1 , x2 ,..., xn e i coefficienti w1 , w2 ,..., wn sono scelti in modo che lerrore Rn commesso approssimando il valore dellintegrale con la formula di quadratura

f ( x)dx =

wk f ( xk ) + Rn
k =1

sia minimo, ossia in modo da ottenere la massima accuratezza; a questo scopo la scelta migliore per nodi e coefficienti quella per cui il grado di precisione il pi elevato possibile. Si pu dimostrare che 2n 1 il massimo grado di precisione ottenibile con n nodi, ossia non esistono formule con n nodi e grado di precisione maggiore o uguale a 2n. Per costruire la formula di quadratura si devono determinare 2n parametri: i coefficienti w1 , w2 ,..., wn sono arbitrari, mentre i nodi x1 , x2 ,..., xn devono soddisfare solo alla richiesta di appartenere allintervallo di integrazione.

Dipartimento di Matematica

224

M. Garetto Metodi Numerici

Per descrivere il modo in cui si possono determinare nodi e coefficienti della formula di quadratura di Gauss-Legendre, illustriamo il metodo dei coefficienti indeterminati, nel caso particolare in cui n = 2 e lintervallo di integrazione [1,1]. Si vogliono determinare i nodi x1 , x2 e i coefficienti w1 , w2 in modo che la formula di quadratura

f ( x)dx w1 f ( x1 ) + w2 f ( x2 )

abbia grado di precisione tre, il pi elevato possibile con due nodi; ci significa che la formula di quadratura deve fornire il risultato esatto quando f ( x) un polinomio qualsiasi di grado minore o uguale a tre. Per le propriet degli integrali definiti (vedere esempio 4, pagg. 207,208) sar sufficiente imporre che la formula di quadratura fornisca il risultato esatto quando f ( x) uguale a 1, x, x 2 , x 3 ; determiniamo quindi i nodi x1 , x 2 e i coefficienti w1 , w2 in modo che siano verificate le seguenti uguaglianze f ( x) = 1 w1 + w2 = 1 dx = 2
1

f ( x) = x

w1 x1 + w2 x 2 =

1 1

x dx = 0
1 1

f ( x) = x 2

2 2 w1 x1 + w2 x 2 =

dx =

2 3

f ( x) = x 3

3 3 w1 x1 + w2 x2 =

dx = 0

Queste uguaglianze costituiscono un sistema non lineare di quattro equazioni nelle quattro incognite x1 , x2 e w1 , w2

w1 + w2 = 2 w1 x1 + w2 x2 = 0 w x 2 + w x 2 = 2 2 2 1 1 3 3 3 w1 x1 + w2 x2 = 0 che possiede lunica soluzione w1 = 1 w2 = 1 x1 = 3 3 x2 = 3 3

Formula di Gauss-Legendre dei due punti

f ( x)dx f
1 2

3 + 3

3 f 3

Esempio 19 Approssimare lintegrale I con la formula di Gauss-Legendre dei due punti

I = e x dx
1

Confrontare con lapprossimazione calcolata con la formula dei trapezi.

Universit di Torino

Capitolo 4 Integrazione numerica

225

Con la formula di Gauss-Legendre dei due punti si ottiene


1 1 3 3 I f + f = e + e 1.4331 3 3 Il valore dellintegrale3 (con 8 cifre significative) I = 1.4936483 Lerrore assoluto vale E = 1.4936483 1.4331 0.6 10 1 Il valore approssimato ottenuto con la formula gaussiana sembra essere poco accurato. Con la formula dei trapezi (4.5), che utilizza due punti, si ottiene 1 1

I f ( 1) + f (1) = e 1 + e 1 = 0.7358 Lerrore assoluto vale in questo caso E = 1.4936483 0.7358 0.76 Il risultato ottenuto completamente inattendibile. Con la formula dei trapezi composta che utilizza tre punti (un punto in pi rispetto alla formula gaussiana), si ottiene 1 1 I [ f ( 1) + 2 f (0 ) + f (1)] = e 1 + 2e 0 + e 1 = 1.3679 2 2 Lerrore assoluto vale in questo caso E = 1.4936483 1.3679 0.13 La formula gaussiana fornisce un risultato pi accurato rispetto alla formula dei trapezi.

Esempio 20 Calcolare lintegrale

I=

x + 2 dx
1

con le formule dei trapezi, di Simpson e di Gauss-Legendre dei due punti e confrontare i risultati approssimati ottenuti con il valore esatto dellintegrale. Il valore esatto dellintegrale, calcolato per via analitica I=

x + 2 dx = [log x + 2 ]1 = log 3 1.0986123


1
1

Con la formula dei trapezi si ottiene x0 = 1 x1 = 1


I

h=2

2 [ f (1) + f (1)] = 1 + 1 = 4 1.3333 3 3 2 Lerrore assoluto vale R = 1.0986123 1.3333 0.24 Con la formula di Simpson si ha x0 = 1 x1 = 0 x2 = 1 h =1
I 1 1 1 [ f (1) + 4 f (0) + f (1)] = 1 1 + 4 + 1.1111 3 2 3 3

R = 1.0986123 1.1111 0.125 10 1

Il valore stato calcolato con Maple (si ricordi che la funzione e x non integrabile elementarmente).

Dipartimento di Matematica

226

M. Garetto Metodi Numerici

Con la formula di Gauss-Legendre dei due punti si ha 1 1 x1 = x2 = 3 3 1 I f + 3 1 1 1 f + 1.0909 = 1 1 3 +2 +2 3 3

R = 1.0986123 1.0909 0.77 10 2 Il risultato migliore si ottiene con la formula di Gauss-Legendre; le formule richiedono rispettivamente: Formula dei trapezi: due valutazioni di f ( x) ; Formula di Simpson: tre valutazioni di f ( x) ; Formula di Gauss-Legendre: due valutazioni di f ( x) . Il metodo dei coefficienti indeterminati potrebbe essere utilizzato per determinare nodi e coefficienti per formule di quadratura gaussiane con numero di nodi maggiore di due; per possibile costruire tali formule in modo pi semplice con un altro metodo basato sullutilizzo di classi di polinomi, detti polinomi ortogonali, che hanno particolari propriet. La classe di polinomi utile per la costruzione delle formule di Gauss-Legendre quella dei polinomi di Legendre P0 ( x) , P 1 ( x) , ..., Pn ( x ) , ..., che hanno le seguenti propriet 1 Per ogni n, Pn ( x) un polinomio di grado n; 2 I polinomi di Legendre sono ortogonali nellintervallo [1,1], ossia

0 Pn ( x )Pm ( x )dx = 0

se n m se n = m

3 I polinomi di Legendre soddisfano la relazione di ricorrenza (n + 1)Pn +1 ( x) = (2n + 1)xPn ( x) nPn 1 ( x) n = 1,2,...

P0 ( x) = 1 P 1 ( x) = x I primi polinomi di Legendre (ricavati con la relazione di ricorrenza) sono P0 ( x) = 1 P 1 ( x) = x 1 P2 ( x) = 3 x 2 1 2 1 P3 ( x) = 5 x 3 3x 2 1 P4 ( x) = 35 x 4 30 x 2 + 3 8

( ( (

Figura 12

Universit di Torino

Capitolo 4 Integrazione numerica

227

Vale la seguente propriet, particolarmente importante per la costruzione delle formule di quadratura di Gauss-Legendre.
Propriet Per ogni n 1 il polinomio ortogonale di Legendre Pn ( x) possiede n zeri reali, distinti e tutti appartenenti allintervallo aperto (1,1).

Il teorema che segue garantisce, per ogni n 1, lesistenza di una e una sola formula di quadratura di Gauss-Legendre con grado di precisione 2n 1.
Teorema Condizione necessaria e sufficiente affinch la formula di quadratura

wk f ( xk ) + Rn f ( x)dx = k =1

sia gaussiana, cio abbia grado di precisione 2n 1, che essa sia di tipo interpolatorio e che i nodi xk , k =1, 2,, n, siano gli n zeri del polinomio di Legendre Pn ( x) . Si pu inoltre dimostrare che se la funzione f ( x) possiede derivata 2n-esima continua, il resto della formula di quadratura di Gauss-Legendre su n nodi ha lespressione

(2n + 1)[(2n )!] dove c un punto opportuno dellintervallo (1,1). Per n=2 si ottiene la formula di Gauss-Legendre dei due punti, che abbiamo gi ricavato con il metodo dei coefficienti indeterminati
3

Rn =

2 2n +1 (n !)4

f (2n ) (c )

Formula di Gauss-Legendre dei due punti

f ( x)dx f

3 + 3

3 f 3

(4.31)

Il grado di precisione di questa formula tre. Se la funzione f ( x) possiede derivata quarta continua in [1,1], il resto della formula di GaussLegendre dei due punti ha lespressione 1 ( 4) R2 = f (c ) (4.32) 135 dove c un punto opportuno dellintervallo (a,b). Per mezzo di questa formula si pu ricavare una maggiorazione del resto, utile per stimare laccuratezza con cui viene approssimato lintegrale; indicando con M 4 il massimo valore assunto dalla derivata quarta in [1,1], si ha 1 R2 M4 M 4 = max f (4 ) ( x) (4.33) 135 1 x 1 Per n=3 si ha la formula seguente, che ha grado di precisione cinque
Formula di Gauss-Legendre dei tre punti
1

f ( x)dx 9 f

3 + 8 f (0) + 5 5 9 9

3 f 5

(4.34)

Dipartimento di Matematica

228

M. Garetto Metodi Numerici

Se la funzione f ( x) possiede derivata sesta continua in [1,1], si pu dimostrare che il resto della formula di Gauss-Legendre dei tre punti ha lespressione 1 R3 = f ( 6) (c ) (4.35) 15750 dove c un punto opportuno dellintervallo [1,1]. Dalla (4.35) si ricava la maggiorazione del resto per la formula di Gauss-Legendre dei tre punti 1 R3 M6 M 6 = max f (6 ) ( x) (4.36) 15750 1 x 1 I coefficienti wk , k =1, 2,, n, detti anche costanti di Christoffel, sono tutti positivi e, poich non dipendono da f ( x) , possono essere tabulati insieme ai nodi xk . Riportiamo una tabella4 dei nodi e dei corrispondenti coefficienti delle formule di Gauss-Legendre per i valori n = 1,2,....,8. n
1 2 3
1 3
3 5 = 0.7745966692
5 9 8 9

xk
0
= 0.5773502692

wk
1 1
= 0.5555555556 = 0.8888888889

0 4 5 0.8611363116 0.3399810436 0.9061798459 0.5384693101 0 0.9324695142 0.6612093865 0.2386191861 0.9491079123 0.7415311856 0.4058451514 0 0.9602898565 0.7966664774 0.5255324099 0.1834346425

0.3478548451 0.6521451549 0.2369268851 0.4786286705 0.5688888889 0.1713244924 0.3607615730 0.4679139346 0.1294849662 0.2797053915 0.3818300505 0.4179591837 0.1012285363 0.2223810345 0.3137066459 0.3626837834

Le formule di quadratura di Gauss-Legendre possono essere utilizzate solo quando la funzione f ( x) nota analiticamente e non per integrare su tabelle di dati, dato il tipo dei nodi scelti. I nodi xk , k =1, 2,, n, non sono equispaziati, ma si addensano al crescere di n verso gli estremi dellintervallo [1,1]; grazie a questo fatto si pu dimostrare che le formule di quadratura di GaussLegendre sono convergenti per n , ossia n lim Rn = lim I wk f ( xk ) = 0 n n k =1

La tabella tratta dal testo Mathews J. H., Fink K. D., Numerical Methods Using Matlab, 4th ed., Prentice-Hall, 2004 Universit di Torino

Capitolo 4 Integrazione numerica

229

Si pu notare che la formula del punto medio, descritta nel 4.8, nel caso [a,b] = [1,1] in effetti la formula di Gauss-Legendre che si ottiene per n = 1.
Esempio 21 Approssimare lintegrale

I = e x dx
1

con la formula di Gauss-Legendre dei tre punti. Confrontare con lapprossimazione calcolata con la formula dei due punti (esempio 19). Con la formula di Gauss-Legendre dei tre punti si ottiene 3 3 5 3 + 8 f (0 ) + 5 f 3 = 5 e 5 + e 5 + 8 e 0 1.4987 I f 9 9 9 5 9 5 9 Il valore dellintegrale (con 8 cifre significative) 5 I = 1.4936483 Lerrore assoluto vale E = 1.4936483 1.4987 0.5 10 2 Con la formula di Gauss-Legendre dei due punti abbiamo ottenuto (esempio 19) I 0.4330626 Lerrore assoluto vale in questo caso E = 1.4936483 0.4330626 0.6 10 1 La formula gaussiana dei tre punti fornisce, come previsto, un risultato pi accurato rispetto alla formula dei due punti.

Nel caso di un intervallo di integrazione [a,b] [1,1] sempre possibile trasformare lintegrale su [a,b] in un integrale su [1,1] effettuando un opportuno cambiamento di variabile. Siano dati i nodi xk , k = 1,.., n , e i coefficienti wk , k = 1,.., n , per una formula di Gauss-Legendre sullintervallo [1,1]. Per applicare la formula sullintervallo [a,b] si usa il cambiamento di variabile ba ba a+b dx t= x+ e dt = 2 2 2

a b

ba f (t )dt = 2

f
n

a+b ba x+ dx 2 2 a+b ba f xk + + Rn 2 2

e si ottiene la formula di quadratura gaussiana

f ( x)dx =

Se la funzione f ( x ) possiede derivata 2n-esima continua, il resto assume lespressione Rn =

ba wk 2 k =1

(4.37)

(b a )2n +1(n !)4 f (2n ) (c ) (2n + 1)[(2n )!]3


(b a )5 f (4)(c )
4320

dove c un punto opportuno dellintervallo [a,b]. In particolare per la formula di Gauss-Legendre dei due punti si ha
R2 =

Il valore stato calcolato con Maple (si ricordi che la funzione e x non integrabile elementarmente).

Dipartimento di Matematica

230

M. Garetto Metodi Numerici

e per la formula di Gauss-Legendre dei tre punti si ha invece 2016000 Da queste formule si ricavano le corrispondenti maggiorazioni del resto per la formula di GaussLegendre dei due punti 4320 a x b e per la formula di Gauss-Legendre dei tre punti R3 R2 R3 =

(b a )7 f (6 ) (c )

(b a )5 M (b a )7

M 4 = max f (4 ) ( x) M 6 = max f (6 ) ( x)
a x b

(4.38)

2016000

M6

(4.39)

Esempio 22 Approssimare lintegrale I con la formula di Gauss-Legendre dei due punti

I=

x dx

I nodi xk , k = 1,2 , nellintervallo [1,1] e i corrispondenti coefficienti sono

3 3 w1 = 1 w2 = 1 Applicando la formula di Gauss-Legendre dei due punti si ha 2 1 1 3 + 3 + 1 3 + 3 1.219008 I= x dx 2 2 3 2 2 3 2 1 Per stimare il resto si usa la formula (4.38) 1 R2 M4 M 4 = max f (4 ) ( x) 4320 1 x 2 x1 = 3 3 x2 =

f ( x) = x R2

f (4 ) ( x) =

15 2 x 16

M 4 = max f (4 ) ( x) =
1 x 2

15 16

1 15 0.22 10 3 4320 16 Si ottengono tre cifre decimali esatte. Oltre alle formule di quadratura di Gauss-Legendre, esistono anche altre formule gaussiane basate sulluso degli zeri di polinomi ortogonali diversi da quelli di Legendre; la trattazione di queste formule va oltre lo scopo di queste lezioni.
Osservazione Il metodo dei coefficienti indeterminati pu essere applicato non solo per la costruzione della formula di Gauss-Legendre dei due punti, ma pi in generale per la costruzione di formule di quadratura aventi una struttura prefissata. Gli esempi che seguono illustrano questo procedimento. Esempio 23 Costruire una formula di quadratura del tipo

+ w2 f f ( x)dx w1 f 3 3
0

in modo che abbia il pi alto grado di precisione possibile.

Universit di Torino

Capitolo 4 Integrazione numerica

231

Per costruire la formula occorre determinare il valore dei coefficienti w1 e w2 ; poich le incognite sono due, bisogna imporre due condizioni, che si ottengono richiedendo che la formula abbia grado di precisione uno; questo significa che la formula di quadratura deve fornire il risultato esatto quando f ( x) un polinomio qualsiasi di grado minore o uguale a uno. Per le propriet degli integrali definiti (esempio 4, pagg. 207-208) sufficiente imporre che la formula di quadratura fornisca il risultato esatto quando f ( x) = 1 e f ( x) = x ; determiniamo quindi i coefficienti w1 e w2 in modo che siano verificate le seguenti uguaglianze

f ( x) = 1

1 2 w1 f + w2 f = w1 + w2 = 1 dx = 1 3 3 0

2 1 1 2 1 w1 f + w2 f = w1 + w2 = x dx = 3 2 3 3 3 0 Queste due uguaglianze costituiscono un sistema lineare di due equazioni nelle incognite w1 , w2 f ( x) = x

w1 + w2 = 1 1 2 1 w1 + w2 = 3 2 3 la cui soluzione 1 1 w1 = w2 = 2 2 La formula di quadratura ottenuta la seguente, ed una formula di Newton-Cotes di tipo aperto

f ( x)dx 2 f 3 + f 3
0

1 1

Il grado di precisione proprio uno; infatti per f ( x) = x 2 il valore esatto dellintegrale I=

x dx = 3
2

e il valore ottenuto con la formula di quadratura invece

0
3 2

x 2 dx

1 1 2 1 1 4 5 f + f = + = 2 3 3 2 9 9 18

Esempio 24 Costruire una formula di quadratura del tipo

+ w3 f (1) + w4 f f ( x)dx w1 f (0) + w2 f 2 2


0

in modo che abbia il pi alto grado di precisione possibile. Per costruire la formula occorre determinare il valore dei coefficienti w1 , w2 , w3 , w4 ; poich le incognite sono quattro, bisogna imporre quattro condizioni, che si ottengono richiedendo che la formula abbia grado di precisione tre; questo significa che la formula di quadratura deve fornire il risultato esatto quando f ( x) un polinomio qualsiasi di grado minore o uguale a tre. Per le propriet degli integrali definiti esempio 4, pagg. 207-208) sar sufficiente imporre che la formula di quadratura fornisca il risultato esatto quando f ( x) uguale a 1, x, x 2 , x 3 ;

Dipartimento di Matematica

232

M. Garetto Metodi Numerici

determiniamo quindi i coefficienti w1 , w2 , w3 , w4 in modo che siano verificate le seguenti uguaglianze

f ( x) = 1

w1 + w2 + w3 + w4 = 1 dx =
0 3 2

3 2

3 2

f ( x) = x

9 1 3 w2 + w3 + w4 = x dx = 8 2 2

f ( x) = x 2

1 9 27 w2 + w3 + w4 = x 2 dx = 4 4 24

0 3 2

f ( x) = x3

1 27 81 w2 + w3 + w4 = x 3 dx = 8 8 64

0 3 2 0

Queste uguaglianze devono essere contemporaneamente verificate e costituiscono quindi un sistema lineare di quattro equazioni nelle quattro incognite w1 , w2 , w3 , w4
3 w1 + w2 + w3 + w4 = 2 1 w + w + 3 w = 9 3 4 2 2 2 8 1 w + w + 9 w = 27 3 4 4 2 4 24 1 27 81 w2 + w3 + w4 = 8 64 8 che possiede lunica soluzione 3 9 w1 = w2 = 16 16 La formula di quadratura ottenuta la seguente
3 2

w3 =

9 16

w4 =

3 16

f (0) + 3 f + 3 f (1) + f f ( x)dx 16 2 2 Si pu verificare che per f ( x ) = x 4 non si ottiene il risultato esatto: il valore esatto dellintegrale I = x 4 dx =
0 3 2 0 3 2

243 1.51875 160

e il valore ottenuto con la formula di quadratura invece


4 3 1 3 99 3 3 + + 1.546875 . = 16 2 4 2 64 0 Il grado di precisione dunque tre; la formula un caso particolare della formula di Newton-Cotes 3 di tipo chiuso per n = 3, la formula di Simpson . 8

x 4 dx

Universit di Torino

Capitolo 4 Integrazione numerica

233

Esempio 25 Costruire una formula di quadratura del tipo

f ( x)dx w1 f (0) + w2 f (x1 )


0

in modo che abbia il pi alto grado di precisione possibile. Per costruire la formula occorre determinare il valore dei coefficienti w1 , w2 e lascissa del nodo x1 ; poich le incognite sono tre, bisogna imporre tre condizioni. Richiedendo che la formula abbia grado di precisione due, si ricavano le tre condizioni da imporre; questo significa che la formula di quadratura deve fornire il risultato esatto quando f ( x) un polinomio qualsiasi di grado minore o uguale a due. Per le propriet degli integrali definiti (esempio 4, pagg. 207-208) sar sufficiente imporre che la formula di quadratura fornisca il risultato esatto quando f ( x) uguale a 1, x, x 2 ; determiniamo quindi i coefficienti w1 , w2 e il nodo x1 in modo che siano verificate le seguenti uguaglianze
f ( x) = 1 w1 + w2 = 1 dx = 1
0

f ( x) = x

w2 x1 = x dx =
0 1

1 2 1 3

f ( x) = x 2

2 w2 x1 = x 2 dx = 0

Queste uguaglianze costituiscono un sistema non lineare di tre equazioni nelle tre incognite w1 , w2 , x1

w1 + w2 = 1 1 w2 x1 = 2 2 1 w2 x1 = 3 Il sistema possiede lunica soluzione 1 3 w1 = w2 = 4 4 La formula di quadratura ottenuta la seguente

x1 =

2 3

f ( x)dx 4 f (0) + 4 f 3
1
0

3 2

Il grado di precisione proprio due; infatti per f ( x) = x 3 il valore esatto dellintegrale I=

x dx = 4
3

e il valore ottenuto con la formula di quadratura invece

x 3 dx

1 3 2 2 f (0) + f = . 4 4 3 9

Dipartimento di Matematica

234

M. Garetto Metodi Numerici

4.11

Metodo di estrapolazione di Richardson

Lespressione del resto fornisce un metodo per valutare lapprossimazione ottenuta con le varie formule di quadratura considerate; per poter utilizzare le formule del resto (4.15), (4.18), (4.29) occorre per studiare le derivate della funzione data, cosa che pu presentare delle difficolt in alcuni casi o pu essere impossibile se la funzione ad esempio data numericamente. Un altro modo per dare una stima del resto consiste nel confrontare fra loro le approssimazioni dellintegrale ottenute con una data formula di quadratura composta con due diversi valori del numero delle parti N. Il procedimento detto anche valutazione indiretta del resto. Di solito si confrontano i valori ottenuti per N e per 2N parti, in modo da poter sfruttare nel secondo calcolo dellintegrale i valori della funzione gi utilizzati per il primo. Si indichi con I il valore esatto dellintegrale da calcolare, con I N e I 2 N le approssimazioni ottenute con una data formula di quadratura dividendo lintervallo in N e in 2N parti. Dallesame delle espressioni (4.15), (4.18), (4.29) del resto delle formule di quadratura composte dei trapezi, di Simpson e del punto medio si ha che I I N = Ns (4.40) N (4.41) I I2N = s2N s 2 N calcolato nei due casi in punti c diversi di (a,b). Nellipotesi che la derivata f s (x ) vari lentamente al variare di x in (a,b), si pu supporre che N 2 N = per cui, sottraendo la (4.41) dalla (4.40) si ha I 2 N I N s s s = s s 2 s 1 = (I I 2 N ) 2 s 1 N 2 N 2 N Per lapprossimazione I 2 N si ottiene cos la seguente stima del resto dove N e 2 N differiscono tra loro per la presenza del fattore f s (c ) , che viene in generale

I I E2 N = I I 2 N 2 Ns N (4.42) 2 1 In particolare per le tre formule composte esaminate si hanno i seguenti risultati Formula dei trapezi composta, grado di precisione uno, s = 2 I IN (4.43) E2 N = I I 2 N 2 N 3 Formula del punto medio composta, grado di precisione uno, s = 2 I IN (4.44) E2 N = I I 2 N 2 N 3 Formula di Simpson composta, grado di precisione tre, s = 4 I IN (4.45) E2 N = I I 2 N 2 N 15 Per ottenere il valore approssimato di un integrale con una precisione prefissata, anzich seguire il metodo descritto a pag. 215 (formule (4.22), (4,23)), che richiede il calcolo e la maggiorazione della derivata f (s ) (x ) , in base alla (4.42) si pu procedere con successivi raddoppi del numero N di parti fino a quando I I E2 N 2 Ns N < 2 1

Universit di Torino

Capitolo 4 Integrazione numerica

235

e correggere lultima approssimazione I 2 N assumendo come approssimazione dellintegrale I il valore I I I I 2 N + 2 Ns N (4.46) 2 1 Questo procedimento detto estrapolazione di Richardson. Il valore approssimato (4.46) di solito pi accurato di I 2 N , naturalmente nel caso sia verificata lipotesi che la derivata f s (x ) vari lentamente al variare di x in (a,b).

Esempio 26 Calcolare con la formula di Simpson unapprossimazione dellintegrale I, dividendo lintervallo in quattro parti e calcolare una valutazione indiretta del resto

I=

1 cos x dx x

Si osservi che x = 0 una singolarit solo apparente per f (x ) , in quanto 1 cos x lim =0 x x 0 quindi I un integrale proprio. Dividiamo lintervallo 0 , in quattro parti con i punti 2 3 h = , x0 = 0 x1 = x2 = x3 = x4 = 8 8 4 8 2 e applichiamo la formula di Simpson6 3 + 2 f = I4 = f + f f (0 ) + f + 4 24 2 8 4 8
= 2 32 32 3 8 + 1 cos + 1 cos + 1 cos 0.556821 24 8 3 8 4

Per calcolare la stima del resto E4 calcoliamo prima unaltra approssimazione dellintegrale dividendo lintervallo in due parti 2 16 I 2 = f (0 ) + 4 f + f = 1 cos + 0.557191 12 4 4 2 12 Per il resto con la formula (4.45) si ottiene I I 0.556821 0.557191 E4 = I I 4 4 2 = 0.25 10 4 15 15 Il valore di I 4 approssima lintegrale I con quattro cifre decimali corrette.
Esempio 27 Calcolare con la formula di Simpson unapprossimazione dellintegrale I, dividendo lintervallo in quattro parti e calcolare una stima del resto

I = x x dx
0

Per il valore f(0) usiamo il valore del limite

Dipartimento di Matematica

236

M. Garetto Metodi Numerici

Dividiamo lintervallo [0,1] in quattro parti con i punti 1 1 1 3 x1 = x2 = x3 = h = , x0 = 0 4 4 2 4 7 e applichiamo la formula di Simpson 1 1 3 1 + 2 f = I 4 = f (0) + f (1) + 4 f + f 12 4 2 4

x4 = 1

3 1 1 1 4 3 = + +2 0.788863 1 + 1 + 4 12 2 4 2 Poich non semplice maggiorare la derivata quarta di f ( x ) che compare nellespressione del resto della formula di Simpson, conveniente dare una valutazione indiretta del resto con la formula (4.45); a tale scopo calcoliamo unaltra approssimazione dellintegrale I, dividendo lintervallo in due parti 1 1 1 1 I 2 = f (0 ) + f (1) + 4 f = 1 + 1 + 4 0.804738 6 2 2 6 Per il resto si ottiene I I 0.788863 0.804738 E4 = I I 4 4 2 = 0.11 10 2 15 15 Il valore di I 4 approssima lintegrale I con due cifre decimali corrette.
Esempio 28 Calcolare unapprossimazione dellintegrale I, con la formula dei trapezi e con la formula di Simpson, dividendo lintervallo in N=2, 4, 8, 16, 32 parti e calcolare una stima del resto

I = e x dx

Nella tabella seguente sono sintetizzati i risultati ottenuti con Matlab con le due formule di quadratura; nella prima colonna indicato il numero N di parti, nella seconda colonna il valore approssimato con la formula dei trapezi, nella terza colonna il valore approssimato con la formula di Simpson. N 2 4 8 16 32 64 I trapezi 0.7313702518 0.7429840978 0.7458656148 0.7465845968 0.7467642547 0.7468091636 I Simpson 0.7471804289 0.7468553798 0.7468261205 0.7468242574 0.7468241406 0.7468241333

Per il resto possiamo dare una valutazione indiretta; con la formula dei trapezi si ha I I 0.7468091636 0.7467642547 E64 = I I 64 64 32 = 0.15 10 4 3 3
7

Per il calcolo di f(0) osserviamo che


x0

lim x x = lim e x log x = 1


x 0

essendo
x 0

lim x log x = 0

Universit di Torino

Capitolo 4 Integrazione numerica

237

Il valore di I 64 calcolato con la formula dei trapezi approssima lintegrale I con quattro cifre decimali corrette. Con lestrapolazione di Richardson si pu assumere come approssimazione dellintegrale I il valore I I 0.7468091636 0.7467642547 I I 64 + 64 32 = 0.7468091636 + = 0.7468241332 3 3 Con la formula di Simpson si ha I I 0.7468241333 0.7468241406 E64 = I I 64 64 32 = 0.5 10 9 15 15 Il valore di I 64 calcolato con la formula di Simpson approssima lintegrale I con nove cifre decimali corrette. Con lestrapolazione di Richardson si pu assumere come approssimazione dellintegrale I il valore I I 0.7468241333 0.7468241406 I I 64 + 64 32 = 0.7468241333 + = 0.7468241328 15 15

Dipartimento di Matematica

238

M. Garetto Metodi Numerici

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

239

5.
5.1

Equazioni differenziali ordinarie


Introduzione

y (n ) ( x) = f x , y ( x) , y' ( x) ,..., y (n 1) ( x) a xb (5.1) In questa forma la derivata n-esima della funzione incognita y viene scritta esplicitamente come funzione della variabile indipendente x, della y stessa e delle sue derivate fino alla derivata (n1)-esima. Una soluzione dellequazione (5.1) una funzione y definita su [a,b], derivabile n volte in [a,b] e che soddisfa la (5.1). Unequazione del tipo (5.1) ha una famiglia di soluzioni che dipendono da n parametri. Imponendo certe assegnate condizioni sulla funzione y, la soluzione unica. Condizioni del tipo y ( x0 ) = y 0
y' ( x0 ) = y'0 ...............
( n 1) y ( n 1) ( x0 ) = y 0

Molti fenomeni nel campo della fisica, della biologia, dell'ingegneria e in altri diversi settori sono descritti per mezzo di equazioni differenziali. Un'equazione differenziale di ordine n unequazione in cui compare la derivata n-esima e le derivate di ordine inferiore di una funzione y. La sua forma normale la seguente

(5.2)

tutte assegnate nel punto x0 = a , sono dette condizioni iniziali. Unequazione differenziale del tipo (5.1), accompagnata dalle condizioni iniziali (5.2) detta problema ai valori iniziali di ordine n o problema di Cauchy. Un problema ai valori iniziali di ordine n pu essere trasformato in un sistema di n equazioni differenziali del primo ordine. E infatti sufficiente effettuare le sostituzioni z1 ( x) = y ( x)

z 2 ( x ) = y' ( x ) .................. z n ( x) = y ( n 1) ( x) e si ottiene il sistema di n equazioni differenziali del primo ordine ' z1 ( x) = z 2 ( x) z'2 ( x) = z 3 ( x) .................... ' z n ( x) = f (x , z1 ( x) , z 2 ( x) ,...., z n ( x) ) accompagnato dalle condizioni iniziali, tutte assegnate nel punto x0 = a
z1 ( x0 ) = y ( x0 ) = y 0 ' ' z 2 ( x0 ) = y ( x0 ) = y 0 .......................... z ( x ) = y ( n 1) ( x ) = y ( n 1) 0 0 n 0

Dipartimento di Matematica

240

M. Garetto Metodi Numerici

Esempio 1 Sia dato il problema di Cauchy del secondo ordine

y' ' + 3 y' + y = 0 y (0) = 1 y' (0) = 0 Definiamo le funzioni z1 ( x) = y ( x) z 2 ( x ) = y' ( x ) Allora
' z1 ( x ) = y' ( x )

z'2 ( x) = y' ' ( x) e si ottiene il sistema di due equazioni differenziali del primo ordine ' z 2 ( x) + 3z 2 ( x) + z1 ( x) = 0 ' z1 ( x) = z 2 ( x) con le condizioni iniziali z1 (0) = 1 z 2 (0) = 0 Prima di procedere alla costruzione dei metodi numerici per la soluzione di equazioni differenziali ricordiamo un importante teorema riguardante lesistenza e lunicit della soluzione di un problema ai valori iniziali del primo ordine. Per enunciarlo occorre premettere alcune definizioni.
Definizione Si dice che una funzione f ( x , y ) soddisfa la condizione di Lipschitz rispetto alla variabile y su un insieme AR2 se esiste una costante L > 0 tale che (x , y1 ),(x , y2 ) A

f ( x , y1 ) f ( x , y2 ) L y1 y2 La costante L detta costante di Lipschitz.


Esempio 2 Sia

Per ogni coppia di punti ( x , y1 ), (x , y2 ) A si ha f ( x , y1 ) f ( x , y2 ) = x y1 x y2 = x y1 y2 4 y1 y2 .


La funzione f soddisfa la condizione di Lipschitz rispetto a y sul dominio A, con costante di Lipschitz L = 4.
Definizione Un insieme AR2 detto convesso se per qualsiasi coppia di punti ( x1 , y1 ), (x2 , y2 ) A e [0,1] , il punto ((1 )x1 + x2 ,(1 ) y1 + y2 ) appartiene ancora ad A.

A= {( x , y ) : 0 x 4 ,2 y 4}

f (x , y ) = x y

Geometricamente ci significa che un insieme convesso se per ogni coppia di punti dellinsieme A, tutto il segmento che li unisce appartiene ad A.

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

241

Gli insiemi che si considerano in questo capitolo sono generalmente della forma A = {(x , y ) : a x b , < y < } per a,bR; questi insiemi sono convessi.
Teorema Sia f ( x , y ) definita su un insieme convesso AR2. Se esiste una costante L>0 per cui

f (x , y ) L , (x , y ) A , y allora f soddisfa la condizione di Lipschitz rispetto a y sul dominio A, con costante di Lipschitz L.
Teorema di Cauchy Sia data lequazione differenziale del primo ordine in forma normale

y' = f ( x , y ) soddisfacente le seguenti ipotesi 1 f ( x , y ) sia definita sul dominio A= {(x , y ) : a x b , < y < } R2 e sia (x0 , y0 ) A ; 2 f ( x , y ) sia continua su A; 3 f ( x , y ) soddisfi la condizione di Lipschitz rispetto a y. Allora esiste ed unica la soluzione y = y ( x) tale che y ( x0 ) = y0 , ossia il problema ai valori iniziali ammette una e una sola soluzione.
Lequazione differenziale y' = f ( x , y ) ha una famiglia di soluzioni dipendenti da un parametro (costante arbitraria); la condizione iniziale y ( x0 ) = y 0 permette di scegliere fra queste infinite soluzioni della famiglia una particolare soluzione.
Esempio 3 Lequazione differenziale y' = e x

dove la funzione f ( x , y ) = e x non dipende da y, ha come soluzione la famiglia di curve

y = C e x . Le curve della famiglia differiscono tutte per una costante additiva arbitraria, ossia si mantiene la distanza fra le soluzioni. Nella fig. 1 sono rappresentate alcune curve della famiglia per i valori della costante C indicati
2 C=2

1 C=1

0 C=0

-1

C = 1

-2 0

Figura 1
0.5 1 1.5 2

Dipartimento di Matematica

242

M. Garetto Metodi Numerici

Esempio 4 Lequazione differenziale y' = y dove la funzione f ( x , y ) = y non dipende da x, ha come soluzione

y = Ce x . Le curve della famiglia differiscono tutte per una costante moltiplicativa arbitraria, ossia non si mantiene la distanza fra le soluzioni al variare di x. Nella fig. 2 sono rappresentate alcune curve della famiglia per i valori della costante C indicati
2

C=2 C=1 C = 1 C = 2

-1

-2 0

Figura 2
0.5 1 1.5 2

y' ( x ) = f ( x , y ( x ) ) (5.3) y ( x0 ) = y 0 x0 = a I metodi numerici per questo tipo di problemi possono essere facilmente estesi ai sistemi di n equazioni differenziali del primo ordine. La tecnica pi comune per trovare la soluzione numerica di unequazione differenziale consiste nel trasformare il problema continuo in un problema discreto. Si discretizza lintervallo [a,b] considerando n+1 punti, di solito equidistanti a = x0 < x1 < x2 < ... < xn = b e si genera con un opportuno metodo un insieme di valori y k , k = 0,1,...,n, che sono approssimazioni dei valori esatti y ( xk ) della soluzione nei punti xk , k = 0,1,...,n y1 y ( x1 ) y 2 y ( x 2 ) ..... y n y ( xn ) Laccuratezza con cui i valori y k approssimano i valori esatti y ( xk ) non dipende solo dal metodo, ma anche da come si comporta la famiglia delle soluzioni: in altre parole per valutare lerrore occorre studiare il condizionamento dellequazione differenziale.

In questo capitolo sar trattato il problema della costruzione di metodi numerici per risolvere in modo approssimato problemi ai valori iniziali del primo ordine del tipo pi semplice

5.2

Condizionamento di unequazione differenziale

Studiare il problema del condizionamento di unequazione differenziale ordinaria significa studiare come una perturbazione della condizione iniziale si propaga nella soluzione dellequazione. Se un piccolo cambiamento nella condizione iniziale, ossia sul dato y0 , provoca un grande cambiamento nella soluzione, il problema ai valori iniziali si dice mal condizionato; se invece il cambiamento nella soluzione piccolo, il problema si dice ben condizionato.

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

243

Esempio 5 Un esempio di problema mal condizionato. Il seguente problema di Cauchy

y' = 2 y + 1 y ( 0) = 1 x [0 , + ) ha la soluzione esatta 1 y = 3e 2 x 1 2 Il problema seguente ottenuto perturbando il dato iniziale y0 di una quantit

y ( 0) = 1 + x [0 , + ) e ha la soluzione esatta 1 3 y = + e 2 x 2 2 Qualunque sia , la differenza tra le due soluzioni y y = e 2 x tende a + al crescere di x lim y y = lim e 2 x = +
x + x +

y' = 2 y + 1

ossia per qualunque le soluzioni divergono al crescere di x. Nella fig. 3 sono rappresentate la soluzione del problema assegnato ( = 0) e le soluzioni del problema perturbato per tre diversi valori di .
30

25

=2

20 =1 15 = 0.2 =0

10

0 0

0.5

Figura 3

Esempio 6 Un esempio di problema ben condizionato. Il seguente problema di Cauchy

y' = 2 y + 1 y ( 0) = 1 ha la soluzione y= 1 2 x e +1 2 Il problema perturbato y' = 2 y + 1 y ( 0) = 1 +

x [0 , + )

)
x [0 , + )

Dipartimento di Matematica

244

M. Garetto Metodi Numerici

ha la soluzione

1 1 y = + e 2 x + 2 2 La differenza tra le soluzioni y y = e 2 x tende a 0 al crescere di x lim y y = lim e 2 x = 0


x + x +

ossia per qualunque le soluzioni convergono al crescere di x. Nella fig. 4 sono rappresentate la soluzione del problema assegnato ( = 0) e le soluzioni del problema perturbato per tre diversi valori di .
3

2.5

1.5

1 =2 =1 = 0.2 =0 0.5 1

0.5 0

Figura 4

Esempio 7 Il seguente problema di Cauchy

y' = y y (0) = 1 x [ 0 ,b ] dove un parametro reale, ha la soluzione y = e x Il problema perturbato y' = y y (0) = 1 + ha la soluzione y = (1 + ) ex La differenza tra le soluzioni y y = e x e si ha 0 lim y y = x + + <0 >0 x [ 0 ,b ]

Se < 0 il problema ai valori iniziali ben condizionato. Se invece > 0 il problema mal condizionato. Nelle figg. 5 e 6 sono rappresentate la soluzione del problema assegnato ( = 0) e le soluzioni del problema perturbato per diversi valori di e per due valori del parametro : per = 3 il problema ben condizionato, invece per = 3 mal condizionato.

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

245

=1

= 3

40

=3

=1

30

= 0.1 =0
1 20

= 0. =0

10

0 0

0.5

0 0

0.5

Figura 5

Figura 6

Dato il problema di Cauchy

y' = f ( x , y )

y ( x0 ) = y 0 x0 = a si dimostra che il problema ben condizionato se f <0 y e il problema mal condizionato se f >0. y Poich in generale la derivata parziale di f rispetto a y dipende da x, si possono avere regioni del piano in cui il problema ben condizionato e altre in cui mal condizionato; questo non accade nel caso in cui f dipende solo da y (caso lineare).
Esempio 8 Il problema ai valori iniziali

y' = 2(x 1) y 1 y (0) = e


2

ha la soluzione1
y = e ( x 1) Il problema perturbato

y' = 2(x 1) y 1 y (0) = + e


2

ha la soluzione
y = (1 + e )e ( x 1) Nella fig. 7 sono rappresentate la soluzione del problema assegnato ( = 0) e le soluzioni del problema perturbato per due diversi valori di .

La soluzione generale dellequazione differenziale


y = Ce x
2 +2 x

Dipartimento di Matematica

246

M. Garetto Metodi Numerici

2 =1 1 = 0.1 =0 0 0 0.5 1 1.5 2

Figura 7

Il problema ben condizionato o mal condizionato, a seconda dellintervallo in cui si cerca la soluzione. Infatti f ( x , y ) = 2(x 1) y < 0 x >1 f ( x , y ) = 2(x 1) y > 0 x <1 Il problema mal condizionato per x < 1 e ben condizionato per x > 1: le soluzioni tendono ad allontanarsi fra loro fino a x = 1 e poi si avvicinano nuovamente (fig. 7).
Esempio 9 Il problema di Cauchy del secondo ordine

y' ' 10 y' 11 y = 0 y (0) = 1 y' (0) = 1 ha la soluzione2 y = e x Il problema perturbato y' ' 10 y' 11 y = 0 y (0) = 1 + y' (0) = 1 ha la soluzione
1 11 y = 1 + e x + e11x 12 12 La differenza tra le soluzioni 11 x 1 11x e + e y y = 12 12

contiene il termine e11x che diverge per x +; le curve sono molto vicine nellintorno dellorigine, poi si allontanano al crescere di x. Il problema ben condizionato per x < 0.5 e mal condizionato per x > 0.5 (fig. 8).

La soluzione generale dellequazione differenziale

y = C1e x + C2 e11x
Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

247

6 = 0.001

2 = 0.0001 =0 0 0 0.25 0.5 0.75 1

Figura 8

Alcuni autori usano il termine di stabilit di unequazione differenziale come sinonimo di condizionamento; in realt il condizionamento una caratteristica del problema e non dipende dal metodo numerico che sar utilizzato per risolverlo, mentre la stabilit una caratteristica del metodo numerico scelto. Un problema mal condizionato non pu essere risolto numericamente con unaccuratezza prefissata. Un problema ben condizionato per non assicura sempre una buona soluzione numerica, perch bisogna considerare anche gli aspetti legati allalgoritmo: il buon condizionamento del problema condizione necessaria ma non sufficiente per risolvere accuratamente il problema con un metodo numerico.

5.3

Metodi numerici per la soluzione di equazioni differenziali

y' = f ( x , y ) y ( x0 ) = y 0 x [ a ,b ] x0 = a Per costruire i metodi numerici si usa una strategia detta metodologia delle differenze finite. Si discretizza lintervallo [a,b] considerando i punti distinti a = x0 < x1 < x2 < ... < xn = b I punti xk , k = 0,1,...,n, detti nodi, sono di solito equidistanti3 xk = a + kh k = 0,1,2 ,..., n Si genera poi con unopportuna equazione un insieme di valori y k , k = 1,...,n, che sono approssimazioni dei valori esatti y ( xk ) della soluzione nei punti xk , k = 1,...,n y1 y ( x1 ) y 2 y ( x2 ) ..... y n y ( xn )
In generale i nodi possono anche essere non equidistanti e in vari algoritmi possono essere determinati in modo automatico per seguire meglio landamento della soluzione. Dipartimento di Matematica
3

I metodi numerici che saranno descritti in questo capitolo non producono unapprossimazione continua della soluzione del problema ai valori iniziali; si trovano invece approssimazioni della soluzione in opportuni punti, di solito equidistanti, appartenenti a un intervallo. Dopo aver ottenuto tali approssimazioni si potr ricavare unapprossimazione continua con metodi di interpolazione, ad esempio una funzione spline, che permetter di calcolare approssimazioni della soluzione in altri punti dellintervallo, diversi da quelli assegnati. Luso di un metodo numerico per la soluzione di un problema ai valori iniziali comporter sempre in realt la soluzione di un problema perturbato, e ci dovuto agli errori di round off che si introducono nella rappresentazione dei dati e nel calcolo in aritmetica finita, e che perturbano il problema originale. Sia dato un problema ai valori iniziali

248

M. Garetto Metodi Numerici

I metodi numerici per la soluzione delle equazioni differenziali si classificano in due tipi diversi: metodi one-step e metodi multi-step. Nei metodi one-step il valore y k +1 viene calcolato utilizzando unicamente lapprossimazione precedente y k . Nei metodi multi-step invece il valore y k +1 viene calcolato utilizzando pi approssimazioni precedenti. Esaminiamo dapprima i metodi one-step, per la loro semplicit; in particolare descriviamo i metodi one-step espliciti, la cui forma generale la seguente y k +1 = y k + hF (xk , y k , h ) dove F indica una opportuna funzione che definisce il metodo, e h la distanza fra i nodi equidistanti.

5.4

Metodo di Eulero

Il metodo di Eulero il pi semplice metodo one-step esplicito per risolvere il problema di Cauchy y' = f ( x , y ) y ( x0 ) = y 0 x0 = a Questo metodo non un metodo numerico efficiente, ma lo analizzeremo in dettaglio perch molte delle nozioni di base sulla soluzione numerica di unequazione differenziale possono essere illustrate in modo semplice. Sia [a,b], con x0 = a , lintervallo in cui si vuole approssimare la soluzione del problema di Cauchy; dividiamo lintervallo in n sottointervalli uguali con i punti equidistanti xk = a + kh k = 0,1,..., n con passo ba h= . n Indichiamo con y ( xk ) il valore esatto della soluzione nel punto xk e con y k il valore approssimato. Se supponiamo che la funzione y ( x) , unica soluzione del problema di Cauchy, abbia due derivate

y' ( x) e y' ' ( x) continue su [a,b], possiamo usare la formula di Taylor per sviluppare y ( x) nellintorno del punto xk , per k=0,1,,n1

(x x ) y ( xk +1 ) = y ( xk ) + y' ( xk )( xk +1 xk ) + k +1 k y'' (ck ) 2 dove ck un opportuno punto compreso fra xk e xk +1 . Sostituendo nello sviluppo di Taylor
2

y' (xk ) = f (xk , y (xk ))

h = xk +1 xk

si ha

h 2 '' y (ck ) (5.4) 2 Se il passo h sufficientemente piccolo, si pu trascurare il termine contenente la derivata seconda e si ottiene il y ( xk +1 ) = y ( xk ) + hf ( xk , y (xk )) +
Metodo di Eulero y k +1 = y k + hf (xk , y k )

k = 0,1,...., n 1

(5.5)

Lequazione (5.5) detta equazione alle differenze associata con il metodo di Eulero.

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

249

Con la formula di Eulero si calcola il valore yk , k = 1,2,..., n , che approssima il valore esatto della soluzione y ( x) nel punto xk . Linterpretazione geometrica del metodo illustrata dalla fig. 9.

Figura 9

y' (x0 ) = f (x0 , y (x0 )) Il metodo consiste nellassumere come approssimazione di y (x1 ) il valore assunto in x1 dalla retta tangente alla curva y = y ( x) nel punto (x0 , y0 ) . Il metodo di Eulero non fornisce unapprossimazione accurata della soluzione e lerrore cresce allontanandosi dal punto x0 in cui assegnata la condizione iniziale; tuttavia, data la sua semplicit, il metodo viene usato quando non richiesta una grande accuratezza. Questo metodo si rivela particolarmente adatto per illustrare le idee di base sullo studio degli errori che si generano nella soluzione numerica di unequazione differenziale e che sono di due tipi diversi 1 errori di troncamento o di discretizzazione, insiti nei metodi usati per approssimare i valori della soluzione y; 2 errori di arrotondamento, dovuti allaritmetica floating point usata dal computer. Gli errori di troncamento sono di due tipi diversi: il primo detto errore locale di troncamento, il secondo detto errore globale di troncamento. Un metodo one-step esplicito per risolvere un problema ai valori iniziali , come abbiamo gi detto, della forma y k +1 = y k + hF (xk , y k , h ) Lerrore locale di troncamento nel punto x k +1 definito da E L = y (xk +1 ) y k hF (xk , y k , h )) k = 0 ,1,2 ,..., n 1 Lerrore locale lerrore commesso nel singolo passo del metodo da xk a x k +1 , e non tiene conto degli errori introdotti nei passi precedenti, come se il valore trovato al passo precedente fosse esatto. Lerrore globale di troncamento nel punto xk definito da EG = y ( x k ) y k ed la differenza fra il valore esatto della soluzione in xk e il valore approssimato ottenuto con il metodo numerico, Lerrore globale lerrore su y k quando tutti i precedenti valori y k 1 , y k 2 ,... sono determinati anchessi col metodo numerico, ossia lerrore globale tiene conto della propagazione degli errori: questo lerrore che si vorrebbe fosse piccolo quando si approssima y (x ) nel generico punto xk .

La retta tangente in x0 al grafico di y = y ( x) ha coefficiente angolare

Dipartimento di Matematica

250

M. Garetto Metodi Numerici

Questo errore difficilmente valutabile in quanto y ( xk ) non noto; poich per lerrore globale dipende da h, si pu ragionevolmente pensare che scegliendo un passo h sufficientemente piccolo lerrore diminuisca. Si dice che un metodo one-step convergente se lim EG = lim EG = 0
h0 n +

Nel caso di un metodo convergente, in teoria si pu rendere lerrore sulla stima di y ( xn ) piccolo quanto si vuole prendendo un valore di n sufficientemente grande, ossia un passo sufficientemente piccolo; in pratica questo non possibile per le limitazioni dellaritmetica di macchina. Tuttavia se si usa un metodo convergente si ottengono risultati migliori al decrescere del passo h, entro i limiti dellaritmetica finita. Esiste una relazione tra errore globale e errore locale per equazioni differenziali del primo ordine. Se per lerrore locale si ha

E L = h p +1 allora per lerrore globale si ha EG = h p In tal caso il metodo si dice di ordine p. Nel caso del metodo di Eulero, consideriamo lo sviluppo di Taylor (5.4)
h 2 '' y (ck ) 2 dove ck un opportuno punto compreso tra xk e xk +1 . Pertanto lerrore locale di troncamento del metodo di Eulero al passo k ha lespressione y (x k +1 ) = y (xk ) + hf (x k , y (x k )) + h 2 '' y (c k ) = O h 2 2 e di conseguenza lerrore globale dellordine di h EG = y ( x k ) y k = ( h ) ossia EG Ch C = costante Il metodo di Eulero quindi di ordine 1; un metodo convergente, ma non molto usato poich bisogna scegliere un passo h molto piccolo per avere un errore globale accettabile; dalla relazione EG Ch C = costante segue che se si dimezza il passo h, lerrore globale viene ridotto a met. Scegliendo per un passo molto piccolo, lerrore di arrotondamento dovuto alla precisione finita del calcolo cresce e pu prevalere sullerrore globale di troncamento. In tal caso lerrore complessivo del metodo, a cui contribuiscono sia lerrore globale di troncamento che lerrore di arrotondamento, cresce. EL =

( ) ( )

( )

Esempio 10 Risolvere il problema di Cauchy

y' = y y ( 0) = 1 nellintervallo [0,2] con il metodo di Eulero, utilizzando il passo h = 0.2 . Il problema ben condizionato (esempio 7). Applichiamo il metodo di Eulero y k +1 = y k + hf (xk , y k ) x0 = 0 y0 = 1 h = 0.2

x1 = 0.2 x2 = 0.4 x3 = 0.6 ...........

y2 = y1 + hf (x1 , y1 ) = 0.8 + 0.2( 0.8) = 0.6400 y3 = y2 + hf (x2 , y2 ) = 0.64 + 0.2( 0.64) = 0.5120

y1 = y0 + hf ( x0 , y0 ) = 1 + 0.2( 1) = 0.8000

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

251

Iterando si ottengono i risultati riportati nella terza colonna della tabella seguente4. La soluzione esatta y = ex I valori della soluzione esatta nei nodi sono riportati nella quarta colonna della tabella; nellultima colonna riportato lerrore globale EG = y ( x k ) y k k 0 1 2 3 4 5 6 7 8 9 10 xk 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 yk 1.0 0.8000 0.6400 0.5120 0.4096 0.3277 0.2621 0.2097 0.1678 0.1342 0.1074 y (xk ) 1 0.8187 0.6703 0.5488 0.4493 0.3679 0.3012 0.2466 0.2019 0.1653 0.1353 EG 0 0.0187 0.0303 0.0368 0.0397 0.0402 0.0391 0.0369 0.0341 0.0311 0.0280

Nella fig. 10 sono rappresentate la soluzione esatta e la soluzione approssimata nei nodi assegnati, trovata con il metodo di Eulero.

Figura 10

Esempio 11 Risolvere il problema di Cauchy

y' = y y ( 0) = 1 nellintervallo [0,2] con il metodo di Eulero, utilizzando il passo h = 0.2 . Il problema mal condizionato (esempio 7). Applichiamo il metodo di Eulero y k +1 = y k + hf (xk , y k ) x0 = 0 y0 = 1 h = 0.2 x1 = 0.2 x2 = 0.4 x3 = 0.6 ...........
4

y1 = y0 + hf (x0 , y0 ) = 1 + 0.2(1) = 1.2000 y2 = y1 + hf (x1 , y1 ) = 1.2 + 0.2(1.2 ) = 1.4400

y3 = y2 + hf (x2 , y2 ) = 1.44 + 0.2(1.44) = 1.7280

I risultati di questo esempio e dei seguenti sono stati ottenuti con Matlab.

Dipartimento di Matematica

252

M. Garetto Metodi Numerici

Iterando si ottengono i risultati riportati nella terza colonna della tabella seguente. La soluzione esatta y = ex I valori della soluzione esatta nei nodi sono riportati nella quarta colonna della tabella; nellultima colonna riportato lerrore globale EG = y ( x k ) y k k 0 1 2 3 4 5 6 7 8 9 10 xk 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 yk 1.0000 1.2000 1.4400 1.7280 2.0736 2.4883 2.9860 3.5832 4.2998 5.1598 6.1917 y (xk ) 1.0000 1.2214 1.4918 1.8221 2.2255 2.7183 3.3201 4.0552 4.9530 6.0496 7.3891 EG 0.000 0.0214 0.0518 0.0941 0.1519 0.2300 0.3341 0.4720 0.6532 0.8899 1.1973

Figura 11

Esempio 12 Risolvere il problema di Cauchy

y' = xy y (0) = 1 nellintervallo [0,2] con il metodo di Eulero, utilizzando il passo h = 0.2 . Il problema ben condizionato: infatti f f (x , y ) = xy = x < 0 y Applichiamo il metodo di Eulero y k +1 = y k + hf (xk , y k ) x0 = 0 y0 = 1 h = 0.2

per x > 0 .

x1 = 0.2 x2 = 0.4 x3 = 0.6 ...........

y1 = y0 + hf (x0 , y0 ) = 1 + 0.2(0 1) = 1.0000 y2 = y1 + hf (x1 , y1 ) = 1 + 0.2( 0.2 1) = 0.9600

y3 = y2 + hf (x2 , y2 ) = 0.96 + 0.2( 0.4 0.96) = 0.8832

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

253

Iterando si ottengono i risultati riportati nella terza colonna della tabella seguente. La soluzione esatta

y=e I valori della soluzione esatta nei nodi sono riportati nella quarta colonna della tabella; nellultima colonna riportato lerrore globale
k 0 1 2 3 4 5 6 7 8 9 10

2 2

xk 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0

yk 1.0000 1.0000 0.9600 0.8832 0.7772 0.6529 0.5223 0.3969 0.2858 0.1943 0.1244

y (xk ) 1.00000 0.9802 0.9231 0.8353 0.7261 0.6065 0.4868 0.3753 0.2780 0.1979 0.1353

EG 0.0000 0.0198 0.0369 0.0479 0.0511 0.0463 0.0355 0.0216 0.0078 0.0036 0.0110

Figura 12

Esempio 13 Risolvere il problema di Cauchy

y' = xy y ( 0) = 1 nellintervallo [0,2] con il metodo di Eulero, utilizzando il passo h = 0.2 . Il problema mal condizionato: infatti f f ( x , y ) = xy = x > 0 per x > 0 . y Applichiamo il metodo di Eulero y k +1 = y k + hf (xk , y k ) x0 = 0 y0 = 1 h = 0.2

x1 = 0.2 x1 = 0.4 x3 = 0.6 ...........

y1 = y0 + hf (x0 , y0 ) = 1 + 0.2(0 1) = 1.0000 y2 = y1 + hf (x1 , y1 ) = 1 + 0.2(0.2 1) = 1.0400

y3 = y2 + hf (x2 , y2 ) = 1.04 + 0.2(0.4 1.04) = 1.1232

Dipartimenti di Matematica

254

M. Garetto Metodi Numerici

Iterando si ottengono i risultati riportati nella terza colonna della tabella seguente. La soluzione esatta y= I valori della soluzione esatta nei nodi sono riportati nella quarta colonna della tabella; nellultima colonna riportato lerrore globale k 0 1 2 3 4 5 6 7 8 9 10 xk 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 yk 1.0000 1.0000 1.0400 1.1232 1.2580 1.4593 1.7511 2.1714 2.7794 3.6688 4.9895 y (xk ) 1.0000 1.0202 1.0833 1.1972 1.3771 1.6487 2.0544 2.6645 3.5966 5.0531 7.3891 EG 0.0000 0.0202 0.0433 0.0740 0.1191 0.1895 0.3033 0.4931 0.8173 1.3843 2.3995
x2 e2

Applichiamo ancora il metodo di Eulero, dimezzando il passo x0 = 0 y0 = 1 h = 0 .1


x1 = 0.1 x2 = 0.2 x3 = 0.3 x4 = 0.4

y3 = y2 + hf (x2 , y2 ) = 1.01 + 0.1(0.2 1.01) = 1.0302

y1 = y0 + hf (x0 , y0 ) = 1 + 0.1(0 1) = 1.0000 y2 = y1 + hf (x1 , y1 ) = 1 + 0.1(0.1 1) = 1.0100

y4 = y3 + hf (x3 , y3 ) = 1.03 + 0.1(0.3 1.03) = 1.0611

........... Nella terza colonna della tabella seguente sono riportati alcuni dei risultati ottenuti con literazione del metodo con h = 0.1, i corrispondenti valori della soluzione esatta nei nodi e lerrore globale. Confrontando questa tabella con la precedente si osserva che dimezzando il passo h lerrore globale si dimezza. k 0 1 2 3 4 10 15 20 xk 0.0 0.1 0.2 0.3 0.4 1.0 1.5 2.0 yk 1.0000 1.0000 1.0100 1.0302 1.0611 1.5471 2.7255 5.9732 y (xk ) 1.0000 1.0050 1.0202 1.0460 1.0833 1.6487 3.0802 7.3891 EG 0 0.0050 0.0102 0.0158 0.0222 0.1016 0.3548 1.4158

Nella fig. 13 si confrontano la soluzione esatta e le soluzioni approssimate trovate con il metodo di Eulero con passi h=0.2 e h=0.1.

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

255

Figura 13

Esempio 14 Risolvere il problema di Cauchy y y' = 1 + x y (1) = 2 nellintervallo [1,3] con il metodo di Eulero, utilizzando il passo h = 0.25 . Il problema mal condizionato: infatti f 1 y = > 0 per x > 0 . f (x , y ) = 1 + y x x Applichiamo il metodo di Eulero y k +1 = y k + hf (x k , y k ) x0 = 1 y0 = 2 h = 0.25

x1 = 1.25 x2 = 1.5 x3 = 1.75

2 y1 = y0 + hf (x0 , y0 ) = 2 + 0.251 + = 2.7500 1 2.75 y2 = y1 + hf ( x1 , y1 ) = 2.75 + 0.251 + = 3.5500 1.25 3.55 y3 = y2 + hf (x2 , y2 ) = 3.55 + 0.251 + = 4.3917 1 .5

........... Iterando si ottengono i risultati riportati nella terza colonna della tabella seguente. La soluzione esatta y = x ln x + 2 x I valori della soluzione esatta nei nodi sono riportati nella quarta colonna della tabella; nellultima colonna riportato lerrore globale k 0 1 2 3 4 5 6 7 8

xk 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00

yk 2.0000 2.7500 3.5500 4.3917 5.2690 6.1777 7.1141 8.0755 9.0596

y (xk ) 2.0000 2.7789 3.6082 4.4793 5.3863 6.3246 7.2907 8.2819 9.2958

EG 0.0000 0.0289 0.0582 0.0877 0.1172 0.1469 0.1766 0.2064 0.2362

Dipartimenti di Matematica

256

M. Garetto Metodi Numerici

Figura 14

Esempio 15 Risolvere il problema di Cauchy

y' = y x 2 + 1 1 2 nellintervallo [0,2] con il metodo di Eulero, utilizzando il passo h = 0.2 . Applichiamo il metodo di Eulero y k +1 = y k + hf (xk , y k ) 1 x0 = 0 y0 = h = 0.2 2 1 1 x1 = 0.2 y1 = y0 + hf (x0 , y0 ) = + 0.2 + 1 = 0.8000 2 2 y ( 0) =
x2 = 0.4 x3 = 0.6 y2 = y1 + hf (x1 , y1 ) = 0.8 + 0.2 0.8 0.2 2 + 1 = 1.1520 y3 = 1.152 + 0.2 1.152 0.4 2 + 1 = 1.5504

........... Iterando si ottengono i risultati riportati nella terza colonna della tabella seguente. La soluzione esatta 1 y = ( x + 1)2 e x 2 I valori della soluzione esatta nei nodi sono riportati nella quarta colonna della tabella; nellultima colonna riportato lerrore globale k 0 1 2 3 4 5 6 7 8 9 10 xk 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 yk 0.5000 0.8000 1.1520 1.5504 1.9885 2.4582 2.9498 3.4518 3.9501 4.4282 4.8658 y ( xk ) 0.5000 0.8293 1.2141 1.6489 2.1272 2.6409 3.1799 3.7324 4.2835 4.8152 5.3055 EG 0.0000 0.0293 0.0621 0.0985 0.1387 0.1827 0.2301 0.2806 0.3334 0.3870 0.4397

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

257

Figura 15

Esempio 16 Risolvere il problema di Cauchy

y' = 2 x 3 + 12 x 2 20 x + 8.5 y ( 0) = 1 nellintervallo [0,4] con il metodo di Eulero, utilizzando il passo h = 0.5 e il passo h = 0.25 . La soluzione esatta

y = 0.5 x 4 + 4 x 3 10 x 2 + 8.5 x + 1 Applichiamo il metodo di Eulero con il passo h = 0.5 y k +1 = y k + hf (xk , y k ) x0 = 0 y0 = 1 h = 0.5
x1 = 0.5 x2 = 1.0 x3 = 1.5 y1 = 1 + 0.5 8.5 = 5.2500

) y3 = 5.875 + 0.5( 2 1.03 + 12 1.0 2 20 1.0 + 8.5) = 5.1250


y2 = 5.25 + 0.5 2 0.53 + 12 0.52 20 0.5 + 8.5 = 5.8750

.............. Iterando si ottengono i risultati riportati nella terza colonna della tabella seguente. Nellultima colonna della tabella riportato lerrore globale k 0 1 2 3 4 5 6 7 8

xk 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0

yk 1.0000 5.2500 5.8750 5.1250 4.5000 4.7500 5.8750 7.1250 7.0000

y ( xk ) 1.0000 3.2188 3.0000 2.2188 2.0000 2.7188 4.0000 4.7188 3.0000

EG 0.0000 2.0313 2.8750 2.9063 2.5000 2.0313 1.8750 2.4063 4.0000

Applichiamo ora il metodo di Eulero con il passo h = 0.25 , per ottenere i risultati della tabella seguente

Dipartimenti di Matematica

258

M. Garetto Metodi Numerici

k 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

xk 0 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00

yk 1.0000 3.1250 4.1797 4.4922 4.3438 3.9688 3.5547 3.2422 3.1250 3.2500 3.6172 4.1797 4.8438 5.4688 5.8672 5.8047 5.0000

y ( xk ) 1.0000 2.5605 3.2188 3.2793 3.0000 2.5918 2.2188 1.9980 2.0000 2.2480 2.7188 3.3418 4.0000 4.5293 4.7188 4.3105 3.0000

EG 0.0000 0.5645 0.9609 1.2129 1.3438 1.3770 1.3359 1.2441 1.1250 1.0020 0.8984 0.8379 0.8438 0.9395 1.1484 1.4941 2.0000

Usando il passo h = 0.5, si ha uninformazione qualitativa sul comportamento della soluzione, ma lerrore globale piuttosto elevato. Riducendo a met il passo lerrore globale si dimezza.

Figura 16

Esempio 17 Risolvere il problema di Cauchy x y y' = 2 y ( 0) = 1 nellintervallo [0,3] con il metodo di Eulero; confrontare le soluzioni approssimate ottenute per i valori del passo h = 1, 0.5, 0.25, 0.125 . La soluzione esatta

y = 3e + x 2 . La tabella fornisce alcuni dei valori approssimati della soluzione nei punti dellintervallo [0,3] per i differenti valori del passo.

x 2

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

259

Ad esempio per h = 0.25 si ha x0 = 0 y0 = 1

h = 0.25

x1 = 0.25

x 2 = 0 .5 ...........

0 1 .0 = 0.8750 2 0.25 0.875 y 2 = y1 + hf (x1 , y1 ) = 0.875 + 0.25 = 0.7969 2 y1 = y0 + hf (x0 , y0 ) = 1 + 0.25

xk 0 0.1250 0.2500 0.3750 0.5000 0.7500 1.0000 1.5000 2.0000 2.5000 3.0000

h =1 1.0000

h = 0 .5 1.0000

yk

h = 0.25 1.0000 0.8750

0.7500 0.5000 0.7500 1.3750 0.6875 0.7656 0.9492 1.2119 1.5339

0.7969 0.7598 0.7585 0.8464 1.0308 1.2892 1.6043

h = 0.125 1.0000 0.9375 0.8867 0.8469 0.8174 0.7868 0.7902 0.8829 1.0682 1.3252 1.6374

y (xk ) 1.0000 0.9432 0.8975 0.8621 0.8364 0.8119 0.8196 0.9171 1.1036 1.3595 1.6694

Figura 17

5.5

Metodi di Runge-Kutta

Per ricavare metodi di ordine superiore al primo per la soluzione del problema di Cauchy y' = f ( x , y ) y ( x0 ) = y 0 si potrebbe utilizzare lo sviluppo in serie di Taylor, gi usato per ricavare il metodo di Eulero; questa strategia per sconsigliabile perch richiede di calcolare le derivate successive della funzione f (x , y ) ed preferibile seguire unaltra tecnica, che qui per brevit non sar descritta in dettaglio, con la quale si ricavano i metodi di Runge-Kutta. Ricordiamo che i metodi one-step espliciti hanno la forma generale y k +1 = y k + hF (xk , y k , h ) dove F indica una opportuna funzione che definisce il metodo.

Dipartimenti di Matematica

260

M. Garetto Metodi Numerici

Scegliendo come funzione F una combinazione lineare di valori di f (x , y ) in s opportuni punti si ottengono i metodi di Runge-Kutta di ordine s. Il valore di s anche uguale al numero di valutazioni di f ( x , y ) ad ogni passo. Il metodo di Runge-Kutta di ordine uno di fatto il metodo di Eulero che abbiamo gi illustrato.

5.6

Metodi di Runge-Kutta di ordine due

I metodi di Runge-Kutta di ordine due sono pi di uno; fra essi i pi usati sono il metodo di Heun e il metodo di Eulero modificato, detto anche metodo del poligono migliorato. Il metodo di Heun definito dalle seguenti formule 1 y k +1 = y k + (k1 + k 2 ) k = 0 ,1,...., n 1 2 k1 = hf (xk , y k )
k 2 = hf (xk + h , y k + k1 ) Il metodo di Eulero modificato, definito dalle formule y k +1 = y k + k 2 k = 0,1,...., n 1 k1 = hf (xk , y k ) 1 1 k 2 = hf x k + h , y k + k1 2 2 I metodi di Heun e di Eulero modificato sono del secondo ordine e richiedono la valutazione della funzione f ( x , y ) in due punti; poich lerrore di troncamento globale dellordine di h2, se il passo 1 viene dimezzato, lerrore si riduce di un fattore . 4
Esempio 18 Risolvere il problema di Cauchy

(5.6)

(5.7)

y' = xy y (0) = 1 nellintervallo [0,2] con il metodi di Heun, utilizzando il passo h = 0.2 . Applichiamo il metodo di Heun con le formule (5.6) x0 = 0 y0 = 1 h = 0 .2

k 2 = hf ( x1 , y0 + k1 ) = hf (0.2 ,1) = 0.2 ( 0.2 1) = 0.04 1 (0 0.04) = 0.9800 2 k1 = hf (x1 , y1 ) = hf (0.2 ,0.98) = 0.2 ( 0.2 0.98) = 0.0392 x1 = 0.2 y1 = 1 +

k1 = hf ( x0 , y0 ) = hf (0,1) = 0.2 ( 0 1) = 0

k 2 = hf ( x2 , y1 + k1 ) = hf (0.4,0.9408) = 0.2 ( 0.4 0.9408) = 0.0753 1 ( 0.0392 0.0753) = 0.9227 2 k1 = hf (x2 , y2 ) = hf (0.4 ,0.9227 ) = 0.2 ( 0.4 0.9227 ) = 0.07382 x2 = 0.4 y2 = 0.98 + x3 = 0.6 ..........
Universit di Torino

k 2 = hf ( x3 , y2 + k1 ) = hf (0.6 ,0.8489) = 0.2 ( 0.6 0.8489 ) = 0.1019 y3 = 0.9227 + 1 ( 0.0738 0.1019) = 0.8348 2

Capitolo 5 Equazioni differenziali ordinarie

261

Iterando si ottengono i risultati della tabella seguente. La soluzione esatta y = e k 0 1 2 3 4 5 6 7 8 9 10

x2 2

xk 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0

yk 1.0000 0.9800 0.9227 0.8348 0.7260 0.6070 0.4880 0.3775 0.2812 0.2018 0.1396

y (xk ) 1.0000 0.9802 0.9231 0.8353 0.7261 0.6065 0.4868 0.3753 0.2780 0.1979 0.1353

EG 0.0000 0.0002 0.0004 0.0005 0.0001 0.0005 0.0012 0.0022 0.0032 0.0039 0.0043

Figura 18

Confrontando questo grafico con quello dellesempio 12 si osserva un buon miglioramento del risultato5: il metodo di Heun del secondo ordine mentre il metodo di Eulero del primo ordine. Esempio 19 Risolvere il problema di Cauchy

y' = xy y ( 0) = 1 nellintervallo [0,2] con il metodo di Heun e con il metodo di Eulero modificato, con passo h = 0.4 . Confrontare i risultati con quelli ottenuti con il metodo di Eulero con lo stesso passo. Applichiamo il metodo di Heun con le formule (5.6) x0 = 0 y0 = 1 h = 0 .4
k 2 = hf ( x1 , y0 + k1 ) = hf (0.4 ,1) = 0.4 (0.4 1) = 0.16 1 (0.16) = 1.0800 2 k1 = hf ( x1 , y1 ) = hf (0.4 ,1.08) = 0.4 (0.4 1.08) = 0.1728 x1 = 0.4 y1 = 1 + k1 = hf ( x0 , y0 ) = hf (0,1) = 0.4 (0 1) = 0

k 2 = hf ( x2 , y1 + k1 ) = hf (0.8,1.2528) = 0.4 (0.8 1.2528) = 0.4009 x2 = 0.8 ....................


5

y2 = 1.08 +

1 (0.1728 + 0.4009) = 1.3669 2

Il confronto si pu fare anche sullerrore globale.

Dipartimento di Matematica

262

M. Garetto Metodi Numerici

Iterando si ottengono i risultati della tabella seguente. La soluzione esatta y . I valori della soluzione esatta nei nodi sono riportati nella quarta colonna della tabella; nellultima colonna riportato lerrore globale Metodo di Heun yk 1.0000 1.0800 1.3669 2.0186 3.4590 6.8350 y (xk ) 1.0000 1.0833 1.3771 2.0544 3.5966 7.3891
x2 =e 2

k 0 1 2 3 4 5

xk 0.0 0.4 0.8 1.2 1.6 2.0

EG 0.0000 0.0033 0.0102 0.0358 0.1376 0.5541

Applichiamo ora il metodo di Eulero modificato con le formule (5.7) x0 = 0 y0 = 1 h = 0.4


k1 = hf (x0 , y0 ) = hf (0,1) = 0.4 (0 1) = 0 1 1 k 2 = hf x0 + h , y0 + k1 = 0.4 f (0.2,1) = 0.4 (0.2 1) = 0.08 2 2 x1 = 0.4 y1 = 1 + 0.08 = 1.0800 k1 = hf (x1 , y1 ) = 0.4 f (0.4 ,1.08) = 0.4 (0.4 1.08) = 0.1728 1 1 k 2 = hf x1 + , y1 + k1 = 0.4 f (0.6 ,1.1664) = 0.4 (0.6 1.1664 ) = 0.2799 2 2 y2 = 1.08 + 0.2799 = 1.3599 .................... Iterando si ottengono i risultati della tabella seguente. k 0 1 2 3 4 5 xk 0.0 0.4 0.8 1.2 1.6 2.0 Metodo di Eulero modificato yk y (xk ) 1.0000 1.0000 1.0800 1.0833 1.3599 1.3771 1.9909 2.0544 3.3735 3.5966 6.5796 7.3891 EG 0.0000 0.0033 0.0172 0.0635 0.2231 0.8095

Applichiamo infine il metodo di Eulero y k +1 = y k + hf (xk , y k ) x0 = 0 y0 = 1 h = 0.4

y1 = y 0 + hf (x0 , y 0 ) = 1 + 0.4(0 1) = 1 x1 = 0.4 y1 = 1

y3 = y 2 + hf ( x2 , y 2 ) = 1.16 + 0.4(0.8 1.16 ) = 1.5312 ........... Iterando si ottengono i risultati riportati nella terza colonna della tabella seguente.

y 2 = y1 + hf (x1 , y1 ) = 1 + 0.4(0.4 1) = 1.16

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

263

k 0 1 2 3 4 5

xk 0.0 0.4 0.8 1.2 1.6 2.0

Metodo di Eulero yk y (xk ) 1.0000 1.0000 1.0000 1.0833 1.1600 1.3771 1.5312 2.0544 2.2662 3.5966 3.7165 7.3891

EG 0.0000 0.0833 0.2171 0.5232 1.3304 3.6726

Le fig. 19 e 20 illustrano il confronto fra il metodo di Eulero e i metodi di Heun e del poligono migliorato; questi due metodi del secondo ordine sono sostanzialmente equivalenti, il metodo di Eulero del primo ordine fornisce risultati meno accurati.

Figura 19

Figura 20

Esempio 20 Risolvere il problema di Cauchy

y' = y x 2 + 1 1 y (0 ) = 2 nellintervallo [0,2] con il metodo di Heun e con il metodo del poligono migliorato, utilizzando il passo h = 0.2 . Applichiamo il metodo di Heun x0 = 0 y 0 = 0 .5

k1 = hf (x0 , y0 ) = 0.2 (0.5 + 1) = 0.3

k 2 = hf ( x1 , y0 + k1 ) = 0.2 0.5 + 0.3 0.2 2 + 1 = 0.352 x1 = 0.2 y1 = 1 1 + (0.3 + 0.352) = 0.8260 2 2

................. Iterando si ottengono i risultati della tabella seguente. La soluzione esatta 1 y = (x + 1)2 e x . 2 Nellultima colonna della tabella riportato lerrore globale

Dipartimento di Matematica

264

M. Garetto Metodi Numerici

k 0 1 2 3 4 5 6 7 8 9 10

xk 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0

Metodo di Heun yk 0.5000 0.8260 1.2069 1.6372 2.1102 2.6177 3.1496 3.6937 4.2351 4.7556 5.2331

y (xk ) 0.5000 0.8293 1.2141 1.6489 2.1272 2.6409 3.1799 3.7324 4.2835 4.8152 5.3053

EG 0.0000 0.0033 0.0072 0.0117 0.0170 0.0232 0.0303 0.0387 0.0484 0.0596 0.0724

Applichiamo ora il metodo del poligono migliorato x0 = 0 y 0 = 0 .5

k1 = hf (x0 , y0 ) = 0.2 (0.5 + 1) = 0.3

1 1 k 2 = hf x0 + h , y0 + k1 = 0.2 0.65 0.12 + 1 = 0.328 2 2 1 x1 = 0.2 y1 = + 0.328 = 0.8280 2 ................. Iterando si ottengono i risultati della tabella seguente. xk 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 Metodo del poligono migliorato yk y (xk ) 0.5000 0.5000 0.8280 0.8293 1.2114 1.2141 1.6447 1.6489 2.1213 2.1272 2.6332 2.6409 3.1705 3.1799 3.7212 3.7324 4.2706 4.2835 4.8010 4.8152 5.2904 5.3055

k 0 1 2 3 4 5 6 7 8 9 10

EG 0.0000 0.0013 0.0027 0.0042 0.0059 0.0077 0.0094 0.0112 0.0129 0.0142 0.0151

Figura 21

Figura 22

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

265

Esempio 21 Risolvere il problema di Cauchy

y' = 2 x 3 + 12 x 2 20 x + 8.5 y( 0 ) = 1 nellintervallo [0,4] con il metodo di Heun e con il metodo del poligono migliorato, utilizzando il passo h = 0.5 . La soluzione esatta y = 0.5 x 4 + 4 x 3 10 x 2 + 8.5 x + 1 Applichiamo il metodo di Heun x0 = 0 y0 = 1 k1 = hf (x0 , y0 ) = 0.5 8.5 = 4.25 k 2 = hf (x1 , y0 + k1 ) = 0.5 2 0.53 + 12 0.52 20 0.5 + 8.5 = 0.625 x1 = 0.5 y1 = 1 + 1 (4.25 + 0.625) = 3.4375 2

................. Iterando si ottengono i risultati della tabella seguente. k 0 1 2 3 4 5 6 7 8 xk 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 yk 1.0000 3.4375 3.3750 2.6875 2.5000 3.1875 4.3750 4.9375 3.0000 y (xk ) 1.0000 3.2188 3.0000 2.2188 2.0000 2.7188 4.0000 4.7190 3.0000 EG 0.0000 0.2188 0.3750 0.4688 0.5000 0.4687 0.3750 0.2185 0.0000

Applichiamo il metodo del poligono migliorato x0 = 0 y0 = 1 k1 = hf (x0 , y0 ) = 0.5 8.5 = 4.25 1 1 k 2 = hf x0 + h , y0 + k1 = 0.5 2 0.253 + 12 0.252 20 0.25 + 8.5 = 2.1094 2 2 x1 = 0.5 y1 = 1 + 2.109375 = 3.1094 ................. Iterando si ottengono i risultati della tabella seguente.

k 0 1 2 3 4 5 6 7 8

xk 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0

Metodo del poligono migliorato yk y (xk ) 1.0000 1.0000 3.1094 3.2188 2.8125 3.0000 1.9844 2.2188 1.7500 2.0000 2.4844 2.7188 3.8125 4.0000 4.6094 4.7190 3.0000 3.0000

EG 0.0000 0.1094 0.1875 0.2344 0.2500 0.2344 0.1875 0.1096 0.0000

Dipartimento di Matematica

266

M. Garetto Metodi Numerici

Nella fig. 23 si illustra il confronto tra la soluzione esatta, e le soluzioni approssimate ottenute con i metodi di Eulero (esempio 16), di Heun e del poligono migliorato.

Figura 23

Esempio 22 Risolvere il problema di Cauchy ' x y y = 2 y ( 0) = 1 nellintervallo [0,3] con il metodo di Heun; confrontare le soluzioni approssimate ottenute con i seguenti valori del passo: h = 1, 0.5, 0.25, 0.125 . La tabella fornisce alcuni dei valori approssimati della soluzione nei punti dellintervallo [0,3] per i differenti valori del passo. Ad esempio per h = 0.25 si ha x0 = 0 y0 = 1

0 1 = 0.125 2 0.25 1 + 0.125 k 2 = hf (x1 , y0 + k1 ) = 0.25 = 0.0781 2 1 x1 = 0.25 y1 = 1 + ( 0.125 0.078125) = 0.8984 2 La soluzione esatta k1 = hf (x0 , y0 ) = 0.25 y = 3e

x 2

+ x 2.

xk 0 0.125 0.250 0.375 0.500 0.750 1.000 1.500 2.000 2.500 3.000

h =1 1.0000

h = 0.5 1.0000

yk

h = 0.25 1.0000
0.8984

0.8438 0.8750 1.1719 1.7324 0.8311 0.9305 1.1176 1.3731 1.6821

0.8381 0.8141 0.8222 0.9201 1.1068 1.3626 1.6723

h = 0.125 1.0000 0.9434 0.8977 0.8624 0.8368 0.8124 0.8202 0.9178 1.1044 1.3602 1.6701

y (xk ) 1.0000 0.9432 0.8975 0.8621 0.8364 0.8119 0.8196 0.9171 1.1036 1.3595 1.6694

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

267

Nella fig. 24 sono rappresentate le soluzioni approssimate per i valori del passo h = 1, 0.5, 0.125 ; la soluzione approssimata per h = 0.125 approssima la soluzione esatta con buona accuratezza (si osservi che lequazione differenziale ben condizionata).

Figura 24

5.7

Metodo di Runge-Kutta di ordine quattro

Il pi usato fra i metodi del tipo di Runge-Kutta il metodo classico di Runge-Kutta di ordine quattro. Il metodo di Runge-Kutta di ordine quattro definito dalle formule 1 y k +1 = y k + (k1 + 2k 2 + 2k 3 + k 4 ) k = 0,1,...., n 1 6 k1 = hf (xk , y k )
k h k 2 = hf x k + , y k + 1 2 2 k h k 3 = hf xk + , y k + 2 2 2 k 4 = hf (xk + h , y k + k 3 ) (5.8)

Lerrore globale di troncamento dellordine di h4, perci se il passo viene dimezzato, lerrore 1 . globale si riduce di un fattore 16
Esempio 23 Risolvere il problema di Cauchy

y' = xy y ( 0) = 1 nellintervallo [0,2] con il metodo di Kunge-Kutta del quarto ordine, utilizzando il passo h = 0.4 . Confrontare i risultati con quelli ottenuti con gli altri metodi con lo stesso passo (esempio 19). Applicando il metodo di Runge-Kutta si ottengono i risultati della tabella seguente. La soluzione esatta y
x2 =e 2

Dipartimento di Matematica

268

M. Garetto Metodi Numerici

k1 = hf (x0 , y0 ) = 0.4 f (0,1) = 0

x0 = 0

y0 = 1

h = 0.4

h k k 2 = hf x0 + , y0 + 1 = 0.4 f (0.2,1) = 0.4 (0.2 1) = 0.08 2 2 h k 0.08 k3 = hf x0 + , y0 + 2 = 0.4 f 0.2,1 + = 0.4 (0.2 1.04 ) = 0.0832 2 2 2 k 4 = hf ( x0 + h , y0 + k3 ) = 0.4 f (0.4,1 + 0.0832) = 0.4 (0.4 1.0832) = 0.173312
x1 = 0.4 =1+ ....... Metodo di Kunge-Kutta xk yk 0.0 1.000000 0.4 1.083285 0.8 1.377101 1.2 2.054209 1.6 3.595038 2.0 7.378697 4 ordine y (xk ) 1.000000 1.083287 1.377128 2.054433 3.596640 7.389056 y1 = y0 + 1 (k1 + 2k2 + 2k3 + k4 ) = 6

1 (0 + 2 0.08 + 2 0.0832 + 0.1733) = 1.083285 6

k 0 1 2 3 4 5

EG 0.000000 0.000002 0.000027 0.000224 0.001602 0.010359

Figura 25

Esempio 24 Risolvere il problema di Cauchy

y' = y x 2 + 1 1 2 nellintervallo [0,2] con il metodo di Runge-Kutta del quarto ordine, utilizzando il passo h = 0.2 . y ( 0) = Applichiamo il metodo di Runge-Kutta 1 x0 = 0 y0 = 2 3 1 k1 = hf (x0 , y0 ) = 0.2 f 0, = 0.2 = 0.3 2 2

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

269

h k k 2 = hf x0 + , y0 + 1 = 0.2 (.65 0.01 + 1) = 0.328 2 2 h k k3 = hf x0 + , y0 + 2 = 0.2 (0.664 0.01 + 1) = 0.3308 2 2 k 4 = hf ( x0 + h , y0 + k3 ) = 0.2 (0.8308 0.04 + 1) = 0.35816 x1 = 0.2 = y1 = y0 + 1 (k1 + 2k2 + 2k3 + k4 ) = 6

1 1 + (0.3 + 2 0.328 + 2 0.3308 + 0.35816 ) = 0.829293 2 6 Iterando si ottengono i risultati della tabella seguente. La soluzione esatta 1 y = (x + 1)2 e x . 2 Nellultima colonna della tabella riportato lerrore globale k 0 1 2 3 4 5 6 7 8 9 10 xk 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 yk 0.500000 0.829293 1.214076 1.648922 2.127203 2.640823 3.179894 3.732340 4.283410 4.815086 5.305363 y (xk ) 0.500000 0.829299 1.214088 1.648941 2.127230 2.640859 3.179942 3.732400 4.283484 4.815176 5.305472 EG 0.000000 0.000006 0.000012 0.000019 0.000027 0.000036 0.000048 0.000060 0.000074 0.000090 0.000109

Figura 26

Il grafico mette in rilievo la buona accuratezza della soluzione.


Esempio 25 Risolvere il problema di Cauchy x y y' = 2 y (0) = 1 nellintervallo [0,3] con il metodo di Runge-Kutta del quarto ordine; confrontare le soluzioni approssimate ottenute con i valori del passo h = 1, 0.5, 0.25, 0.125 .
Dipartimento di Matematica

270

M. Garetto Metodi Numerici

La soluzione esatta y = 3e + x 2. La tabella fornisce alcuni dei valori approssimati della soluzione nei punti dellintervallo [0,3] per i differenti valori del passo. Un esempio dei calcoli effettuati per h = 0.25 il seguente x0 = 0 y0 = 1 k1 = hf (x0 , y0 ) = 0.25 f (0,1) = 0.125 h k 0.125 0.9375 k 2 = hf x0 + , y0 + 1 = 0.25 = 0.101563 2 2 2 h k 0.125 0.9492188 k3 = hf x0 + , y0 + 2 = 0.25 = 0.1030274 2 2 2 0.25 0.8969726 k 4 = hf ( x0 + h , y0 + k3 ) = 0.25 = 0.0808716 2 1 x1 = 0.25 y1 = y0 + (k1 + 2k 2 + 2k3 + k 4 ) = 6 1 = 1 + ( 0.125 2 0.1015625 2 0.1030274 0.0808716 ) = 0.8974914 6

x 2

xk 0.000 0.125 0.250 0.375 0.500 0.750 1.000 1.500 2.000 2.500 3.000

h =1 1.0000000

h = 0.5 1.0000000

yk

h = 0.25 1.0000000
0.8974915

0.8364258 0.8203125 1.1045125 1.6701860 0.8196285 0.9171423 1.1036826 1.3595575 1.6694308

0.8364037 0.8118696 0.8195940 0.9171021 1.1036408 1.3595168 1.6693927

h = 0.125 1.0000000 0.9432392 0.8974908 0.8620874 0.8364024 0.8118679 0.8195921 0.9170998 1.1036386 1.3595147 1.6693906

y (xk ) 1.0000000 0.9432392 0.8974907 0.8620874 0.8364023 0.8118678 0.8195920 0.9171996 1.1036383 1.3595144 1.6693905

Nella fig. 27 sono riportate la soluzione esatta e la soluzione approssimata con h = 0.5

Figura 27

Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

271

Nella seguente tabella, realizzata utilizzando lultima riga della tabella precedente, confrontiamo lerrore globale nel punto xn = 3 per i valori del passo h = 1, 0.5, 0.25, 0.125 ; il valore esatto in xn = 3 y (3) = 1.6693905 . 1 . Si verifica che dimezzando il passo, lerrore globale si riduce di un fattore 16 h n

1 0.5 0.25 0.125

4 6 12 24

Approssimazione per y (3) 1.6701860 1.6694307 1.6693927 1.6693906

Errore globale in xn = 3 0.0007955 0.0000402 0.0000022 0.0000001

Un modo per confrontare fra loro i risultati ottenuti con i metodi fin qui esaminati pu essere descritto come segue. Poich il metodo di Runge-Kutta del quarto ordine richiede a ogni passo quattro valutazioni della funzione f (x , y ) , per poter affermare che questo metodo superiore al metodo di Eulero, che richiede una sola valutazione della funzione f ( x , y ) , occorre che i risultati ottenuti usando Runge-Kutta con passo h siano pi accurati dei risultati ottenuti con il metodo di h ; in modo analogo per poter affermare che il metodo di Runge-Kutta Eulero con passo 4 superiore al metodo di Heun, che richiede due valutazioni della funzione f ( x , y ) , bisogna che i risultati ottenuti usando Runge-Kutta con passo h siano pi accurati dei risultati ottenuti con il h metodo di Heun con passo . In questo modo tutti i metodi posti a confronto richiedono lo stesso 2 numero di valutazioni della funzione f (x , y ) . Il seguente esempio illustra questo procedimento di confronto fra i metodi.
Esempio 26 Risolvere il problema di Cauchy (esempio 24)

y' = y x 2 + 1 1 2 nellintervallo [0, 0.5] con il metodo di Eulero con passo h = 0.025 il metodo di Heun con passo h = 0.05 il metodo di Runge-Kutta del quarto ordine con passo h = 0.1 . Il confronto viene effettuato nei punti indicati nella prima colonna della tabella; per ciascun metodo occorrono 20 valutazioni della funzione per approssimare y (0.5) . Il metodo di Runge-Kutta chiaramente superiore. y ( 0) = xk 0.0 0.1 0.2 0.3 0.4 0.5 yk Heun h = 0.05 0.5000000 0.6573085 0.8290778 1.0147254 1.2136079 1.4250141 y (xk ) 0.5000000 0.6574145 0.8292986 1.0150706 1.2140877 1.4256394

Eulero h = 0.025 0.5000000 0.6554982 0.8253385 1.0089334 1.2056345 1.4147264

Runge-Kutta 4 h = 0 .1 0.5000000 0.6574144 0.8292983 1.0150701 1.2140869 1.4256384

Dipartimento di Matematica

272

M. Garetto Metodi Numerici

5.8

Metodi multistep

I metodi fin qui esaminati sono detti metodi one-step perch lapprossimazione nel punto xi +1 viene calcolata usando solo il valore calcolato in xi , ossia per calcolare y1 si usa solo y0 e in generale per calcolare yi +1 si usa solo yi . Tuttavia, se si sono gi calcolati pi valori approssimati, per esempio yi , yi 1 ,..., y1 , y0 , allora possibile usare non solo il valore yi per calcolare yi +1 , ma anche altri valori precedenti. Un metodo che usa valori approssimati gi calcolati in pi di un punto precedente per calcolare lapprossimazione nel punto successivo detto metodo multistep. Ovviamente un metodo di questo tipo non pu essere usato per calcolare i valori di partenza, che devono essere calcolati con metodi one-step, ad esempio il metodo di Runge-Kutta. Il modo pi semplice per ricavare metodi multistep consiste nello scrivere lequazione differenziale nella forma di equazione integrale; data lequazione differenziale y' = f (x , y ) integrando nellintervallo [xi , xi +1 ] si ottiene
xi +1 xi

y (x )dx = f (x , y(x ))dx


' xi xi +1 xi

xi +1

y (xi +1 ) = y (xi ) +

f (x , y(x ))dx

(5.9)

Poich non si pu calcolare lintegrale di f (x , y (x )) senza conoscere y ( x ) , che la soluzione del problema di Cauchy, si calcola invece lintegrale di un polinomio di interpolazione P(x ) , che interpola f (x , y (x )) costruito su alcuni dei nodi x0 , x1 ,..., xi , xi +1 . Si ottiene cos
y (xi +1 ) yi +
xi +1 xi

P(x )dx

Se lestremo superiore di integrazione xi +1 non un nodo della formula di interpolazione, allora il metodo che si otterr sar di tipo esplicito, in caso contrario di tipo implicito. I metodi multistep pi usati sono i metodi di Adams-Bashforth, di tipo esplicito, e quelli di AdamsMoulton, di tipo implicito. Per ricavare i metodi di Adams-Bashforth si parte dalla formula (5.10), si approssima la funzione f (x , y ( x )) con un polinomio di grado k1 costruito sui k nodi xi , xi 1 ,..., xi k +1 e si integra questo polinomio; il metodo che si ottiene il metodo esplicito di Adams-Bashforth a k passi ed ha la forma
yi +1 = yi + h

j f (xi +1 j , yi +1 j )
k j =1

(5.10)

dove j sono delle costanti che dipendono dal numero totale dei nodi e dal nodo a cui si riferiscono. Il metodo di ordine k. Per innescare questa formula occorrono k1 valori di partenza, che possono essere ottenuti con un metodo one-step di ordine opportuno. Elenchiamo i metodi di Adams-Bashforth di uso pi comune6.

Il metodo di Adams-Bashforth di ordine uno (k=1) coincide con il metodo di Eulero (one-step esplicito) Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

273

Metodo di Adams-Bashforth two-step (ordine due) h yi +1 = yi + [3 f (xi , yi ) f (xi 1 , yi 1 )] 2

i = 1,2 ,..., n 1

(5.11)

Metodo di Adams-Bashforth three-step (ordine tre) h yi +1 = yi + [23 f (xi , yi ) 16 f (xi 1 , yi 1 ) + 5 f (xi 2 , yi 2 )] 12

i = 2,..., n 1

(5.12)

Metodo di Adams-Bashforth four-step (ordine quattro) h yi +1 = yi + [55 f (xi , yi ) 59 f (xi 1 , yi 1 ) + 37 f (xi 2 , yi 2 ) 9 f (xi 3 , yi 3 )] 24 i = 3,..., n 1

(5.13)

Come gi detto, per innescare una formula di Adams-Bashforth a k passi occorrono k1 valori di partenza, da determinarsi con un altro metodo di tipo one-step. Si consideri ad esempio il metodo a due passi, di ordine due; per innescare questo metodo occorrono y0 , dato dalla condizione iniziale, e y1 ; per calcolare y1 non possiamo usare la formula di Eulero, che ha solo ordine uno, bisogna invece scegliere un metodo di ordine almeno due; analogamente, se si vuole usare il metodo a quattro passi, per calcolare i tre valori di partenza necessari occorre usare un metodo di ordine almeno quattro, ad esempio il metodo di Runge-Kutta. Per ottenere i metodi impliciti di Adams-Moulton si segue lo stesso procedimento descritto per i metodi di Adams-Bashforth, aggiungendo il nodo xi +1 ai precedenti nodi di interpolazione, costruendo un polinomio di interpolazione di grado k e integrando questo polinomio; il metodo che si ottiene il metodo implicito di Adams-Moulton a k passi ed ha la forma

yi +1 = yi + h

*j f (xi +1 j , yi +1 j )
k j =0

(5.14)

dove *j sono delle costanti che dipendono dal numero totale dei nodi e dal nodo a cui si riferiscono. Il metodo di ordine k+1. Elenchiamo i metodi impliciti di Adams-Moulton di uso pi comune.
Metodo di Adams-Moulton two-step (ordine tre) h yi +1 = yi + [5 f (xi +1 , yi +1 ) + 8 f ( xi , yi ) f (xi 1 , yi 1 )] 12 i = 1,2 ,..., n 1 Metodo di Adams- Moulton three-step (ordine quattro) h yi +1 = yi + [9 f (xi +1 , yi +1 ) + 19 f (xi , yi ) 5 f (xi 1 , yi 1 ) + f (xi 2 , yi 2 )] 24 i = 2,..., n 1 Metodo di Adams-Bashforth four-step (ordine cinque) h [251 f (xi +1 , yi +1 ) + 646 f (xi , yi ) 264 f (xi 1 , yi 1 ) + yi +1 = yi + 720 + 106 f (xi 2 , yi 2 ) 19 f (xi 3 , yi 3 ) i = 3,..., n 1

(5.15)

(5.16)

(5.17)

Le formule di Adams-Moulton sono di tipo implicito: in esse yi +1 compare anche nel secondo membro; si deve perci calcolare prima unapprossimazione di yi +1 con un altro metodo,

Dipartimento di Matematica

274

M. Garetto Metodi Numerici

ottenendo un predictor; questo valore viene poi utilizzato nel secondo membro della formula di Adams-Moulton, ottenendo cos un nuovo valore di yi +1 , detto corrector. La combinazione di un metodo esplicito con uno implicito viene definito metodo predictorcorrector. Spesso le formule di Adams-Bashforth di tipo esplicito vengono usate come predictor e quelle di Adams-Moulton di tipo implicito come corrector: il metodo esplicito calcola una previsione per yi +1 e il metodo implicito corregge questa previsione. Una coppia di formule spesso usate come metodo predictor-corrector la seguente, in cui gli errori sono entrambi O h 4 Predictor: Metodo di Adams-Bashforth four-step (ordine quattro) h yi +1 = yi + [55 f (xi , yi ) 59 f (xi 1 , yi 1 ) + 37 f (xi 2 , yi 2 ) 9 f (xi 3 , yi 3 )] 24 i = 3,..., n 1 Corrector: Metodo di Adams- Moulton three-step (ordine quattro) h yi +1 = yi + [9 f ( xi +1 , yi +1 ) + 19 f (xi , yi ) 5 f (xi 1 , yi 1 ) + f (xi 2 , yi 2 )] 24 i = 2,..., n 1 Il procedimento di calcolo il seguente: 1 calcolo dei valori di partenza y1 , y2 , y3 per la formula di Adams-Bashforth four-step: si usa il metodo di Runge-Kutta di ordine quattro ( y0 dato dalla condizione iniziale); 2 calcolo di y4 con la formula di Adams-Bashforth four-step (predictor); 3 calcolo di y4 con la formula di Adams-Moulton three-step (corrector): questo valore un miglioramento di quello ottenuto al punto precedente; 4 la tecnica predictorcorrector viene ripetuta per calcolare y5 e i successivi valori.

( )

Esempio 27 Risolvere il problema di Cauchy

y' = y x 2 + 1 1 2 nellintervallo [0, 2] con il metodo predictor-corrector di Adams-Bashforth- Moulton del quarto ordine con passo h=0.2. Applicando il metodo predictor-corrector si ottengono i risultati della tabella seguente. La soluzione esatta 1 y = ( x + 1)2 e x . 2 y ( 0) = k 0 1 2 3 4 5 6 7 8 9 10 xk 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 yk 0.5000000 0.8292933 1.2140762 1.6489220 2.1272056 2.6408286 3.1799026 3.7323505 4.2834208 4.8150964 5.3053707 y (xk ) 0.5000000 0.8292986 1.2140877 1.6489406 2.1272295 2.6408591 3.1799415 3.7324000 4.2834838 4.8151763 5.3054720 EG 0 0.0000053 0.0000114 0.0000188 0.0000239 0.0000305 0.0000389 0.0000495 0.0000630 0.0000799 0.0001013
Universit di Torino

Capitolo 5 Equazioni differenziali ordinarie

275

Figura 28

Esempio 28 Risolvere il problema di Cauchy

y y x x y (1) = 1 nellintervallo [1, 2] con il metodo predictor-corrector di Adams-Bashforth- Moulton del quarto ordine con passo h=0.1. Applicando il metodo predictor-corrector si ottengono i risultati della tabella seguente. La soluzione esatta x y= 1 + ln x xk yk y (xk ) EG k 0 1.0 1.0000000 1.0000000 0 1 1.1 1.0042815 1.0042817 0.0000002 2 1.2 1.0149520 1.0149523 0.0000003 3 1.3 1.0298133 1.0298137 0.0000004 4 1.4 1.0475227 1.0475339 0.0000112 5 1.5 1.0672462 1.0672624 0.0000161 6 1.6 1.0884141 1.0884327 0.0000186 7 1.7 1.1106352 1.1106551 0.0000198 8 1.8 1.1336331 1.1336536 0.0000205 9 1.9 1.1572076 1.1572284 0.0000208 10 2.0 1.1812112 1.1812322 0.0000210 y' =

Figura 29

Dipartimento di Matematica

276

M. Garetto Metodi Numerici

Esempio 29 Risolvere il problema di Cauchy

y' = cos(2 x ) + sin(3 x )

y ( 0) = 1 nellintervallo [0, 3] con il metodo predictor-corrector di Adams-Bashforth- Moulton del quarto ordine con passo h=0.2. Nella tabella seguente sono riportati parte dei risultati ottenuti applicando il metodo predictorcorrector di Adams-Bashforth- Moulton. La soluzione esatta 1 1 4 y = sin(2 x ) cos(3 x ) + 2 3 3 xk yk y (xk ) EG k 0 0.0 1.0000000 1.0000000 0.0 1 0.2 1.2529350 1.2529306 0.0000044 2 0.4 1.5712383 1.5712255 0.0000129 3 0.6 1.8751097 1.8750869 0.0000228 4 0.8 2.0796618 2.0789180 0.0007437 5 1.0 2.1192575 2.1179796 0.0012779 10 2.0 0.6339234 0.6348753 0.0009519 15 3.0 1.4978763 1.4973357 1.4973357 20 4.0 1.5465250 1.5467278 0.0002028 25 5.0 1.3149238 1.3145521 0.0003717 30 6.0 0.8444418 0.8449413 0.0004996

Figura 30

Universit di Torino

Bibliografia

277

Bibliografia
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Atkinson K., Elementary Numerical Analysis, John Wiley & Sons, 1985 Borse G. J., Numerical Methods with MATLAB, Pws Publishing Comp., 1997 Burden R. L., Faires J. D., Numerical Analysis, 8th ed., Brooks/Cole Publishing Company, 2005 Chapra S. C., Metodi numerici per lIngegneria, Teoria ed esercizi, McGraw-Hill, 1988 Endn L., Wittmeyer-Koch L. Numerical Analysis, Academic Press, 1990. Epperson J. F., Introduzione allanalisi numerica. Teoria, metodi, algoritmi, McGraw-Hill, 2003 Lindfield G., Penny J., Numerical Methods using MATLAB, 2nd ed., Prentice-Hall, 2000 Mathews J. H., Numerical Methods for Mathematics, Science, and Engineering, 2nd ed., Prentice-Hall,1992 Mathews J. H., Fink K. D., Numerical Methods Using Matlab, 4th ed., Prentice-Hall, 2004 Monegato G., Fondamenti di Calcolo Numerico, Levrotto & Bella, 1990 Plybon B. F., An Introduction to Applied Numerical Analysis, Pws-Kent Publishing Comp., 2001 Quarteroni A., Elementi di Calcolo Numerico, Progetto Leonardo Bologna, 1997 Quarteroni A., Saleri F., Introduzione al Calcolo Scientifico. Esercizi e problemi risolti con MATLAB, 2a ed., Springer, 2004 Vandergraft J. S., Introduction to Numerical Computations, Academic Press, 1983

Dipartimento di Matematica

278

M. Garetto Metodi Numerici

Universit di Torino

Formulario

F-1

Formulario
Errore assoluto Errore relativo
EA = x x

ER =

xx x ,

x0

ALGEBRA LINEARE Norma infinito di un vettore

x = max xi 1 i n
x1=
x2=

Norma uno di un vettore

xi
i =1

Norma euclidea (lunghezza del vettore)

xi2
i =1

Norma infinito di una matrice

A = max aij 1 i n j =1
A 1 = max
1 j n

Norma uno di una matrice Norma spettrale Numero di condizionamento di una matrice Matrice a diagonale strettamente dominante Metodo di Jacobi

aij
i =1

A 2 = A A

)
i = 1,2,,n.

k (A) = A 1 A

aii >

aij
j =1 j i

xi(k +1) =

bi

i 1 j =1

aij x (k )
j

j = i +1

aij x (jk )
, i = 1,2,..., n k = 0 ,1,2,...

aii
i 1 j =1

Metodo di Gauss-Seidel

xi(k +1) =

bi

aij x (k +1)
j

j = i +1

aij x (jk )
, i = 1,2 ,..., n k = 0 ,1,2 ,...

aii

Metodo delle potenze v 0 = (1,1,...,1)T

u k = Av k 1 1 v k = c u k k ck R : v k = 1

k=1,2,...

Dipartimento di Matematica

F-2

M. Garetto Metodi Numerici

INTERPOLAZIONE Formula di interpolazione di Lagrange


Pn ( x) =

Lk (x ) f (x k ) =

n (x ) = (x x0 )(x x1 )....(x xn ) (x ) ( n +1) (c ) E n (x ) = f (x ) Pn (x ) = n f (n + 1)! n (x ) E n (x ) = f (x ) Pn (x ) M (n + 1)! n +1 Interpolazione lineare y1 y 0 ( x x0 ) P 1 ( x) = y0 + x1 x0


E1 h2 M2 8

k =0

(x xkn)'n (xk ) f (xk )


k =0

(x )

M n +1 = max f ( n +1) (x ) x[ a ,b]

M2 =
f [xk 1 , xk ] =

max f ' ' ( x) x0 x x1

h = x1 x0

f [xk ] f [xk 1 ] k = 1,..., n xk x k 1 f [x k 1 , x k ] f [x k 2 , x k 1 ] Secondo ordine f [xk 2 , xk 1 , x k ] = k = 2,..., n xk xk 2 f [x k 2 , xk 1 , xk ] f [xk 3 , xk 2 , xk 1 ] k = 3,..., n f [xk 3 , x k 2 , xk 1 , xk ] = Terzo ordine xk xk 3 f [x1 ,..., xn ] f [x0 ,..., xn 1 ] f [x0 ,..., x n ] = Ordine n x n x0 Polinomio di Newton

Differenze divise Primo ordine

Pn (x ) = f [x0 ] + f [x0 , x1 ](x x0 ) + f [x0 , x1 , x2 ](x x0 )(x x1 ) + .... + + f [x0 , x1 ,..., xn ](x x0 )(x x1 )...(x xn 1 )

Nodi di Chebyshev in [1,1] (2k + 1) k = 0,1,..., n 1 xk = cos 2n 1 En (x ) = f ( x ) Pn ( x ) n M n +1 M n +1 = max f ( n +1) (x ) x[1,1] 2 (n + 1)! Nodi di Chebyshev in [a,b] ba a+b xk = tk + , k = 0 ,1,..., n , ( tk = nodi di Chebyshev in [1,1]) 2 2

(b a )n +1 M M n +1 = max f ( n +1) (x ) En ( x ) = f ( x ) Pn (x ) 2n +1 n +1 x[a ,b] (n + 1)! 2 Polinomio trigonometrico m 1 a a j cos jx + b j sin jx se n = 2m 1 0+ 2 j =1 T (x ) = m 1 a0 a a j cos jx + b j sin jx + m cos mx se n = 2m 2 + 2 j =1

( (

) )

Universit di Torino

Formulario

F-3

aj =

2 yi cos jxi , n i =0

n 1

j = 0 ,1,..., m

bj =

2 yi sin jxi , n i =0

n 1

j = 1,..., m 1

Retta di regressione

y = Ax + B

E=

k =1

( Axk + B yk )2

n n n 2 xk y k A xk + B x k = k =1 k =1 k =1 n n A x + nB = yk k k =1 k =1

oppure A=

x=
n

1 xk n k =1

y=

1 yk n k =1 B = y Ax

C=

k =1

(xk x )
n

1 xk x y k y C k =1

)(

)
E=

Parabola dei minimi quadrati

y = Ax 2 + Bx + C

k =1

( Axk2 + Bxk + C yk )2

n n n n 4 3 2 2 xk yk + C xk = A xk + B xk k =1 k =1 k =1 k =1 n n n n 3 2 A x B x C x xk yk + + = k k k k =1 k =1 k =1 k =1 n n n A x 2 + B x + nC = yk k k = 1 = 1 = 1 k k k Linearizzazione

Funzione y = f (x )
y = C xA

Forma linearizzata Y = AX + B ln y = A ln x + ln C
ln y = A x + ln C
y = A ln x + B

Cambiamenti di variabili e costanti


X = ln x C =e X =x
B

Y = ln y Y = ln y
Y=y

y = C e

Ax

y = A ln x + B

C =e X = ln x
B

A +B x 1 y= Ax + B y=
y= L 1 + Ce
Ax

1 y= A +B x 1 = Ax + B y
L ln = Ax + ln C y 1

X=

1 x

Y=y Y=
1 y

X =x

X =x C = eB

L Y = ln y 1 L = costante assegnata X = e x Y= 1 y

y=

1 B + Ae
x

1 = Ae x + B y

Dipartimento di Matematica

F-4

M. Garetto Metodi Numerici

FORMULE DI QUADRATURA Formula dei trapezi


b

f ( x)dx = 2 [ f ( x0 ) + f ( x1)] + R1
h
a

R1 = R1

h 3 '' f (c ) 12

h=ba M 2 = max f '' ( x)


a x b

h3 M2 12 Formula di Simpson
b

f ( x)dx = 3 [ f (x0 ) + 4 f (x1 ) + f (x2 )] + R2


h
a

R2 = R2

h 5 ( 4) f (c ) 90

h=

ba 2

h5 M4 90
3 8

M 4 = max f ( 4) ( x)
a x b

Formula di Simpson
b

3h f ( x)dx = 8 [ f (x0 ) + 3 f (x1 ) + 3 f (x2 ) + f (x3 )] + R3


a

R3 = R3

3h5 ( 4) f (c ) 80

h=

ba 3
a x b

3h5 M4 80 Formula del punto medio


b

M 4 = max f ( 4) ( x)

f ( x)dx = 2hf (x0 ) + R0


a

R0 =

h3 '' f (c ) 3

x0 = a + h
a x b

h=

ba 2

R0

h3 M2 3

M 2 = max f '' ( x)

Formula dei trapezi composta

x k = a + kh

k = 0 ,1,..., m

h=

ba m

f ( x)dx

h [ f ( x0 ) + f ( xm ) + 2( f ( x1 ) + f ( x2 ) + ... + f ( xm 1 ) )] 2

Rm =

(b a )3

f ' ' (c ) = 2 12m

(b a ) h 2
12

f ' ' (c )

Universit di Torino

Formulario

F-5

12m Formula di Simpson composta xk = a + kh


b

Rm

(b a )3 M
2

M 2 = max f ' ' ( x)


a xb

k = 0,1,...,2m h

h=

ba 2m

f ( x )dx 3 [ f ( x0 ) + f ( x2m ) + 4( f ( x1 ) + f ( x3 ) + ... + f ( x2m 1 )) +


a

R2m = R2 m

(b a )5

f (4) (c) = 4 2880m


4

(b a )5

+ 2( f ( x2 ) + f ( x4 ) + ... + f ( x2m 2 ) )]

(b a ) h 4
180

f (4) (c)

2880m Formula del punto medio composta xk = a + kh f f ( x)dx h


a b

M4

M 4 = max f (4) ( x)
a x b

k = 0 ,1,..., m

h=

ba m

x0 + x1 + x x x +x + f 1 2 + ... + f m 1 m 2 2 2 f ' ' (c ) M2 M 2 = max f ' ' ( x)

Rm = Rm

(b a )3
24m (b a )3
2 2

a xb 24m Formula di Gauss-Legendre dei due punti

f ( x)dx f

3 + 3

3 f 3

1 ( 4) f (c ) 135 1 R2 M4 M 4 = max f (4 ) ( x) 135 1 x 1 Formula di Gauss-Legendre dei tre punti R2 =

f ( x)dx

5 9

3 + 8 f (0 ) + 5 f 5 9 9

3 f 5

R3 =

1 f ( 6) (c ) 15750 1 R3 M6 15750

M 6 = max f (6 ) ( x)
1 x 1

Dipartimento di Matematica

F-6

M. Garetto Metodi Numerici

Formule di Gauss-Legendre - Nodi e coefficienti

f ( x)dx = 2

wk f ( xk ) + Rn
k =1

Rn =

(n !)4 f (2n ) (c ) (2n + 1)[(2n )!]3


2 n +1

n 1 2 3
1 3
3 5

xk 0
= 0.5773502692
= 0.7745966692
5 9 8 9

wk 1 1
= 0.5555555556 = 0.8888888889

0 4 5 0.8611363116 0.3399810436 0.9061798459 0.5384693101 0 0.9324695142 0.6612093865 0.2386191861 0.9491079123 0.7415311856 0.4058451514 0 0.9602898565 0.7966664774 0.5255324099 0.1834346425

0.3478548451 0.6521451549 0.2369268851 0.4786286705 0.5688888889 0.1713244924 0.3607615730 0.4679139346 0.1294849662 0.2797053915 0.3818300505 0.4179591837 0.1012285363 0.2223810345 0.3137066459 0.3626837834

Formula di Gauss-Legendre Intervallo [a,b]

f ( x)dx =

ba a+b ba wk f xk + + Rn 2 k =1 2 2

Rn =

(b a )2n +1(n !)4 f (2n ) (c ) (2n + 1)[(2n )!]3


(b a )5 f (4)(c )
4320

Formula di Gauss-Legendre dei due punti Intervallo [a,b]


R2 =

R2

(b a )5 M
4320

M 4 = max f (4 ) ( x)
a x b

Universit di Torino

Formulario

F-7

Formula di Gauss-Legendre dei tre punti Intervallo [a,b]


R3 =

2016000

(b a )7 f (6 ) (c ) (b a )7

M6 M 6 = max f (6 ) ( x) 2016000 a x b Valutazione indiretta del resto Metodo di Richardson I I E2 N = I I 2 N 2 Ns N 2 1 Formula dei trapezi composta I IN E2 N = I I 2 N 2 N 3 Formula del punto medio composta I IN E2 N = I I 2 N 2 N 3 Formula di Simpson composta I IN E2 N = I I 2 N 2 N 15 R3

EQUAZIONI DIFFERENZIALI

xk = a + kh

k = 0,1,..., n

h=

ba n

Metodo di Eulero (ordine uno) y k +1 = y k + hf (xk , y k ) Metodo di Heun (ordine due) 1 y k +1 = y k + (k1 + k 2 ) 2 k1 = hf (xk , y k )

k = 0,1,...., n 1
k = 0 ,1,...., n 1

k 2 = hf (xk + h , y k + k1 ) Metodo di Eulero modificato o metodo del poligono migliorato (ordine due) y k +1 = y k + k 2 k = 0,1,...., n 1 k1 = hf (xk , y k ) 1 1 k 2 = hf x k + h , y k + k1 2 2 Metodo di Runge-Kutta (ordine quattro) 1 y k +1 = y k + (k1 + 2k 2 + 2k 3 + k 4 ) 6 k1 = hf (xk , y k ) k h k 2 = hf x k + , y k + 1 2 2 k h k 3 = hf xk + , y k + 2 2 2 k 4 = hf (xk + h , y k + k 3 )

k = 0,1,...., n 1

Dipartimento di Matematica

F-8

M. Garetto Metodi Numerici

Metodo di Adams-Bashforth two-step (ordine due) h yi +1 = yi + [3 f (xi , yi ) f (xi 1 , yi 1 )] i = 1,2 ,..., n 1 2 Metodo di Adams-Bashforth three-step (ordine tre) h yi +1 = yi + [23 f (xi , yi ) 16 f (xi 1 , yi 1 ) + 5 f (xi 2 , yi 2 )] i = 2,..., n 1 12 Metodo di Adams-Bashforth four-step (ordine quattro) h yi +1 = yi + [55 f (xi , yi ) 59 f (xi 1 , yi 1 ) + 37 f (xi 2 , yi 2 ) 9 f (xi 3 , yi 3 )] 24 i = 3,..., n 1 Metodo di Adams-Moulton two-step (ordine tre) h yi +1 = yi + [5 f (xi +1 , yi +1 ) + 8 f (xi , yi ) f (xi 1 , yi 1 )] i = 1,2,..., n 1 12 Metodo di Adams- Moulton three-step (ordine quattro) h yi +1 = yi + [9 f (xi +1 , yi +1 ) + 19 f (xi , yi ) 5 f (xi 1 , yi 1 ) + f (xi 2 , yi 2 )] 24 i = 2,..., n 1 Metodo di Adams-Bashforth four-step (ordine cinque) h [251 f (xi +1 , yi +1 ) + 646 f (xi , yi ) 264 f (xi 1 , yi 1 ) + yi +1 = yi + 720 + 106 f (xi 2 , yi 2 ) 19 f (xi 3 , yi 3 ) i = 3,..., n 1

Universit di Torino

Potrebbero piacerti anche