APPUNTI DI
CALCOLO NUMERICO
C R E AT I V E C O M M O N S L I C E N S E
Indice
Struttura dellelaboratore
Richiami di analisi
Zeri di funzione
Interpolazione
Approssimazione
21
27
47
79
103
111
135
159
169
211
191
annamaria mazzia
2 Struttura dellelaboratore
2.1
Introduzione
I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente
lenti, inaccurati e intelligenti. Linsieme dei
due costituisce una forza incalcolabile.
Albert Einstein
10
2.2
annamaria mazzia
2.3
Gli albori
Babbage stesso scrisse che, mentre era seduto nella stanza della Societ Analitica, a
Cambridge, lavorando, mezzo addormentato, su una tavola dei logaritmi, arriv un altro
membro della societ che gli chiese cosa
stesse sognando. E lui rispose : Sto pensando che tutte queste tavole riferendosi
alle tavole dei logaritmi potrebbero essere
calcolate da una macchina!
Nel 1821, Babbage e il suo amico e
astronomo John Herschel stanno controllando delle tabelle calcolate a mano. Errore
dopo errore, Babbage esclama : Volesse
Dio che questi calcoli venissero eseguiti da
una macchina a vapore!
Osserviamo che linvenzione del telaio meccanico a schede, in cui il tipo di tessuto veniva
scelto (o programmato) in base a delle schede inserite nella macchina, un precursore
del progetto di Babbage.
Solo nel 2002 stato possibile costruire
una macchina che rispondesse al progetto di
Babbage.
Augusta Ada Lovelace (1815-1852) fu la figlia del famoso poeta Lord Byron. I genitori
si separono subito dopo la sua nascita e la
bambina crebbe insieme alla madre (Lord
Byron part dallInghilterra senza farvi pi ritorno e mor in Grecia quando Ada aveva otto
anni). Poich la madre era appassionata di
matematica e non voleva che la figlia seguisse la strada del padre, incoraggi la figlia in
questa direzione, impartendole unistruzione
legata alla matematica e alla musica. Nel
1835 spos William King, di dieci anni pi
anziano. Nel 1838 il marito ricevette il titolo
nobiliare di Conte di Lovelace. Ebbero tre figli.
La Lovelace mor di cancro a soli 37 anni.
arrivare intorno alla met del 1900 con il transistor (nel 1947) e il
circuito integrato (nel 1958). La nuova tecnologia elettromeccanica
ed elettronica si rivel decisiva per lo sviluppo dei computer, grazie
allo studio sistematico della teoria dei circuiti elettrici. Il pi noto
tra gli studiosi di questa teoria fu lamericano Claude Shannon. Il
suo contributo fondamentale fu quello di elaborare un metodo sistematico per progettare reti logiche capaci di eseguire le operazioni
logico-aritmetiche desiderate: detto pi semplicemente, egli mostr
come trasformare una assegnata operazione matematica in un circuito
elettrico costruito con interruttori e rel di commutazione (quelli usati
nelle telecomunicazioni).
Il lavoro di Shannon diede lavvio allo studio delle tecniche indispensabili per progettare in modo sistematico tutti i circuiti logici di
base necessari per realizzare i circuiti di calcolo dei futuri computer.
Da un punto di vista propriamente pratico invece, la nascita e lo
sviluppo dei calcolatori elettronici inizia nel 1938: il tedesco Konrad
Zuse costruisce Z1, una macchina costruita e pensata in maniera
completamente meccanica, tutta da migliorare, ma che pu essere
considerata come il primo calcolatore. Zuse passa subito al progetto
Z2, dove laritmetica meccanica sostituita da rel elettromeccanici.
Linizio della seconda guerra mondiale interrompe bruscamente il
lavoro di Zuse, che viene chiamato alle armi, ma riesce a persuadere
lIstituto di Ricerca Aerodinamica del Terzo Reich a continuare i suoi
studi. Completa quindi la costruzione dello Z2 e inizia a lavorare sullo
Z3, che il primo computer che Zuse costruisce per essere usato e
non per verificare le proprie idee. Lo Z3 ha non solo lunit aritmetica
ma anche la memoria realizzata con rel elettromeccanici, ben 2600.
Z3 fu la prima macchina di calcolo programmabile e venne usata
dallindustria aerea per risolvere sistemi di equazioni e altri sistemi
matematici ricavati da problemi di vibrazione degli apparecchi aerei
messi sotto stress.
Quando Zuse propose di passare alluso di un computer basato
su valvole elettroniche, la proposta fu respinta perch i tedeschi si
consideravano cos vicini alla vittoria della guerra che ulteriori sforzi
nella ricerca non apparivano necessari.
Il lavoro di Zuse, comunque, and avanti con la costruzione dello
Z4, di S1 e S2. E, soprattutto, fu completamente indipendente dai
lavori di John Eckert e John Mauchly negli Stati Uniti e di A. Turing
in Inghilterra. Eckert e Mauchly costruirono lENIAC (Electronic
Integrator and Computer). LENIAC fu costruito, con progetto di
Eckert, in piena seconda guerra mondiale, a partire dal 1943, presso il Ballistic Research Laboratory e fu completato nel febbraio del
1946. La macchina era pensata per compiere operazioni di carattere
generale, ma fu costruita con lo scopo preciso di compilare tabelle
per le traiettorie di bombe. LENIAC conteneva circa 18. 000 valvole
termoioniche e misurava circa 2 metri e mezzo di altezza per 24 metri
di lunghezza! La macchina era pi di mille volte veloce di tutti i
predecessori elettromeccanici costruiti fino a quel momento e poteva
eseguire 5000 addizioni al secondo. Le sue operazioni erano controlla-
11
Nel 1948, larticolo di Shannon, A Mathematical Theory of Communication, pubblicato sulla rivista The Bell System Technical
Journal getta le basi teoriche dellinformatica. Per prima volta viene usato il termine
bit come abbreviazione di binary digit, termine suggeritogli dal chimico e statistico J. W.
Tukey.
Konrad Zuse, ingegnere civile (1910-1995).
Figura 2.2:
http://www.computerhistory.org/
revolution/birth-of-the-computer/
4/78/316, copyright dellUniversit di
Pennsylvania.
Alan Turing (1912-1954), matematico inglese,
si interess di logica matematica e di teoria
della probabilit. Introdusse il concetto di una
macchina astratta, detta macchina di Turing,
e pose questioni riguardanti lintelligenza artificiale. Si occup di problematiche riguardanti
un macchina di calcolo digitale astratta, con
una memoria senza limiti.
John Presper Eckert (1919-1995) e John
William Mauchly (1907-1980) lavorarono a
quello che si pu considerare il vero primo
calcolatore elettronico.
12
annamaria mazzia
2.4
Gordon Moore nato nel 1929 in California. Di lui basti ricordare che ha stabilito
la legge di Moore, co-fondatore della Intel
Corporation e nel 2008 ha ricevuto la medaglia donore dellIEEE per il suo pioneristico contributo nei processi dei circuiti integrati, e per la leadership nello sviluppo della memoria del MOS (semiconduttore metalossido), del microprocessore e dellindustria
dei semiconduttori.
Federico Faggin nato nel 1940 a Vicenza
e si laureato in fisica allUniversit di Padova. Nel 1968 si trasferito prima a Palo Alto
presso la Fairchild Semiconductor e poi nel
1970 nella Intel. Oggi presidente e CEO
(Chief Executive Officer) della Foveon.
13
G
G
G
G
G
memoria di sola lettura (read-only memory): ROM. Viene scritta una volta per tutte dal produttore del sistema e contiene programmi e informazioni specifiche per il sistema; utilizzata per memorizzare parametri di configurazione del sistema, utili allavvio
del computer;
La CPU si suddivide in
14
annamaria mazzia
2.5
Un software una sequenza di istruzioni per eseguire le varie elaborazioni sui dati. Ci sono diverse categorie di software: software per il
sistema operativo, software di base, software di tipo applicativo.
Il sistema operativo costituito dallinsieme dei programmi essenziali per far funzionare la macchina. Esso utilizza piccoli programmi
gi presenti nel calcolatore per accedere ai singoli dispositivi fisici.
Questi programmi prendono il nome di Device Driver e sono memorizzati nel BIOS (Basic Input Output System). Il BIOS si trova
nella ROM del Computer.
Il sistema operativo, da una parte, permette di rendere fruibile
allutente le molteplici risorse del computer (gestione della memoria,
della stampante, della tastiera,...); dallaltra rende il computer uno
strumento amichevole e utile per affrontare le molteplici attivit che
gli si richiedono.
I compiti affidati al sistema operativo sono molteplici:
G
G
fornire gli strumenti per luso corretto delle risorse di tipo hardware e software del sistema
I primi computer come lo Z3 di Zuse o lENIAC non avevano sistema operativo. Per
inserire un programma (scritto in linguaggio
macchina) bisognava azionare un gruppo di
interruttori o modificare collegamenti tramite
opportuni cavi e spinotti. Ci rendiamo conto, quindi, di quanto fosse difficile usare il
computer per risolvere problemi mediante lesecuzione di un programma perch oltre alla
competenza specifica del problema da risolvere, si richiedeva una grande conoscenza
tecnica della macchina su cui si doveva lavorare. Il programma doveva contenere non
solo le istruzioni per la risoluzione del problema (per esempio un sistema di equazioni) ma
anche le istruzioni per gestire le unit di input
e output e delle altre periferiche collegate al
computer. Infine, poteva essere eseguito un
solo programma alla volta.
15
lo sviluppo di questo sistema operativo fu molto delicato e complesso e apr lo studio delle problematiche relative allingegneria
del software.
Nonostante questi progressi, la multiprogrammazione non permetteva molta interattivit tra utente e computer: di fatto lutente
consegnava i dati e il programma da eseguire (un pacco di schede perforate) alloperatore del computer e accedeva ai risultati dopo qualche
ora se non addirittura dopo giorni e giorni, risultati che riceveva in
forma cartacea ad esecuzione avvenuta (non cera ancora il monitor
per la visualizzazione su video dei risultati).
Alla fine del 1950 si introdusse il concetto di time-sharing che
permetteva lesecuzione di pi processi in modo da poter soddisfare
le esigenze di pi utenti contemporaneamente. Con il time-sharing
si assegna, infatti, un piccolo intervallo di tempo a ciascun processo
dando limpressione che ciascun processo vada avanti parallelamente
agli altri.
Gli sviluppi del sistema operativo ottenuti da allora fino ad oggi
si possono cos riassumere: il sistema operativo fornisce funzioni di
base per la gestione delle risorse, quali:
Figura 2.4:
Schede perforate a 80
e a 96 colonne.
Foto presa da
http://compvter.blogspot.it/2010/
09/punch-card-ibm-96-colonne.html
16
annamaria mazzia
G
G
G
G
G
Il file system
2.6
Immaginiamo un ristorante con un capocuoco, il suo aiutante, una cucina, i camerieri e i clienti. I clienti scelgono un piatto
dal menu, un cameriere prende lordine e lo
porta al capo-cuoco. Il capo-cuoco riceve
lordine e assegna al suo aiutante il compito
di preparare il piatto. Laiutante si dedicher alla preparazione del piatto, compito che
potr richiedere pi attivit. Il capo-cuoco, intanto, supervisiona la preparazione dei piatti
e gestisce le risorse (limitate) dei posti nel
ristorante.
estensione: la parte del nome del file che segue lultimo punto
. (dati.txt
prova.f
matrice.dat
welcome.html
foto.jpeg )
G
G
.
Lintera gestione dei file a carico di un componente del sistema
operativo detto file system.
2.7
17
18
annamaria mazzia
2.8
cd nome-directory
G
G
mkdir nomedirectory
Esempio: studente@george:~$ls
Un volta cliccato Invio, compare lelenco delle directories presenti nello spazio di
lavoro disponibile per lutente studente sulla macchina george, ad esempio (i numeri a
sinistra delle directories o files sono indicatori
dello spazio che occupano in memoria):
5
2
3
3
appunti/
calcolo/
fortran/
foto/
4 mail/
4 movies/
1 varie/
57 prova.pdf
~$cd foto
mv nomevecchio nomenuovo .
G
G
19
Riassumendo
G
G
G
G
G
G
G
20
2.9
annamaria mazzia
Editor di testo
3 Richiami di analisi
3.1
Lalfabeto greco
Quando si descrivono teoremi, si danno definizioni o, semplicemente, si discute di matematica, abbastanza usuale prendere in
prestito lettere dellalfabeto greco.
importante, quindi, saperle riconoscere e chiamarle in maniera
corretta (si veda tabella a lato).
A
B
E
Z
H
3.2
I
K
Alfa
Beta
Gamma
Delta
Epsilon
Zeta
Eta
Theta
Iota
Kappa
Lambda
Mu
G
G
b +
b2 4ac
,
2a
x2 =
b2 4ac
2a
Inoltre, si ha x1 + x2 =
3.3
b
c
e x1 x2 =
a
a
Identit trigonometriche
G
G
sin ( x )
1
, sec ( x ) secante( x ) =
,
cos ( x )
cos ( x )
Figura 3.1: I tre casi delle radici di un polinomio di grado 2: radici reali e distinte (in alto),
radici reali e coincidenti (al centro), nessuna
radice reale (in basso).
Nu
Xi
Omicron
Pi
Rho
Sigma
Tau
Upsilon
Fi
Chi
Psi
Omega
22
annamaria mazzia
cos ( ) = cos ( )
cos ( 2 ) = sin ( )
cos ( 2 + ) = sin ( )
cos ( ) = cos ( )
cos ( + ) = cos ( )
cos ( + ) = cos ( ) cos () sin ( ) sin ()
sin (2 ) = 2 sin ( ) cos ( )
sin2 ( ) + cos2 ( ) = 1
3.4
sin ( ) = sin ( )
sin ( 2 ) = cos ( )
sin ( 2 + ) = cos ( )
sin ( ) = sin ( )
sin ( + ) = sin ( )
sin ( + ) = sin ( ) cos () + cos ( ) sin ()
cos (2 ) = cos2 ( ) sin2 ( )
tan2 ( ) + 1 = sec2 ( )
1x = 1
a x +y = a x ay
aloga ( x) = x
a xy = a x /ay
loga ( xy) = loga ( x ) + loga (y)
loga ( x y ) = y loga ( x )
loga ( x )
logb ( x ) =
loga (b)
3.5
a xy = ( a x )y
a0 = 1
a x b x = ( ab) x
loga ( x/y) = loga ( x ) loga (y)
loga ( a x ) = x
b x = a x loga (b)
Derivate e integrali
d ( f + g)
d f
dg
=
+
dx
dx dx
d ( f /g)
f 0 g f g0
=
dx
g2
d (c f )
= cf0
dx
d ( f g)
= f g0 + f 0 g
dx
d fr
= r f r 1 f 0
dx
f g0 dx = f g
f 0 g dx
Diamo ora una tabella delle derivate e degli integrali delle funzioni
pi note (per gli integrali lasciamo fuori la costante di integrazione). Usiamo la simbologia arcsin( x ) arcoseno( x ), arccos( x )
arcocoseno( x ), cot( x ) cotangente ( x ), arctan( x ) arcotangente( x ),
arccot( x ) , arcocotangente( x ).
f
ln( x )
sin ( x )
tan ( x )
1
cos ( x )
arcsin ( x )
arctan ( x )
f
xr
ex
sin ( x )
tan ( x )
1
cos ( x )
1
cos2
3.6
(x)
f0
1
x
cos ( x )
1
(= sec2 ( x ))
2
cos ( x )
1
tan ( x )
cos ( x )
1
1 x2
1
1 + x2
R
fd x
x r +1
(r 6 = 1)
r+1
ex
cos ( x )
1
ln |
|
cos ( x )
ln |
1
+ tan ( x )|
cos ( x )
1
cos ( x )
arcsin ( x )
x arcsin ( x ) +
arctan ( x )
1
1 x2
x arctan ( x )
arcsin ( x )
f0
ex
ex
cos ( x )
sin ( x )
1
2
sin ( x )
cot ( x )
1
sin ( x )
cot ( x )
arccos ( x )
arccot( x )
f
x 1
ln | x |
ln | x |
cos ( x )
x ln | x | x
sin ( x )
cot ( x )
ln | sin ( x )|
1
sin ( x )
ln |
sin ( x )
cot ( x )
sin ( x )
1 x2
1
ln (1 + x2 )
2
1
sin ( x )
1 x2
1
1 + x2
R
fd x
tan ( x )
tan ( x )
cos ( x )
arccos ( x )
arccot( x )
1
1 + x2
1
+ cot ( x )|
sin ( x )
cot ( x )
1
sin ( x )
x arccos ( x ) 1 x2
1
xarccot( x ) ln (1 + x2 )
2
arctan ( x )
Teoremi utili
Richiamiamo, nel seguito, teoremi che trovano applicazione nel Calcolo Numerico. Per alcuni diamo anche la dimostrazione.
Utilizzeremo, inoltre, le seguenti notazioni per funzioni di una
sola variabile definite in un insieme X R. Linsieme delle funzioni
continue in X verr denotato con il simbolo C ( X ). Linsieme delle
funzioni continue in X, che hanno le prime n derivate pure esse
continue, sar indicato con C n ( X ).
23
24
annamaria mazzia
n
x.
Teorema 3.6.2 (Teorema del Valor Medio) Sia f C ([ a, b]) e diffef (b) f ( a)
renziabile in ] a, b[, allora esiste un punto ] a, b[ tale che f 0 ( ) =
ba
Teorema 3.6.3 (Teorema del Valore Intermedio) Sia f C ([ a, b]) e
sia K un valore compreso tra f ( a) e f (b). Allora esiste almeno un punto
] a, b[ tale che f ( ) = K.
Quindi, per funzioni continue, un valore compreso tra i due estremi
dellinsieme di definizione un valore assunto dalla funzione stessa
(in uno o pi punti).
Come conseguenza di questo teorema, se f ( a) f (b) < 0 (la funzione
assume segno opposto agli estremi dellintervallo [ a, b]) allora esiste
almeno un punto tale che f ( ) = 0, cio esiste almeno una radice
dellequazione f ( x ) = 0 nellintervallo [ a, b].
Teorema 3.6.4 (Esistenza del punto fisso) Data una funzione g definita in [ a, b], continua e tale che a g( x ) b per ogni x [ a, b], allora
g ammette almeno un punto fisso, cio almeno un punto per cui vale la
relazione g( ) = .
Figura 3.3:
Dimostrazione.
Dire che una funzione g ammette almeno un
punto fisso, vuol dire che esiste almeno un punto nel suo insieme
di definizione, tale che g( ) = .
Dalle ipotesi del teorema, i valori della funzione g sono contenuti
nellintervallo [ a, b] e, in particolare a g( a) b e a g(b) b.
Definiamo, perci, la funzione continua ( x ) mediante la relazione
f 0 (c)
f (b) f ( a)
=
ba
( x ) = g( x ) x
Allora ( a) = g( a) a > 0 e (b) = g(b) b < 0. Per il Teorema del
Valore Intermedio esiste almeno un punto ] a, b[ tale che ( ) = 0,
vale a dire g( ) = 0, cio g( ) = . Esiste almeno un punto fisso
per la funzione g. 4
Teorema 3.6.5 (Esistenza e unicit del punto fisso) Data una funzione g di classe C1 in [ a, b], con a g( x ) b per ogni x [ a, b], e con
| g0 ( x )| m < 1 per ogni x [ a, b] allora esiste ed unico il punto fisso
della g in tale intervallo.
Dimostrazione. Lesistenza di almeno un punto fisso assicurata
dal teorema precedente (le ipotesi del teorema precedente ci sono
tutte). Supponiamo, allora, che esistano due punti fissi e , con
6= , per la funzione g. Si ha
| | = | g( ) g( )|
f (c) = K
25
| g( ) g( )| = | g0 (c)( )| | g0 (c)|| |
Ma per ipotesi | g0 (c)| m < 1 da cui
| | m| | < | |
Si arriva ad una contraddizione. Lassurdo deriva dallaver supposto
6= . Quindi = e il punto fisso unico. 4
Teorema 3.6.6 (Teorema del Valor Medio del Calcolo Integrale) Se f
C ([ a, b]) e g integrabile in [ a, b] e g( x ) non cambia segno in [ a, b], allora
esiste un punto ] a, b[ tale che
Z b
a
f ( x ) g( x ) d x = f ( )
Z b
a
g( x ) d x
( x x0 )2 00
f ( x )
2
f 00 ( x0 )
f ( n ) ( x0 )
( x x0 )2 + . . . +
( x x0 ) n + R n
2!
n!
dove
Rn ( x ) =
f ( n +1) ( x )
( x x 0 ) n +1
( n + 1) !
4.1
Disastri numerici!
Molte volte, si pensa che i risultati numerici ottenuti da un calcolatore elettronico, specie se sono ottenuti come output di un sofisticato
software, non contengano errori e, se ne abbiano, siano da ritenersi
trascurabili. In realt, quando si esegue un programma al calcolatore,
bisogna prima di tutto aver verificato che sia stato scritto correttamente (il programma deve, cio, tradurre correttamente il problema
matematico che si vuole risolvere). Inoltre, bisogna tener conto che i
risultati numerici sono sempre affetti da un certo tipo di errore, che
pu essere, per esempio, di arrotondamento o di troncamento:
un numero con infinite cifre decimali ma il calcolatore lo pu vedere
solo come un numero con finite cifre decimali..., molte formule non
possono essere usate cos come sono ma devono essere in qualche
modo semplificate (basti pensare ad una somma di infiniti termini).
Non tenere conto di questi fattori pu portare a risultati davvero
disastrosi, come pu essere verificato andando a controllare la pagina web dedicata ai disastri dovuti a uno scorretto calcolo numerico:
http://www.ima.umn.edu/~arnold/disasters/disasters.html
La pagina web del prof. Douglas N. Arnold, dellUniversit del Minnesota, e viene
introdotta con la seguente frase (traducendo):
Stai seguendo con attenzione il tuo corso di
analisi numerica o di calcolo scientifico? Se
non lo stai facendo, potrebbe costarti un caro errore. Nel seguito, ci sono esempi dalla vita reale di ci che pu succedere quando gli algoritmi numerici non sono applicati
correttamente.
28
annamaria mazzia
Il disastro del veicolo spaziale Mars Climate Orbiter nel 1999. Il disastro,
invece, del veicolo spaziale della missione Mars Climate Orbiter non
si trova sulla pagina web del prof. Douglas, ma i dettagli della storia
si possono trovare, ad esempio, sul sito http://marsprogram.jpl.
nasa.gov/msp98/orbiter.
Il 23 settembre 1999 si perdono le tracce del veicolo spaziale Mars
Climate Orbiter. Gli obiettivi di questa missione della NASA erano
sia di monitoraggio dei cambiamenti climatici sia di supporto per
la missione Mars Polar Lander. I costi della Climate Orbiter e della
Polar Lander erano di un totale di oltre 320 milioni di dollari.
Si era ipotizzato di entrare nellatmosfera di Marte ad una altezza
di circa 150 km mentre il veicolo spaziale entr ad una altezza di
circa 60 km. Per un errore di conversione delle unit di misura, il
velivolo entr nellatmosfera con una traiettoria inferiore rispetto a
quella pianificata. La velocit del mezzo era molto elevata e port alla
distruzione non solo del veicolo spaziale ma anche della stessa Polar
Lander.
NASA/JPL.
29
Diversi furono i motivi che portarono al fallimento di questa missione. Il principale dovuto allerrore nel trasferimento di informazioni
tra il team che lavorava sul veicolo spaziale, che si trovava in Colorado
e il team della missione di navigazione, che lavorava in California.
Un team usava le unit inglesi (inches, feet, pounds) mentre laltro
usava le unit metriche. Lerrore fu nella mancata conversione delle
unit di misura tra unit inglesi e unit metriche!
4.2
Aritmetica di macchina
3
3
3
0
3
+
+
+
+
.
.
.
100
100
102
103
101
104
= 3.14159265358979 . . . =
1
1
5
3
4
+ 1 + 2 + 3 + 4 . . . 100
100
10
10
10
10
{z
parte intera
} |
{z
parte frazionaria
4.3
Conversione di base
Nel seguito, non affronteremo gli aspetti teorici del passaggio da una
base ad un altra per rappresentare lo stesso numero, ma vedremo
limplementazione pratica per convertire un numero dalla base 10
alla base 2 e viceversa.
30
annamaria mazzia
10001000.010 =
= 1 27 + 0 26 + 0 25 + 0 24 + 1 23 + 0 22 + 0 21 + 0 20 + 0 21 + 1 22 + 0 22
|
{z
parte intera
} |
{z
parte frazionaria
31
resto
1
x0
11
, che 1.1 in base 10, nella
10
4.4
32
annamaria mazzia
segno
e
|
{z
cifre dellesponente
e
}
f
|
{z
f
}
s
1
1
Ne
8
11
n
23
52
# totale bits
32
64
33
Gli esponenti possono essere sia positivi sia negativi ma si preferisce memorizzarli come interi positivi (senza segno). Abbiamo
dunque bisogno di una tecnica che permetta di rappresentare esponenti negativi come interi positivi. La tecnica utilizzata nello standard
IEEE chiamata di biasing (distorsione): un numero positivo (detto
bias) viene aggiunto allesponente (sia esso positivo o negativo) in
modo che il risultato finale sia sempre positivo. Ed questo valore
che viene memorizzato per rappresentare lesponente. Lesponente viene quindi rappresentato in forma biased (parziale, influenzata
da un altro numero): se e lesponente effettivo, noi memorizziamo il valore b + e dove b il bias dato b = 0111
| {z. . . 1}, vale a dire
b = 1 + 2 + 22 + . . . + 2 Ne2 + 0 2 Ne1
Ne bits
1 2 Ne1
=
= 2 Ne1 1
12
Esempio Cerchiamo di capire perch b ha questo valore, considerando la rappresentazione in singola precisione. Il pi grande
esponente che pu essere rappresentato in singola precisione dato
da 11111111 che, in base 10 vale 255. La met di 255 127 (con resto
1). Questo valore proprio quello assegnato al bias (infatti 127 in base
2 si scrive come 011111111) e ci permette di ottenere valori sempre
positivi per lesponente che viene effettivamente memorizzato. Dal
momento che (in base 10) deve valere la relazione 0 b + e 255
(noi memorizziamo il valore b + e sia che e sia positivo sia che sia
negativo), troviamo che e pu variare tra 127 e +128. Tuttavia, per
e = 127 si ha b + e = 0 e per e = 128 si ha b + e = 255, questi due
valori dellesponente sono riservati per i numeri speciali (zero, infinito
e Not-a-Number), quindi, e potr variare nellintervallo [126, 127].
_
In generale, quindi, si ha 0 b + e 1111 . . . 1 (il valore massimo
dato dal numero in base 2 formato da Ne cifre uguali a 1). Per trovare
il limite superiore e inferiore entro cui pu variare e, dobbiamo tener
conto del fatto che, nella rappresentazione IEEE, i valori 0 e 1111 . . . 1
sono riservati per rappresentare numeri speciali quali lo zero, infinito
e il Not-a-Number.
Di conseguenza, la relazione di prima va scritta con le disuguaglianze strette: 0 < b + e < 1111 . . . 1. Ci significa che il massimo
esponente che si pu rappresentare dato da 1111 . . . 1 1 che, in
base 2, vale 1111 . . . 10.
Da b + e 1111 . . . 10 si ha pure e 1111 . . . 10 b = 1111 . . . 10
0111 . . . 1 = 0111 . . . 1 = b.
Il limite superiore per e, che indichiamo con U vale proprio b.
Per il limite inferiore abbiamo: 0 < b + e cio 1 b + e (si noti che
siamo passati da < a ) da cui 1 b e, ovvero, (b 1) e.
Il limite inferiore L = (b 1).
In singola precisione, b = 0111
| {z. . . 1}: in base 10 b = 12710 , da cui
8 bits
lintervallo [ L, U ] = [126, 127].
In doppia precisione, invece, b = 102310 da cui [ L, U ] = [1022, 1023].
an e vale S =
a=
1
= 21 .
2
1 a ( n +1)
. In questo caso,
1a
34
annamaria mazzia
1. 111
. . . 1} 2U = ( 2k ) 2U =
| {z
n
k =0
bits
1 2(n+1) U
2 = (2 2n )2U 2U +1
1 21
w k = w1 + w2 + w3 + . . . w n
k =1
1. 000
. . . 0} 2 L = 2 L
| {z
n
bits
Massimo
Minimo
...
|{z}
0
{z
esponente
...
{z
0
}
mantissa
_
Consideriamo, ora, la rappresentazione dei numeri speciali.
Per convenzione si pone uguale a 0 la rappresentazione che vede
tutti zero sia nel segno, sia nellesponente che nella mantissa (non
dimentichiamo che il valore 1 della normalizzazione non messo in
memoria ma c e quindi non potremmo mai avere il valore 0, perci
lo si pone per convenzione).
Per i valori si considerano tutti 1 nello spazio dedicato allesponente, tutti 0 nello spazio dedicato alla mantissa e 0 o 1 per il
segno, a seconda che sia + o .
Singola precisione
Doppia precisione
3.4 1038
1.2 1038
10308
2.2 10308
0/1
|{z}
s
1
|
...
{z
esponente
1
}
0
|
...
{z
mantissa
35
0
}
0
|{z}
s
{z
esponente
{z
mantissa
1
}
4.5
{z
esponente
{z
mantissa
Precisione numerica
= x
troncamento: x = tronc( x ), dove p = p e x
k per
k
k = 0, . . . , t 1. Le altre cifre, xt , xt1 , . . . sono ignorate.
1
arrotondamento simmetrico: x = arr ( x ) = tronc( x + N t+1 N p ),
2
aggiungiamo ununit a xt+1 se xt N/2.
N 1 t N p
|x x | 1
N 1 t N p
2
nel troncamento
nellarrotondamento
Evitiamo di effettuare tutti i passaggi che portano alle formule dellerrore assoluto e relativo, che sono il risultato di maggiorazioni di
serie geometriche.
36
annamaria mazzia
1 t
|x x | N
1
N 1 t
|x|
2
|x x |
, invece, si ha:
|x|
nel troncamento
nellarrotondamento
1 1 t
N
il numero conosciuto come precisione di macchina.
2
Nel caso della rappresentazione IEEE di un numero, si ha t
1 = n, (ricordiamo che nella rappresentazione IEEE si memorizza il
numero normalizzato), da cui lerrore di arrotondamento relativo che
|x x |
si commette
2(n+1) .
|x|
In singola precisione (n = 23), avremo
Il valore
|x x |
224 5.96 108
|x|
ci significa che avremo 8 cifre decimali corrette.
In doppia precisione (n = 52) avremo
|x x |
253 1.11 1016
|x|
ci significa che avremo 16 cifre decimali corrette.
4.6
Cifre significative
Prima di vedere come si propagano gli errori nelle operazioni elementari di moltiplicazione, divisione, addizione e sottrazione, vediamo il
concetto di cifre significative.
Le cifre significative sono quelle che danno uninformazione effettiva sul valore del numero, indipendentemente dalla parte esponenziale.
Esempio Supponiamo di dover calcolare lerrore assoluto e
relativo per approssimare un certo numero x mediante x , per i
seguenti casi:
1. x = 0.6000 101 , x = 0.6100 101 ;
2. x = 0.6000 103 , x = 0.6100 103 ;
3. x = 0.6000 104 , x = 0.6100 104 ;
Nel primo caso, abbiamo | x x | = 0.1 mentre lerrore relativo vale
0.166666 101
Nel secondo caso, lerrore assoluto vale 1 105 e lerrore relativo
0.166666 101 .
Nellultimo caso, lerrore assoluto 1 102 e quello relativo 0.166666
101 .
37
|x x |
5 10t
|x|
Se il numero x rappresentato al calcolatore in floating point,
mediante la rappresentazione data da f l ( x ), sappiamo che vale
| x f l ( x )|
1
N 1t (N la base, t il numero di cifre per la man|x|
2
tissa): se consideriamo la base dieci, questa maggiorazione si scrive
proprio come
|x x |
0.5 101t = 5 10t
|x|
Questultima maggiorazione, con t il pi grande intero positivo per il
quale verificata la relazione scritta, d quindi la definizione di cifre
significative per un numero espresso in floating point.
4.7
Se scriviamo il numero in virgola mobile normalizzata, le cifre significative sono date, quindi, dalle cifre della parte frazionaria. La
bont delle cifre va diminuendo procedendo da sinistra verso destra e
questo pu portare ad una perdita di cifre significative, come possiamo vedere studiando la propagazione degli errori nelle operazioni
elementari.
Supponiamo che i numeri su cui lavoriamo siano affetti da errore
(di arrotondamento), mentre le operazioni siano eseguite in modo
esatto. Indichiamo con il simbolo o una qualunque delle operazioni
elementari {, /, +, } e con f l ( x ) il numero x rappresentato in
floating point e arrotondato, quindi f l ( x ) = x (1 + ex ) dove ex
lerrore di arrotondamento relativo.
Allora f l ( x o y) = f l ( x ) o f l (y) = x (1 + ex ) o y(1 + ey ).
Moltiplicazione
x f l (x)
si ha xe x = x f l ( x )
x
da cui f l ( x ) = x (1 + e x ).
Da e x =
38
annamaria mazzia
Abbiamo scritto
1
= (1 ey + e2y +
1 + ey
x
y
ex +
ey )
x+y
x+y
x
y
ex +
ey , una combinazione lineare
x+y
x+y
che dipende da x e y.
Lerrore ex+y =
|x|
|y|
possono essere molto grandi e, in
e
| x + y| | x + y|
tal caso, ci sar unamplificazione notevole dellerrore. Si ha
il fenomeno di cancellazione se non si fa attenzione al numero di
cifre significative dei numeri che vengono sommati.
xy < 0 =
b b2 4ac
Applicando la formula x1/2 =
abbiamo x1/2 =
2a
0.01786284073
28 783 = 28 27.98213716 =
. Larrotonda55.98213716
mento delle due radici in virgola mobile normalizzata a 4 cifre
decimali d: x1 = 1.7863 102 e x2 = 5.5982 101 .
Consideriamo ora la macchina a 4 cifre decimali per risolvere
lequazione:
x1 = 28 783 = 2.8 101 2.7982 101 = 0.0018 101 = 0.018 = 1.8 102
x2 = 28 +
39
h2 00
h3
h4 IV
f ( x0 ) + f 000 ( x0 ) +
f ( x0 ) + . . .
2
6
24
Allora
f 0 ( x0 ) =
f ( x0 + h ) f ( x0 )
h
h2
h3
( f 00 ( x0 ) + f 000 ( x0 ) + f IV ( x0 ) + . . .)
h
2
6
24
f ( x0 + h ) f ( x0 )
.
h
Lerrore, detto errore di discretizzazione, che si commette
Approssimiamo, quindi, la f 0 ( x0 ) calcolando
| f 0 ( x0 )
f ( x0 + h ) f ( x0 )
h
h2
h3
| = | f 00 ( x0 ) + f 000 ( x0 ) + f IV ( x0 ) + . . . |
h
2
6
24
| f 0 ( x0 )
f ( x0 + h ) f ( x0 )
h
| | f 00 ( x0 )|
h
2
40
annamaria mazzia
Per h = 0.1 non abbiamo unapprossimazione accurata. Ci aspettiamo che diminuendo il passo h lerrore che commettiamo diminuisca.
Riportiamo, nella tabella a lato, gli errori della formula (in valore
h
assoluto) e confrontiamoli con lerrore di discretizzazione | f 00 ( x0 )|
2
(i conti sono fatti in singola precisione):
Lerrore commesso dallo schema decresce come h e, in particolare,
h
come | f 00 (1.2)| = 0.46602h.
2
Possiamo pensare di ottenere unaccuratezza grande quanto vogliamo a condizione di prendere valori di h sempre pi piccoli. In
realt, per valori di h molto piccoli, gli errori iniziano ad aumentare!
h
errore
1.e-8
1.e-9
1.e-10
1.e-11
1.e-12
1.e-13
1.e-16
1.e-18
4.3611e-10
5.5947e-8
1.6697e-7
4.6603e-5
1.3006e-4
4.2505e-4
3.6236e-1
3.6236e-1
errore
h 00
| f ( x0 )|
2
1.e-1
1.e-2
1.e-3
1.e-4
1.e-5
1.e-6
4.7167e-2
4.6662e-3
4.6608e-4
4.6603e-5
4.6602e-6
4.6597e-7
4.6602e-2
4.6602e-3
4.6602e-4
4.6602e-5
4.6602e-6
4.6602e-7
h 00
| f ( x0 )|
2
4.6602e-9
4.6602e-10
4.6602e-11
4.6602e-12
4.6602e-13
4.6602e-14
4.6602e-16
4.6602e-19
f ( x0 + h ) f ( x0 )
).
h
f ( x0 + h ) f ( x0 )
), ed errore dalla forh
mula trigonometrica per cui sin ( x0 + h)
sin ( x0 ) = 2 cos (2x0 + h/2) sin (h/2). I
grafici sono in scala logaritmica.
41
4.8
4.8.1
Instabilit e malcondizionamento
Instabilit
En c1n E0
con c1 > 1, allora lalgoritmo instabile. Algoritmi del genere devono
essere evitati!
Definizione 4.8.1 Un procedimento numerico si dice instabile se gli errori
che vi sono associati non rimangono limitati ma crescono fino a distruggere
completamente la soluzione.
Z 1
0
xn
dx
x + 10
Z 1 n
x + 10x n1
0
x + 10
dx =
Z 1 n 1
x
( x + 10)
0
x + 10
dx =
Z 1
0
x n1 dx =
Z 1
0
1
dx = ln (11) ln (10).
x + 10
1
n
42
annamaria mazzia
Da un programma in Fortran:
2. per n = 1, 2, . . . , 30 valutare yn =
1
10yn1
n
yn = (10)n y0 + costanten
Lalgoritmo quindi, considerati gli errori di arrotondamento, presenta
un errore En con crescita di tipo esponenziale. Difatti otteniamo valori
che via via si allontanano dallintervallo di ammissibilit [0, 1].
I risultati che ricaviamo sono riportati nelle tabelle a lato (osserviamo che sono leggermente diversi a seconda dal linguaggio usato,
proprio per effetto dellinstabilit).
1 1
Se invece, consideriamo yn1 =
( yn ), partendo da un valore
10 n
di n molto grande e andando a ritroso, lerrore diminuisce. Perci,
dato un valore di accuratezza e > 0 e fissato un intero n1 possibile
determinare lintero n0 tale che, partendo da yn0 = 0 e andando
a ritroso, gli integrali yn saranno valutati con un errore in valore
assoluto minore di e per 0 < n n1 . Infatti:
y n0 = 0
1 1
10 n0
1
1 1
1
1
(
y n0 2 =
)=
+ costante
10 n0 1 10 n0
(10)2 n0
..
..
.
.
y n0 1 =
yn =
1
+ costanten0 n
(10)n0 n n0
1
10n0 n
(dal momento che n0 n > 0, lerrore decresce per n che tende a
zero). Se richiediamo una tolleranza e = 106 , e fissiamo un valore
n1 , per calcolare n0 dovr essere
Lerrore al passo n dipende, quindi, (in valore assoluto) da
1
10n0 n1
yn
0
1
2
3
4
...
7
8
9
10
18
27
30
9.5310e-2
4.6898e-2
3.1021e-2
2.3122e-2
1.8778e-2
....
-3.0229e-1
3.1479e+0
-3.1368e+1
3.1378e+2
3.1377e+10
-3.1377e+19
3.1377e+22
Da un programma Matlab:
yn
0
1
2
3
4
...
7
8
9
10
18
27
30
9.5310e-2
4.6898e-2
3.1018e-2
2.3154e-2
1.8465e-2
....
1.1481-2
1.0194e-2
9.1673e-3
8.3270e-3
-9.1694e+1
-9.1699e+9
-9.1699e+13
n
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
yn
0.000000
3.84615e-3
3.61538e-3
3.80513e-3
3.96731e-3
4.14872e-3
4.34703e-3
4.56530e-3
4.80663e-3
5.07489e-3
5.37486e-3
5.71251e-3
6.09542e-3
6.53332e-3
7.03898e-3
n
11
10
9
8
7
6
5
4
3
2
1
0
43
yn
7.62944e-3
8.32797e-3
9.16720e-3
1.01944e-2
1.14806e-2
1.31377e-2
1.53529e-2
1.84647e-2
2.31535e-2
3.10180e-2
4.68982e-2
9.53102e-2
4.8.2
Malcondizionamento
Definizione 4.8.2 Un problema si dice malcondizionato se a piccole variazioni nei dati di input del problema corrispondono forti variazioni nei dati
di output.
Quando il problema molto sensibile alle variazioni dei dati di input,
producendo risultati molto diversi tra loro, allora nessun algoritmo,
per quanto robusto e stabile, potr dare una soluzione robusta al
problema stesso.
Esempio Il problema del calcolo delle radici di un polinomio
p( x ) di grado n un esempio di problema malcondizionato.
Sia p( x ) = a0 + a1 x + a2 x2 + . . . + an x n . I dati di input del problema sono i coefficienti a0 , a1 , . . . , an . I dati di output sono le radici del
polinomio.
Si pu provare che a piccole variazioni sui dati iniziali, corrispondono grandi variazioni sui risultati. Vediamo il caso del polinomio
p( x ) = ( x 1)( x 2) ( x 10). Chiaramente, tale polinomio ha
radici 1, 2, . . . , 10.
Figura 4.5: Esempio: malcondizionamento
44
annamaria mazzia
y
f (x)
Moltiplicando numeratore e denominatore a secondo membro per x
si ricava
y
x f 0 ( x ) x
y
f (x) x
Al limite per x 0, questa uguaglianza approssimata (abbiamo
usato il simbolo ) diventa una vera uguaglianza. Questo suggerisce
di definire lindice di condizionamento di f mediante la formula
0
x f (x)
(cond f )( x ) =
f (x)
Questo numero ci dice quanto grandi sono le perturbazioni relative
per y confrontate con le relative perturbazioni di x.
x
Per x = 0 e y 6= 0, non ha senso considerare lerrore relativo
,e
x
si considera lerrore assoluto su x. In tal caso, si definisce indice di
condizionamento la quantit
0
1 1/1
x f ( x ) x x
1
=
(cond f )( x ) =
=
f ( x ) x1/
Per grande, (cond f )( x ) tende a zero, quindi abbiamo un problema bencondizionato.
Se, invece molto piccolo si ha un problema malcondizionato (se = 1010 , si
10
0
f (x)
(cond f )( x ) =
f (x)
Per x = y = 0 si considera invece lerrore assoluto sia per x che
per y, dimodoch lindice di condizionamento diventa
(cond f )( x ) = | f 0 ( x )|
4.9
Domande di riepilogo
45
5 Zeri di funzione
5.1
partire da x0 prossimo a b;
G
G
considerare x1 =
generalizzando: xn+1 =
b
1
( x0 + );
2
x0
1
b
( x n + ).
2
xn
Il metodo usato dai Babilonesi non altro che il metodo di NewtonRaphson (che vedremo pi avanti) per trovare gli zeri della funzione
f ( x ) = x2 b.
Il problema della ricerca degli zeri di funzione non rappresenta
un problema puramente matematico ma si incontra in svariate
applicazioni.
Consideriamo, ad esempio, la teoria di Ising del campo medio
dei ferromagneti: lequazione di stato che si ha in assenza di campo
magnetico e che governa la magnetizzazione di equilibrio m pu
essere scritta come
m
m = tanh ( )
T
Per
calcolare
sapendo
che il valore che dobbiamo approssimare
compreso tra 1 e 2, possiamo partire da
x0 = 1.5, ottenendo:
esempio,
per
1.41421356237310,
x0 = 1.5
2
) = 1.41666667
1.5
2
1
x2 = 2 (1.41666667 +
) = 1.41421569
1.41666667
2
x3 = 12 (1.41421569 +
) = 1.41421356
1.41421569
x1 = 21 (1.5 +
5.2
48
annamaria mazzia
Valore Intermedio (si veda il Teorema 3.6.3 con K = 0), esiste almeno
un punto ] a, b[ tale che f ( ) = 0.
Assumiamo, per semplicit che ci sia una sola radice nellintervallo ] a, b[.
Il metodo delle bisezioni (detto anche metodo dicotomico) si chiama cos perch, ad ogni passo, viene dimezzato lintervallo precedente, cercando in tal modo di racchiudere la radice in sottointervalli
sempre pi piccoli.
Nel caso ci sia pi di una radice, la procedura che ora descriviamo vale sempre, e ci
permette di calcolare una di queste radici.
| cn |
ba
.
2n +1
.
Lalgoritmo di bisezione pu essere descritto sotto forma di pseudocodice. Se il metodo non converge (perch, ad esempio, la funzione
che abbiamo scelto non assume segno opposto agli estremi dellintervallo), il procedimento iterativo potrebbe entrare in stallo (pensiamo
ad un programma da fare eseguire al calcolatore) e quindi conviene introdurre un numero massimo di iterazioni, che viene indicato
con itmax. Si intende che il metodo converge quando lampiezza del
nuovo intervallo diventa minore di una tolleranza tol prefissata.
2
3
4
5
6
7
8
9
10
11
12
13
19
20
Fine-Se
15
16
17
18
5.3
14
49
x 2
sin ( x ) =
2
0, aggiungendo ad ambo i membri x, ottenia x 2
mo
sin ( x ) + x = x. Se poniamo
2
x 2
g( x ) =
sin ( x ) + x, le radici della
2
f coincidono con i punti fissi della g.
Un esempio. Da f ( x ) =
Esempio
Supponiamo che la funzione g sia g( x ) = cos ( x ). Prendiamo come
valore iniziale x0 = 1. Con una calcolatrice, andiamo a calcolare (in
modalit radianti!) il suo coseno: ricaviamo x1 = cos ( x0 ) = g( x0 ) =
0.54030230. Successivamente, calcoliamo il coseno di x1 , ottenendo x2 = cos ( x1 ) = 0.857553216. Osserviamo che x2 = cos ( x1 ) =
cos (cos ( x0 )) e non cos2 ( x0 )! Abbiamo innescato, in questo modo,
un procedimento iterativo per cui xn+1 = cos ( xn ) = g( xn ). Con
sin ( x ).
sin ( x ) + x.
x 2
2
x 2
2
50
annamaria mazzia
xn
5
11
13
14
15
29
30
56
57
58
0.7013687746
0.7356047404
0.7414250866
0.7375068905
0.7401473356
0.7390893414
0.7390822985
0.7390851333
0.7390851332
0.7390851332
Esempio
Consideriamo la funzione g( x ) =
1
x + 2. Partendo da x0 = 0 si ha
2
n xn
1 x1 = 12 0 + 2 = 2
2 x2 = 12 2 + 2 = 3
3 x3 = 12 3 + 2 = 3.5
4 x4 = 12 3.5 + 2 = 3.75
5 x5 = 12 3.75 + 2 = 3.875
6 x6 = 21 3.875 + 2 = 3.9375
I numeri 2, 3, 3.5, 3.75, 3.875, 3.9375 sembrano avvicinarsi a = 4.
Difatti, per valori crescenti di n, per xn che tende a , si ha, da
1
1
una parte = limn xn+1 = limn xn + 2 = + 2 da cui,
2
2
1
= + 2, cio = 4.
2
_
Scopriamo quindi che se literazione xn+1 = g( xn ) converge a ,
punto fisso per la funzione g.
Da un punto di vista geometrico, i grafici di y = x (bisettrice del
primo e terzo quadrante) e di y = g( x ) si intersecano in .
Tuttavia, non sempre questo schema iterativo, applicato a funzioni
che ammettono uno o pi punti fissi, converge. Vediamo con un
esempio.
Esempio
Sia g( x ) = x2 . Analiticamente troviamo due punti fissi per questa
funzione. Dovendo essere = 2 , si ricava 2 = 0, vale a dire
( 1) = 0: quindi = 0 e = 1 sono i due punti fissi per questa
funzione.
Partendo da x0 = 0.5, si ha la successione di valori 0.25, 0.0625,
0.00390625, rapidamente il metodo converge a = 0
Se si prende come punto iniziale un valore x0 ] 1, 1[, la successione converge a = 0. Le sole successioni che convergono a = 1
solo le ovvie successioni generate da x0 = 1. Se si prende come
punto iniziale x0 tale che | x0 | > 1 allora lo schema iterativo xn+1 = xn2
diverge a +. Partendo da x0 = 2, si ha 4, 16, 256, 65536...
_
Questo esempio significativo per capire come ciascun punto fisso
abbia un proprio bacino di attrazione: se si prende x0 in questo bacino,
allora i valori xn tendono a . Un punto fisso pu dunque attirare o
importante osservare che, data una funzione che ammette punto fisso, le ipotesi dei
due teoremi 3.6.4 e 3.6.5 possono essere rilassate dallintervallo [ a, b] ad un intorno del
punto fisso.
Dalle relazioni
= g( )
x n +1 = g ( x n )
sottraendo membro a membro e, applicando il teorema del Valore
Medio 3.6.2 (con n un opportuno punto del segmento che congiunge
a xn ), otteniamo:
xn+1 = g( ) g( xn ) = g0 ( n )( xn )
Possiamo scrivere questa relazione per n = 0, 1, . . . ottenendo
x1 = g0 ( 0 )( x0 )
x2 = g0 ( 1 )( x1 )
x3 = g0 ( 2 )( x2 )
.. ..
.=.
xn = g0 ( n1 )( xn1 )
Moltiplicando, ora, membro a membro e prendendo i valori assoluti,
abbiamo:
| x1 | | x2 | . . . | x n | =
| g0 ( 0 )| | g0 ( 1 )| | g0 ( 2 )| . . . | g0 ( n1 )| | x0 | | x1 | . . . | xn1 |
La relazione appena trovata pu essere semplificata, dividendo
ambo i membri per | x1 | | x2 | . . . | xn1 | ottenendo:
| xn | = | g0 ( 0 )| | g0 ( 1 )| | g0 ( 2 )| . . . | g0 ( n1 )|| x0 |
Assumiamo, ora che | g0 ( xi )| m per i = 0, 1, . . . , n 1. Abbiamo
dunque una relazione che lega lerrore assoluto al passo n con lerrore
assoluto iniziale.
| x n | m n | x0 |
51
52
annamaria mazzia
g0 ( x )
sin ( x )
1
2
2x
G
G
g( x ) =
1
x+2
2
53
| xn |
m
| x n x n 1 |
1m
(5.1)
| x n | m | x n 1 |
(5.2)
| x n 1 | m | x n 1 | + | x n x n 1 |
(1 m)| xn1 | | xn xn1 |
1
| x n 1 |
| x n x n 1 |
1m
Andando a sostituire questa maggiorazione nella disuguaglianza (5.2),
troviamo il risultato espresso nellequazione (5.1).
Errore e scarto. La disuguaglianza (5.1) fornisce una maggiorazione
dellerrore al passo n tramite il valore assoluto della differenza tra
due iterazioni successive | xn xn1 |. Questultima quantit prende il
nome di scarto e viene indicata con il simbolo dn .
Generalmente, per vedere se il metodo di punto fisso converge al
punto fisso entro una certa tolleranza prestabilita, il controllo da fare
proprio sullo scarto dn . Sfruttiamo questo fatto per vedere come
54
annamaria mazzia
12
Fine-Fintantoch
Se dn tol allora
xn la soluzione approssimata
altrimenti
n > itmax ;
il metodo fallito dopo itmax iterazioni ;
13
Fine-Se
7
8
9
10
11
5.4
Il Metodo di Newton-Raphson
0 = f ( ) = f ( xn ) + f 0 ( xn )( xn )
Supponendo f 0 ( xn ) 6= 0, otterremmo, con semplici passaggi,
= xn
f ( xn )
f 0 ( xn )
Osserviamo che
y( x ) = f ( xn ) + f 0 ( xn )( x xn )
altro non che lequazione della retta
tangente alla f nel punto ( xn , f ( xn )).
55
f ( xn )
f 0 ( xn )
x n +1 = x n
f ( xn )
,
f 0 ( xn )
n = 0, 1, 2, . . .
(5.3)
Lo schema di Newton-Raphson si pu vedere come un caso particolare dello schema del punto fisso applicato alla funzione g( x ) =
x f ( x )/ f 0 ( x ). Perch lo schema del punto fisso converga, deve
essere | g0 ( x )| < 1 in un intorno di . Nel caso specifico abbiamo:
| g0 ( x )| = |1
f 0 ( x )2 f ( x ) f 00 ( x )
f ( x ) f 00 ( x )
|
=
|
|
f 0 ( x )2
f 0 ( x )2
56
annamaria mazzia
f ( + en )
f 0 ( + en )
f ( + en )
= en 0
f ( + en )
e n +1 + = e n +
e n +1
f ( ) + en f 0 ( ) + en2 f 00 ( )/2 + . . .
f 0 ( ) + en f 00 ( ) + . . .
f 00 ( ) 2
e = Aen2
2 f 0 ( ) n
ponendo A =
f 00 ( )
.
2 f 0 ( )
5.5
| x n +1 |
=M
| xn | p
57
| x n +1 | M | x n |
| x n +1 | M | x n | 2
| x n + 1 | Mn | x n | .
+ e n +1 = + e n g ( ) + . . .
en+1 = en g0 ( ) + . . . e, al limite per n
e n +1 = g 0 ( ) e n
La costante asintotica per lo schema di punto fisso vale, dunque,
M = | g0 ( )|.
5.6
Come per lo schema di punto fisso, quando implementiamo il metodo di Newton-Raphson, non potendo misurare lerrore en (la radice incognita), usiamo lo scarto dn come misura della bont
dellapprossimazione della radice.
Esempio
Consideriamo lequazione f ( x ) = 2x cos ( x ) + 1 = 0 che ammette come unica radice = 0.
Poich f 0 ( x ) = 2 + sin ( x ), il metodo di Newton-Raphson diventa:
x n +1 = x n
2xn cos ( xn ) + 1
2 + sin ( xn )
xn
0.5
0.4730746270E-01
0.5462695134E-03
0.7458221874E-07
0.1395426403E-14
0.7647622253E-17
dn
0.4526925E+00
0.4676119E-01
0.5461949E-03
0.7458222E-07
0.1387779E-14
2x cos ( x ) + 1.
58
annamaria mazzia
f ( xn ) f 0 ( xn )( xn )
Sostituendo questa espressione nelliterazione di Newton-Raphson si
ha:
x n +1 = x n
f ( xn )
xn + ( xn )
f 0 ( xn )
vale a dire
x n +1 x n x n
cio
d n +1 e n .
d2
( d1 )2
d3
( d2 )2
d4
( d3 )2
d5
( d4 )2
= 0.2282
= 0.2498
= 0.2500
= 0.2495
Figura 5.14: Grafico di convergenza del metodo di Newton-Raphson applicato alla funzione f ( x ) = x3 + x, partendo da x0 =
5.
n
1
2
3
4
5
6
7
8
9
dn
1.7105e+00
1.1620e+00
8.0644e-01
5.8158e-01
4.3318e-01
2.6142e-01
4.4651e-02
1.7912e-04
1.1494e-11
dn
d n 1
6.7934e-01
6.9399e-01
7.2117e-01
7.4484e-01
6.0348e-01
1.7081e-01
4.0115e-03
6.4168e-08
dn
dn
)2
( d n 1
3.9715e-01
5.9723e-01
8.9426e-01
1.2807e+00
1.3931e+00
6.5339e-01
8.9840e-02
3.5824e-04
en
= M 6= 0, avreme n 1
en
en
= limn+
mo limn+
e n 1
( e n 1 )2
1
1
= M limn+
= + e non
e n 1
e n 1
( d n 1 )3
2.3218e-01
5.1395e-01
1.1089e+00
2.2021e+00
3.2160e+00
2.4994e+00
2.0120e+00
2.0000e+00
simo limn+
5.7
59
x
per x 0
Si consideri f ( x ) =
.
x per x < 0
La radice di questa funzione = 0.
1
2
x
Per la derivata prima, si ha f 0 ( x ) =
1
2 x
per x 0
.
per x < 0
Figura 5.15: Esempio in cui il metodo di
Newton-Raphson oscilla tra due valori.
60
annamaria mazzia
x0
= x0 2x0 = x0
x1 = x0
1
2 x0
Se partiamo da x0 < 0 abbiamo
x0
x1 = x0
= x0 + 2( x0 ) = x0 .
1
2 x0
Il metodo di Newton applicato alla funzione f , diventa quindi:
x n +1 = x n ,
n = 0, 1, 2, . . .
0.05
59
0.1
46
0.5
18
0.8
10
1.0
7
1.4
4
1.5
4
2.
6
3.
8
10.
14
20.
17
_
5.8
f ( xn )
Cn
100.
24
61
Per Cn = f 0 ( xn ) abbiamo la formula di Newton-Raphson, che possiamo anche chiamare della tangente variabile perch il coefficiente
angolare della retta tangente a ( xn , f ( xn )) che interseca lasse delle x
in xn+1 .
Ci possono essere altre scelte per Cn :
Cn =
Cn =
f ( x1 ) f ( x0 )
: abbiamo sempre una costante che approssix1 x0
0
ma la derivata f ( x0 ) utilizzando i valori di x1 e x0 . Lo schema
detto della secante fissa.
f ( x n ) f ( x n 1 )
. La derivata f 0 ( xn ) approssimata utix n x n 1
lizzando il rapporto incrementale della f valutata in xn e xn1 .
Abbiamo il metodo delle secante variabile, che chiameremo nel
seguito anche metodo della Regula Falsi.
In forma estesa, literazione n + 1 della Regula Falsi si scrive come:
x n +1 = x n
f ( xn )( xn xn1 )
f ( x n ) f ( x n 1 )
x n +1 =
x n 1 f ( x n ) x n f ( x n 1 )
f ( x n ) f ( x n 1 )
62
annamaria mazzia
00
f ( )
1+ 5
la costante asitontica del
dove p =
= 1.618 e M = 0
2
2 f ( )
metodo di Newton-Raphson, da cui
en+1 = M0.618 en1.618
5.9
p
2
1.618
s
2
1
2 1.414
1.618
5.10
Esempio
Consideriamo la funzione f ( x ) = 0 con f ( x ) = ( x/2)2 sin ( x ).
La derivata prima f 0 ( x ) = ( x/2) cos ( x ) Consideriamo come
x0 = 1.3 per entrambi i metodi e x1 = 1.35 per la Regula Falsi. Come
criterio di arresto, consideriamo una tolleranza tol = 1.e 8, cio
andremo avanti con le iterazioni fino a quando troveremo che lo
scarto dn = | xn xn1 | sar minore di tol. Otteniamo i seguenti
risultati per il metodo di Newton-Raphson
n
0
1
2
3
4
5
6
xn
1.3
2.714526871831
2.084760792766
1.944113685369
1.933811265085
1.933753764621
1.933753762827
f ( xn )
-5.410581854E-01
1.427962127E+00
2.157545986E-01
1.377189572E-02
7.60156095E-05
2.37200355E-09
-1.00668172E-16
f 0 ( xn )
0.382501171
2.26744846
1.53401376
1.33676314
1.32199993
1.32191743
( x/2)2 sin ( x )
dn
dn /d2n1
1.41452687E+00
6.29766079E-01
1.40647107E-01
1.03024203E-02
5.75004640E-05
1.79436599E-09
0.314743565
0.354627390
0.520808008
0.541742396
0.542710632
63
xn
f ( xn )
f ( x n ) f ( x n 1 )
x n x n 1
0
1
2
3
4
5
6
7
8
9
1.3
1.35
2.590702853065
1.735341043061
1.879309845941
1.940687248331
1.933542654410
1.933752971771
1.933753762918
1.933753762827
-5.41058185E-01
-5.20098358E-01
1.15448972E+00
-2.33640901E-01
-6.98346071E-02
9.19996444E-03
-2.79035921E-03
-1.04570967E-06
1.19824825E-10
-1.00668172E-16
0.419196552
1.34970922
1.62285784
1.13779020
1.28768192
1.32673746
1.32176540
1.32191686
dn
dn /d1.618
n 1
1.24070285E+00
8.55361810E-01
1.43968803E-01
6.13774024E-02
7.14459392E-03
2.10317362E-04
7.91146198E-07
9.06448250E-11
0.603386215
0.185374473
1.412310765
0.653100215
0.623935239
0.704441455
0.676026603
Attraverso gli scarti, abbiamo fatto una stima della costante asintotica dellerrore, considerando che, al limite per k , xn . Le
ultime colonne delle tabelle, infatti, valutano i rapporti dn /d2n1 e
dn /d1.618
n 1 .
Diamo unulteriore stima di tali costanti facendo uso della definizione teorica e considerando xn .
| f 00 ( )|
Per il metodo di Newton-Raphson dobbiamo calcolare M =
2| f 0 ( )|
0.618
mentre per la Regula Falsi dobbiamo considerare il valore M
.
Poich f 00 ( x ) = 1/2 + sin ( x ), abbiamo, per x6 (di NewtonRaphson) o, equivalentemente per x9 (della Regula Falsi), in
pratica 1.933753762827, f 0 ( ) = 1.32191743 e f 00 ( ) = 1.4348509.
Otteniamo quindi: M 0.542715784 e M0.618 0.685434221
_
5.11
8x + 16.
64
annamaria mazzia
_
Quando si ha una radice multipla, il metodo di Newton-Raphson
diventa un metodo del primo ordine in quanto la formula che lega
lerrore al passo n + 1 con lerrore al passo n diventa:
e n +1 =
r1
en
r
Il procedimento da seguire per arrivare a questo risultato del tutto simile a quanto stato
fatto nellipotesi in cui f 0 ( ) 6= 0. Si consiglia
di ricavare questo risultato come esercizio.
r1
. Per poter avere un metodo
r
che sia di nuovo a convergenza quadratica, occorre modificare lalgoritmo, ottenendo la formula di Newton-Raphson modificata, nel modo
seguente:
da cui la costante asintotica M =
x n +1 = x n r
f ( xn )
f 0 ( xn )
5.12
Da un punto di vista pratico, il controllo per verificare la convergenza o meno della successione di valori xn1 , xn , xn+1 , generata
dallo schema iterativo viene effettuato sugli scarti dn = | xn xn1 |
piuttosto che sugli errori (assoluti) en = | xn |, poich, se avessimo
65
M
M
d n +1
tol
1M
1M
M
< 1 (vale a dire per M < 1/2), se dn+1 tol anche
1M
en+1 tol. Se, invece, M 1/2, allora lerrore pu essere un po pi
grande della tolleranza richiesta.
Per quanto riguarda il metodo della secante variabile, poich
superlineare, in base alla definizione alternativa che abbiamo dato,
si pu dire che en+1 Mn+1 en con Mn+1 0: si pu vedere come
Perci, per
M
< 1 si pu riscrive1M
re come M < 1 M da cui 2M < 1 ovvero
M < 1/2.
Se tol = 1010 e M = 0.8 (maggiore
di 1/2), lerrore sar minore o uguale a
4 1010 .
La disequazione
66
annamaria mazzia
..
.
d2 Md1
d1 Md0
Partendo dalla prima relazione abbiamo:
dn Mdn1 M2 dn2 M3 dn3 . . . Mn d0
Troviamo una relazione tra dn e d0 . Passando ai logaritmi:
log10 (dn ) = n log10 ( M ) + log10 (d0 )
Abbiamo unequazione del tipo y = ax + b dove y = log10 (dn ) e
x = n, che rappresenta lequazione della retta nel nostro grafico
semilogaritmico, e la pendenza della retta vale a = log10 ( M ). Dalla
pendenza della retta possiamo dunque risalire al valore della costante
asintotica M.
5.13
Figura 5.21: Grafico con i profili di convergenza per i metodi di Newton-Raphson, secante variabile e punto fisso per trovare lo zero
della funzione f ( x ) = x + ln ( x ) (e applicando lo schema di punto fisso alla funzione
g( x ) = e x ).
Se stiamo applicando il metodo di NewtonRaphson e stimando M tramite la formula dn+1 /d2n o tramite la formula teorica
| f 00 ( xn )/(2 f 0 ( xn )| troviamo dei valori che
tendono ad un limite ben preciso diverso da
zero e da infinito, allora significa che il metodo ha ordine p = 2 e che la stima che stiamo
facendo corretta. Ma se, seguendo questa
strada, troviamo dei valori di M che tendono
a zero o a infinito, significa che lordine del
metodo non p = 2!
67
| x n +1 |
=M
n | xn | p
lim
| x n +1 x n |
M
| x n x n 1 | p
ovvero
d n +1
M.
(dn ) p
d3
M,
( d2 ) p
d4
M,
( d3 ) p
dn
M,
( d n 1 ) p
...
d n +1
M
(dn ) p
( d1 ) p
( d2 ) p
( d1 ) p
( d2 ) p
d4
d3
d4
d3
M
=
p
p
p
( d2 )
( d3 )
( d2 )
( d3 ) p
..
..
.
.
dn
d
dn
d
M n+1p =
n+1p
( d n 1 ) p
(dn )
( d n 1 ) p
(dn )
d2
d3
ricaviamo facilmente
p
( d1 )
( d2 ) p
p
p
d2
(d ) p
d1
d3
d2
1 p =
oppure, passando ai reciproci, si ha
d3
( d2 )
d2
d2
d1
Da
Passando ai logaritmi si ha
log
d2
d3
p log
d1
d2
d2
d
3
p
d1
log
d2
log
da cui
d3
d
2
In modo equivalente, p
d2
log
d1
log
Lavorando allo stesso modo sugli altri rapporti tra gli scarti abbiamo:
d3
d
4 ,
p
d2
log
d3
log
log
...
log
dn
d n +1
d n 1
dn
d n +1
d
n
In modo equivalente p
dn
log
d n 1
log
68
annamaria mazzia
n
1
2
3
4
5
6
7
8
9
dn (N-R)
1.41452687E+00
6.29766079E-01
1.40647107E-01
1.03024203E-02
5.75004640E-05
1.79436599E-09
p (N-R)
1.8526
1.7436
1.9849
1.9997
dn (R-F)
5.E-02
1.24070285E+00
8.55361810E-01
1.43968803E-01
6.13774024E-02
7.14459392E-03
2.10317362E-04
7.91146198E-07
9.06448250E-11
p (R-F)
-0.11581
4.7913
0.47845
2.5226
1.6392
1.5836
1.6254
69
Esercizi
5.14
Svolgimento
Per x0 = 1 si ha
(c)
k
0
1
2
3
Per x0 = 2.5 si ha
xk
1
5
9
45
g( xk )
5
9
45
1809
k
0
1
2
3
xk
2.5
2.75
2.8125
2.84765625
g( xk )
2.75
2.8125
2.84765625
2.870864868
70
annamaria mazzia
Svolgimento
(a) La funzione ammette valori opposti allestremo dellintervallo.
Infatti f (0.5) = 1.82944154 e f (2) = 3.07944154. Quindi, per il
teorema del valor intermedio, esiste almeno una radice. Inoltre
3
2x2 2x + 3
f 0 ( x ) = 2( x 1) + =
sempre positivo nellinterx
x
2
vallo dato, (la parabola 2x 2x + 3 ha discriminante negativo e
quindi sempre positiva). Perci, da f 0 ( x ) > 0 concludiamo che la
f crescente. Di qui lunicit della radice.
(b) Partendo da x0 = 0.5, il metodo di Newton-Raphson fornisce i
seguenti valori:
k
0
1
2
3
xk
0.50000000E+00
0.86588831E+00
0.99541173E+00
0.99999643E+00
f ( xk )
-0.18294415E+01
-0.41401211E+00
-0.13775443E-01
f 0 ( xk )
0.50000000E+01
0.31964267E+01
0.30046517E+01
| f 00 ( x3 )|
2| f 0 ( x3 )|
3
dove, nel caso specifico, vale f 0 ( x ) = 2( x 1) + e f 00 ( x ) =
x
3
2 2.
x
Usando il valore trovato per x3 si ricava M 0.16667004E + 00.
xk
f ( xk )
0
1
2
3
0.50000000E+00
0.86588831E+00
0.97291038E+00
0.99920448E+00
-0.18294415E+01
-0.41401211E+00
-0.81656072E-01
f ( x n ) f ( x n 1 )
x n x n 1
0.38684741E+01
0.31054906E+01
Svolgimento
Graficamente, da f ( x ) = 0 si ha sin ( x ) = 1 x. Se si studia
lintersezione delle due curve, sin ( x ) e 1 x nellintervallo [0, 1], si
pu osservare una sola intersezione, cio una sola radice della f (fare
il grafico delle due funzioni).
Analiticamente, la funzione f ( x ) assume valori di segno opposto
agli estremi dellintervallo dato:
f (0) = sin (0) + 0 1 = 1
f (1) = sin (1) + 1 1 = 0.8414709848
La derivata prima della f f 0 = cos ( x ) + 1: funzione continua
e sempre positiva nellintervallo [0, 1]. Quindi f una funzione
crescente e interseca lasse delle x solo una volta in [0, 1], vale a dire
ammette ununica radice.
(a) Da f ( x ) = 0 si ha sin ( x ) + x 1 = 0 o, equivalentemente,
sin ( x ) = 1 x, da cui x = arcsin (1 x ).
Consideriamo perci lo schema del punto fisso con g( x ) data da
1
g( x ) = arcsin (1 x ). La derivata di g( x ) g0 ( x ) = p
.
1 (1 x )2
Nellintervallo [0, 1] valgono le seguenti disuguaglianze:
0 x 1 = 0 x 1 = 1 1 x 0 =
= 1 (1 x )2 0 = 1 (1 x )2 0 = 0 1 (1 x )2 1 =
q
1
= 0 1 (1 x )2 1 = 1 p
1 (1 x )2
71
72
annamaria mazzia
sin ( x ) + x 1
.
cos ( x ) + 1
| x k +1 x k |
| x k x k 1 | 2
M2 =
| f 00 ( xk )|
2| f 0 ( xk )|
k
0
1
2
3
xk
0.1
0.50108517E+00
0.51096084E+00
0.51097343E+00
f ( xk )
-0.80016658E+00
-0.18537249E-01
-0.23565955E-04
-0.38737166E-10
f 0 ( xk )
0.19950042E+01
0.18770618E+01
0.18722750E+01
-
| x k x k 1 |
0.40108517E+00
0.98756733E-02
0.12586802E-04
Svolgimento
(a) Da f ( x ) = 0 si ricava ln ( x ) = x x2 , per cui graficamente si pu
vedere che le due curve si intersecano in un solo punto, che vale
= 1.
iter.
1
2
xs
0.7
0.7
f ( xs )
-0.566674944
-0.566674944
segno
-
xd
2.3
1.5
f ( xd )
3.822909123
1.155465108
segno
+
+
xc
1.5
1.1
xk
f ( xk )
1
2
3
1.002654656
1.000068720
1.000000046
0.5312842078E-02
0.1374413812E-03
f ( x k ) f ( x k 1 )
x k x k 1
0.2054513650E+01
0.2001364094E+01
f ( xc )
1.155465108
0.205310180
73
74
annamaria mazzia
Svolgimento
(a) La funzione continua e assume segni opposti agli estremi
dellintervallo.
f (0) = 1.09861228866811 > 0 f (2.5) = 1.94038421206458 < 0.
Quindi esiste almeno una radice.
Osserviamo che in questo esercizio richiesta solo lesistenza e
non esistenza e unicit della radice.
xk
1.00000000000000
0.1386294361E+01
0.1354628119E+01
0.1354392386E+01
f ( x k 1 )
f 0 ( x k 1 )
dk
0.3862943611E+00
-0.3801950159E-01
-0.2788886518E-03
-0.1000000000E+01
-0.1200631922E+01
-0.1183069825E+01
0.3862944E+00
0.3166624E-01
0.2357330E-03
| x3 x2 |
=
| x2 x1 |2
0.2350863. Per una stima dellerrore commesso, si pu utilizzare il fatto che, per il metodo di Newton-Raphson vale ek < dk e,
quindi, dire che e3 0.2357330E 03. Se si vuole essere particolarmente precisi, dalla relazione dk+1 ek (ricavata nellEsemd
pio 5.6), e considerando che k+2 1 M, abbiamo e3 d4 Md23 =
dk
2
0.2350863 (0.2357330E 03) = 1.306375E 08.
Usando gli scarti, la stima per la costante asintotica vale
75
76
annamaria mazzia
5.15
Domande di riepilogo
12. Si ricavi lordine di convergenza e la costante asintotica del metodo di Newton-Raphson nel caso in cui la radice ha molteplicit
2.
13. Cosa significa che una radice con molteplicit r (r intero
maggiore o uguale a 2) per una funzione f ?
14. Se una radice ha molteplicit r cosa succede al metodo di
Newton-Raphson? Cosa si deve fare per ripristinare lordine di
convergenza?
15. Si ricavi lordine di convergenza e la costante asintotica del metodo di Newton-Raphson nel caso in cui la radice un punto di
flesso non orizzontale e f 000 ( ) 6= 0.
16. Descrivere geometricamente il metodo delle secanti variabili
(detto anche Regula Falsi).
17. In genere che ordine ha il metodo delle secanti variabili e qual
la costante asintotica? (Dire solo i valori: non abbiamo dimostrato
nessun teorema.)
18. Se si applica il metodo delle secanti variabili per approssimare
una radice con molteplicit r, che ordine di convergenza ha il
metodo? (Dire solo che cosa succede.)
19. Qual la definizione di scarto alliterazione n?
20. Qual lindice di efficienza di un metodo iterativo?
21. Nel fare un grafico di convergenza in scala logaritmica sullasse
delle ordinate (sullasse delle ascisse si pongono gli indici delle
iterazioni e sullasse delle ordinate i logaritmi degli scarti), per un
metodo a convergenza lineare, cosa si pu dire sulla pendenza
della retta e perch?
22. Se non si conosce lordine di convergenza di un metodo e lo si
vuole ricavare facendo riferimento esclusivamente ai valori degli
scarti, quale formula va applicata? Da dove si ricava?
77
6 Interpolazione
6.1
Un problema reale
1
= a0 + a1 ln ( R) + a2 (ln ( R))2 + a3 (ln ( R))3
T
nota come equazione di Steinhart-Hart e nella quale T la temperatura (in Kelvin), R la resistenza (in Ohm), mentre a0 , a1 , a2 e a3 sono
le costanti della curva di calibrazione. Facendo un cambiamento di
1
variabile e, precisamente, ponendo y =
e x = ln ( R), la curva di
T
calibrazione diventa il polinomio
y = a0 + a1 x + a2 x 2 + a3 x 3
Se si riescono a calcolare le costanti a0 , a1 , a2 e a3 , allora si pu usare
la curva di calibrazione per trovare la temperatura al variare della
resistenza.
Supponiamo di essere in possesso dei dati espressi in Tabella 6.1
per un determinato termistore. Come possiamo usare questi valori
per trovare le costanti della curva di calibrazione? Per prima cosa, si
passa dai valori della temperatura in gradi Celsius ai gradi Kelvin,
mediante la formula K =o C + 273.15, poi dai valori R e T, passiamo
alle variabili x e y (costruendo la nuova Tabella, riportata di lato).
oC
Ohm
1101.0
25.113
911.3
30.131
636.0
40.120
451.1
50.128
Tabella 6.1: Valori di Resistenza e Temperatura di un termistore.
x = ln ( R)
y = 1/T
7.0040
3.3527103
6.8149
3.2973103
6.4552
3.1921103
6.1117
3.0933103
Tabella 6.2: Tabella con le nuove variabili x e
y.
80
annamaria mazzia
6.2
Interpolazione
Assumiamo che la funzione v di interpolazione sia una combinazione lineare di funzioni base di un qualche appropriato spazio di
funzioni, cio si possa scrivere come
v( x ) = c0 0 ( x ) + . . . + cn n ( x )
dove ci , i = 0, 1, . . . , n sono i coefficienti incogniti (o parametri) da
determinare in base ai dati in possesso, mentre i sono le funzioni
base che assumiamo linearmente indipendenti.
Esempi di interpolazione sono dati dallinterpolazione polinomiale,
dallinterpolazione polinomiale a tratti, dallinterpolazione trigonometrica. Noi ci limitiamo a studiare linterpolazione polinomiale e a
vedere dei cenni di interpolazione polinomiale a tratti.
Consideriamo, per prima, linterpolazione polinomiale: date n + 1
coppie di punti ( xi , yi ), per i = 0, 1, . . . , n, andremo a cercare un
polinomio p( x ) di grado n per cui p( xi ) = yi . Parleremo, dunque, di
polinomio di interpolazione p( x ) (v( x ) p( x )).
Il processo di interpolazione si basa su due stadi:
funzioni 0 , 1 , . . . , n
si dicolinearmente
indipendenti
se
c0 0 ( x ) + . . . cn n ( x ) 0 per ogni
x 6= 0 se e solo se tutti i coefficienti sono
nulli c0 = . . . = cn = 0.
Le
no
6.3
81
Interpolazione polinomiale
6.3.1
1
1
2
3
1
1
2
3
4
3
p2 ( x0 ) = c0 + 1c1 + 1c2 = 1
p2 ( x1 ) = c0 + 2c1 + 4c2 = 3
p2 ( x2 ) = c0 + 4c1 + 16c2 = 3
82
annamaria mazzia
pn ( x0 ) = y0 c0 + c1 x0 + c2 x02 + . . . + cn x0n = y0
p ( x ) = y1 c0 + c1 x1 + c2 x12 + . . . + cn x1n = y1
n 1
pn ( x2 ) = y2 c0 + c1 x2 + c2 x22 + . . . + cn x2n = y2
..
...
pn ( xn ) = yn c0 + c1 xn + c2 xn2 + . . . + cn xnn = yn
In forma compatta, sotto forma matriciale le equazioni del sistema si
possono scrivere come
1 x0 x02 . . . x0n
c0
y0
1 x
y
2 . . . xn c
x
1
1
1
1 1
1 x2 x22 . . . x2n c2 = y2
..
..
.. .. ..
..
.
.
.
. . .
2
1 xn xn . . . xnn
cn
yn
La matrice dei coefficienti una matrice ben nota in letteratura
e prende il nome di matrice di Vandermonde. una matrice con
determinante diverso da zero, e quindi il sistema ammette una ed una
sola soluzione. Osserviamo che la prima colonna ha tutti gli elementi
uguali a 1, la seconda colonna ha le ascisse dei punti di appoggio, la
terza colonna ha i quadrati di esse, e cos via.
6.3.2
83
Polinomi di Lagrange
Cos facendo i coefficienti ci non sono incognite! Bisogna ora capire come scrivere le
funzioni di base i ( x ).
p( x ) = pn ( x ) = y0 0 ( x ) + . . . yn n ( x )
Una base di funzioni che ci permette una simile rappresentazione
data dai polinomi di Lagrange.
I polinomi di Lagrange L j ( x ), per j = 0, 1, . . . , n sono polinomi di
grado n che, nei nodi xi , soddisfano la relazione
0 se i 6= j
L j ( xi ) =
1 se i = j
L j (x) =
(x x )
(x j xkk )
k =0
k6= j
w i = w1 + w2 + w3 + . . . + w n
i =1
n
L j (x) =
( x x0 ) ( x x j1 )( x x j+1 ) ( x xn )
x xk
=
( x j x0 ) ( x j x j1 )( x j x j+1 ) ( x j xn ) k
x
xk
=0 j
w i = w1 w2 w3 . . . w n
i =1
k6= j
Esempio Siano date le tre coppie di punti dellesempio precedente (1, 1), (2, 3), (4, 3). I polinomi di Lagrange sono:
( x 2)( x 4)
( x 2)( x 4)
=
(1 2)(1 4)
3
( x 1)( x 4)
( x 1)( x 4)
L1 ( x ) =
=
(2 1)(2 4)
2
( x 1)( x 2)
( x 1)( x 2)
L2 ( x ) =
=
(4 1)(4 2)
6
L0 ( x ) =
1
3
3
( x 2)( x 4) ( x 1)( x 4) + ( x 1)( x 2)
3
2
6
6.3.3
Formula dellerrore
84
annamaria mazzia
f (n+1) ( ( x ))
( n + 1) !
( x xi )
i =0
F(x) =
( x xk )
k =0
ovvero
f (t) p(t)
f ( n +1) ( )
=S=
F (t)
( n + 1) !
f (n+1) ( ( x ))
( n + 1) !
( x xk )
k =0
6.3.4
85
j ( x ) =
( x xi )
j = 0, 1, . . . , n
i =0
0 ( x ) = 1
1 ( x ) = ( x x0 ) = ( x 1)
2 ( x ) = ( x x0 )( x x1 ) = ( x 1)( x 2)
La condizione di interpolazione in x0 = 1 porta a:
f ( x0 ) = 1 = p2 ( x0 ) = p2 (1) = c0 0 (1) + c1 1 (1) + c2 2 (1) = c0 1 + c1 0 + c2 0
Quindi c1 = 1 = f ( x0 ).
In x1 = 2 abbiamo:
f ( x1 ) = 3 = p2 ( x1 ) = p2 (3) = f ( x0 ) + c1 1 (2) + c2 2 (2) = f ( x0 ) + c1 1 + c2 0
f ( x1 ) f ( x0 )
31
=
= 2. Chiamiamo
x1 x0
21
questa quantit differenza divisa del primo ordine tra x0 e x1 e la
indichiamo con f [ x0 , x1 ]. Quindi
Ricaviamo quindi c1 =
c1 = f [ x0 , x1 ] =
f ( x1 ) f ( x0 )
x1 x0
Infine,
f ( x2 ) = 3 = p2 ( x2 ) = p2 (4) = f ( x0 ) + f [ x0 , x1 ]1 (4) + c2 2 (4)
= f ( x0 ) + f [ x0 , x1 ](4 1) + c2 (4 1)(4 2)
Per ottenere una formula per c2 che abbia carattere generale, riscriviamo lequazione precedente utilizzando i simboli x0 , x1 , x2 per le
ascisse. In x1 si ha f ( x1 ) = p2 ( x1 ) = f ( x0 ) + f [ x0 , x1 ]( x1 x0 ).
86
annamaria mazzia
In x2 si ha f ( x2 ) = p2 ( x2 ) = f ( x0 ) + f [ x0 , x1 ]( x2 x0 ) + c2 ( x2
x0 )( x2 x1 ).
Sottraendo membro a membro la prima equazione dalla seconda si
ricava:
f ( x2 ) f ( x1 ) = f [ x0 , x1 ] [( x2 x0 ) ( x1 x0 )] + c2 ( x2 x0 )( x2 x1 )
vale a dire
f ( x2 ) f ( x1 ) = f [ x0 , x1 ]( x2 x1 ) + c2 ( x2 x0 )( x2 x1 )
Quindi
f ( x2 ) f ( x1 ) f [ x0 , x1 ]( x2 x1 ) = c2 ( x2 x0 )( x2 x1 )
f ( x2 ) f ( x1 )
x x1
f [ x0 , x1 ] 2
= c2 ( x2 x0 )
x2 x1
x2 x1
f ( x2 ) f ( x1 )
f [ x0 , x1 ] = c2 ( x2 x0 )
x2 x1
f ( x2 ) f ( x1 )
= f [ x1 , x2 ] la differenza divisa del primo ordine
x2 x1
tra x1 e x2 da cui
Ma
f [ x1 , x2 ] f [ x0 , x1 ] = c2 ( x2 x0 )
= c2 =
f [ x1 , x2 ] f [ x0 , x1 ]
x2 x0
f [ x1 , x2 ] f [ x0 , x1 ]
.
x2 x0
4
2
= . Quin6
3
di, p2 ( x ) = f ( x0 ) + f [ x0 , x1 ]( x x0 ) + f [ x0 , x1 , x2 ]( x x0 )( x x1 )
2
Nellesempio considerato: p2 ( x ) = 1 + 2( x 1) ( x 1)( x 2)
3
_
Da questo esempio, si pu vedere come la rappresentazione secondo Newton sia di tipo ricorsivo: il polinomio p1 ( x ) = f ( x0 ) +
f [ x0 , x1 ]( x x0 ) (che si ha arrestandosi ai primi due passi del procedimento appena effettuato) un polinomio, in tal caso una retta,
che interpola i dati ( x0 , y0 ), e ( x1 , y1 ). Il polinomio p2 ( x ) dato dalla
somma di p1 ( x ) e del termine f [ x0 , x1 , x2 ]( x x0 )( x x1 ). Quindi,
una volta determinato il polinomio pn1 che interpola i primi n dati,
possiamo usare questa rappresentazione per costruire pn che interpola
i dati precedenti cui si aggiunge la coppia ( xn , yn ).
Il coefficiente c j del polinomio interpolatore di Newton si chiama
differenza divisa di ordine j e viene indicata con f [ x0 , x1 , . . . , x j ].
Perci:
Facendo le opportune sostituzioni si ricava c2 =
f [ x0 ] = c0 , f [ x0 , x1 ] = c1 , . . . , f [ x0 , x1 , . . . , x n ] = c n
La notazione utilizzata ci permette di capire anche da quali coppie
di punti dipende il coefficiente c j .
87
f [ x i +1 , . . . x j ] f [ x i , . . . , x j 1 ]
x j xi
+ f [ x0 , x1 , . . . , xn ]( x x0 )( x x1 ) ( x xn1 )
Da un punto di vista computazionale i coefficienti si ricavano
mediante la tabella delle differenze divise, tenendo presente che per
calcolare f [ x0 , x1 , . . . , xn ] dobbiamo aver calcolato tutte le differenze
divise f [ x jk , . . . , x j ], con 0 k j n.
xi
x0
f []
f ( x0 )
f [, ]
f [ x0 , x1 ] =
x1
f [, , ]
f [, , , ]
f [ x1 ] f [ x0 ]
x1 x0
f ( x1 )
f [ x0 , x1 , x2 ] =
f [ x1 , x2 ] f [ x0 , x1 ]
=
x2 x0
f [ x1 , x2 ] =
f [ x2 ] f [ x1 ]
x2 x1
f [ x0 , x1 , x2 , x3 ] =
=
x2
f ( x2 )
f [ x0 , x1 , x2 , x3 , x4 ] =
f [ x3 ] f [ x2 ]
x3 x2
f ( x3 )
f [ x2 , x3 , x4 ] =
f [ x3 , x4 ] f [ x2 , x3 ]
=
x4 x2
f [ x3 , x4 ] =
..
.
f [ x4 ] f [ x3 ]
x4 x3
..
.
f ( x4 )
..
.
..
.
f [ x1 , x2 , x3 , x4 ] =
x4
f [ x1 , x2 , x3 ] =
f [ x2 , x3 ] f [ x1 , x2 ]
=
x3 x1
f [ x2 , x3 ] =
x3
f [, , , , ]
..
.
..
.
88
annamaria mazzia
f []
1
xi
1
f [, ]
31
=2
21
33
=0
42
02
2
=
41
3
2).
f [, , ]
2
Il polinomio p2 ( x ) si scrive: p2 ( x ) = 1 + 2( x 1) ( x 1)( x
3
f []
1
f [, ]
31
=2
21
3
33
=0
42
3
43
=1
54
f [, , ]
02
2
=
41
3
1
10
=
52
3
f [, , , ]
1 2
3
3 = 1
51
4
1
Il polinomio p3 ( x ) p3 ( x ) = p2 ( x ) + ( x 1)( x 2)( x 4).
4
f (k) ( )
k!
k +1 volte
f ( k ) ( x0 )
k!
Se al polinomio
pn+1 ( x ) = f ( x ) = pn ( x ) + f [ x0 , x1 , . . . , xn , x ]( x x0 )( x x1 ) . . . ( x xn ).
89
6.4
6.4.1
( x xi ) =
i =0
f [ x0 , x1 , . . . , x n , x ] ( x x i )
i =0
Fenomeno di Runge
5
3.846154e 2
0
1.
5
3.846154e 2
Costruiamo quindi il polinomio di interpolazione p2 ( x ) (utilizzando uno degli approcci proposti, monomiale, Lagrange o Newton, i
risultati non cambiano).
Raddoppiamo il numero dei punti aggiungendo un punto tra x0 e x1 e uno tra x1 e x2 . Abbiamo n + 1 = 5
e i valori della tabella
xi
yi = f ( xi )
5
3.846154e 2
2.5
1.379310e 1
0
1.
2.5
1.379310e 1
5
3.846154e 2
90
annamaria mazzia
Lesempio di Runge utile per capire che la scelta dei nodi equidistanti non si rivela sempre la scelta giusta e che occorrono altre
strategie nella scelta dei nodi per ottenere migliori risultati. Nellef (n+1) ( ( x ))
sempio di Runge, infatti, il rapporto
, che compare nella
( n + 1) !
formula dellerrore, cresce, al crescere di n, agli estremi dellintervallo
di interpolazione, perci aumentando il grado del polinomio di interpolazione, aumenta lerrore! Per indagare ulteriormente su questo
problema, si rimanda alla letteratura specializzata del settore.
6.4.2
1010.5
4
1011.5
2.5
1012.5
2.5
1013
2
1014
2
1015
0
91
6.5
Abbiamo visto, nellesempio di Runge, che linterpolazione polinomiale con nodi equidistanti non porta a una buona interpolazione,
in quanto lerrore, che dipende dalla derivata f n+1 ( x ), aumenta al
crescere di n. Nel caso dellesempio di Runge, una diversa scelta di
nodi pu portare a buoni risultati, ma resta il fatto che se il rapporto
f n +1 ( x )
aumenta al crescere di n, anche lerrore rimane elevato.
( n + 1) !
Aumentando il numero dei punti di appoggio, il polinomio di
interpolazione porta forti e irragionevoli oscillazioni al di fuori dellintervallo dei nodi, come si pu vedere nellesempio mostrato in
Figura 6.8.
A volte, se la funzione da interpolare continua a tratti, il termine
dellerrore pu essere ancora grande anche allinterno dellintervallo
dei nodi. In Figura 6.9, sono messi a confronto il polinomio di
interpolazione di grado n = 5 che interpola la funzione f ( x ) =
p
| x | + 1 prendendo 6 punti equidistanti nellintervallo [1, 1] e il
polinomio di interpolazione della funzione f ( x ) = e x nello stesso
intervallo e con gli stessi punti. Mentre nel caso della funzione
f ( x ) = e x il polinomio di interpolazione, nellintervallo dei nodi, si
p
sovrappone alla funzione interpolata, per la funzione f ( x ) = | x | + 1
lerrore ben evidente.
Figura 6.9:
p Interpolazione della funzione
f (x) =
| x | + 1 (a sinistra) e della funzione f ( x ) = e x (a destra) con n = 5
nellintervallo [1, 1]
92
annamaria mazzia
xi x xi+1 , i = 1, 2, . . . , m 1.
6.5.1
Il caso pi semplice da considerare prendere, su ciascun sottointervallo [ xi , xi+1 ] un polinomio di interpolazione lineare (grado n = 1),
quindi una retta. Allora la funzione v( x ) sar continua (ma non avr
le derivate continue) in tutto lintervallo.
Nellintervallo [ xi , xi+1 ], il polinomio di interpolazione si ( x ) si
pu costruire facilmente applicando, ad esempio, la formula delle
differenze divise di Newton, da cui si ( x ) = yi + f [ xi , xi+1 ]( x xi ).
Globalmente avremo v( x ) tale che
v( x ) = si ( x ) = yi + f [ xi , xi+1 ]( x xi ),
x i x x i +1 ,
i = 1, 2, . . . , m 1.
93
6.5.2
xi x xi+1 , i = 1, 2, . . . m 1
i = 1, 2, . . . , m 1
s i ( x i +1 ) = y i +1 ,
0
si ( xi+1 ) = si0+1 ( xi+1 ),
si00 ( xi+1 ) = si00+1 ( xi+1 ),
i = 1, 2, . . . , m 1
i = 1, 2, . . . , m 2
i = 1, 2, . . . , m 2
94
annamaria mazzia
rispettivamente: poich la derivata terza una costante (stiamo lavorando con polinomi cubici), questa condizione fa s che s1 = s2 e che
sm2 = sm1 e, in questo modo, il primo e lultimo nodo non sono
attivi.
Nel seguito, tratteremo solamente il caso delle spline cubiche
naturali, per la loro semplicit di implementazione.
Costruzione della spline cubica naturale. Passiamo ora a capire come si
ricavano i coefficienti incogniti, ponendo hi = xi+1 xi , i = 1, . . . , m
1: hi rappresenta lampiezza del sottointervallo i-simo [ xi , xi+1 ].
Dalla relazione di interpolazione si ( xi ) = yi si ricava facilmente
ai = yi ,
i = 1, 2, . . . , m 1
i = 1, 2, . . . , m 1
(6.1)
i = 1, 2, . . . , m 2
(6.2)
i = 1, 2, . . . , m 2
che si semplifica in
ci + 3di hi = ci+1 ,
i = 1, 2, . . . , m 2
95
Da questultima otteniamo
di =
c i +1 c i
,
3hi
i = 1, 2, . . . , m 2
(6.3)
i = 1, . . . , m 1
(6.4)
(c + 2ci+1 )hi
(2ci+1 + ci+2 )hi+1
f [ x i , x i +1 ] + i
= f [ x i +1 , x i +2 ]
3
3
Moltiplichiamo ambo i membri per 3 e
portiamo le differenze divise a destra.
(6.6)
cm2 hm2 + 2cm1 (hm2 + hm1 ) =3( f [ xm1 , xm ] f [ xm2 , xm1 ]),
(6.7)
96
annamaria mazzia
2( h1 + h2 )
h2
h2
0
2( h2 + h3 )
h3
..
.
h3
2( h3 + h4 )
..
.
0
h4
..
.
h m 3
0
2 ( h m 3 + h m 2 )
h m 2
A=
c=
0
..
.
0
c2
c3
..
.
c m 1
0
..
.
...
0
h m 2
2 ( h m 2 + h m 1 )
3( f [ x2 , x3 ] f [ x1 , x2 ])
3( f [ x3 , x4 ] f [ x2 , x3 ])
=
..
.
3( f [ xm1 , xm ] f [ xm2 , xm1 ])
6.5.3
c i +1 c i
3hi
Curve parametriche
97
( t1 , x1 ), ( t2 , x2 ) . . . ( t m , x m )
( t1 , y1 ), ( t2 , y2 ) . . . ( t m , y m )
In tal caso, possiamo approssimare la curva x mediante le condizioni
di interpolazione x (ti ) = xi mentre la curva y dovr verificare y(ti ) =
yi .
Se abbiamo m punti a disposizione, possiamo fissare i valori ti
i
come ti = i, per i = 1, 2, . . . , m (si pu anche scegliere ti =
):
m
limportante avere dei valori crescenti per la variabile t.
La curva in forma parametrica dunque espressa da ( x (t), y(t)).
Per costruire x (t) e y(t) usiamo le tecniche di interpolazione a tratti
(per esempio di interpolazione lineare a tratti o di spline cubiche a
tratti) in modo da ottenere il risultato finale. In figura 6.13 vediamo
un esempio di interpolazione lineare a tratti con gli stessi nodi usati
per ottenere la curva di figura 6.12.
6.6
Figura 6.13: Esempio di curva parametrica con interpolazione spline cubica a tratti
(stessi nodi della figura 6.12).
Esercizi
-1
9
0
0
2
0
3
15
4
84
Svolgimento
(a) La tabella delle differenza divise :
(b) Il polinomio di Newton di grado 4 che interpola i dati assegnati
dunque (prendendo i valori della diagonale principale della tabella)
p( x ) = 9 9( x + 1) + 3( x + 1) x + 0.5( x + 1) x ( x 2) + ( x + 1) x ( x 2)( x 3) =
= x4 3.5x3 + 3.5x2 x
98
annamaria mazzia
f (, )
f (, , )
f (, , , )
xi
-1
f ( xi )
9
09
= 9
0 (1)
00
=0
20
0+9
= 3
2 (1)
15
15 0
= 15
32
15 0
=5
30
53
= 0.5
3 (1)
84
84 15
= 69
43
69 15
= 27
42
27 5
11
=
40
2
0
1
0.1
0.48
0.8
1.32
1.2
5.32
Svolgimento
f (, )
f (, , )
xi
0
f ( xi )
1
0.1
0.48
0.48 1
= 5.2
0.1
0.8
1.32
1.32 0.48
= 1.2
0.7
1.2 + 5.2
=8
0.8
1.2
5.32
5.32 1.32
= 10
0.4
10 1.2
=8
1.1
f (, , , )
88
=0
1.2
f (, , , , )
11/2 1/2
=1
4 (1)
pn (0.6)
1
-2.12
0.28
p0n (0.6)
0
-5.2
3.6
( x 0.1)( x 0.8)
x2 0.9x + 0.08
=
(0.1)(0.8)
0.08
2
x ( x 0.8)
x 0.8x
L1 ( x ) =
=
0.1(0.1 0.8)
0.07
2
x ( x 0.1)
x 0.1x
L2 ( x ) =
=
0.8(0.8 0.1)
0.56
L0 ( x ) =
Il polinomio :
p2 ( x ) = 1L0 ( x ) + 0.48L1 ( x ) + 1.32L2 ( x )
x2 0.9x + 0.08
x2 0.8x
x2 0.1x
0.48
+ 1.32
0.08
0.07
0.56
= 12.5( x2 0.9x + 0.08) 6.857142857( x2 0.8x ) + 2.357142857( x2 0.1x )
e raccogliendo i termini
p2 ( x ) = 8x2 6x + 1
99
100
annamaria mazzia
Svolgimento
Costruiamo la tabella delle differenze divise tenendo presente che
le derivate di una funzione f si possono avere come limite delle
differenze divise:
f [0, 0] = f 0 (0) = 7
f 00 (0)
=9
2!
f [0, 0, 0] =
f [1, 1] = f 0 (1) = 60
2
f 0 (0)=7
f 00 (0)/2=9
2
f 0 (0)=7
2
27 2
=25
10
27
f 0 (1)= 60
25 7
=18
10
60 25
=35
10
18 9
=9
10
35 18
=17
10
17 9
=8
10
27
0.4
17.62
1
23.5
2.8
92.98
3.8
165.18
Svolgimento
La tabella delle differenze divise :
f (, )
f (, , )
xi
0.4
f ( xi )
17.62
1.
23.5
23.5 17.62
= 9.8
1 0.4
2.8
92.98
92.98 23.5
= 38.6
2.8 1
38.6 9.8
= 12
2.8 0.4
3.8
165.18
165.18 92.98
= 72.2
3.8 2.8
72.2 38.6
= 12
3.8 1
f (, , , )
12 12
=0
3.8 0.4
G
G
G
G
p0 ( x ) = 17.62
p1 ( x ) = p0 ( x ) + 9.8( x 0.4) = 17.62 + 9.8( x 0.4) = 9.8x + 13.7
p2 ( x ) = p1 ( x ) + 12( x 0.4)( x 1) = .... = 12x2 7x + 18.5
p3 ( x ) = p2 ( x ) + 0( x 0.4)( x 1)( x 2.8) = p2 ( x )
6.7
Domande di riepilogo
101
102
annamaria mazzia
7 Approssimazione
7.1
0.00000
1.472481
0.04200
2.418165
0.08000
3.363849
0.11800
4.309533
0.15600
5.255217
G
G
Figura 7.1:
sperimentali
Legge di Hooke:
i dati
Se si hanno a disposizione n = 100 dati, anche molto accurati, una funzione interpolante pu dare una buona idea localmente, mentre una funzione approssimante data
da una retta fornisce una migliore idea del
comportamento su lunga scala dei dati.
104
7.2
annamaria mazzia
1
1.2
2
2.3
3
4.5
4
5.1
5
7
6
8.5
7
10.2
8
13.1
9
12.5
10
16.5
S ( a0 , a1 ) =
[(a0 + a1 xi ) yi ]2
i =0
In questo caso, lo scarto sul dato i-simo rappresenta la differenza tra il valore dato yi e il
valore approssimato dal polinomio, a0 + a1 xi ,
vale a dire yi ( a0 + a1 xi ).
Per funzioni f ( x ) di una variabile reale, i punti di massimo o minimo si trovano tra i punti
critici della f , per i quali f 0 ( x ) = 0, studiando il segno della f 00 . Analogo procedimento
si segue per funzioni di due variabili. Per la
funzione S( a0 , a1 ) che stiamo studiando, si
pu provare che i valori ( a0 , a1 ) che annullano le derivate parziali della S rappresentano
i valori che minimizzano la S stessa. Questo argomento viene approfondito nei corsi di
Analisi Matematica.
0=
S( a0 , a1 )
=
a0
a0
S( a0 , a1 )
=
0=
a1
a1
i =0
n
i =0
n
[(a0 + a1 xi ) yi ]2 = 2 [(a0 + a1 xi ) yi ]
[(a0 + a1 xi ) yi ]
i =0
= 2 [( a0 + a1 xi ) yi ] xi
i =0
( n + 1) a + a n x = n y
0
1 i =0 i
i =0 i
a0 n x i + a1 n x 2 = n x i y i
i =0
i =0
i =0
105
f
rappresenta la
x
f
si
y
A22 b1 A12 b2
(n + 1) A22 A212
a1 =
(n + 1)b2 A12 b1
(n + 1) A22 A212
xi
yi
xi2
xi yi
1
2
3
4
5
6
7
8
9
10
1.2
2.3
4.5
5.1
7
8.5
10.2
13.1
12.5
16.5
1
4
9
16
25
36
49
64
81
100
1.2
4.6
13.5
20.4
35
51
71.4
104.8
112.5
165
A12 = 55
b1 = 80.9
A22 = 385
b2 = 579.4
a0 + a1 X = Y
Se invece sono affetti da errore le ascisse delle coppie di punti, si
pu cercare la retta che minimizza gli scarti orizzontali, detta anche
retta di regressione lineare sugli scarti orizzontali, (basta scambiare
il ruolo delle x con quello delle y per ricavare, con lo stesso procedimento, la retta p1 (y) = b0 + b1 y). Il baricentro dei punti assegnati
giace anche su questa retta, da cui possiamo concludere che esso
il punto di intersezione delle due rette che minimizzano gli scarti
verticali e orizzontali.
7.3
106
annamaria mazzia
La funzione da minimizzare
i2
n h
S( a0 , a1 , . . . , am ) = ( a0 + a1 xi + a2 xi2 + . . . + am xim ) yi
i =0
j = 0, 1, . . . , m
Ricaviamo, quindi
n
2 ( a0 + a1 xi + . . . + am xim yi ) xi = 0
j
per j = 0, 1, . . . , m
i =0
a0
x i + a1 x i
j
i =0
j +1
i =0
+ . . . + a m xi
j+m
i =0
xi yi
j
per j = 0, 1, . . . , m
i =0
1 x0 x02 . . . x0m
1 x1 x12 . . . x1m
A=
..
..
..
..
.
.
.
.
1
xn
xn2
...
xnm
7.4
modello esponenziale
modello potenza
7.5
Esercizi
-1
9
0
0
2
0
3
15
4
84
( n + 1) a + n x a = n y
0
i =0 i 1
i =0 i
n x i a0 + n x 2 a1 = n x i y i
i =0
i =0
i =0
107
108
annamaria mazzia
5a + 8a = 108
0
1
8a0 + 30a1 = 372
La soluzione a0 = 3.069767442, a1 = 11.581395349. La retta ai minimi quadrati che minimizza gli scarti verticali : y =
3.069767442 + 11.581395349x.
(b) Ricaviamo la retta di approssimazione che minimizza gli scarti
orizzontali.
( n + 1) b + n y b = n x
0
i =0 i 1
i =0 i
n yi b0 + n y2 b1 = n yi xi
i =0
i =0 i
i =0
5b + 108b = 8
0
1
108b0 + 7362b1 = 372
La soluzione b0 = 0.744452398, b1 = 0.03960868528. La retta
ai minimi quadrati che minimizza gli scarti orizzontali : x =
0.744452398 + 0.03960868528y.
(c) Troviamo il punto di intersezione delle due rette:
y = 3.069767442 + 11.581395349x
x = 0.744452398 + 0.03960868528y
Ricaviamo x = 1.6 e y = 21.6
Se calcoliamo il baricentro dei punti assegnati, troviamo
X=
1 + 2 + 3 + 4
4i=0 xi
=
= 1.6
5
5
Y=
9 + 15 + 84
4i=0 yi
=
) = 21.6
5
5
4.0
102.56
4.2
113.18
4.5
131.2
4.7
142
5.1
168
5.5
196.2
5.9
225
6.3
256.8
6.8
299.51
Svolgimento
Per trovare la curva di approssimazione del tipo y = ax b , dobbiamo
prima passare ai logaritmi:
log(y) = log( ax b ) = log( a) + b log( x )
7.1
325.6
log(yi )
4.630447993
4.728979472
4.876722876
4.955827058
5.123963980
5.279134547
5.416100402
5.548297572
5.702147806
5.785669634
Calcoliamo la retta di approssimazione ai minimi quadrati, ponendo Xi = log( xi ) e Yi = log(yi ). Il sistema da risolvere
( n + 1) a + n X a = n Y
0
i =0 i 1
i =0 i
n Xi a0 + n X 2 a1 = n Xi Yi
i =0
i =0
i =0
dove n + 1 = 10.
Si ha in=0 Xi = 16.6995268, in=0 Xi2 = 28.2537116, in=0 Yi =
52.0472913, in=0 Xi Yi = 87.6541085
Il sistema da risolvere diventa
0.2
15.02
1
15.5
2.4
40.98
3.4
78.38
Svolgimento
Per la curva di approssimazione y = cx d si passa ai logaritmi, in
modo da ricondursi allequazione della retta log y = log c + d log x.
Si pone poi Y = log y e X = log x; a0 = log c e a1 = d.
Considerando i logaritmi naturali si ha
Xi = [1.609437912434 0.0 0.8754687373539 1.223775431622]
109
110
annamaria mazzia
4a + 0.48980625654a = 13.52487560584
0
1
0.48980625654a0 + 4.854362211106a1 = 4.22768666781
Risolvendo si trova a0 = 3.3155400568494 da cui c = 27.537261656285
e a1 = d = 0.53636590986. La curva y = 27.537261656285x0.53636590986 .
7.6
Domande di riepilogo
8.1
Si consideri la capacit C di un conduttore. Dallelettrostatica, sappiamo che vale q = C dove q rappresenta la carica del conduttore e
il suo potenziale elettrostatico, quando il conduttore isolato. Nel
caso in cui il conduttore non sia isolato, la situazione cambia. Supponiamo di avere 4 conduttori in equilibrio elettrostatico allinterno
di una cavit collegata a terra (a terra il potenziale elettrostatico vale
zero). Supponendo di collegare i conduttori 2, 3 e 4 a terra, si ha
2 = 3 = 4 = 0 e 1 6= 0. Il conduttore 1 induce carica sugli altri
conduttori, per cui, per ciascun conduttore vale, rispettivamente:
q1 = C11 1
q2 = C21 1
q3 = C31 1
q4 = C41 1
Si ripete lo stesso discorso supponendo 2 6= 0 e tutti gli altri potenziali nulli. Poi sia 3 6= 0 e gli altri potenziali nulli. Infine 4 6= 0 e
tutti gli altri nulli.
La sovrapposizione dei 4 stati considerati corrisponde alla situazione in cui 1 , 2 , 3 , 4 sono tutti diversi da zero. Si ha perci:
q1 = C11 1 + C12 2 + C13 3 + C14 4
q2 = C21 1 + C22 2 + C23 3 + C24 4
q3 = C31 1 + C32 2 + C33 3 + C34 4
q4 = C41 1 + C42 2 + C43 3 + C44 4
I coefficienti Cii si chiamano coefficienti di capacit, mentre i coefficienti Cij , con j 6= i si chiamano coefficienti di induzione.
Si pu presentare il problema inverso: note le cariche qi , si vuole
determinare il valore dei i . Si deve quindi risolvere un sistema
lineare di 4 equazioni in 4 incognite.
Allinizio e alla fine abbiamo il mistero. Potremmo dire che abbiamo il disegno di Dio.
A questo mistero la matematica si avvicina,
senza penetrarlo.
Ennio De Giorgi
112
annamaria mazzia
..
= b1
= b2
= b3
.
= ..
(8.1)
= bn
8.2
Le equazioni i-sima e j-sima possono essere scambiate: la soluzione del sistema non cambia.
a11
a
21
a
A = aij =
31
..
.
an1
a12
a22
a32
..
.
an2
a13
a23
a33
..
.
an3
...
...
...
...
...
a1n
a2n
a3n
..
.
ann
GA + B = B + A
GA + O = O + A = A
G( A + B) = A + B
G(A) = () A
G( A + B ) + C = A + ( B + C )
G A + ( A) = A + A = O
G( + ) A = A + A
G1A = A
113
Esempio:
A=
2
3
10
1
5
0
114
annamaria mazzia
cij =
k =1
per i = 1, 2, . . . , n e j = 1, 2, . . . , p.
yi =
aij x j
per i = 2, . . . , n
j =1
G
G
In generale, AB 6= BA.
Esempio:
1
0
D=
0
0
0
2
0
0
0
0
0
1
0
0
5
0
Esempio:
1
0
I=
0
0
0
1
0
0
0
0
1
0
0
0
0
1
2
1
A=
0
0
0
1
2
1
0
0
0
1
2
1
0
0
0
1
2
1
Esempi:
1
U = 0
0
2
3.2
0
1
L= 2
3.4
5.3
4
10
0
21
5.7
0
0
4
0
0
1
2
115
G
G
G
A1 unica
A1 nonsigolare e ( A1 )1 = A
Se B non singolare, di dimensione n, allora ( AB)1 = B1 A1
Esempio:
A=
1
2
2
5
3
6
1
A = 2
3
2
5
6
4
2
6
Esempio:
Teorema 8.2.4 Valgono le seguenti propriet (per matrici per cui possibile eseguire le seguenti operazioni):
G( A )
G( AB)
T T
=A
T = BT AT
G( A + B ) = A + B
GSe esiste A allora ( A
T
1 ) T
= ( A T ) 1
G
G
1
A = 4
8
4
2
6
8
6
5
1
A = 4
8
T
8
6
5
116
annamaria mazzia
det( A) =
(fissato un qualunque i = 1, 2, . . . , n)
j =1
n
det( A) =
(fissato un qualunque j = 1, 2, . . . , n)
i =1
Il calcolo del determinante di una matrice di dimensione n richiede O(n!) moltiplicazioni. Quindi, anche per valori piccoli di n, le
operazioni da fare diventanto proibitive.
Teorema 8.2.5 Sia assegnata A una matrice quadrata di dimensione n.
G
G
G
G
G
G
1
det( A)
Se A una matrice triangolare superiore o triangolare inferiore o diagonale, allora det( A) = in=1 aii
8.3
Carl Friedrich Gauss fu un matematico e fisico tedesco (1777-1855) che ha dato il suo
contribuito in maniera significativa in numerosi campi: teoria dei numeri, analisi, geometria
differenziale, geodesia, magnetismo, astronomia, ottica. Al pari di Eulero, Newton e
Archimede considerato uno dei pi grandi
matematici della storia.
In suo onore stato dato il suo nome a
una nave di ricerca tedesca, a una montagna
(Gaussberg) in Antartide, a un cratere sulla luna, e allunit di misura della densit di
flusso magnetico o di induzione magnetica.
8.3.1
A=
a11
a12
a22
...
..
.
..
.
a1n
a2n
..
.
ann
a33 x3 + . . . . . . + a3n xn
..
a n 1 n 1 x n 1 + a n 1 n x n
ann xn
= b1
= b2
= b2
.
= ..
= bn 1
= bn
bi nj=i+1 aij x j
aii
1
bi ij
=1 aij x j
aii
117
118
8.3.2
annamaria mazzia
2 1 2
10
A = 4 1 2
b = 12
1 2 5
20
Le equazioni del sistema sono, dunque,
2x1 + x2 + 2x3 = 10
4x1 + x2 + 2x3 = 12
x1 + 2x2 + 5x3 = 20
Al primo passo del metodo, cerchiamo di annullare tutti i coefficienti dellincognita x1 nella seconda e terza equazione.
Dividiamo il coefficiente 4 che moltiplica x1 nella seconda equazione con il coefficiente 2 che moltiplica x1 nella prima equa4
zione. Otteniamo il valore = 2. Adesso moltiplichiamo per
2
questo valore (2) la prima equazione, ricavando
2 (2x1 + x2 + 2x3 = 10) = 4x1 + 2x2 + 4x3 = 20
Se ora facciamo la sottrazione tra la seconda equazione del
sistema e questa che abbiamo ricavato otteniamo
4x1 + x2 + 2x3 = 12
x2 2x3 = 8
Sostituiamo questa equazione alla seconda del sistema (il sistema rimane equivalente), ricavando
2x1 + x2 + 2x3 = 10
x2 2x3 = 8
x1 + 2x2 + 5x3 = 20
x1 + 2x2 + 5x3 = 20
1
1
(2x1 + x2 + 2x3 = 10) x1 + x2 + x3 = 5
2
2
3
x2 + 4x3 = 15
2
Sostituiamo questa equazione alla terza del sistema.
A questo punto il sistema
2x + x2 + 2x3 = 10
1
x2 2x3 = 8
3 x2 + 4x3 = 15
2
3
x2 + 4x3 = 15
2
3
3
( x2 2x3 = 8) x2 + 3x3 = 12
2
2
x3 = 3
2x1 + x2 + 2x3 = 10
x2 2x3 = 8
x3 = 3
Con tutte le trasformazioni effettuate, abbiamo trasformato il sistema di partenza in uno equivalente, che si pu risolvere facilmente
mediante sostituzioni allindietro. Dallultima equazione abbiamo
x3 = 3. Sostituendo questo valore nella seconda equazione otteniamo
x2 6 = 8 da cui x2 = 2. Infine, sostituendo i valori di x3 e x2
nella prima equazione abbiamo 2x1 + 2 + 6 = 10 da cui x1 = 1.
119
120
8.3.3
annamaria mazzia
a21
a21
( a x + a12 x2 + a13 x3 + . . . + a1n xn ) =
b =
a11 11 1
a11 1
( a22
a
a
a
a21
a ) x + ( a23 21 a13 ) x3 + . . . + ( a2n 21 a1n ) xn = b2 21 b1
a11 12 2
a11
a11
a11
a31
dalla terza
a11
...
sottraiamo la prima equazione moltiplicata per
equazione.
an1
dalla n-sima
a11
a11
a12
...
0
..
.
a22
..
.
(1)
...
(1)
an2
...
...
b1
x1
(1)
(1)
a2n x2 b2
.. .. =
.
. . ..
(1)
(1)
xn
ann
bn
a1n
Al secondo passo, consideriamo il sistema ridotto che si ha ignorando la prima equazione del sistema e la prima colonna della
nuova matrice che abbiamo ottenuta (che ha tutti 0 al di sotto
dellelemento diagonale).
121
plicata per
a32
(1)
a22
via.
(1)
(1)
(1)
0 a22
b (1)
a23 . . . a2n
x2
2
..
(
2
)
(
2
)
.
x3 = b3(2)
0
a
.
.
.
a
33
3n
.
..
..
.
.
.
..
..
..
.. . .
...
(1)
(2)
(2)
x
n
bn
0
0
a
... a
nn
n3
a11 a12 . . . . . .
a1n
b1
x1
(1)
(1)
(1)
b (1)
0 a22
a23 . . .
a2n
x2
2(2)
..
(2)
(2)
.
x
b3
0
a33 . . .
a3n
3 =
.
.. ..
.
.
..
..
.. . .
... ...
( n 1)
( n 1)
x
n
b
n
0
0
...
0 ann
8.4
Strategie di pivoting
(k)
pivoting parziale
| aqi
( i 1)
| = max | a ji
i jn
e si scambiano le righe i e q.
122
annamaria mazzia
pivoting totale
Nel pivoting totale, invece, la ricerca dellelemento pi grande
in tutta la sottomatrice che si ha considerando le colonne e le righe
rispettivamente a destra e sotto lelemento diagonale i-simo. Si
vanno quindi a cercare i pi piccoli interi q e r tali che
( i 1)
| aqr
( i 1)
| = max | a jk
i k,jn
Il maggiore sforzo computazionale garantisce maggiore accuratezza e stabilit nei risultati, nel senso che gli errori di arrotondamento
non sono cos amplificati come potrebbe succedere senza ladozione
di una tecnica di pivoting.
Esempio Consideriamo il sistema
x1 + x2 + x3 = 1
x1 + 1.0001x2 + 2x3 = 2
x1 + 2x2 + 2x3 = 1
x1 + x2 + x3 = 1
0.0001x2 + 1x3 = 1
1x2 + 1x3 = 0
e, infine, a
x1 + x2 + x3 = 1
0.0001x2 + 1x3 = 1
9999x3 = 10000
x1 + x2 + x3 = 1
1x2 + 1x3 = 0
0.0001x2 + 1x3 = 1
e, infine,
x1 + x2 + x3 = 1
1x2 + 1x3 = 0
0.9999x3 = 1
8.5
Fattorizzazione triangolare
Il metodo di eliminazione di Gauss, visto in forma matriciale, decompone la matrice A nel prodotto LU di due matrici, la L triangolare
inferiore, e la U triangolare superiore.
Ad ogni passo, infatti, il metodo di eliminazione pu essere visto
introducendo la matrice
0 1
. 0 1
.. ..
. . 0
1
( k 1)
a k +1 k
.. .. ..
. . .
1
( k 1)
(k)
M =
akk
( k 1)
. . .
a k +2 k
..
. . .
.
. . . ( k 1)
akk
. . .
..
..
.. .. ..
.
.
( k 1)
. . .
a
.. .. .. n k
1
( k 1)
akk
Le matrici intermedie che vengono generate sono date da A(k) =
M(k) A(k1) = M(k) M(k1) . . . M(1) A mentre il vettore termine noto
dato da b(k) = M(k) b(k1) = M(k) M(k1) M(1) b.
Dopo n 1 passi, avremo un sistema la cui matrice finale triangolare superiore (possiamo chiamare questa matrice U):
U = A ( n 1) = M ( n 1) . . . M (2) M (1) A
Per ritornare alla matrice di partenza A, possiamo moltiplicare ambo
i membri delluguaglianza appena scritta con la matrice data da
L = ( M ( n 1) M (2) M (1) ) 1 = [ M (1) ] 1 [ M ( n 2) ] 1 [ M ( n 1) ] 1
L triangolare inferiore con elementi dati dal prodotto delle matrici
M(k) generate durante leliminazione di Gauss. Otteniamo quindi
A = LU.
8.5.1
Fattorizzazione LDU
123
124
annamaria mazzia
a11 . . . a1k
.
..
.
.
.
ak1 . . . akk
Teorema 8.5.1 (LDU) Nellipotesi che tutti i minori principali di A, (per
i = 1, 2, . . . , n) siano non-singolari, allora la matrice A decomponibile in
maniera univoca nel prodotto A = LDU
Qualsiasi matrice non singolare pu essere condotta sotto una
forma tale da soddisfare il teorema LDU mediante opportuni scambi
di righe e di colonne (abbiamo visto cosa fare quando un elemento
pivotale nullo). Fare uno scambio di righe o di colonne significa
moltiplicare la matrice A con unopportuna matrice di permutazione.
Una matrice di permutazione P una matrice ottenuta dalla matrice identit operando scambi di righe o di colonne in modo che la
matrice risultante abbia esattamente un unico valore diverso da zero
su ogni riga e colonna, e tale valore sia uguale a 1.
Esempio Si consideri la matrice di permutazione P di dimensione 3 data da
1 0 0
P = 0 0 1
0 1 0
Qualunque sia la matrice A, di dimensione 3, moltiplicandola a
sinistra per P si ottiene lo scambio della seconda e terza riga di A;
invece, moltiplicandola a destra per P si ottiene lo scambio della
seconda e terza colonna di A:
PA = 0
0
a11
AP = a21
a31
0
0
1
0
a11
1 a21
0
a31
a12
a22
a32
a12
a22
a32
a13
1
a23 0
a33
0
0
0
1
a13
a11
a23 = a31
a33
a21
a12
a32
a22
a13
a33
a23
0
a11
1 = a21
0
a31
a13
a23
a33
a12
a22
a32
_
125
a11
a21
.
.
.
an1
a12
a22
..
.
an2
...
...
...
a1n
l11
a2n l21
..
= .
. ..
ann
ln1
0
l22
..
.
ln2
...
...
...
0
0
..
.
0
.
.
.
lnn
0
u12
1
..
.
0
...
...
...
u1n
u2n
..
.
1
Moltiplichiamo la prima riga di L per le colonne di U ed eguagliamo i termini con gli elementi della prima riga di A. Otteniamo:
l11 1 = a11
l11 u1k = a1k ,
k = 2, . . . , n
Quindi: l11 = a11 e u1k = a1k /l11 . Abbiamo ricavato gli elementi
della prima riga di L e U.
Moltiplicando le successive righe di L per le colonne di U ed
uguagliando i termini ai corrispondenti termini di A, abbiamo:
j 1
lij = aij
lim umj
i = 1, 2, . . . n
j = 1, 2, . . . , i
m =1
uij =
i 1
1
( aij lim umj )
lii
m =1
i = 1, 2, . . . , n 1
j = i + 1, . . . n
Si calcolano prima gli elementi della riga i-sima di L e poi quelli della
riga i-sima di U, per i = 1, 2, . . . , n.
Trovate le matrici L e U, il sistema di partenza Ax = b equivalente
a LUx = b.
Si pone, dunque, y = Ux, ottenendo il sistema Ly = b. Si ricava
facilmente y mediante sostituzione in avanti e da Ux = y si ricava x
mediante sostituzione allindietro.
Lo sforzo computazionale maggiore quindi quello per il calcolo
dei coefficienti di L e U.
8.5.2
Abbiamo visto che, a volte, il metodo di eliminazione di Gauss richiede scambi di righe per evitare divisioni per zero. Allo stesso modo, il
teorema di fattorizzazione LDU vale su matrici A non singolari o su
matrici ottenute da A mediante moltiplicazioni a sinistra o a destra
con opportune matrici di permutazione.
Ci chiediamo se esistono matrici per le quali il metodo di eliminazione di Gauss possa essere implementato senza scambi di righe e
126
annamaria mazzia
| aii | >
|aij |
per ogni
i = 1, 2, . . . , n.
j =0
j 6 =i
| a jj | >
|aij |
per ogni
j = 1, 2, . . . , n.
i =0
i6= j
Esempio
7 3
1
A = 2 10 2
5 0
6
A una matrice diagonalmente dominante in senso stretto per righe
poich vale:|7| > |3| + |1| = 4, |10| > |2| + | 2| = 4 e |6| > |5| + |0|.
Non diagonalmente dominante in senso stretto per colonne in
quanto sulla prima colonna si ha |7| = |2| + |5|.
_
Esempio
6 3 4
A= 3 9 5
4 5 11
A non diagonalmente dominante in senso stretto per righe poich,
sulla prima riga si ha |6| < |3| + | 4| = 7. Essendo simmetrica, la
matrice non pu essere neanche diagonalmente dominante in senso
stretto per colonne, perch la relazione che abbiamo sulla prima riga
vale sulla prima colonna.
_
Le definizioni appena date si possono rilassare, definendo le matrici
diagonalmente dominanti.
Una matrice A di dimensione n si dice diagonalmente dominante
per righe se vale la relazione
n
| aii |
|aij |
per ogni
i = 1, 2, . . . , n.
j =0
j 6 =i
127
Teorema 8.5.2 Se A una matrice diagonalmente dominante e non singolare, allora il metodo di eliminazione di Gauss pu essere implementato
senza alcuno scambio di righe e di colonne e i calcoli sono stabili rispetto
alla crescita degli errori di arrotondamento.
Teorema 8.5.3 Se A una matrice diagonalmente dominante in senso
stretto (per righe o per colonne), allora A non singolare. In questo caso il metodo di eliminazione di Gauss pu essere implementato senza alcuno
scambio di righe e di colonne e i calcoli sono stabili rispetto alla crescita
degli errori di arrotondamento.
Unaltra importante classe di matrici data dalle matrici definite
positive.
Definizione 8.5.4 Una matrice A di dimensione n si dice
G
G
a11 a12 . . . a1n
x1
a
a
.
.
.
a
21
22
2n x2
x1 x2 . . . x m
.
.
..
.
.
..
.
...
. ..
an1 an2 . . . ann
xm
nj=1 a1j x j
n
n n
j=1 a2j x j
=
xm
aij xi x j > 0
..
i =1 j =1
.
nj=1 anj x j
= x1
x2
...
G
G
128
annamaria mazzia
8.5.3
Fattorizzazione di Cholesky
129
l11 =
a11
ii
k =1
ik
j 1
lij =
1
(a
lik l jk )
l jj ij k
=1
j = 2, . . . , n
i = j + 1, . . . , n
.
Tale fattorizzazione prende il nome di fattorizzazione di Cholesky.
8.6
Esercizi
Esercizio
data la matrice
8.6.1 Sia
1 0 2
A = 0 4 8
2 8 29
Provare che verifica le condizioni del teorema LDU e trovare i fattori L
e L T tali che A = LL T .
Svolgimento
La matrice A simmetrica
! e soddisfa le ipotesi del teorema LDU (
1 0
infatti | a11 | = 1, det
= 4 e det( A) = 116 16 64 = 36) per
0 4
cui possibile scrivere la matrice A come A = LL T . Si ha, quindi:
2
l11 0
0
l11 l21 l31
l11
l11 l21
l11 l31
2 + l2
l21
l21 l31 + l22 l32
l21 l22 0 0 l22 l32 = l21 l11
22
2 + l2 + l2
l31 l32 l33
0
0 l33
l31 l11 l31 l21 + l32 l22 l31
32
33
Devono quindi valere le relazioni:
2
l11
= 1 = l11 = 1
2
+ l22
= 4 = l22 = 4 0 = 2
2
2
2
l31
+ l32
+ l33
= 29 = l33 = 29 22 42 = 29 4 16 = 9 = 3
130
annamaria mazzia
La matrice
1 0
0 2
2 4
L dunque
0
3
Esercizio
8.6.2 Data la matrice
0.2 1
0.2
A = 1 6.5 1.75
0
2 2.25
(a) verificare che A soddisfa le condizioni del teorema LDU;
(b) fattorizzare secondo Crout A = LU (prendendo uii = 1);
(c) usare la fattorizzazione per calcolare det ( A2 );
(d) usare la fattorizzazione per risolvere il sistema Ax = b, con b T =
(2.8 19.25 10.75)T .
Svolgimento
(a) La matrice verifica le condizioni del teorema LDU in quanto i
minori principali costruiti a partire dallangolo superiore sinistro
hanno tutti determinante diverso da zero:
!
0.2 1
a11 = 0.2 6= 0
det
= 0.3 6= 0
det A = 0.375 6= 0
1 6.5
(b) La fattorizzazione di A come A = LU
0.2 1
0.2
l11
si costruisce imponendo:
0
0
1 u12 u13
l22 0 0 1 u23
l32 l33
0 0
1
0.2 0
0
L = 1 1.5
0
0
2 1.25
U = 0
0
5
1
0
0.5
1
0.2
1
0
0
y1
2.8
y1 = 2.8/0.2 = 14
1.25
y3
10.75
y3 = (10.75 2 3.5)1.25 = 3
0
1.5
2
0
0
5
1
0
1
x1
14
x3 = 3
0.5 x2 = 3.5 = x2 = 3.5 3 0.5 = 2
1
x3
3
x1 = 14 3 5 2 = 1
Quindi x = (1, 2, 3) T .
Esercizio
8.6.3 Sia data la
matrice
2 0.5
0.5
A = 0
1
1
1 0.5 10.5
(a) Calcolare k Ak (norma massima per righe), k Ak1 (norma massima
per colonne) e norma F ( A) (norma di Frobenius).
(b) Fattorizzare la matrice A nel prodotto LU (con lii = 1).
(c) Utilizzando la fattorizzazione trovata, risolvere il sistema lineare
Ax = b con b = [4.5, 1, 31.5] T , e calcolare il determinante di A2 .
Svolgimento
(a) Applicando le definizioni per le diverse norme abbiamo: k Ak =
max (3, 2, 12) = 12,
k Ak1 = max (3, 2, 12) = 12,
1
0 0
u11 u12 u13
2 0.5
0.5
1
1
l21 1 0 0 u22 u23 = 0
l31 l32 1
0
0 u33
1 0.5 10.5
vale a dire
u11
l
21 u11
l31 u11
u12
l21 u12 + u22
l31 u12 + l32 u22
u13
2
=
l21 u13 + u23
0
l31 u13 + l32 u23 + u33
1
0.5
1
0.5
0.5
1
10.5
131
132
annamaria mazzia
u12 = 0.5
u22 = 1
u13 = 0.5
u23 = 1
Inoltre
l31 2 = 1 = l31 = 0.5
0.5 0.5 + l32 = 0.5 = l32 = 0.75
u33 = 9.5
Quindi le due matrici sono
L=0
0.5
0
0
1
0
0.75 1
U = 0
0
0.5
1
0
0.5
1
9.5
Ux = y
b = LUx = b =
.
Ly = b
Ly = b = 0
0.5
Ux = y = 0
0
0.5
1
0
0
0
y1
4.5
y1 = 4.5
1
0 y2 = 1 = y2 = 1
31.5
0.75 1
y3
y3 = 28.5
0.5
4.5
x1
x3 = 3
1 x2 = 1 = x2 = 2
9.5
x3
28.5
x1 = 1
1
= x = 2
3
Esercizio
lineareAx =
b dove:
8.6.4 dato il sistema
16 8
4
20
A = 8 20
b = 28
4
4
4 12.25
28.25
(a) Provare che la matrice definita positiva.
(b) Fattorizzare la matrice secondo Cholesky: A = LL T .
(c) Usare la fattorizzazione per risolvere il sistema Ax = b e per
calcolare det( A3 ).
Svolgimento
(a) La matrice simmetrica, definita positiva in quanto gli elementi della diagonale principale sono tutti positivi e la matrice
diagonalmente dominante in senso stretto:
16 > | 8| + |4| = 12
20 > | 8| + |4| = 12
12.25 > |4| + |4| = 8
(b) Ponendo A = LL T si ricava:
2
l11
= 16 = l11 = 4
2
2
l21
+ l22
= 20 = l22 = 20 4 = 4
2
l31
2
2
+ l32
+ l33
= 12.25 = l33 = 12.25 1 2.25 = 9 = 3
La matrice L dunque
4
0 0
L = 2 4 0
1 1.5 3
(c) Per risolvere il sistema Ax = b, adoperiamo il metodo di sostituzione in avanti e allindietro risolvendo i sistemi: Ly = b e poi
L T x = y.
Il primo sistema d:
4
0 0
y1
20
2 4 0 y2 = 28
y3
28.25
1 1.5 3
e otteniamo y1 = 20/4 = 5, y2 = (28 + 10)/4 = 9.5, y3 = (28.25
5 14.25)/3 = 3.
Nel risolvere il sistema L T x = y si ha
4 2 1
x1
5
0 4 1.5 x2 = 9.5
0 0
3
x3
3
da cui x3 = 1, x2 = (9.5 1.5)/4 = 2, x1 = (5 1 + 4)/4 = 2,
quindi x = (2, 2, 1).
Inoltre, da det( A) = det( LL T ) = det( L)2 = (4 4 3)2 = 482 =
2304 e da det( A3 ) = (det( A))3 si ha det( A3 ) = 23043 = 12230590464.
8.7
Domande di riepilogo
133
134
annamaria mazzia
9.1
9.2
Metodi iterativi
136
annamaria mazzia
9.3
Norme di vettori
G
G
G
G
G
G
Norma
euclidea
(o
norma
l
),
indicata
con
k
k
:
k
x
k
=
xT x =
2
2
2
q
n
i =1 | x i | 2
k x k k x k2 n k x k
k x k k x k1 n k x k
Esempio Il vettore x = (1, 5, 20) T ha norme:
137
x T y k x k2 k y k2
n
k x y k1 =
| xi yi |
i =1
kx yk = max | xi yi |
1 i n
s
n
k x y k2 =
| x i y i |2
i =1
9.4
Norme di matrici
G
G
G
G
G
138
annamaria mazzia
k Axk k Akkxk
Alcune norme su matrici sono generate da norme su vettori: si
parla allora di norma naturale o indotta dalla norma di vettori.
n
Norma 1: k Ak1 = max j in=1 | aij | (data dal massimo sulla somma
delle colonne)
Norma infinito: k Ak =
somma delle righe)
maxi nj=1
T A)
tr ( AA T ) =
ni=1 | aij |2 .
j =1
k Axk
k Axk
max
= k Ak
kxk
x6=0 k x k
da cui
k Axk k Akkxk
Se invece il vettore x il vettore nullo, la relazione di compatibilit
ovvia. 4
9.5
Autovalori e autovettori
k Ayk
. Infatti,
kyk
preso un qualunque vettore y 6= 0, si pu
considerare il vettore x = y/kyk che ha
data da k Ak = maxy6=0
y
k Ak = max k Axk = max
A
kyk
y6=0
kxk=1
da cui
k Ak = max
y6=0
G N( A) = ptr( A
Una definizione alternativa a quella che abbiamo dato per la norma naturale su matrici
k Ayk
kyk
139
( A I )x = 0
Poich x 6= 0 e il termine noto del sistema il vettore di tutti zeri, il
determinante della matrice del sistema deve necessariamente essere
uguale a zero, cio det ( A I ) = 0.
Lo sviluppo del determinante porta a un polinomio di grado n
nellincognita :
n tr ( A)n1 + . . . + (1)n det ( A) = 0
Questo polinomio si chiama polinomio caratteristico. Le sue n radici,
che chiamiamo 1 , 2 , . . . , n , sono gli n autovalori della matrice A.
Per le propriet dei polinomi vale:
n
i =1
i = det ( A)
i =1
Rn ,
140
annamaria mazzia
max
autovalore di A
||
G k Ak
p
= ( A T A ).
Inoltre, per ogni norma naturale, vale il risultato
2
( A) k Ak
Matrici convergenti. Nello studiare i metodi iterativi per risolvere
i sistemi lineari, sar di particolare importanza sapere quando le
potenze di una matrice tendono alla matrice nulla. Matrici A, per cui
( Ak )ij 0 per k , qualunque sia i, j = 1, 2, . . . , n, (consideriamo
A A A k volte e gli elementi della matrice risultante tendono a
zero per k ) si dicono matrici convergenti. Diciamo che una
matrice A di dimensione n convergente se
lim ( Ak )ij = 0, i, j = 1, 2, . . . , n
Si ha il seguente teorema.
Teorema 9.5.1 Data una matrice A di dimensione n, sono equivalenti le
seguenti proposizioni
1. A una matrice convergente.
2. limk k Ak k = 0, per qualche norma naturale.
3. limk k Ak k = 0, per tutte le norme naturali.
4. ( A) < 1.
5. limk Ak x = 0, qualunque sia il vettore x.
9.6
Metodi classici
Si parte da unapprossimazione iniziale x(0) , commettendo unerrore e(0) = x x(0) . Lerrore e(0) soluzione del sistema Ae(0) =
b Ax(0) = r(0) , dove r(0) il residuo (ci che resta fuori, ci dice
di quanto il vettore Ax(0) si discosta da b).
141
k = 0, 1, . . . .
O, equivalentemente,
x ( k +1) = ( I M 1 A ) x ( k ) + M 1 b
k = 0, 1, . . .
9.6.1
Convergenza
(k)
= Ee(k1)
Il vettore soluzione x punto fisso della funzione vettoriale g(x) = Ex + q. Infatti ponendo E = I M1 A e q = M1 b si
ha Ex + q = ( I M1 A)x + M1 b =
x M1 Ax + M1 b. Dal momento che x
il vettore soluzione si ha Ax = b perci la
relazione precedente diventa
Ex + q = x M1 b + M1 b = x. Il
vettore soluzione punto fisso!
142
annamaria mazzia
k0
= 1 E k u (1) + 2 E k u (2) + . . . + n E k u ( n )
= 1 1k u(1) + 2 2k u(2) + . . . + n kn u(n)
mettiamo in evidenza 1k
1k
1 u
(1)
+ 2
per k si ha
1k 1 u(1)
2k
1k
ik
1k
(2)
k
+ . . . + n nk u(n)
1
0 per i = 2, 3, . . . , n
143
9.6.2
Oltre a sapere che lo schema iterativo converge, importante conoscere quanto velocemente lo schema converge. A tal proposito osserviamo che, in condizioni asintotiche (per k +) vale il seguente
risultato
k e ( k ) k ( E ) k k e (0) k
(9.1)
k e(k) k
( E)
k e ( k 1) k
Ricaviamo, quindi, che il metodo iterativo ha convergenza lineare
con costante asintotica uguale al raggio spettrale della matrice di
iterazione.
La relazione appena trovata utile per stabilire quanto veloce il
metodo iterativo per approssimare la soluzione del sistema con una
certa accuratezza. Ad esempio, vogliamo stabilire a priori quante
iterazioni occorrono per ridurre la norma dellerrore iniziale di un
certo fattore, ad esempio 10 (il che vuol dire ridurre lerrore di un
ordine di grandezza). Vogliamo dunque capire quale deve essere il
k e (0) k
valore di k per cui ke(k) k =
. Ma ke(k) k ( E)k ke(0) k da cui
10
( E ) k k e (0) k
1
k e (0) k
= ( E)k
10
10
1
log10 (( E))
log10 (( Ek ))
k
144
annamaria mazzia
log10 (e)
R
9.6.3
I metodi
145
In questo modo facile ricavare i metodi iterativi di Jacobi, GaussSeidel e di rilassamento, che sono i metodi iterativi classici per la
soluzione di sistemi lineari.
Lipotesi da fare che A abbia elementi diagonali diversi da zero (aii 6= 0 per i = 1, 2, . . . , n, n, da cui la matrice diagonale D
invertibile).
Se la matrice A simmetrica, definita positiva, necessariamente
aii 6= 0. Altrimenti, poich A non singolare (se cos non fosse
non potremmo risolvere il sistema), le equazioni del sistema possono
essere riordinate in modo da avere la matrice risultante con elementi
diagonali diversi da zero.
9.6.4
Il metodo di Jacobi
x ( k +1) = E J x ( k ) + D 1 b
x ( k +1) = D 1 ( L + U ) x ( k ) + D 1 b
Per ricavare questo schema, si pu partire dal sistema lineare Ax = b
e scrivere la matrice A come L + D + U. Si ha
( L + D + U )x = b
si porta a secondo membro ( L + U )x
Dx = ( L + U )x + b
si moltiplicano ambo i membri per linversa della matrice D
x = D 1 ( L + U ) x + D 1 b
si innesca il metodo iterativo considerando il vettore x
a primo membro alliterazione k + 1
a secondo membro alliterazione k
x
( k +1)
= D 1 ( L + U ) x ( k ) + D 1 b
(k)
( D 1 )ii
( k +1)
xi
1
aii
bi
(( L+U )x
n
)i
(k)
aij x j
j=1,j6=i
o, equivalentemente,
( D 1 )ii
( k +1)
xi
1
aii
( Lx(k) )i
i
(k)
bi
aij x j
j =1
(Ux(k) )i
n
j = i +1
(k)
aij x j
per i = 1, . . . , n
146
annamaria mazzia
.
= ..
.
= ..
..
.
..
.
1
[b ( a12 x2 + a13 x3 + . . . + a1n xn )]
a11 1
1
x2 =
[b2 ( a21 x1 + a23 x3 + . . . + a2n xn )]
a22
..
..
.=
.
x1 =
1
[b ( ai1 x1 + ai2 x2 + . . . + aii1 xi1 + aii+1 xi+1 + . . . + ain xn )]
aii i
..
..
.=
.
xi =
xn =
1
[bn ( an1 x1 + an2 x2 + an3 x3 + . . . + ann1 xn1 )]
ann
147
9.6.5
Il Metodo di Gauss-Seidel
( L + D + U )x = b
si porta a secondo membro Ux
( D + L)x = Ux + b
si moltiplicano ambo i membri per linversa della matrice ( D + L)
x = ( D + L)1 Ux + ( D + L)1 b
si innesca il metodo iterativo considerando il vettore x
a primo membro alliterazione k + 1
a secondo membro alliterazione k
x
( k +1)
( D + L)x(k+1) = b Ux(k)
Dx(k+1) = b Lx(k+1) Ux(k)
da cui
x(k+1) = D 1 b Lx(k+1) Ux(k)
Componente per componente si ha
148
annamaria mazzia
( k +1)
xi
"
#
i 1
n
1
( k +1)
(k)
=
b
aij x j
aij x j
aii i j
=1
j = i +1
per i = 1, . . . , n
( k +1)
( k +1)
valore xi
. Dalle equazioni del sistema, ragionando come per il
metodo di Jacobi, possiamo quindi scrivere:
( k +1)
(k)
(k)
(k)
a11 x1
= b1 a12 x2 + a13 x3 + . . . + a1n xn
( k +1)
( k +1)
(k)
(k)
a22 x2
= b2 a21 x1
+ a23 x3 + . . . + a2n xn
..
.=
( k +1)
aii xi
( k +1)
( k +1)
( k +1)
(k)
(k)
= bi ai1 x1
+ ai2 x2
+ . . . + aii1 xi1 + aii+1 xi+1 + . . . + ain xn
..
.=
( k +1)
ann xn
..
.
..
.
( k +1)
( k +1)
( k +1)
( k +1)
= bn an1 x1
+ an2 x2
+ an3 x3
+ . . . + ann1 xn1
9.6.6
Il metodo di rilassamento
Ciascuno dei metodi di Jacobi e Gauss-Seidel pu essere anche rilassato tramite un fattore in modo che la nuova approssimazione
( k +1)
xR
sia ottenuta come una combinazione di x(k+1) e x(k) mediante
il fattore . In particolare:
( k +1)
xR
(1 )x(k) + x(k+1)
mento x R
notazione.
( k +1)
xi
(k)
(1 ) x i
"
#
i 1
n
( k +1)
(k)
+
b
aij x j
aij x j
aii i j
=1
j = i +1
per i = 1, . . . , n
149
150
9.6.7
annamaria mazzia
matrice
E J = I D 1 A = D 1 ( L + U )
ES = I ( D + L)1 A = ( D + L)1 U
E = I ( D + L)1 A
G
G
Q
.
R
Un altro interessante teorema mette in relazione il metodo di rilassamento con i metodi di Jacobi e di Gauss-Seidel, sia per quanto
riguarda la convergenza, sia per quanto riguarda il valore ottimale
del parametro , in corrispondenza di matrici A che godono della
cosidetta propriet A e che siano coerentemente ordinate.
151
Definizione 9.6.1 Una matrice A, di dimensione n, si dice che ha propriet A se esiste una matrice di permutazione
P tale che la matrice PAP T
!
D1 A1
abbia la forma PAP T =
dove D1 e D2 sono matrici diagonali.
A2 D2
Una matrice con propriet A pu essere anche chiamata matrice
biciclica.
In modo equivalente, si pu dire che una matrice A, di dimensione
n, ha propriet A se linsieme dei numeri naturali {1, 2, . . . , n} pu
essere scomposto in due sottoinsiemi non vuoti e complementari S
e T in modo tale che i coefficienti non nulli aij 6= 0 si hanno se gli
indici i e j sono coincidenti tra loro, cio i = j, oppure se gli indici
i e j non appartengono allo stesso insieme S o T, vale a dire che se
lindice i S allora j T, oppure se i T allora j S.
2 1 0
0
1 2 1 0
A=
0 1 2 1
0
0 1 2
ha propriet A (o biciclica): permutando la prima e quarta riga e
la prima e quarta colonna, mediante la matrice di permutazione
0 0 0 1
0 1 0 0
P=
si ha
0 0 1 0
1 0 0 0
2
0
PAP T =
1
0
0
2
1
1
1 0
1 1
= D1 = D2 =
2
0
0
2
2
0
0
2
G
G
se j > i allora q j qi = 1
se j < i allora q j qi = 1
Considerando la matrice dellesempio precedente, si pu prendere il vettore di ordinamento q = (q1 , q2 , q3 , q4 ) = (1, 2, 3, 4). Si verifica infatti, per a12 , q2 q1 = 2 1 = 1; per
a21 , q1 q2 = 1 2 = 1 e cos via per
gli altri elementi non nulli. Quindi la matrice
coerentemente ordinata.
152
annamaria mazzia
opt =
1+
1 ( E J )2
( Eopt ) = opt 1
9.7
Esercizi
Esercizio
9.7.1
8 2
A = 7 5
1 0
Siadato il sistema
lineare Ax = b, dove
6
30
0 b = 34
5
7
1
5 bicicli3
ca e coerentemente ordinata.
Infattisi ri2
0
conosce la matrice D1 =
, la
0 3
1
matrice D2 = 3 , mentre A1 =
e
5
A2 = 1 2 .
2
La matrice A = 0
1
1
La matrice A = 1
0
0
3
2
2
3
5
0
2 tridiago6
nale (gli elementi non nulli sono sulla diagonale principale e sulle diagonali immediatamente sopra e sotto la diagonale principale).
Quindi biciclica e coerentemente ordinata.
2
5
0
6
0
5
0
2/8 6/8
0
1/4 3/4
E J = 7/5
0
0 = 7/5
0
0
1/5
0
0
1/5
0
0
Troviamo gli autovalori della matrice E J imponendo det ( E J I ) =
0.
7/5
1/5
1/4 3/4
1 7
3 1
0 = 3 + + = 0
4 5
4 5
0
3
7
+ ),
20 20
1
( k +1)
(k)
(k)
x1
= (30 2x2 6x3 )
(b)
1
( k +1)
(k)
x2
= (34 7x1 )
x ( k +1) = 1 (7 x ( k ) )
3
1
5
x(1k)
x(2k)
x(3k)
0
1
2
0
3.75
1.0
0
6.8
1.55
0
1.4
0.65
153
154
annamaria mazzia
Lo schema di Seidel :
2
3
1
1
( k +1)
( k +1)
x2
= (34 7x1
)
( k +1)
1
( k +1)
x
)
= (7 x1
3
5
(k)
x1
0
3.75
2.875
(k)
x2
0
1.55
2.775
(k)
x3
0
0.65
0.825
Esercizio
9.7.2 Dato
il sistema Ax = b con
5 0 10
A = 0 3 15
2 1
(a) dire per quali valori di il metodo di Jacobi converge.
(b) trovare il valore di in corrispondenza del quale il metodo SOR ha
un valore di omega ottimo opt = 3/2. Per tale valore trovare la
velocit asintotica di convergenza del metodo SOR.
Svolgimento
(a) La matrice dipende dal parametro quindi a priori non possiamo
dire se Jacobi converge o meno.
Scriviamo la matrice di iterazione del metodo di Jacobi come
1/5
0
0
0 0 10
0
E J = D 1 ( L + U ) = 0
1/3
0 0 0 15 = 0
0
0
1/
2 1 0
2/
0
0
1/
5 = 0 vale a dire 3 +
0
2/ 1/
3
Ricaviamo gli autovalori = 0 e = .
3
Perch ci sia convergenza deve dunque essere < 1 ovvero
, valida perch
1 + 1 ( E J )2
la matrice biciclica e coerentemente ordinata e dal momento che
gli autovalori della matrice di Jacobi sono reali e, in valore assoluto,
minori di uno, si ha:
1+
2
3
1
8
9
81
= = = 1 9/ =
= = =
= 10.125
2
3
9
8
1 9/
5
0
3
= 1.5 segue opt = opt 1 = 0.5, da cui R =
2
log10 (opt ) = 0.3010299957.
Da opt =
Esercizio
lineare
il sistema
Ax = b dove:
9.7.3 Dato
9
6 1 3
b=3
A = 1 8 2
4 3 10
14
(a) Dallesame della matrice, dire se il metodo di GaussSeidel
converge.
(b) Partendo dal vettore iniziale x (0) =
x (1) , x (2) , x (3) con il metodo di GaussSeidel.
Svolgimento
(a) La matrice diagonalmente dominante in senso stretto (per righe
e per colonne), quindi il metodo di Gauss-Seidel converge.
(b) Lo schema di Seidel :
1
( k +1)
(k)
(k)
x1
= (9 x2 3x3 )
1
( k +1)
( k +1)
( k +1)
= (3 x1
)
x2
2x3
k=1
k=2
k=3
1.50000000000000
x1 = 0.187500000000000
0.743750000000000
1.09687500000000
x2 = 5.195312499999999E 002
0.945664062500000
1.01850911458333
x3 = 1.127034505208335E 002
0.989215250651042
155
156
annamaria mazzia
0.403125000000000
d2 = x2 x1 = 0.135546875000000
0.201914062500000
7.836588541666667E 002
d3 = x3 x2 = 4.068277994791664E 002
4.355118815104175E 002
La scelta della norma vettoriale da utilizzare indifferente (abbiamo studiato norme vettoriali equivalenti e quindi il risultato che
otterremo andr bene qualunque sia la norma vettoriale che applicheremo). Se scegliamo, ad esempio, di usare la norma euclidea
dei vettori, abbiamo M = 0.209119. Se invece usiamo la norma
infinito abbiamo M = 0.194396.
La velocit di convergenza R pu essere quindi stimanta applicando la formula R = log10 ( M ) e abbiamo il valore 0.679607
o 0.711313 a seconda che consideriamo la stima di M ottenuta
mediante la norma euclidea o la norma infinito.
9.8
Domande di riepilogo
157
158
annamaria mazzia
10.1
Diversi problemi che si incontrano nei pi svariati campi dellingegneria vanno risolti con tecniche numeriche molto pi complicate
rispetto a quelle viste fino ad ora. In questo capitolo cercheremo di
utlizzare le conoscenze gi fatte e di ampliarle proprio per risolvere
problemi realistici che richiedono maggiori attenzioni.
Ho affermato che le matematiche sono molto utili per abituare la mente a un raziocinio
esatto e ordinato; con ci non che io creda
necessario che tutti gli uomini diventino dei
matematici, ma quando con questo studio
hanno acquisito il buon metodo di ragionare,
essi lo possono usare in tutte le altri parti delle nostre conoscenze.
John Locke
160
annamaria mazzia
10.2
f (x , x ) = 0
1 1 2
f 2 ( x1 , x2 ) = 0
Questo stesso sistema si pu scrivere in forma vettoriale come f(x) =
0 dove x = ( x1 , x2 ) T e f(x) = ( f 1 (x), f 2 (x)) T .
Esempio Consideriamo il sistema di equazioni in cui f 1 ( x1 , x2 ) =
+ 4x22 36 e f 2 ( x1 , x2 ) = x12 x2 1. Lequazione f 1 ( x1 , x2 ) = 0
rappresenta lequazione di unellisse, mentre lequazione f 2 ( x1 , x2 ) =
0 descrive la parabola x2 = x12 1
Dalla figura 10.1, si vede come la parabola e lellisse si intersecano
in due punti, 1 e 2 di coordinate date, in maniera approssimata,
dai valori 1 (1.65, 1.71) e 2 (1.65, 1.71). Daltra parte, non
difficile trovare in maniera analitica le radici del sistema proposto
9x2 + 4x2 36 = 0
2
1
x 2 x2 1
=0
9x12
1 + 513
da x1 =
= 1.64504951695277, da cui x2 = x12 1 =
8
1.70618791322653. Le radici del sistema corrispondono ai punti di
intersezione delle due curve. Non sempre, per, si riesce a trovare
una soluzione analitica! Ed per questo che ci serve un metodo per
trovarle numericamente.
_
Vediamo, quindi, come possiamo generalizzare il metodo di NewtonRaphson. Nel seguito assumiamo che la funzione vettoriale f ammetta
derivate parziali e che siano limitate almeno fino allordine due.
Seguendo una strada del tutto analoga a quella percorsa per il
metodo di Newton-Raphson per trovare le radici di unequazione
(in una sola variabile), e come abbiamo fatto per i metodi iterativi
per sistemi lineari, cercheremo di costruire un metodo iterativo che,
partendo da un vettore iniziale x(0) generi una successione di vettori
x(k) che converga alla soluzione esatta x del problema, per cui vale
la relazione f(x ) = 0. Il caso che stiamo studiando, per semplicit,
f ( x1 , x2 )
, altro non
x1
che la derivata della funzione g( x1 ) =
f ( x1 , x2 ) nel punto x1 (consideriamo fissata
la variabile x2 = x2 e facciamo variare solo
la x1 ). Allo stesso modo la derivata parziale della f rispetto alla variabile x2 nel punto
f ( x1 , x2 )
( x1 , x2 ), che chiamiamo
, la
x2
derivata della funzione h( x2 ) = f ( x1 , x2 )
nel punto x2 . Nel caso di una funzione vettoriale come f = ( f 1 , f 2 ) lipotesi che chieche denotiamo come
161
(0) (0)
(0) (0)
f 1 ( x1 , x2 ) f 1 ( x1 , x2 )
x1
x2
J ( x (0) ) =
(0)
(0)
(0)
(0)
(0)
(0)
(0)
f 1 ( x1 + p1 , x2 + p2 ) = f 1 ( x1 , x2 ) +
(0)
(0)
f 1 ( x1 , x2 )
f 1 ( x1 , x2 )
p1 +
p2 + termini di ordine superiore
x1
x2
(0)
f 2 ( x1
(0)
p1 , x2
f 2 ( x1 , x2 )
f 2 ( x1 , x2 )
p1 +
p2 + termini di ordine superiore
x1
x2
(0)
+ p2 ) =
(0)
(0) (0)
f 2 ( x1 , x2 ) +
Per capire la formula di Taylor in due dimensioni e, successivamente, il metodo di Newton, conviene pensare al vettore x(0) come ad un
2
punto dello spazio R e a p come ad un vettore di direzione. Quando
ci muoviamo dal punto x(0) nella direzione data da p, arriviamo al
punto x(0) + p (si veda figura 10.2).
A questo punto, possiamo ricavare il metodo di Newton. Come
2
nel caso scalare, partiamo da un punto iniziale (questa volta in R )
x(0) e generiamo una successione di punti x(1) , x(2) , . . ., x(k) , . . . dove
il valore x(k+1) si ottiene applicando la formula di Taylor di centro
x(k) e secondo una direzione p scelta in questo modo: se da x(k)
volessimo arrivare in un solo passo alla soluzione esatta x , (dove vale
f(x ) = 0), basterebbe scegliere come direzione p la differenza tra x
e x(k) : p = x x(k) . In tal caso 0 = f(x ) = f(x(k) + p). Applicando
la formula di Taylor, avremmo
0 = f(x(k) + p) = f(x(k) ) + J (x(k) )p + termini di ordine superiore
Tuttavia, noi non conosciamo la soluzione esatta e quindi neanche
sappiamo la direzione p da considerare. Usiamo, per, la relazione
162
annamaria mazzia
G
G
La convergenza basata sul controllo della norma degli scarti tra due
approssimazioni successive, vale a dire sulla norma della direzione
p(k) . Si pu anche aggiungere un controllo sulla norma di f(x(k) ).
18x1
2x1
8x2
1
k
0
1
2
3
4
5
6
k p ( k ) k2
2.000000e-10
1.228623e+00
2.729148e-01
1.924654e-02
1.112225e-04
3.759668e-09
2.633315e-16
kf(x(k) )k2
2.302173e+01
1.022848e+01
6.073071e-01
3.326709e-03
1.120144e-07
7.108896e-15
0.000000e+00
(k)
x1
1.0000000000000000
1.9117647058823530
1.6642652418726938
1.6451607390354450
1.6450495207124343
1.6450495169527666
1.6450495169527668
(k)
x2
1.0000000000000000
1.8235294117647058
1.7085228106205075
1.7061888752349927
1.7061879132266946
1.7061879132265310
1.7061879132265312
k
0
1
2
3
4
5
6
k p ( k ) k2
2.000000e-10
2.702083e+00
1.102160e+00
3.044172e-01
2.769474e-02
2.330903e-04
1.651351e-08
kf(x(k) )k2
2.980143e+01
6.267123e+01
1.093291e+01
8.391335e-01
6.945470e-03
4.919889e-07
0.000000e+00
(k)
x1
-0.5000000000000000
-3.0735294117647061
-1.9773856415813829
-1.6729773676003774
-1.6452826237649281
-1.6450495334662778
-1.6450495169527668
(k)
x2
1.0000000000000000
1.8235294117647058
1.7085228106205077
1.7061888752349932
1.7061879132266946
1.7061879132265312
1.7061879132265312
_
Si pu dimostrare che, se in un intorno di una radice semplice x ,
la matrice Jacobiana J (x) ha inversa limitata e le derivate continue,
allora il metodo di Newton converge quadraticamente, cio esiste una
costante M R tale che
k x x ( k +1) k M k x x ( k ) k 2
in un intorno di x , quindi per kx x(k) k sufficientemente piccoli.
Nellesempio precedente, si pu vedere convergenza quadratica
utilizzando gli scarti al posto degli errori:
k x ( k +1) x ( k ) k M k x ( k ) x ( k 1) k 2
163
164
10.3
annamaria mazzia
165
S ( x0 , y0 ) =
di
( x i x0 )2 + ( y i y0 )2
i =1
2
(=
ei2 )
i =1
Questa funzione assomiglia alla funzione S( a0 , a1 ) che avevamo costruito per ottenere la retta di regressione lineare ai minimi quadrati.
Una differenza fondamentale, tuttavia, che S( x0 , y0 ) non lineare.
p
Andiamo allora a considerare la funzione i ( x, y) = ( xi x )2 + (yi y)2 ,
p
per i = 1, 2, . . . , n. Osserviamo che i ( x0 , y0 ) = ( xi x0 )2 + (yi y0 )2 :
la distanza esatta tra il punto P0 e il punto Pi , da cui di = i ( x0 , y0 ) +
ei .
Consideriamo un valore provvisorio noto di coordinate ( x, y) vicino
a ( x0 , y0 ) in modo da poter linearizzare la funzione i ( x, y), applicando la formula di Taylor di centro ( x, y) e trascurando i termini di
ordine superiore. Si ha
Abbiamo
i ( x, y) = i ( x, y) +
i ( x, y)
( x, y)
(x x) + i
(y y)
x
y
Allora
i ( x0 , y0 ) = i ( x, y) +
i ( x, y)
( x, y)
( x0 x ) + i
( y0 y )
x
y
= i ( x, y) +
166
annamaria mazzia
1 ( x, y) 1 ( x, y)
x
y
2 ( x, y) 2 ( x, y)
x
y
A=
...
n ( x, y) n ( x, y)
x
y
Dalla relazione (10.1), introducendo il vettore = ( x0 x, y0 y) T
abbiamo
A + e = b
o, quivalentemente, e = b A
Per ricavare le derivate di una funzione vettoriale, consideriamo un vettore y di dimensione m, che funzione di un vettore che
chiamiamo x, di dimensione n, tramite la relazione y = (x). Per definizione, la deri-
y
data dalla matrice che ha come
x
elemento di posto (i, j) la derivata parziale
yi
(i = 1, . . . , m, j = 1, . . . , n).
x j
Data una matrice A, di dimensione m
n
y
=A
se y = Ax si ha
x
vata
S( )
= 2A T b + 2A T A
caso precendente, si ha
y T A.
= x T ( A + A T ) Infatti =
x
n
n
i=1 j=1 aij xi x j Quindi
n
n
= aki xi + a jk x j
xk
i =1
j =1
per k = 1, 2, . . . , n.
In forma compatta, ci significa
= xT AT + xT A = xT ( AT + A)
x
se A simmetrica, la derivata di =
x T Ax diventa, di conseguenza,
2x T A
= wT =
x
allora
S( )
= 0 2A T A = 2A T b A T A = A T b
yi
= aij ,
x j
per i = 1, . . . , m e j = 1, . . . , n da cui
otteniamo la matrice A.
= yT A
se = y T Ax si ha
x
T
Infatti, se poniamo w = y T A, w T pu
che yi = nj=1 aij x j da cui
=
x
167
(7, 9), (2, 7), (1, 4), (10, 15), (5, 8), (20, 15)
11 Integrazione numerica
11.1
v(t)dt =
Z s(84)
ds
dt
s (0)
dt =
Z s(84)
s (0)
ds
v(t)dt =
Z s(84)
s (0)
ds = L
Quindi, se riusciamo a risolvere lintegrale in cui la funzione integranda la velocit, per le uguaglianze date, sapremo dire quanto
vale L.
Sfruttando i dati della velocit misurati ogni 6 secondi, dobbiamo
essere in grado di poter risolvere numericamente questo integrale.
In questo Capitolo studieremo come fare. Ci occuperemo, infatti,
di approssimare lintegrale definito
I=
Z b
a
f ( x )dx
Z b
a
f ( x )dx
aj f (xj )
j =0
0
38
6
41
12
45
48
18
24
45
41
30
36
37
42
33
30
48
54
26
60
24
66
27
72
32
35
78
84
37
Tabella 11.1: Dati della velocit misurati ogni
6 secondi. Il tempo (t) espresso in secondi
e la velocit (v) data in metri al secondo.
170
annamaria mazzia
11.2
f ( a)
f (b)
f (b) f ( a)
ba
f (b) f ( a)
( x a)
ba
Lerrore di interpolazione, utilizzando lespressione del resto di Lagrange (e, quindi, considerando valide le ipotesi, per questo caso, di
f continua fino alla derivata seconda) dato da
E( x ) =
f 00 ( x )
( x a)( x b)
2
f (b) f ( a)
f 00 ( x )
( x a) +
( x a)( x b)
ba
2
f ( x )dx = (b a)
f ( a) + f (b) 1
+
2
2
Z b
a
( x a)( x b) f 00 ( x ))dx
Z b
a
( x a)( x b) f 00 ( x ))dx =
1 00
f ( )
2
Z b
a
1
( b a )3
( x a)( x b)dx = f 00 ( )
2
3!
f ( x )dx = (b a)
f ( a) + f (b) 1 00
( b a )3
f ( )
2
2
3!
171
1
( b a )3
facilmente a calcolare e il secondo dato da f 00 ( )
il cui
2
3!
valore dipende da un punto che non conosciamo.
Perci, noi possiamo approssimare lintegrale utilizzando il primo
termine della somma, cio calcolando lintegrale della retta passante
per f ( a) e f (b). Lerrore che commetteremo sar dato dal termine che non possiamo calcolare, vale a dire dalla quantit Eint =
1
f 00 ( )(b a)3 .
12
Indicando con M = maxa xb | f 00 ( x )| possiamo maggiorare lerrore mediante la relazione
| Eint | M
( b a )3
12
La formula dei trapezi approssima lintegrale di f in [ a, b] mediante lintegrale della retta passante passante per i punti ( a, f ( a))
e (b, f (b)):
I=
Z b
a
f ( x )dx Itrap =
ba
[ f ( a) + f (b)]
2
11.3
Formule di Newton-Cotes
172
annamaria mazzia
Li ( x ) =
x xj
xi x j
j =0
j 6 =i
Li ( x ) =
sj
ij
= Li ( s )
j =0
j 6 =i
f ( x )dx =
Z b
a
pn ( x )dx +
Z b
a
E( x )dx
Z b
a
f ( x )dx
Z b n
a i =0
f ( xi ) Li ( x )dx =
f ( xi )
Z b
i =0
Li ( x )dx
Li ( x )dx =
Z xn
x0
Li ( x )dx =
Z n
0
Li (s)hds = h
Z n
0
Li (s)ds
Z b
a
Z n
i =0
f ( x )dx h f ( xi )
Li (s)ds
(n)
Ci
1
n
Z n
0
Li (s)ds
i = 0, 1, . . . , n
Z b
a
f ( x )dx nh f ( xi )Ci
(n)
i =0
= ( xn x0 ) f ( xi )Ci
(n)
(11.1)
i =0
Z b
a
E( x )dx =
Z b ( n +1)
f
( x )
( n + 1) !
( x x0 )( x x1 ) ( x xn )dx
Dato un polinomio di interpolazione di grado n mediante il procedimento di Lagrange dunque possibile ricavare una formula di
quadratura numerica che prende il nome di formula di Newton-Cotes.
Per quanto riguarda lerrore si pu osservare che le formule ottenute
con un valore n dispari (cui corrisponde un numero n + 1 pari di
punti di appoggio) solo leggermente inferiore alle formule di ordine
pari che le precedono immediatamente (cui corrisponde un numero
dispari di punti di appoggio).
Per questo motivo le formule di ordine pari sono le pi usate.
Osserviamo che per f ( x ) 1, qualunque sia il grado del polinomio
utilizzato nelle formule di Newton-Cotes, lerrore di integrazione sar
zero. Applicando lequazione (11.1) nellintervallo [ a, b] [0, 1] si ha
1=
Z 1
0
dx =
Ci
(n)
i =0
(1)
C0
(1)
C1
1
1 1
L0 (s)ds =
1 0
0
Z
Z 1
1 1
=
L (s)ds =
1 0 1
0
( s 1)
1
ds =
1
2
s
1
ds =
1
2
11.3.1
Z b
a
f ( x )dx h f ( xi )Ci
(1)
= ( x1 x0 )
i =0
f ( x0 ) + f ( x1 )
2
Formula di Cavalieri-Simpson
Considerando n = 2 (quindi 3 punti di appoggio nellintervallo [ a, b],
a+b
x0 = a, x1 =
e x2 = b, i due estremi dellintervallo e il punto
2
173
174
annamaria mazzia
(2)
C0
(2)
C1
(2)
C2
1 2
1 2
L0 (s)ds =
2 0
2 0
Z
Z
1 2
1 2
L1 (s)ds =
=
2 0
2 0
Z
Z
1 2
1 2
=
L2 (s)ds =
2 0
2 0
(s 1)(s 2)
1
ds =
(1)(2)
6
(s)(s 2)
4
ds =
(1)(1)
6
(s)(s 1)
1
ds =
(2)(1)
6
Bonaventura Francesco Cavalieri (15981647) fu un matematico italiano. Studi teologia e geometria. Lavor su problemi di ottica
e di cinematica. famoso soprattutto per il
cosiddetto principio di Cavalieri.
Thomas Simpson (1710-1761) fu un matematico britannico, inventore della formula
di quadratura per il calcolo di integrali definiti, sebbene questa formula fosse stata gi
scoperta 200 anni prima da Keplero e pare
fosse usata anche da Cavalieri nel 1639 e
poi riscoperta da James Gregory. I suoi studi
riguardano anche lastrologia.
Z b
a
(2)
i =0
= (b a)(
f ( a) 4 f (c)
f (b)
+
+
)
6
6
6
ba
=
( f ( a) + 4 f (c) + f (b))
6
Con la formula di Cavalieri-Simpson, dunque, lintegrale della f
viene approssimato con lintegrale della parabola passante per i due
estremi a e b e per il punto centrale dellintervallo.
Per quanto riguarda lerrore che si commette approssimando lintegrale della f con la formula di Cavalieri-Simpson, consideriamo,
seguendo lapproccio visto per la formula dei trapezi, lintegrale
dellerrore del polinomio di interpolazione di Lagrange.
Per il polinomio di secondo grado p2 che interpola la f , lerrore
f 000 ( x )
dato da E( x ) =
( x a)( x c)( x b).
3!
175
Z b 000
f ( x )
a
3!
Questa volta, la funzione ( x a)( x c)( x b) cambia segno allinterno dellintervallo [ a, b] e non possiamo pi applicare il teorema del
Valor Medio come nella formula dei trapezi. In maniera pi laboriosa,
tuttavia, si ricava per lerrore la seguente formula:
f IV (u) b a 5
f IV (u)
Eint =
( b a )5
=
90
2
2880
dove u un opportuno punto dellintervallo ] a, b[.
11.3.2
f (0) f (t)
t f 0 (0) f (0) + f (t)
f (t) 2t f 0 (0) f (t)
(
x
+
t
)
x
+
( x + t) x2
( x + t) +
t
t2
2t3
Lerrore di interpolazione per questo polinomio di grado 3 vale
p( x ) = f (t) +
f ( IV ) ( x )
( x + t) x2 ( x t)
4!
Quindi da f ( x ) = p( x ) + E( x ), andando a integrare tra t e t si
ha:
E( x ) =
Z t
t
f ( x )dx =
Z t
t
p( x )dx +
Z t
t
E( x )dx
176
annamaria mazzia
Gli integrali degli altri termini del polinomio p( x ) portano alla formula di Cavalieri-Simpson. Infatti (omettendo i passaggi matematici
e ricordando che lampiezza dellintervallo su cui stiamo lavorando
h = 2t) si ha
Z t
t
f (0) f (t)
f (t) f (0)
f (t) f (t)
2
f (t) +
( x + t) +
( x + t) x +
( x + t) x dx =
t
t2
2t3
2t
( f (t) + 4 f (0) + f (t))
6
h
= ( f (t) + 4 f (0) + f (t))
6
Eint =
f ( IV ) ( )
24
Z t
t
( x2 t2 ) x2 dx =
t
f ( IV ) ( ) x5
f ( IV ) ( ) 5
x3
=
t2
t
24
5
3 t
90
f ( IV ) ( ) h 5
f ( IV ) ( ) 5
( ) =
h
90
2
2880
Formule composte
11.4
le formule di Newton-Cotes, essendo basate su polinomi di interpolazione con nodi equidistanti, danno risultati inaccurati su
intervalli ampi a causa della natura oscillatoria dei polinomi di
grado elevato.
Conviene dunque utilizzare formule di grado basso ma scomponendo lintervallo di integrazione in pi sottointervalli e, in ciascuno
di essi, applicare la stessa formula.
Sfruttiamo il fatto che se lintervallo [ a, b] viene diviso in n sottointervalli in modo che [ a, b] = [ a, x1 ] [ x1 , x2 ] [ x2 , x3 ] . . . [ xn1 , b],
allora
Z b
a
f ( x )dx =
Z x
1
a
f ( x )dx +
Z x2
x1
f ( x )dx +
Z x3
x2
f ( x )dx + . . . +
Z b
x n 1
f ( x )dx
177
11.4.1
f ( x )dx =
n Z xi
i =1 x i 1
f ( x )dx
Ciascuno degli integrali su [ xi1 , xi ] viene approssimato utilizzando la formula dei trapezi:
n Z xi
i =1 x i 1
f ( x )dx
i =1
n
h
x i x i 1
[ f ( xi1 ) + f ( xi )] = [ f ( xi1 ) + f ( xi )]
2
2
i =1
178
11.4.2
annamaria mazzia
Eint =
h3
h3
f 00 ( i ) 12 = f 00 ( i ) 12
i =1
i =1
Supponendo che la derivata seconda della f sia continua e limitata in [ a, b] e chiamando con m e M rispettivamente il minimo e il
massimo di f 00 in [ a, b], si ha:
m f 00 ( i ) M
i = 1, . . . , n
nm
f 00 ( i ) nM
= m
i =1
in=1 f 00 ( i )
M
n
in=1 f 00 ( i )
n
un valore assunto dalla funzione in qualche punto di [ a, b], vale a
dire, esiste un punto che non conosciamo, allinterno dellintervallo
[ a, b] tale che
Per il teorema del Valor Intermedio (teorema 3.6.3),
f 00 ( ) =
in=1 f 00 ( i )
ovvero
n
f 00 ( i ) = n f 00 ( ).
i =1
Eint = f 00 ( i )
i =1
h3
h3
f 00 ( )
f 00 ( ) (b a)3
= n f 00 ( ) =
( b a ) h2 =
12
12
12
12
n2
11.4.3
h2
o, equivalente-
f ( x )dx =
Z b
1
a1
f ( x )dx +
Z b2
a2
f ( x )dx + . . . +
Z bn
an
f ( x )dx
Lestremo superiore bi di ciascun intervallino, con i = 1, n 1 coincide con lestremo inferiore dellintervallino successivo:
bi = a i + 1 .
179
f ( x )dx
h
bi a i
( f ( ai ) + 4 f (ci ) + f (bi )) = ( f ( ai ) + 4 f (ci ) + f (bi ))
6
6
In tal modo
Z b
a
f ( x )dx
i =1
Se gli intervallini non sono uniformi, la formula va scritta considerando il valore hi per
ciascun intervallino.
Formula composta di Cavalieri-Simpson in forma compatta. Possiamo vedere la formula composta di Cavalieri-Simpson anche in una forma
compatta. Considerando che, su ogni sottointervallo, dobbiamo prendere il punto medio, facciamo una numerazione progressiva dei punti
di integrazione nel modo seguente:
x0 = a
x2i = x0 + ih
i = 0, . . . n
1
x2i+1 = x0 + (i + )h
2
i = 0, . . . , n 1
Z b
a
f ( x )dx =
n1 Z x2i+2
i =0
n 1
i =0
x2i
f ( x )dx
h
[ f ( x2i ) + 4 f ( x2i+1 ) + f ( x2i+2 )]
6
h
[ f ( x0 ) + 4 f ( x1 ) + 2 f ( x2 ) + 4 f ( x3 ) + . . . + 2 f ( x2n2 ) + 4 f ( x2n1 ) + f ( x2n )]
6
n 1
n 1
h
= [ f ( x0 ) + 4 f ( x2i+1 ) + 2 f ( x2i ) + f ( x2n )]
6
i =0
i =0
180
11.4.4
annamaria mazzia
h5 n1 IV
( b a )5
f ( i ) =
2880 i=0
2880n5
n 1
1
n
ba
.
n
f IV ( i )
i =0
f IV ( i )
i =1
Allora
Per arrivare a questi risultati, il ragionamento del tutto analogo a quanto stato fatto
sulla derivata seconda nella formula composta dei trapezi. Questa volta, per, si deve
considerare la derivata quarta. Per esercizio, si consiglia di ripetere tutti i passaggi per
arrivare al risultato.
(b a)h4 IV
(b a)5 IV
f
(
)
=
f ( )
2880
2880n4
1
Quindi per n lerrore tende a zero come 4 o, equivalentemente,
n
1
come h4 . Nella formula dei trapezi lerrore invece decresce come 2 .
n
Ci aspettiamo quindi che il maggiore sforzo computazionale dia una
maggiore accuratezza nei risultati quando si applica la formula di
Cavalieri-Simpson rispetto alla formula dei trapezi.
Eint =
11.4.5
Z 1
0
e x dx = [e x ]10 = e 1 = 1.718281828
1
(1 + e) = 1.859140914
2
1
1
ICS = (1 + 4e1/2 + e) = (1 + 6.594885083 + 2.718281828) = 1.718861152
6
6
La formula di Cavalieri-Simpson d il risultato migliore.
Sia ancora f ( x ) = e x ma gli estremi di integrazione siano a = 0.9 e
b = 1. Allora
Itrap =
I=
Z 1
0.9
0.1 0.9
(e + e) = 2.2 104
2
0.1 0.9
= I
(e + 4e0.95 + e) = 9.0 109
6
I Itrap = I
I ICS
e x dx = e e0.9 = 0.2586787173
181
| Etrap |
_
Esempio Si voglia approssimare lintegrale
Z 1
0
e x dx 0.746824.
2
2
2
2
h
= [e0 + 2eh + 2e(2h) + 2e(3h) + e(4h) ]
2
2
Applichiamo ora la formula di Cavalieri-Simpson su soli 2 sottointervalli, in modo da valutare la funzione negli stessi punti precedenti.
Lampiezza di ciascun sottointervallo dunque h = 0.5.
3 2
2
2
2
h 0
[e + 4e(h/2) + 2e(h) + 4e( 2 h) + e(2h) ]
6
2
2
2
0.25
=
[1 + 4e0.125 + 2e0.5 + 4e0.75 + e1 ]
3
= 0.746855
ICS =
A parit di punti (e non di sottointervalli) la formula di CavalieriSimpson pi accurata di quella dei trapezi.
Rb
=
a f ( x ) dx
f ( a + ih(n)) h(n),
con
h(n) = (b a)/n, e considerare come
definizione di integrale
limn in=0
182
annamaria mazzia
Invece considerando 4 sottointervalli nella formula di CavalieriSimpson dobbiamo considerare anche i punti interni di ascisse 0.125, 0.375, 0.625, 0.875
e il risultato che otteniamo 0.746826, evidentemente maggiormente
accurato.
_
Esempio Riprendiamo lesempio visto allinizio del Capitolo,
in cui misurata la velocit di unautomobile ogni 6 secondi e si vuole
calcolare la lunghezza percorsa dalla macchina.
In base ai dati in possesso, possiamo applicare la formula composta
dei trapezi su 14 intervalli di ampiezza h = 6 secondi. Abbiamo
(ponendo v1 = v(0), v2 = v(6), . . . , v13 = v(78), v14 = v(84)):
L=6
v1 + v14
+ v2 + v3 + . . . + v13
2
= 3009 metri
Possiamo anche applicare la formula di Cavalieri-Simpson, considerando ora 7 intervalli di ampiezza pari a h = 12 secondi. In tal
caso, otteniamo:
L = 2 (v1 + 4v2 + 2v3 + 4v4 + 2v5 + . . . + 2v12 + 4v13 + v14 ) = 3010 metri
In questo caso entrambi i risultati sono accettabili.
_
Se la funzione integranda ha le derivate che sono facili da determinare e da maggiorare, la formula dellerrore pu essere utile per
determinare il numero di sottointervalli su cui applicare una formula
composta di quadratura in modo da ottenere unapprossimazione con
un errore minore di una tolleranza prefissata.
R1
2
Esempio Consideriamo 0 e x dx. In quanti sottointervalli
bisogna suddividere lintervallo di integrazione per applicare la formula dei trapezi e di Cavalieri-Simpson e ottenere un errore che sia
minore di una tolleranza e = 105 ?
Per i trapezi, lerrore maggiorato da
| Etrap |
max0 x1 | f 00 ( x )| (b a)3
12
n2
Per Cavalieri-Simpson si ha
| ECS |
max0 x1 | f IV ( x )| (b a)5
2880
n4
2
f 00 ( x ) = (2 + 4x2 )e x
| Etrap |
2
1
= 2
2
12n
6n
| ECS |
12
1
=
4
2880n
240n4
| Etrap | 105
| ECS | 105
1
105
240n4
ICS = 0.7468249482544
_
11.5
Estrapolazione di Richardson
f IV ( 2 ) (b a)5
2880
24
183
184
annamaria mazzia
Q1 Q2
15
Quindi
I Q2 +
Q2 Q1
15
11.6
Esercizi
Z 0
2
e x ( x + 1) dx.
(a) Approssimare il valore dellintegrale applicando la formula dei trapezi con n = 5 suddivisioni in parti uguali dellintervallo di
integrazione.
(b) Trovare una maggiorazione dellerrore commesso e, dopo aver calcolato analiticamente lintegrale esatto, confrontare tale stima con
lerrore esatto.
Svolgimento
(a) Applichiamo la formula dei trapezi con n = 5 suddivisioni dellintervallo dato. Vale, dunque, h = 0.4. I punti da considerare e il
valore della f ( x ) = e x ( x + 1), sono:
i
0
1
2
3
4
5
xi
-2
-1.6
-1.2
-0.8
-0.4
0
f ( xi )
-7.3890561
-2.97181945
-0.664023385
0.445108186
0.895094819
1
f ( x0 ) + f ( x5 )
+ f ( x1 ) + f ( x2 ) + f ( x3 ) + f ( x4 )) = 2.19606715
2
Da f ( x ) = e x ( x + 1) segue f 0 ( x ) = e x ( x + 1) + e x = e x x
e f 00 ( x ) = e x x e x = e x ( x 1).
Poich f 00 ( x ) sempre negativa nellintervallo di integrazione e a
noi interessa la funzione valore assoluto della f 00 ( x ), studiamo la
funzione g( x ) = | f 00 ( x )| = e x (1 x ). Si ha che g0 ( x ) = e x ( x
2) < 0 in [2, 0], quindi g decrescente e ha valore massimo
per x = 2. Si ha dunque che M = max | f 00 ( x )| = | f 00 (2)| =
22.1671682968
|(b a)3 |
Quindi | Etrap | M
= 0.591124488
12 52
Analiticamente, facile calcolare lintegrale esatto (per parti):
I=
Z 0
2
f ( x ) dx = e
( x + 1)|02 +
Z 0
2
e x dx = e x ( x + 2)|02 = 2
Svolgimento
(a) Suddividendo lintervallo di integrazione [0, 2] in n = 4 parti si
trova un passo h = 2/4 = 1/2 = 0.5.
La formula dei trapezi :
b a f ( a) + f (b)
(
+ f ( x1 ) + f ( x2 ) + f ( x3 ))
n
2
f (0) + f (2)
= 0.5(
+ f (0.5) + f (1) + f (1.5))
2
0.5 1
0.571428571 0.666666667 0.8)
= 0.5(
2
= 1.39404762
IT =
f 00 ( ) (b a)3
12
n2
2
2
4
Da f ( x ) =
segue f 0 ( x ) =
e f 00 ( x ) =
.
x4
( x 4)2
( x 4)3
185
186
annamaria mazzia
I=
Z 2
0
2
dx = 2 ln (| x 4|)|20 = 2 ln (| 2|) 2 ln (| 4|) = 2 ln (1/2) = ln (1/4) 1.386294361
x4
I=
dx
0
1 x2
(a) si approssimi I con i valori Q1 e Q2 ottenuti applicando il metodo
di Cavalieri-Simpson prima a tutto lintervallo e poi suddividendo
lintervallo in due parti uguali;
(b) si approssimi I usando la formula di estrapolazione di Richardson;
(c) dopo aver calcolato analiticamente il valore esatto di I, determinare
lerrore esatto commesso con lestrapolazione di Richardson.
Svolgimento
(a) Applichiamo la formula di Cavalieri-Simpson su tutto lintervallo,
considerando che lampiezza dellintervallo b a = 0.5
Q1 =
0.5
( f (0) + 4 f (0.25) + f (0.5)) = 0.523823565
6
h
( f ( x0 ) + 4( f ( x1 ) + 4 f ( x3 )) + 2 f ( x2 ) + f ( x4 )) = 0.523616326
6
Q2 Q1
15
I=
Z 0.5
0
1
1 x2
dx = arcsin ( x )|0.5
0 = /6 0 = 0.523598775
1
3.1
2
5
3
6.2
4
8.6
5
9.8
6
11.4
7
12.9
Svolgimento
In questo esercizio, non sappiamo chi sia la funzione f ma abbiamo solo dei dati sperimentali. Perci dobbiamo applicare la formula
di Cavalieri-Simpson utilizzando solo i dati a disposizione. Daltro
canto, le ascisse dei punti, assegnati nellintervallo [1, 7] ci permettono di avere n = 3 suddivisioni dellintervallo su cui applicare
la formula di Cavalieri-Simpson: la suddivisione [1, 3] (con punto
centrale 2), la suddivisione [3, 5] (con punto centrale 4) e infine la
suddivisione [5, 7] con punto centrale 6. Applicando la formula di
Cavalieri-Simpson composta su questi n = 3 si ottiene come valore
I = 49.333333333333333333.
187
188
annamaria mazzia
Z 2
1
1 + 6x2 10x4 dx
Svolgimento
(a) Per n = 1 suddivisione dellintervallo di integrazione, la formula
di Cavalieri-Simpson quella semplice: i punti da considerare
sono gli estremi 1 e 2 e il punto centrale 1.5. Si ricava il valore
In1 = 47.083333333333329.
Per n = 2 suddivisioni dellintervallo, si hanno i sottointervalli
[1, 1.5] e [1.5, 2] che hanno rispettivamente, come punti centrali,
i valori 1.25 e 1.75. Lampiezza della singola suddivisione vale
0.5. Applicando la formula di Cavalieri-Simpson composta di ha
In2 = 47.005208333333329.
(b) Per avere una maggiorazione dellerrore commesso, abbiamo
bisogno della derivata quarta. Si ha f 0 ( x ) = 12x 40x3 , f 00 ( x ) =
12 120x2 , f 000 ( x ) = 240x e f (iv) ( x ) = 240. La derivata quarta
costante. Il massimo di | f (iv) ( x )| vale 240. In questo caso la
maggiorazione dellerrore, in valore assoluto, coincide esattamente
con lerrore vero (proprio perch la derivata quarta costante!).
Quindi | En1 | = 240/2880 = 8.3333333E 002 e | En2 | = 240/(2880
24 ) = 5.2083333E 003.
Quindi, nel calcolare lerrore vero come | I In | ci aspettiamo
di trovare gli stessi risultati. Infatti, lintegrale esatto vale I =
R2
2
4
3
5 2
1 1 + 6x 10x dx = | x + 2x 2x |1 = 47.
Se calcoliamo, ora, | I In1 | e | I In2 | ritroviamo gli stessi valori
trovati prima.
(c) Se applichiamo la formula di estrapolazione di Richardson otteniamo IRich = In2 + ( In2 In1 )/15 = 47. Con Richardson otteniamo
il valore esatto dellintegrale, dal momento che la relazione che
ora lega il rapporto tra gli errori (tra n = 1 e n = 2 suddivisioni)
e che porta alla formula di Richardson una eguaglianza esatta,
| En1 | = 4| En2 |!
11.7
Domande di riepilogo
189
12 Differenziazione numerica ed
equazioni alle derivate ordinarie
12.1
Un esempio
Allinizio del 900, van der Pol studi fenomeni non lineari e
propose lequazione differenziale
y00 (t) + e(y2 (t) 1)y0 (t) + y(t) = 0
Questa equazione governa lintensit di corrente in un circuito oscillante a triodo e viene utilizzata nello studio di circuiti che contengono
valvole termoioniche, i cosiddetti tubi a vuoto, come il tubo catodico
del televisore o il magnetron nei forni a microonde. La quantit
e indica lintensit dello smorzamento non lineare: quanto pi e
elevato tanto pi il sistema perde energia rapidamente.
Lequazione differenziale del secondo ordine si pu ricondurre
ad un sistema di equazioni differenziali del primo ordine. Ponendo
u = (u1 , u2 ) = (y, y0 ) si ha
!
!
u10
u2
=
u20
e((u1 )2 1)u2 u1
Come si risolve numericamente un sistema di equazioni differenziali come quello appena scritto? In questo Capitolo, daremo una
piccola introduzione ad alcune tecniche di differenziazione numerica
e ad alcuni metodi numerici che permettono di risolvere equazioni
differenziali del primo ordine.
12.2
Differenziazione numerica
192
annamaria mazzia
h 0
f ( x0 + h ) f ( x0 )
h
( x x0 )2 00
f ( )
2
h2 00
f ( )
2
f ( x0 ) f ( x0 h) h 00
+ f ( )
h
2
h2 00
f ( ) abbiamo una formula che appros2
0
sima f ( x0 ) e che si chiama backward difference formula, formula delle
differenze allindietro (stiamo usando infatti il punto x0 h).
Se trascuriamo il termine
h2 00
f ( )
2
da cui
f 0 ( x0 ) =
f ( x0 + h) f ( x0 ) h 00
f ( )
h
2
La forward formula f 0 ( x0 ) =
f ( x0 + h ) f ( x0 )
h
h3 000
f ( 1 )
6
h3 000
f ( 2 )
6
h3 000
( f ( 1 ) + f 000 ( 2 ))
6
Ora le due derivate terze nei due punti 1 e 2 (che non conosciamo)
sono comprese tra un valore minimo e un valore massimo, da cui
f 000 ( 1 ) + f 000 ( 2 )
anche il loro valore medio
compreso tra il minimo
2
000
e il massimo della funzione f stessa (si veda il Teorema del Valore
Intermedio), cio esiste (compreso tra 1 e 2 e, quindi, tra x0 h e
f 000 ( 1 ) + f 000 ( 2 )
. Sostituendo abbiamo
x0 + h) per cui f 000 ( ) =
2
f ( x0 + h) f ( x0 h) = 2h f 0 ( x0 ) +
h3 000
2 f ( )
6
f ( x0 + h) f ( x0 h) h2 000
f ( )
2h
6
f ( x0 + h ) f ( x0 h )
2h
Il termine che trascuriamo per ottenere le formule di differenziazione numerica, cio lerrore di discretizzazione, prende il nome di
errore di troncamento.
La formula centrata valuta il valore della f in soli due punti, come
stato fatto per le formule backward e forward ma ha un ordine di
accuratezza pi elevato.
Formule pi accurate si possono ottenere usando pi punti nellintorno di x0 e considerando espansioni di Taylor che coinvolgono
derivate di ordine pi elevato. Ad esempio, prendendo i punti x0 2h,
x0 h, x0 + h e x0 + 2h si pu ricavare
f 0 ( x0 ) =
1
h4
( f ( x0 2h) 8 f ( x0 h) + 8 f ( x0 + h) f ( x0 + 2h)) + f (v) ( )
12h
30
193
194
annamaria mazzia
1
( f ( x0 2h) 8 f ( x0 h) + 8 f ( x0 + h) f ( x0 + 2h))
12h
12.3
atb
t0
2e t .
_
Problemi in cui abbiamo equazioni alle derivate ordinarie di ordine pi elevato possono essere trasformati in sistemi equivalenti di
equazioni del primo ordine.
Esempio La seconda legge del moto di Newton dice che la
forza F uguale al prodotto della massa m per laccelerazione a:
F = ma. Questa equazione una ODE del secondo ordine in quanto
laccelerazione a data da a = y00 , dove y la coordinata della
F
posizione. LODE pu essere riscritta come: y00 = . Definendo
m
u1 = y e u2 = y0 si ha il sistema (equivalente allequazione di prima)
di due equazioni del primo ordine di ODE:
!
!
u2
u10
=
u20
F/m
Per risolvere il sistema, possiamo usare metodi che vanno bene per
risolvere equazioni differenziali del primo ordine. La prima componente della soluzione u1 corrisponde alla posizione y dellequazione
da cui siamo partiti. La seconda componente u2 fornisce la velocit
y0 .
_
Sistemi del primo ordine di ODE hanno la forma
y0 (t) = f(t, y)
n +1
atb
195
196
annamaria mazzia
12.4
(t ti )2 00
y ( i )
2
(t ti )2 00
y ( i ) il resto della formula di Taylor con i un
2
punto opportuno nel segmento di estremi t e ti .
Prendiamo come t il valore ti + h vale a dire ti+1 , da cui si ha
t ti = ti+1 ti = h. Sostituendo si ottiene:
La quantit
h2 00
y ( i )
2
Esplicitando y0 (ti ) rispetto agli altri termini si ha:
y(ti+1 ) = y(ti ) + hy0 (ti ) +
y(ti+1 ) y(ti ) h 00
y ( i )
h
2
Ora si sostituisce il valore trovato per y0 (ti ) nella ODE y0 =
f (t, y(t)) per t = ti :
y 0 ( ti ) =
y(ti+1 ) y(ti ) h 00
y ( i ) = f (ti , y(ti ))
h
2
h
Trascurando il termine y00 ( i ) non abbiamo pi i valori della so2
luzione esatta, ma otterremo i valori della soluzione approssimata.
Scriviamo dunque:
y i +1 y i
= f ( ti , yi )
h
La formula di Eulero esplicito : yi+1 = yi + h f (ti , yi ).
La formula di tipo esplicito perch per passare dal livello i al
livello i + 1 sfruttiamo i dati che gi conosciamo del livello i.
Si parte infatti da y0 = y(t0 ) = y( a) = y a e si ricava:
y1 = y0 + f ( t0 , y0 )
y2 = y1 + f ( t1 , y1 )
..
.=
..
.
197
dt
dt =
Z t
t0
f (t, y(t)) dt =
Z y(t)
y0
dy =
Z t
t0
f (t, y(t)) dt
Rt
Al secondo membro, approssiamo t f (t, y(t)) dt mediante il valore
0
(t t0 ) f (t0 , y(t0 )) (approssimiamo la f mediante la retta f (t0 , y(t0 ))).
Abbiamo:
y(t) = y0 + (t t0 ) f (t0 , y0 )) + errore della formula di quadratura.
Per t = t1 , numericamente: y1 = y0 + h f (t0 , y0 )).
Ai passi successivi: yi+1 = yi + h f (ti , yi ))
Esempio Supponiamo di applicare il metodo di Eulero esplicito alla ODE y0 = y con passo h a partire dal punto iniziale t0 = 0 e
avanziamo al tempo t1 = t0 + h
y1 = y0 + h f (t0 , y0 ) = y0 hy0 = (1 h)y0
Il valore y1 che otteniamo affetto da errore: y1 6= y(t1 ) Per esempio,
se per t0 si ha y0 = 1, la soluzione esatta y(t) = et . Per h = 0.5, si
ha y1 = 0.5 mentre y(0.5) = e0.5 0.60653
_
Figura 12.2: Interpretazione geometrica del
metodo di Eulero esplicito. Si considerato il
problema y0 = y con y(0) = 1 la cui soluzione esatta y(t) = et . I valori numerici
ottenuti dal metodo di Eulero esplicito sono
cerchiati e si trovano sulla linea spezzata che
li interpola. La linea spezzata tangente, allinizio di ogni passo, alla traiettoria che passa per il corrispondente punto, soluzione del
problema y0 = y con y(ti ) = yi .
198
annamaria mazzia
12.5
(t ti+1 )2 00
y ( i )
2
h2 00
y ( i )
2
Otteniamo quindi
y 0 ( t i +1 ) =
y(ti+1 ) y(ti ) h 00
+ y ( i )
h
2
h 00
y ( i ) abbiamo:
2
y i +1 y i
= f (ti+1 , yi+1 ))
h
La formula di Eulero implicito vale yi+1 = yi + h f (ti+1 , yi+1 )).
La differenza rispetto alla formula esplicita che la f valutata non
pi al tempo ti ma al tempo ti+1 Quindi il calcolo di yi+1 dipende
implicitamente da yi+1 stesso! La valutazione di yi+1 diventa quindi
pi laboriosa e complicata (se si ha unequazione non lineare in yi+1 ,
la si risolve tramite un metodo di punto fisso o di Newton-Raphson).
In termini di accuratezza si hanno risultati migliori.
Esempio Consideriamo sempre y0 = y con y(0) = 1 (soluzione esatta y(t) = et ).
Il metodo di Eulero implicito diventa: yi+1 = yi hyi+1 ovvero
(1 + h ) y i +1 = y i
yi
La soluzione numerica yi+1 =
.
(1 + h )
Per h = 0.5 ricaviamo y1 = 0.66667 contro un valore esatto y(1)
0.60653.
_
1
, ottenendo:
t+1
199
200
annamaria mazzia
12.6
Metodo di Crank-Nicolson
Partiamo dallODE y0 = f (t, y(t)). Integriamo ambo i membri
dellequazione sullintervallo [ti , ti+1 ]:
Z y(t )
i +1
y ( ti )
dy =
Z t
i +1
ti
Z t
i +1
ti
f (t, y(t)) dt
h
[ f (ti , yi ) + f (ti+1 , yi+1 )]
2
John Crank (1916-2006) stato un matematico inglese che si dedicato soprattutto allo
studio di soluzioni numeriche di equazioni alle derivate parziali, in particolare di problemi
di conduzione del calore. noto soprattutto
per il lavoro svolto con Phyllis Nicolson.
Phyllis Nicolson (1917-1968) stata una
matematica inglese. Negli anni della seconda
guerra mondiale lavor sulla teoria del magnetron. nota, appunto, per il metodo di
Crank-Nicolson.
h
Si ha la formula di Crank-Nicolson: yi+1 = yi + [ f (ti , yi ) + f (ti+1 , yi+1 )]
2
La stessa formula la si pu ricavare prendendo la media aritmetica
delle formule di Eulero esplicito e implicito:
y i +1 y i = h f ( t i , y i )
y i +1 y i = h f ( t i +1 , y i +1 )
sommando e dividendo per 2:
y i +1 y i =
h
h
[ f (ti , yi ) + f (ti+1 , yi+1 )] = yi+1 = yi + [ f (ti , yi ) + f (ti+1 , yi+1 )]
2
2
12.7
Studio dellerrore
y(ti+1 ) y(ti ) h 00
y ( i ) = f (ti , y(ti ))
h
2
y ( t i +1 ) y ( t i )
h
f (ti , y(ti )) = y00 ( i ) = O(h)
h
2
201
202
annamaria mazzia
12.8
y ( t i +1 ) y ( t i )
h
f (ti , y(ti )) = y00 ( i ) = O(h)
h
2
y ( t i +1 ) y ( t i )
h
f (ti+1 , y(ti+1 )) = y00 ( i ) = O(h)
h
2
h
f 00 ( i , i ) 3
[ f (ti , y(ti )) + f (ti+1 , y(ti+1 ))]
h
2
12
Perci
y ( t i +1 ) y ( t i ) =
di =
12.9
h
y000 ( i ) 3
[ f (ti , y(ti )) + f (ti+1 , y(ti+1 ))]
h
2
12
y000 ( i ) 2
y ( t i +1 ) y ( t i ) 1
[ f (ti , y(ti )) + f (ti+1 , y(ti+1 ))] =
h = O(h2 )
h
2
12
Convergenza e stabilit
h 0 ei
i +
= 0
| e i | M | e0 |
con M costante positiva.
Studieremo la convergenza e la stabilit dei metodi di Eulero esplicito,
implicito e Crank-Nicolson applicati allequazione test
y0 = y
prendendo > 0 (in modo che < 0) con condizione iniziale
y (0) = y0 .
La soluzione esatta di questo IVP y(t) = y0 et : tende a zero per
valori di t crescenti. Ci aspettiamo che anche la soluzione numerica si
comporti in maniera simile.
203
204
12.9.1
annamaria mazzia
h 0
i +
ih
1 t
Osserviamo che: (1 h)i = (1 h) h = (1 h) h
ln (1 h)
1
(1/h)
ln
(
1
h
)
h
Perci: (1 h) h = e
=e
Quando facciamo il limite per h 0 e per i + consideriamo
che, per il teorema dell Hpital, facendo la derivata rispetto alla
variabile , vale
1
ln (1 h)
= lim
= 1
h
h 0
h 0 1 h
lim
Di conseguenza limh0 e
Allora
ln (1 h)
h
= e 1
1 t
lim yi = lim y0 (1 h)i = lim y0 (1 h) h = y0 et = y(t)
h 0
i +
h 0
i +
h 0
i +
12.9.2
x = eln ( x
12.9.3
yi
(1 + h)
Quindi
y0
(1 + h)
y0
y1
=
y2 =
(1 + h)
(1 + h)2
y2
y0
y3 =
=
(1 + h)
(1 + h)3
..
.
y0
y i 1
=
yi =
(1 + h)
(1 + h)i
y1 =
In tal caso
1 ih
y0
lim yi = lim
= lim y0 (1 + h)i = y0 (1 + h) h
= y0 et = y(t)
h 0
h0 (1 + h )i
h 0
i +
i +
i +
(i passaggi sono del tutto simili a quelli visti per Eulero esplicito).
Abbiamo provato la convergenza.
12.9.4
12.9.5
Convergenza di Crank-Nicolson
Il metodo di Crank-Nicolson applicato allequazione test diventa:
h
y i +1 = y i +
[yi yi+1 ] da cui
2
2 h
y i +1 =
yi
2 + h
205
206
annamaria mazzia
2 h
2 + h
i +1
2 h
2 + h
i
Ma
2 h
2 + h
t
1
2 h h
2 + h
1 2 h
1
h = e h ln ( 2 + h )
h 0
i +
2 h
)
4
2 + h = lim 2 + h 4
= lim
=
h
h0 (2 + h )(2 h )
h0 2 h (2 + h )2
i +
i +
Quindi
ih
1
2 h h
t
= lim y0
= y(t)
= y0 e
2 + h
h 0
lim yi = lim y0
h 0
i +
h 0
i +
2 h
2 + h
i
i +
La convergenza provata.
12.9.6
Stabilit di Crank-Nicolson
2 h i
.
2 + h
Per i +, qualunque sia il valore di h, la soluzione tende a zero in
2 h i
quanto limi+
= 0. Il metodo incondizionatamente
2 + h
stabile.
12.9.7
Sulla stabilit
La stabilit di questi metodi la si pu verificare anche considerando
direttamente lerrore ei , dimostrando che gli errori al passo i e al passo
i + 1 verificano la stessa relazione che hanno yi e yi+1 e mostrando che
lerrore rimane limitato sotto condizione per Eulero esplicito mentre
incondizionatamente stabile per gli altri metodi. In Figura 12.3 si
207
ei+1 = ei + hei
Ricaviamo ei = e0 (1 + h)i .
Il ragionamento da fare lo stesso che abbiamo fatto in precedenza
e troviamo gli stessi risultati. Dobbiamo infatti verificare quando ei
tende a zero per i che tende a +. . .
_
Figura 12.3: Confronto dei metodi di Eulero esplicito, implicito e Crank-Nicolson sullequazione test y0 = y, prendendo come h il
valore h = 2 (a sinistra) e h = 0.5 (a destra).
12.10
Esercizi
Esercizio 12.10.1 Studiare la stabilit del metodo di Eulero esplicito applicato allequazione differenziale y0 = 2y + 1, con y(0) = 1
e2t + 1
(soluzione esatta y(t) =
)
2
Svolgimento
Per provare la stabilit del metodo dobbiamo verificare che lerrore
iniziale si mantiene limitato per valori crescenti del tempo.
Il metodo di Eulero esplicito applicato allODE del problema
diventa
yi+1 = yi + h(2yi + 1) = (1 2h)yi + h
208
annamaria mazzia
12.11
Domande di riepilogo
209
Bibliografia
Uri M. Ascher and Chen Greif. A First Course on Numerical Methods.
SIAM, Philadelphia, 2011.
Ake Bjrk and Germund Dahlquist. Numerical Methods in Scientific
Computing, Volume II. Siam, 2008.
Richard L. Burden and J. Douglas Faires. Numerical Analysis. BrooksCole Publishing, 2004.
Germund Dahlquist and Ake Bjrk. Numerical Methods in Scientific
Computing, Volume I. Siam, 2006.
G. Gambolati. Lezioni di Metodi Numerici. Cortina, Padova, 1994.
Walter Gautschi. Numerical Analysis: An Introduction. Birkuser,
Boston, 1997.
Paolo Giangrandi. Dispense del corso di Storia dellInformatica.
Universit degli Studi di Udine, Italia, 2010.
Paolo Giangrandi. Museo on line - Breve storia degli Strumenti di
Calcolo. Tecnoteca, http://www.tecnoteca.it/museo/, ultima visita:
febbraio 2015.
Michael T. Heath.
McGraw-Hill, 2002.
212
annamaria mazzia