Académique Documents
Professionnel Documents
Culture Documents
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
pubblicato con creative commons license da Annamaria Mazzia, Dipartimento di Ingegneria
Civile Edile e Ambientale (DICEA), Universit degli Studi di Padova, anno 2015
Questo lavoro stato rilasciato sotto la licenza Creative Commons Attribuzione- Non commerciale
-Non opere derivate 3.0 Italia License,
Per leggere una copia della licenza visita il sito web (http://creativecommons.org/licenses/by-nc-nd/
3.0/it/)
2 Struttura dellelaboratore 9
3 Richiami di analisi 21
5 Zeri di funzione 47
6 Interpolazione 79
7 Approssimazione 103
Bibliografia 211
Istruzioni per luso
Annamaria Mazzia
tenza oltre il mondo della matematica. Sempre la Lovelace intu che Augusta Ada Lovelace (1815-1852) fu la fi-
la soluzione dei problemi matematici si sarebbe effettuata attraverso glia del famoso poeta Lord Byron. I genitori
si separono subito dopo la sua nascita e la
delle procedure di calcolo (quelli che noi chiamiamo programmi). bambina crebbe insieme alla madre (Lord
Alla luce degli sviluppi che si sono avuti nel ventesimo secolo, la Byron part dallInghilterra senza farvi pi ri-
torno e mor in Grecia quando Ada aveva otto
visione di Babbage e della Lovelace appare profetica.
anni). Poich la madre era appassionata di
matematica e non voleva che la figlia seguis-
se la strada del padre, incoraggi la figlia in
2.3 Gli albori 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
Il 1800 si chiude con una grande invenzione: nel 1896, Guglielmo nobiliare di Conte di Lovelace. Ebbero tre figli.
Marconi inventa la radio. Il 1900 si apre con altre importanti in- 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 Claude Shannon (1916-2002) fu fisico e
matematico del MIT.
suo contributo fondamentale fu quello di elaborare un metodo siste-
matico 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). Nel 1948, larticolo di Shannon, A Mathe-
matical Theory of Communication, pubblica-
Il lavoro di Shannon diede lavvio allo studio delle tecniche indi-
to sulla rivista The Bell System Technical
spensabili per progettare in modo sistematico tutti i circuiti logici di Journal getta le basi teoriche dellinforma-
base necessari per realizzare i circuiti di calcolo dei futuri computer. tica. Per prima volta viene usato il termine
bit come abbreviazione di binary digit, termi-
Da un punto di vista propriamente pratico invece, la nascita e lo ne suggeritogli dal chimico e statistico J. W.
sviluppo dei calcolatori elettronici inizia nel 1938: il tedesco Konrad Tukey.
Zuse costruisce Z1, una macchina costruita e pensata in maniera Konrad Zuse, ingegnere civile (1910-1995).
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
Figura 2.2: LENIAC. Foto presa da
lavori di John Eckert e John Mauchly negli Stati Uniti e di A. Turing http://www.computerhistory.org/
in Inghilterra. Eckert e Mauchly costruirono lENIAC (Electronic revolution/birth-of-the-computer/
Integrator and Computer). LENIAC fu costruito, con progetto di 4/78/316, copyright dellUniversit di
Pennsylvania.
Eckert, in piena seconda guerra mondiale, a partire dal 1943, pres- Alan Turing (1912-1954), matematico inglese,
so il Ballistic Research Laboratory e fu completato nel febbraio del si interess di logica matematica e di teoria
della probabilit. Introdusse il concetto di una
1946. La macchina era pensata per compiere operazioni di carattere
macchina astratta, detta macchina di Turing,
generale, ma fu costruita con lo scopo preciso di compilare tabelle e pose questioni riguardanti lintelligenza arti-
per le traiettorie di bombe. LENIAC conteneva circa 18. 000 valvole ficiale. Si occup di problematiche riguardanti
un macchina di calcolo digitale astratta, con
termoioniche e misurava circa 2 metri e mezzo di altezza per 24 metri una memoria senza limiti.
di lunghezza! La macchina era pi di mille volte veloce di tutti i John Presper Eckert (1919-1995) e John
William Mauchly (1907-1980) lavorarono a
predecessori elettromeccanici costruiti fino a quel momento e poteva
quello che si pu considerare il vero primo
eseguire 5000 addizioni al secondo. Le sue operazioni erano controlla- calcolatore elettronico.
12 annamaria mazzia
G cache
G varie interfacce
G fornire gli strumenti per luso corretto delle risorse di tipo hard-
I primi computer come lo Z3 di Zuse o lE-
ware e software del sistema
NIAC non avevano sistema operativo. Per
per la visualizzazione su video dei risultati). Per risolvere questo tipo di problemi, luso
delle schede fu sostituito da appositi terminali
Alla fine del 1950 si introdusse il concetto di time-sharing che
sempre collegati al computer e furono cam-
permetteva lesecuzione di pi processi in modo da poter soddisfare biate le modalit di gestione dellunit cen-
le esigenze di pi utenti contemporaneamente. Con il time-sharing trale modificando i sistemi operativi esistenti.
Si arriv allinterazione con il computer non
si assegna, infatti, un piccolo intervallo di tempo a ciascun processo pi mediante schede perforate bens tramite
dando limpressione che ciascun processo vada avanti parallelamente tastiera-stampante o tramite tastiera-monitor.
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:
G uso del processore (multitasking: luso della CPU permesso
ad un programma alla volta per brevi intervalli di tempo, quindi
lutente pu eseguire pi programmi contemporaneamente)
16 annamaria mazzia
G uso della memoria centrale (memoria virtuale) cuoco, il suo aiutante, una cucina, i came-
rieri e i clienti. I clienti scelgono un piatto
G riconoscimento e gestione degli utenti (multiutenza) dal menu, un cameriere prende lordine e lo
porta al capo-cuoco. Il capo-cuoco riceve
G file system
r alla preparazione del piatto, compito che
potr richiedere pi attivit. Il capo-cuoco, in-
G interfaccia grafico.
tanto, supervisiona la preparazione dei piatti
e gestisce le risorse (limitate) dei posti nel
ristorante.
Il software di base (o general purpose) pu avere funzioni varie:
editor di testo, elaborazione di testi, fogli elettronici, posta elettronica,
G il capo-cuoco rappresenta il sistema
operativo,
internet. G i clienti sono gli utenti,
Il software applicativo costituito da programmi che hanno obiet- G le ricette associate ai piatti corrispon-
tivi specifici come intrattenimento, controllo di sistemi, progettazione dono ai programmi,
(CAD), risoluzione di problemi matematici. G gli ingredienti sono linput del pro-
gramma,
Per migliorare le prestazioni di un computer si inserisce una me-
moria intermedia tra CPU e RAM, detta cache. Si trova allinterno G il piatto loutput del programma,
del processore. pi veloce della RAM ma anche pi costosa. G il menu e il cameriere sono linterfac-
cia verso il sistema operativo,
Il sistema operativo gestisce le informazioni su dispositivi di memoria G pentole, fornelli etc, sono le parti che
compongono il computer.
secondaria (dischi). Laiuto cuoco, quindi, rappresenta la CPU
La gestione delle informazioni avviene mediante file Un file costi- mentre il tavolo da lavoro, su cui appoggia
gli ingredienti e la ricetta per preparare il piat-
tuisce un insieme di informazioni della stessa natura e logicamente
to, rappresenta la memoria centrale. Prima
correlate. In genere un file contiene un programma (programma di iniziare a lavorare, il cuoco deve svolge-
sorgente o programma eseguibile), oppure una sequenza di dati. re alcune mansioni (sempre le stesse ogni
volta: pulire il tavolo, controllare lo stato di
Linformazione rappresentata da files, organizzati in maniera ge- pentole, tegami, coltelli. . . , ricevere le ordi-
rarchica (pensiamo ad una struttura ad albero) in directories (cartelle). nazioni). Supponiamo che queste mansioni
siano incise su un pezzo del tavolo da lavo-
Una directory un file che svolge il ruolo di raccoglitore.
ro: corrispondono alla memoria ROM (quella
I files possono contenere dati (abbiamo i cosiddetti files di testo) che non pu essere alterata). La RAM invece
oppure programmi (i files di applicazioni). la parte del tavolo che pu essere alte-
rata a piacimento (spostare pentole, tegami,
Un file caratterizzato da: ingredienti).
G
immagazzinare i dati.
estensione: la parte del nome del file che segue lultimo punto
. (dati.txt prova.f matrice.dat welcome.html fo-
to.jpeg )
Esempio: studente@george:~$ls
G
Un volta cliccato Invio, compare lelen-
Per cambiare directory, si deve digitare co delle directories presenti nello spazio di
lavoro disponibile per lutente studente sul-
cd nome-directory
la macchina george, ad esempio (i numeri a
(cd sta per change directory). sinistra delle directories o files sono indicatori
G
dello spazio che occupano in memoria):
Il comando cd .. fa tornare nella directory precedente. 5 appunti/ 4 mail/
G Per copiare un file dentro una directory: Esempio: per entrare nella directory foto,
scriviamo
cp nomefile nomedirectory (cp sta per copy). studente@george: ~$cd foto
G
Esempio: siamo nella directory foto, che
Per cancellare un file si usa il comando rm nomefile. una sottodirectory della home di studente.
G
Con il comando pwd si ha:
Per cancellare una directory, dobbiamo prima cancellare tutti i studente@george:~/ foto $pwd
files della directory e poi usare il comando studente@george:~/ foto
$/home/studente/foto
rmdir nomedirectory.
studente@george:~ $ cd due
studente@george:~/due $ ls
total 1
1 prova.f
. (il punto finale serve per copiare il file prova.f nella directory G cd : per cambiare directory
Con cp abbiamo due file identici, quello nella directory uno e G cp: per copiare files
quello copiato nella directory due. G mv: per trasferire o rinominare files
Possiamo anche scrivere cp prova.f prova2.f: in questo modo G rm: per cancellare files
creiamo il file prova2.f nella stessa directory in cui si trova prova.f. G rmdir: per cancellare directories
G tan ( x ) tangente( x ) =
sin ( x )
cos ( x )
, sec ( x ) secante( x ) =
1
cos ( x )
, mio di grado 2: radici reali e distinte (in alto),
radici reali e coincidenti (al centro), nessuna
radice reale (in basso).
22 annamaria mazzia
1x = 1
a x +y = a x ay a xy = ( a x )y
aloga ( x) = x a0 = 1
a xy = a x /ay a x b x = ( ab) x
loga ( xy) = loga ( x ) + loga (y) loga ( x/y) = loga ( x ) loga (y)
loga ( x y ) = y loga ( x ) loga ( a x ) = x
loga ( x )
logb ( x ) = b x = a x loga (b)
loga (b)
Diamo ora una tabella delle derivate e degli integrali delle funzioni
pi note (per gli integrali lasciamo fuori la costante di integrazio-
ne). Usiamo la simbologia arcsin( x ) arcoseno( x ), arccos( x )
arcocoseno( x ), cot( x ) cotangente ( x ), arctan( x ) arcotangente( x ),
arccot( x ) , arcocotangente( x ).
f f0 f f0
1
ln( x ) ex ex
x
sin ( x ) cos ( x ) cos ( x ) sin ( x )
1 1
tan ( x ) 2
(= sec2 ( x )) cot ( x ) 2
cos ( x ) sin ( x )
1 1 1 1
tan ( x ) cot ( x )
cos ( x ) cos ( x ) sin ( x ) sin ( x )
1 1
arcsin ( x ) arccos ( x )
1 x2 1 x2
1 1
arctan ( x ) arccot( x )
1 + x2 1 + x2
R R
f fd x f fd x
x r +1
xr (r 6 = 1) x 1 ln | x |
r+1
ex ex ln | x | x ln | x | x
sin ( x ) cos ( x ) cos ( x ) sin ( x )
1
tan ( x ) ln | | cot ( x ) ln | sin ( x )|
cos ( x )
1 1 1 1
ln | + tan ( x )| ln | + cot ( x )|
cos ( x ) cos ( x ) sin ( x ) sin ( x )
1 1
tan ( x ) cot ( x )
cos2 (x) 2
sin ( x )
tan ( x ) 1 cot ( x ) 1
cos ( x ) cos ( x ) sin ( x ) sin ( x )
arcsin ( x ) x arcsin ( x ) + 1 x2 arccos ( x ) x arccos ( x ) 1 x2
1 1
arctan ( x ) x arctan ( x ) ln (1 + x2 ) arccot( x ) xarccot( x ) ln (1 + x2 )
2 2
1 1
arcsin ( x ) arctan ( x )
1 x2 1 + x2
Quindi, per funzioni continue, un valore compreso tra i due estremi Figura 3.2: Teorema di Rolle: f 0 (c) = 0
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 defini-
ta 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: Teorema del Valor Medio:
f (b) f ( a)
Dimostrazione. Dire che una funzione g ammette almeno un f 0 (c) =
ba
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
( x ) = g( x ) x
Teorema 3.6.5 (Esistenza e unicit del punto fisso) Data una funzio-
ne 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.
| | = | g( ) g( )|
appunti di calcolo numerico 25
| g( ) g( )| = | g0 (c)( )| | g0 (c)|| |
| | m| | < | |
f 00 ( x0 ) f ( n ) ( x0 )
f ( x ) = f ( x0 ) + f 0 ( x0 )( x x0 ) + ( x x0 )2 + . . . + ( x x0 ) n + R n
2! n!
dove
f ( n +1) ( x )
Rn ( x ) = ( x x 0 ) n +1
( n + 1) !
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
Figura 4.3: La Mars Climate Orbiter. Foto
circa 60 km. Per un errore di conversione delle unit di misura, il tratta da http://www.visionlearning.
velivolo entr nellatmosfera con una traiettoria inferiore rispetto a com/blog/2012/09/21/
tragedies-in-science-the-crash-of-the-mars-
quella pianificata. La velocit del mezzo era molto elevata e port alla
climate-orbiter/, copyright della
distruzione non solo del veicolo spaziale ma anche della stessa Polar NASA/JPL.
Lander.
appunti di calcolo numerico 29
3 1 4 1 5
= 3.14159265358979 . . . = + 1 + 2 + 3 + 4 . . . 100
100 10 10 10 10
x = x m N m + x m 1 N m 1 + . . . + x 1 N + x 0 + x 1 N 1 + x 2 N 2 + . . . x n N n
| {z } | {z }
parte intera parte frazionaria
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 } | {z }
parte intera parte frazionaria
11
Esempio Scriviamo il numero , che 1.1 in base 10, nella
10
base 2.
Per la parte intera:
Per la parte decimale:
: 2 = quoziente resto
.1 2 = 0.2 x1 = 0
1 0 1 x0
.2 2 = 0.4 x2 = 0
.4 2 = 0.8 x3 = 0
.8 2 = 1.6 x3 = 1
.6 2 = 1.2 x4 = 1
.2 2 = 0.4 x5 = 0
.4 2 = 0.8 x6 = 0
.8 2 = 1.6 x7 = 1
.6 2 = 1.2 x8 = 1
.2 2 = 0.4 x9 = 0
Osserviamo che nella parte decimale si ripetono allinfinito le cifre
|{z} 0011
0011. Il numero in base 2 si scrive quindi come: 1.0 0011 |{z} . . .
_
x = (1 + f 1 21 + f 2 22 + . . . + f n 2n ) 2e
dove
G 1 + f 1 21 + f 2 22 + . . . + f n 2n la mantissa, normaliz-
zata, cui sono riservati un numero n di bits,
n bits
Singola precisione Doppia precisione
Se si vuole rappresentare un numero al di fuori di questo intervallo Massimo 3.4 1038 10308
Minimo 1.2 1038 2.2 10308
si ha overflow o underflow.
_
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 alle-
sponente, tutti 0 nello spazio dedicato alla mantissa e 0 o 1 per il
segno, a seconda che sia + o .
appunti di calcolo numerico 35
G 1
arrotondamento simmetrico: x = arr ( x ) = tronc( x + N t+1 N p ),
2
aggiungiamo ununit a xt+1 se xt N/2.
|x x |
Per lerrore relativo (in valore assoluto) , invece, si ha:
|x|
1 t
|x x | N nel troncamento
1
|x| N 1 t nellarrotondamento
2
1 1 t
Il valore 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
|x x |
224 5.96 108
|x|
|x x |
253 1.11 1016
|x|
1
Abbiamo scritto = (1 ey + e2y +
1 + ey
Si ha ex/y = ex ey : gli errori si accumulano additivamente . . .) come risultato della formula polinomiale
G Somma algebrica (addizione o sottrazione, a seconda del segno di Taylor della funzione f (ey ) =
1
1 + ey
di
di x e y) centro 0.
x y
x (1 + ex ) + y(1 + ey ) = x + y + xex + yey = ( x + y)(1 + ex + ey )
x+y x+y
x y
Lerrore ex+y = ex + ey , una combinazione lineare Supponiamo di avere due numeri molto vicini
x+y x+y tra loro, in cui le prime p + 2 cifre della parte
che dipende da x e y. frazionaria sono buone mentre le altre sono
corrotte. Inoltre, le prime p cifre siano le stes-
xy > 0 = |ex+y | |ex | + |ey | se per entrambi i numeri (usiamo i simboli
|x| |y| vvv e www per esprimere le cifre corrotte):
xy < 0 = e possono essere molto grandi e, in
| x + y| | x + y| f l ( x ) = 1.d1 d2 . . . b( p+1) b( p+2) vvv 2e
tal caso, ci sar unamplificazione notevole dellerrore. Si ha 0 0 e
f l (y) = 1.d1 d2 . . . b( p+1) b( p+2) www 2
il fenomeno di cancellazione se non si fa attenzione al numero di
Quando andiamo a fare la sottrazione le pri-
cifre significative dei numeri che vengono sommati. me p cifre buone si annullano. Da p + 2 cifre
buone, ne abbiamo ora solo 2 e tutte le altre
Ricordiamo, infine, che in aritmetica di macchina non valgono pi sono quelle corrotte. Con la normalizzazione
la propriet distributiva o associativa del prodotto. il risultato diventa del tipo (ora qqqqq sono le
cifre corrotte):
00 00 e
f l ( x y) = 1.b 1 b2 qqqqqq 2
Esempio Sia x = 0.1103 e y = 0.009963. Se consideriamo
un sistema decimale a 4 cifre, normalizzando i numeri, abbiamo
x = 1.103 101 e y = 9.963 103
Facendo la sottrazione di questi due numeri, abbiamo 1.103 101
9.963 103 = 0.1103 0.009963 = 0.100337. Facendo larrotondamen-
to a 4 cifre abbiamo il valore 1.0034 101 .
|0.100337 0.10034|
Lerrore relativo che commettiamo : 2.99
0.100337
105 . Questo errore minore della precisione di macchina (considera-
1
ta la base 10 e le 4 cifre) 103 .
2
Tuttavia, se non teniamo conto delle cifre significative ma tronchia-
mo i numeri alle prime 4 cifre, abbiamo la sottrazione di 0.1103
0.0099 = 0.1004.
|0.100337 0.1004|
Questa volta lerrore relativo .63 103 .
0.100337
Lerrore maggiore della precisione di macchina.
_
x2 = 28 + 783 = 2.8 101 + 2.7982 101 = 5.5982 101
La radice x2 arrotondata correttamente, mentre la variabile x1 no,
per effetto della cancellazione.
Per ricavare x1 con larrotondamento corretto, applichiamo la for-
mula x1 x2 = c/a, che, nel nostro caso, vale x1 x2 = 1 da cui x1 =
1/x2 = 1/(5.5982 101 ) = 1.7863 102 . Abbiamo fatto unoperazione
che non risente del fenomeno di cancellazione numerica!
_
h2 00 h3 h4 IV
f ( x0 + h ) = f ( x0 ) + h f 0 ( x0 ) + f ( x0 ) + f 000 ( x0 ) + f ( x0 ) + . . .
2 6 24
Allora
f ( x0 + h ) f ( x0 ) h h2 h3
f 0 ( x0 ) = ( f 00 ( x0 ) + f 000 ( x0 ) + f IV ( x0 ) + . . .)
h 2 6 24
f ( x0 + h ) f ( x0 )
Approssimiamo, quindi, la f 0 ( x0 ) calcolando .
h
Lerrore, detto errore di discretizzazione, che si commette
f ( x0 + h ) f ( x0 ) h h2 h3
| f 0 ( x0 ) | = | f 00 ( x0 ) + f 000 ( x0 ) + f IV ( x0 ) + . . . |
h 2 6 24
Supponendo di conoscere il valore della derivata seconda in x0 ,
per piccoli valori di h possiamo dare una stima dellerrore di discre-
tizzazione,
f ( x0 + h ) f ( x0 ) h
| f 0 ( x0 ) | | f 00 ( x0 )|
h 2
Ci aspettiamo, anche senza conoscere il valore di f 00 ( x0 ) (purch
diverso da 0) che lerrore di discretizzazione diminuisca proporzio-
nalmente con il passo h, al decrescere di h.
Nel nostro caso, in cui f ( x ) = sin ( x ), noi conosciamo il valore
esatto della derivata in 1.2, cos (1.2) = 0.362357754476674... e possia-
mo dunque calcolare lerrore esatto che commettiamo approssimando
la derivata di sin x con la formula che abbiamo ricavato.
40 annamaria mazzia
4.8.1 Instabilit
En c0 nE0
En c1n E0
xn
Z 1
yn = dx
0 x + 10
per valori di n = 1, 2, . . . , 30. Osserviamo che, poich x [0, 1],
la funzione integranda varia pure essa nellintervallo [0, 1] per cui
0 < yn < 1.
Analiticamente, si ha:
x + 10x n1
Z 1 n Z 1 n 1 Z 1
x ( x + 10) 1
yn + 10yn1 = dx = dx = x n1 dx =
0 x + 10 0 x + 10 0 n
Vale anche la relazione
Z 1
1
y0 = dx = ln (11) ln (10).
0 x + 10
Possiamo pensare, quindi, di calcolare numericamente il valore di
yn attraverso il seguente algoritmo:
Da un programma in Fortran:
1 n yn
2. per n = 1, 2, . . . , 30 valutare yn = 10yn1 0 9.5310e-2
n
1 4.6898e-2
Questa formula ricorsiva darebbe lesatto valore se non fossero 2 3.1021e-2
3 2.3122e-2
presenti errori di arrotondamento che ci allontanano completamente 4 1.8778e-2
dalla soluzione vera. Lerrore si moltiplica esponenzialmente. Infatti ... ....
7 -3.0229e-1
y1 = 1 10y0 8 3.1479e+0
9 -3.1368e+1
1 1 10 3.1378e+2
y2 = 10(1 10y0 ) = 10 + (10)2 y0
2 2 18 3.1377e+10
1 1 27 -3.1377e+19
y3 = 10( 10 + 102 y0 ) = 103 y0 + costante 30 3.1377e+22
3 2
.. .. Da un programma Matlab:
. .
n yn
yn = (10)n y0 + costanten 0 9.5310e-2
1 4.6898e-2
Lalgoritmo quindi, considerati gli errori di arrotondamento, presenta 2 3.1018e-2
3 2.3154e-2
un errore En con crescita di tipo esponenziale. Difatti otteniamo valori
4 1.8465e-2
che via via si allontanano dallintervallo di ammissibilit [0, 1]. ... ....
I risultati che ricaviamo sono riportati nelle tabelle a lato (osser- 7 1.1481-2
8 1.0194e-2
viamo che sono leggermente diversi a seconda dal linguaggio usato, 9 9.1673e-3
proprio per effetto dellinstabilit). 10 8.3270e-3
1 1 18 -9.1694e+1
Se invece, consideriamo yn1 = ( yn ), partendo da un valore 27 -9.1699e+9
10 n 30 -9.1699e+13
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
y n0 1 =
10 n0
1 1 1 1 1
y n0 2 = ( )= + costante
10 n0 1 10 n0 (10)2 n0
.. ..
. .
1
yn = + costanten0 n
(10)n0 n n0
1
Lerrore al passo n dipende, quindi, (in valore assoluto) da
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
1
< e cio 10n1 n0 < e
10n0 n1
Passando al logaritmo in base 10:
n yn n yn
26 0.000000 11 7.62944e-3
25 3.84615e-3 10 8.32797e-3
24 3.61538e-3 9 9.16720e-3
23 3.80513e-3 8 1.01944e-2
22 3.96731e-3 7 1.14806e-2
21 4.14872e-3 6 1.31377e-2
20 4.34703e-3 5 1.53529e-2
19 4.56530e-3 4 1.84647e-2
18 4.80663e-3 3 2.31535e-2
17 5.07489e-3 2 3.10180e-2
16 5.37486e-3 1 4.68982e-2
15 5.71251e-3 0 9.53102e-2
14 6.09542e-3
13 6.53332e-3
12 7.03898e-3
4.8.2 Malcondizionamento
f ( x + x ) = f ( x ) + f 0 ( x )x + O(x2 ) f ( x ) + f 0 ( x )x
0
x f (x)
(cond f )( x ) =
f (x)
0
f (x)
(cond f )( x ) =
f (x)
(cond f )( x ) = | f 0 ( x )|
G
partire da x0 prossimo a b;
G
Per
esempio, per calcolare
1 b 2 1.41421356237310, sapendo
considerare x1 = ( x0 + );
2 x0 che il valore che dobbiamo approssimare
compreso tra 1 e 2, possiamo partire da
G generalizzando: xn+1 =
1
2
b
( x n + ).
xn
x0 = 1.5, ottenendo:
x0 = 1.5
2
Il metodo usato dai Babilonesi non altro che il metodo di Newton- x1 = 21 (1.5 + ) = 1.41666667
1.5
2
Raphson (che vedremo pi avanti) per trovare gli zeri della funzione 1
x2 = 2 (1.41666667 + ) = 1.41421569
1.41666667
f ( x ) = x2 b. x3 = 12 (1.41421569 +
2
) = 1.41421356
1.41421569
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
dove T rappresenta la temperatura del sistema. Fissata la temperatura
T, i valori di m che soddisfano lequazione precedente possono essere
m
visti come gli gli zeri della funzione f (m) = tanh ( ) m.
T
I metodi numerici che discuteremo in questo Capitolo servono per
trovare approssimazioni numeriche ad equazioni del tipo f ( x ) = 0.
Figura 5.1: Grafico della funzione f ( x ) =
tanh ( x/0.65) x e sua intersezione con
5.2 Metodo delle Bisezioni lasse delle x.
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 nellinter-
vallo ] a, b[. Nel caso ci sia pi di una radice, la proce-
dura che ora descriviamo vale sempre, e ci
Il metodo delle bisezioni (detto anche metodo dicotomico) si chia-
permette di calcolare una di queste radici.
ma cos perch, ad ogni passo, viene dimezzato lintervallo preceden-
te, cercando in tal modo di racchiudere la radice in sottointervalli
sempre pi piccoli.
x 2
Figura 5.4: Punti fissi di g( x ) =
2
sin ( x ) + x.
50 annamaria mazzia
Esempio
1
Consideriamo la funzione g( x ) = 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
Figura 5.5: Punto fisso di g( x ) = 1/2x + 2.
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 succes-
sione converge a = 0. Le sole successioni che convergono a = 1
solo le ovvie successioni generate da x0 = 1. Se si prende come
Figura 5.6: Punti fissi di g( x ) = x2 .
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
appunti di calcolo numerico 51
= g( )
x n +1 = g ( x n )
xn+1 = g( ) g( xn ) = g0 ( n )( xn )
x1 = g0 ( 0 )( x0 )
x2 = g0 ( 1 )( x1 )
x3 = g0 ( 2 )( x2 )
.. ..
.=.
xn = g0 ( n1 )( xn1 )
| x1 | | x2 | . . . | x n | =
| g0 ( 0 )| | g0 ( 1 )| | g0 ( 2 )| . . . | g0 ( n1 )| | x0 | | x1 | . . . | xn1 |
| xn | = | g0 ( 0 )| | g0 ( 1 )| | g0 ( 2 )| . . . | g0 ( n1 )|| x0 |
| x n | m n | x0 |
52 annamaria mazzia
g( x ) g0 ( x )
cos ( x ) sin ( x ) Figura 5.7: Il metodo di punto fisso con
1 1 g( x ) = cos ( x ).
x+2
2 2
x2 2x
Esempio
Consideriamo ora g( x ) = x sin ( x ) nellintervallo [0, 2 ]. Data
la periodicit della funzione seno, g ammette pi di un punto fisso.
Infatti da = sin ( ) si ha 0 = sin ( ) da cui = 0, = e
= 2.
Studiamo ora la derivata prima g0 ( x ) = 1 cos ( x ). Si ha g0 (0) =
1 1 = 0, g0 ( ) = 1 (1) = 2 e g0 (2 ) = 1 1 = 0. Da queste
informazioni, deduciamo che qualunque sia il punto iniziale x0 la
successione generata dallo schema del punto fisso non potr mai
convergere a , come si vede anche dalla Figura 5.10.
_
Figura 5.10: Il metodo di punto fisso: esem-
Nel caso in cui il metodo di punto fisso converge, si possono
pio con g( x ) = x sin ( x ). = 0 e
ricavare maggiorazioni per lerrore che si commette approssimando = 2 sono punti fissi attrattivi, al contrario
mediante xn . Vale infatti la disuguaglianza di = in cui g0 ( ) = g0 ( ) = 2
m
| xn | | x n x n 1 | (5.1)
1m
dove m, come prima, una maggiorazione di | g0 ( x )|.
| x n | m | x n 1 | (5.2)
x n 1 = x n + x n x n 1
x n 1 = g ( ) g ( x n 1 ) + x n x n 1
| 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).
Il metodo di Newton-Raphson uno dei metodi pi potenti e pi Il metodo fu descritto da Isaac Newton in
due suoi scritti del 1669 e del 1671, anche
famosi per risolvere equazioni non lineari. Ci sono diversi approcci
se era riferito solo a polinomi (in particolare
per introdurre questo metodo tra questi c anche quello di vedere a x3 2x 5 = 0). Il metodo di Newton fu
il metodo di Newton-Raphson come un particolare schema di punto pubblicato per la prima volta nel 1685. Nel
1690 Joseph Raphson ne pubblic una de-
fisso, come vedremo in seguito. scrizione semplificata in termini di approssi-
Supponiamo ora che la derivata prima e seconda di f esistano e mazioni successive xn piuttosto che di se-
siano continue e assumiamo che la derivata prima f 0 sia valutabile quenze di polinomi. Fu solo nel 1740 che
Thomas Simpson descrisse il metodo di New-
con sufficiente facilit. ton come un metodo iterativo per risolvere
Lo schema di Newton-Raphson uno schema iterativo che produce equazioni non lineari (e non solo polinomi) e
diede una versione generalizzata per sistemi
una successione di approssimazioni x0 , x1 , . . . , xn della radice della di due equazioni.
funzione f . Isaac Newton (1643-1727), inglese, fu
fisico, matematico, astronomo, alchimista,
Sia xn literata corrente. Applicando la formula di Taylor di centro
inventore, filosofo naturalista. visto co-
xn si ha: me uno dei pi grandi scienzati nella storia
dellumanit.
f ( x ) = f ( xn ) + f 0 ( xn )( x xn ) + f 00 ( x )( x xn )2 /2 Su Joseph Raphson (1648-1715) non si
hanno molti dettagli. Pare che Newton stes-
dove x un punto (che non conosciamo) compreso tra x e xn . so gli permettesse di vedere e studiare i suoi
scritti matematici. Il suo lavoro del 1690 -
Sia x = , dove radice di f , f ( ) = 0. Se f fosse lineare,
Analysis aequationum universalis gli valse
avremmo f 00 0 e quindi potremmo trovare la radice risolvendo lingresso nella Royal Society, nel 1691 ben-
direttamente ch fosse uno studente (si laure nel 1692)
piuttosto anziano (aveva 43 anni).
0 = f ( ) = f ( xn ) + f 0 ( xn )( xn )
f ( xn ) y( x ) = f ( xn ) + f 0 ( xn )( x xn )
= xn
f 0 ( xn ) altro non che lequazione della retta
tangente alla f nel punto ( xn , f ( xn )).
In questo caso, partendo da un qualunque valore iniziale x0 , in una
sola iterazione otterremo il valore della radice .
appunti di calcolo numerico 55
f ( xn+1 ) = f ( xn + h) = f ( xn ) + f 0 ( xn )h + f 00 ( h )h2 /2
f ( xn )
x n +1 = x n , n = 0, 1, 2, . . . (5.3)
f 0 ( xn )
f 0 ( x )2 f ( x ) f 00 ( x ) f ( x ) f 00 ( x )
| g0 ( x )| = |1 | = | |
f 0 ( x )2 f 0 ( x )2
G Nel metodo del punto fisso, nellipotesi in cui g0 ( ) 6= 0, la G a convergenza quadratica se esi-
ste una costante M tale che, per n
convergenza lineare. Infatti, considerando lerrore cambiato
sufficientemente grande, vale
di segno, la relazione xn+1 = g( xn ) si pu scrivere, in modo
| x n +1 | M | x n | 2
equivalente, come
+ e n +1 = g ( + e n )
G a convergenza superlineare se esiste
una successione di costanti Mn 0
tale che, per n sufficientemente grande,
e, applicando la formula (polinomiale) di Taylor si ha vale
+ e n +1 = g ( ) + e n g 0 ( ) + . . . | x n + 1 | Mn | x n | .
0
+ e n +1 = + e n g ( ) + . . .
en+1 = en g0 ( ) + . . . e, al limite per n
e n +1 = g 0 ( ) e n
Esempio
Consideriamo lequazione f ( x ) = 2x cos ( x ) + 1 = 0 che ammet-
te come unica radice = 0.
Poich f 0 ( x ) = 2 + sin ( x ), il metodo di Newton-Raphson diventa:
2xn cos ( xn ) + 1
x n +1 = x n
2 + sin ( xn ) Figura 5.12: Radice della funzione f ( x ) =
2x cos ( x ) + 1.
Partendo da x0 = 0.5 e richiedendo una tolleranza pari a 1010 nei
risultati (interrompiamo lalgoritmo quando dn < 1010 ), si ha:
n xn dn
0 0.5
1 0.4730746270E-01 0.4526925E+00
2 0.5462695134E-03 0.4676119E-01
3 0.7458221874E-07 0.5461949E-03
4 0.1395426403E-14 0.7458222E-07
5 0.7647622253E-17 0.1387779E-14
58 annamaria mazzia
f ( ) f ( xn ) = f 0 ( n )( xn )
f ( xn ) f 0 ( xn )( xn )
vale a dire
Nell esempio appena visto
x n +1 x n x n cio d n +1 e n . d2
= 0.2282
( d1 )2
d3
Ma in condizioni di convergenza, dn+1 < dn da cui, per lerrore, vale = 0.2498
( d2 )2
la maggiorazione en < dn . d4
= 0.2500
Perci gli scarti sono molto vicini agli errori e possono essere ( d3 )2
utilizzati sia per controllare il numero di iterazioni da effettuare per d5
= 0.2495
( d4 )2
approssimare la radice entro una certa tolleranza sia per approssimare
d 1 Abbiamo una stima di M usando gli scarti.
M applicando la formula M n+ .
d2n
Una volta stimato M, si pu anche avere una stima pi accurata
dellerrore allultimo passo (cio al passo n + 1). Da una parte, infatti,
d n +2
vale en+1 dn+2 , dallaltra M . Se siamo arrivati fino
( d n +1 )2
alliterazione n + 1 non abbiamo lo scarto dn+2 ma, avendo stimato
M, possiamo approssimare en+1 tramite la formula en+1 dn+2
M ( d n +1 )2 .
Esempio
Consideriamo lequazione f ( x ) = 0 con f ( x ) = x3 + x. Si vede
subito che lunica radice reale di f = 0. Dal momento che
Figura 5.13: Radice della funzione f ( x ) =
f 0 ( x ) = 3x2 + 1 e f 00 ( x ) = 6x, risulta che f 0 (0) = 1 6= 0 mentre x3 + x.
f 00 (0) = 0: la radice = 0 un punto di flesso non orizzontale.
Questo un caso particolare in cui il metodo di Newton-Raphson
converge non con ordine p = 2 bens con ordine di convergenza
cubico, p = 3.
Applichiamo il metodo di Newton-Raphson, partendo da x0 = 5
e arrestando le iterazioni quando lo scarto diventa minore di 1010 .
Vengono eseguite 9 iterazioni e, per gli scarti, abbiamo: Figura 5.14: Grafico di convergenza del me-
todo di Newton-Raphson applicato alla fun-
zione f ( x ) = x3 + x, partendo da x0 =
5.
appunti di calcolo numerico 59
n dn
1 1.7105e+00
2 1.1620e+00
3 8.0644e-01
4 5.8158e-01
5 4.3318e-01
6 2.6142e-01
7 4.4651e-02
8 1.7912e-04
9 1.1494e-11
Abbiamo detto che il metodo di Newton-
Proviamo a vedere, sperimentalmente, quale pu essere lordine di Raphson ha, in genere, ordine 2. Ma se noi,
convergenza e la costante asintotica. Mettiamo in tabella i rapporti ipotizzando ordine 2, troviamo una costante
dn dn asintotica M nulla o che tende a zero, deve
(convergenza lineare?) (convergenza quadratica?) e suonare un campanello di allarme! La costan-
d n 1 ( d n 1 )2 te asintotica di un metodo iterativo non pu
dn mai valere zero. Quindi lordine non quel-
(convergenza cubica?). Sappiamo gi che non pu esserci
( d n 1 )3 lo che ci aspettiamo ma bisogna indagare
convergenza quadratica. ulteriormente sui risultati!
Attenzione: in questo esempio, una volta
Per i vari rapporti degli scarti, si ha: accertata che la convergenza non quadrati-
ca, non potremmo neanche pensare ad una
dn dn dn convergenza di tipo lineare perch, se aves-
n en
d n 1 ( d n 1 )2 ( d n 1 )3 simo limn+ = M 6= 0, avrem-
e n 1
2 6.7934e-01 3.9715e-01 2.3218e-01 en en
mo limn+ = limn+
3 6.9399e-01 5.9723e-01 5.1395e-01 ( e n 1 )2 e n 1
1 1
4 7.2117e-01 8.9426e-01 1.1089e+00 = M limn+ = + e non
e n 1 e n 1
5 7.4484e-01 1.2807e+00 2.2021e+00 zero (ci che invece abbiamo).
Esempio
x
per x 0
Si consideri f ( x ) = .
x per x < 0
La radice di questa funzione = 0.
1
per x 0
Per la derivata prima, si ha f 0 ( x ) = 2 x .
1
per x < 0
2 x Figura 5.15: Esempio in cui il metodo di
Newton-Raphson oscilla tra due valori.
60 annamaria mazzia
x n +1 = x n , n = 0, 1, 2, . . .
Esempio
Consideriamo f ( x ) = x5 6, per la quale f 0 ( x ) = 5x4 .
Se partiamo da un punto iniziale prossimo allo zero, poich la
tangente alla f quasi orizzontale, non si riesce ad avere convergenza
se non dopo molte iterazioni: partendo da x0 = 0.01 e richieden-
Figura 5.16: La funzione f ( x ) = x5 6
do una tolleranza 108 , sono necessarie 88 iterazioni per arrivare a
= 1.430969081115725849. Vediamo in tabella, come cambia il nume-
ro delle iterazioni al variare di x0 :
x0 0.05 0.1 0.5 0.8 1.0 1.4 1.5 2. 3. 10. 20. 100.
iterazioni 59 46 18 10 7 4 4 6 8 14 17 24
G Cn =
f ( x1 ) f ( x0 )
x1 x0
: abbiamo sempre una costante che approssi-
0
ma la derivata f ( x0 ) utilizzando i valori di x1 e x0 . Lo schema
detto della secante fissa.
G Cn =
f ( x n ) f ( x n 1 )
x n x n 1
. La derivata f 0 ( xn ) approssimata uti-
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. Attenzione! In letteratura viene descritto un
altro metodo (simile ma non lo stesso) con
In forma estesa, literazione n + 1 della Regula Falsi si scrive come: il nome della Regula Falsi o Falsa Posizione
che genera i valori xn+1 in modo che la ra-
dice sia sempre compresa tra le iterazioni
f ( xn )( xn xn1 ) successive.
x n +1 = x n
f ( x n ) f ( x n 1 )
00
1+ 5 f ( )
dove p = = 1.618 e M = 0
la costante asitontica del Il valore p = 1.618 la cosidetta sezione
2 2 f ( ) aurea, un numero molto importante nelle arti
metodo di Newton-Raphson, da cui e nella matematica (e il nome aureo deriva da
alcune sue propriet che hanno da sempre
en+1 = M0.618 en1.618 affascinato luomo). Il valore di p rappresenta
il punto fisso della funzione g( x ) = 1 + x.
E = p1/s
Metodo p s E
Newton-Raphson 2 2 2 1.414
Regula Falsi 1.618 1 1.618
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 Figura 5.18: Radici della funzione f ( x ) =
scarto dn = | xn xn1 | sar minore di tol. Otteniamo i seguenti ( x/2)2 sin ( x )
risultati per il metodo di Newton-Raphson
n xn f ( xn ) f 0 ( xn ) dn dn /d2n1
0 1.3 -5.410581854E-01 0.382501171
1 2.714526871831 1.427962127E+00 2.26744846 1.41452687E+00
2 2.084760792766 2.157545986E-01 1.53401376 6.29766079E-01 0.314743565
3 1.944113685369 1.377189572E-02 1.33676314 1.40647107E-01 0.354627390
4 1.933811265085 7.60156095E-05 1.32199993 1.03024203E-02 0.520808008
5 1.933753764621 2.37200355E-09 1.32191743 5.75004640E-05 0.541742396
6 1.933753762827 -1.00668172E-16 1.79436599E-09 0.542710632
appunti di calcolo numerico 63
f ( x n ) f ( x n 1 )
n xn f ( xn ) dn dn /d1.618
n 1
x n x n 1
0 1.3 -5.41058185E-01
1 1.35 -5.20098358E-01 0.419196552
2 2.590702853065 1.15448972E+00 1.34970922 1.24070285E+00
3 1.735341043061 -2.33640901E-01 1.62285784 8.55361810E-01 0.603386215
4 1.879309845941 -6.98346071E-02 1.13779020 1.43968803E-01 0.185374473
5 1.940687248331 9.19996444E-03 1.28768192 6.13774024E-02 1.412310765
6 1.933542654410 -2.79035921E-03 1.32673746 7.14459392E-03 0.653100215
7 1.933752971771 -1.04570967E-06 1.32176540 2.10317362E-04 0.623935239
8 1.933753762918 1.19824825E-10 1.32191686 7.91146198E-07 0.704441455
9 1.933753762827 -1.00668172E-16 9.06448250E-11 0.676026603
Attraverso gli scarti, abbiamo fatto una stima della costante asin-
totica 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 defini-
zione teorica e considerando xn .
| f 00 ( )|
Per il metodo di Newton-Raphson dobbiamo calcolare M =
2| f 0 ( )|
mentre per la Regula Falsi dobbiamo considerare il valore M 0.618 .
Poich f 00 ( x ) = 1/2 + sin ( x ), abbiamo, per x6 (di Newton-
Raphson) 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
_
Esempio
Consideriamo lequazione x2 8x + 16 = 0. Si tratta di trovare le
radici di un polinomio di grado 2. Lequazione che abbiamo scritta
si pu riscrivere, in modo del tutto equivalente, come ( x 4)2 = 0.
Figura 5.19: Radice doppia di f ( x ) = x2
Troviamo una radice, da contarsi due volte, cio = 4 una radice 8x + 16.
doppia, o con molteplicit r = 2. Da f ( x ) = x2 8x + 16 = ( x 4)2
ricaviamo f 0 ( x ) = 2x 8 = 2( x 4) e f 00 ( x ) = 2. Risulta, quindi:
f (4) = f 0 (4) = 0, mentre f 00 (4) 6= 0.
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: Il procedimento da seguire per arrivare a que-
sto risultato del tutto simile a quanto stato
r1 fatto nellipotesi in cui f 0 ( ) 6= 0. Si consiglia
e n +1 = en di ricavare questo risultato come esercizio.
r
r1
da cui la costante asintotica M = . Per poter avere un metodo
r
che sia di nuovo a convergenza quadratica, occorre modificare lalgo-
ritmo, ottenendo la formula di Newton-Raphson modificata, nel modo
seguente:
f ( xn )
x n +1 = x n r
f 0 ( xn )
Esempio
Riprendiamo la funzione f ( x ) = x2 8x + 16 (di cui sappiamo
che = 4 una radice doppia). Applicando il metodo di Newton-
x2 8xn + 16
Raphson, abbiamo xn+1 = xn n . La stessa formula si
2xn 8
( x n 4)2 xn 4 xn + 4
pu riscrivere come xn+1 = xn = xn = .
2( x n 4) 2 2
La convergenza lineare: se facciamo il rapporto tra gli scarti
otteniamo un valore che tende a 0.5.
Modificando lalgoritmo tenendo conto della molteplicit della
( x n 4)2
radice, otteniamo: xn+1 = xn 2 = xn ( xn 4) = 4.
2( x n 4)
Qualunque sia il punto iniziale, arriviamo alla radice in una sola
iterazione! Per esercizio si dimostri che, data la funzione
La funzione che abbiamo preso in esame particolare, essendo un f ( x ) = ( x )2 = 0, il metodo di Newton-
Raphson modificato converge a in una sola
polinomio di grado 2, perci abbiamo una sola iterazione per arrivare iterazione qualunque sia il punto x0 iniziale.
a convergenza.
_
Osserviamo che, in caso di una radice multipla, anche il metodo
della Regula Falsi converge alla radice in modo lineare e non pi
superlineare come ci si aspetta.
Quindi
M M
e n +1 d n +1 tol
1M 1M
M M
Perci, per < 1 (vale a dire per M < 1/2), se dn+1 tol anche La disequazione < 1 si pu riscrive-
1M 1M
en+1 tol. Se, invece, M 1/2, allora lerrore pu essere un po pi re come M < 1 M da cui 2M < 1 ovvero
M < 1/2.
grande della tolleranza richiesta.
Se tol = 1010 e M = 0.8 (maggiore
Per quanto riguarda il metodo della secante variabile, poich di 1/2), lerrore sar minore o uguale a
superlineare, in base alla definizione alternativa che abbiamo dato, 4 1010 .
dn Mdn1
dn1 Mdn2
dn2 Mdn3
.. ..
. .
d2 Md1
d1 Md0
Utilizzando gli scarti come approssimazione dellerrore possiamo Deve essere p 1 e M numero reale
positivo.
dire che, se p lordine di convergenza, allora, al limite per n che
tende allinfinito, si ha
| x n +1 x n | d n +1
M ovvero M.
| x n x n 1 | p (dn ) p
Partendo dalliterazione 1 (lo scarto d0 ha un significato fittizio e non
lo usiamo) fino ad arrivare alliterazione n + 1, abbiamo le seguenti
approssimazioni per M:
d2 d3 d4 dn d n +1
M, M, M, ... M, M
( d1 ) p ( d2 ) p ( d3 ) p ( d n 1 ) p (dn ) p
Supponiamo di non conoscere quale sia il valore di p. Allora non
possiamo andare a calcolare quei rapporti tra gli scarti che abbiamo
appena scritto! Sappiamo per che quei rapporti tendono allo stesso
valore di M (la costante asintotica). Perci possiamo eguagliarli a
due a due in modo da poter avere una relazione che ci permetta di
ricavare p:
d2 d3 d2 d3
M =
( d1 ) p ( d2 ) p ( d1 ) p ( d2 ) p
d3 d4 d3 d4
p M 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
Da p ricaviamo facilmente
( d1 ) ( d2 ) p
p p
d2 (d ) p d1 d3 d2
1 p = oppure, passando ai reciproci, si ha
d3 ( d2 ) d2 d2 d1
Passando ai logaritmi si ha
d2
log
d2 d1 d
d3
log p log da cui p 3 log
d3 d2 d1 d
log In modo equivalente, p 2
d2
d2 log
d1
Lavorando allo stesso modo sugli altri rapporti tra gli scarti abbiamo:
d n +1
log
d3 dn In modo equivalente p
d
n
log log dn
d d n +1 log
p 4 , ... p d n 1
d2 d n 1
log log
d3 dn
68 annamaria mazzia
Esempio
Riprendiamo lesempio di pag. 62 in cui abbiamo confrontato gli
schemi di Newton-Raphson e della Regula Falsi. Andiamo a rivedere
i valori degli scarti e a stimare il valore di p usando la formula appena
scritta.
5.14 Esercizi
Svolgimento
Poich g0 ( x ) = 2x 5, si ha g0 ( ) = g0 (3) = 1.
k xk g( xk ) k xk g( xk )
(c) 0 1 5 0 2.5 2.75
1 5 9 1 2.75 2.8125
2 9 45 2 2.8125 2.84765625
3 45 1809 3 2.84765625 2.870864868
Svolgimento
k xk f ( xk ) f 0 ( xk )
0 0.50000000E+00 -0.18294415E+01 0.50000000E+01
1 0.86588831E+00 -0.41401211E+00 0.31964267E+01
2 0.99541173E+00 -0.13775443E-01 0.30046517E+01
3 0.99999643E+00
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.
appunti di calcolo numerico 71
f ( x n ) f ( x n 1 )
k xk f ( xk )
x n x n 1
0 0.50000000E+00 -0.18294415E+01 -
1 0.86588831E+00 -0.41401211E+00 0.38684741E+01
2 0.97291038E+00 -0.81656072E-01 0.31054906E+01
3 0.99920448E+00
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:
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 =
1
q
= 0 1 (1 x )2 1 = 1 p
1 (1 x )2
72 annamaria mazzia
sin ( x ) + x 1
x k +1 = x k .
cos ( x ) + 1
k xk f ( xk ) f 0 ( xk ) | x k x k 1 |
0 0.1 -0.80016658E+00 0.19950042E+01 -
1 0.50108517E+00 -0.18537249E-01 0.18770618E+01 0.40108517E+00
2 0.51096084E+00 -0.23565955E-04 0.18722750E+01 0.98756733E-02
3 0.51097343E+00 -0.38737166E-10 - 0.12586802E-04
Svolgimento
f (0.7) = 0.566674943938732
f (2.3) = 3.8229091229351
f ( xk )
(c) Il metodo di Newton-Rapshon xk+1 = xk dove f 0 =
f 0 ( xk )
0.20531018
1/x + 2x 1. Partendo da x0 = 1.1, si ricava x1 = 1.1 =
2.1090909
1.002654656
f ( x k ) f ( x k 1 )
k xk f ( xk )
x k x k 1
1 1.002654656 0.5312842078E-02 0.2054513650E+01
2 1.000068720 0.1374413812E-03 0.2001364094E+01
3 1.000000046
Svolgimento
k xk f ( x k 1 ) f 0 ( x k 1 ) dk
0 1.00000000000000
1 0.1386294361E+01 0.3862943611E+00 -0.1000000000E+01 0.3862944E+00
2 0.1354628119E+01 -0.3801950159E-01 -0.1200631922E+01 0.3166624E-01
3 0.1354392386E+01 -0.2788886518E-03 -0.1183069825E+01 0.2357330E-03
| x3 x2 |
Usando gli scarti, la stima per la costante asintotica vale =
| x2 x1 |2
0.2350863. Per una stima dellerrore commesso, si pu utilizza-
re il fatto che, per il metodo di Newton-Raphson vale ek < dk e,
quindi, dire che e3 0.2357330E 03. Se si vuole essere parti-
colarmente precisi, dalla relazione dk+1 ek (ricavata nellEsem-
d
pio 5.6), e considerando che k+2 1 M, abbiamo e3 d4 Md23 =
dk
2
0.2350863 (0.2357330E 03) = 1.306375E 08.
appunti di calcolo numerico 75
6.2 Interpolazione
v( x ) = c0 0 ( x ) + . . . + cn n ( x )
G costruire la funzione interpolante, cio determinare i coefficienti da interpolare. Il secondo punto pu essere
applicato tutte le volte che si vuole valutare
c0 , c1 , . . . , cn per unassegnata base 0 , 1 , . . . , n ; la funzione interpolante.
Utilizziamo come funzioni base i monomi x0 , x1 , x2 , . . . , x n . In questo caso, le funzioni base i ( x ) sono
date da i ( x ) = xi , per i = 0, 1, . . . , n.
In forma compatta, sotto forma matriciale le equazioni del sistema si Questo argomento verr approfondito nel
Capitolo 8, dove rimandiamo per i dettagli.
possono scrivere come
1 x0 x02 . . . x0n
c0 y0
1 x x 2 . . . xn c y
1 1 1 1 1
1 x2 x22 . . . x2n c2 = y2
.. .. .. .. .. ..
. . . . . .
1 xn xn . . . xnn
2 cn yn
La matrice dei coefficienti una matrice ben nota in letteratura
e prende il nome di matrice di Vandermonde. una matrice con Alexandre-Theophile Vandermonde, (1735-
1796), abbandon una carriera da violinista
determinante diverso da zero, e quindi il sistema ammette una ed una
per dedicarsi alla matematica quando aveva
sola soluzione. Osserviamo che la prima colonna ha tutti gli elementi 35 anni. Si occup di vari problemi di algebra,
uguali a 1, la seconda colonna ha le ascisse dei punti di appoggio, la di topologia, calcolo combinatoriale, e teoria
dei determinanti.
terza colonna ha i quadrati di esse, e cos via.
( x 2)( x 4) ( x 2)( x 4)
L0 ( x ) = =
(1 2)(1 4) 3
Figura 6.4: Polinomi di Lagrange L0 ( x ),
( x 1)( x 4) ( x 1)( x 4) L1 ( x ), L2 ( x ), con x0 = 1, x1 = 2, x2 = 4.
L1 ( x ) = =
(2 1)(2 4) 2 Si osservi, per ciascuno di essi, la proprie-
t per la quale L j ( xi ) = 1 se i = j e
( x 1)( x 2) ( x 1)( x 2) L j ( xi ) = 0 se i 6= j.
L2 ( x ) = =
(4 1)(4 2) 6
Il polinomio si scrive, quindi, come
1 3 3
p2 ( x ) = L0 ( x ) 1 + L1 ( x ) 3 + L2 ( x ) 3 = ( x 2)( x 4) ( x 1)( x 4) + ( x 1)( x 2)
3 2 6
Raccogliendo i termini ritroviamo p2 ( x ) = (2x2 + 12x 7)/3, lo
stesso polinomio ottenuto con le funzioni base monomiali, e ci
dovuto allunicit del polinomio interpolatore.
_
n
F(x) = ( x xk )
k =0
p( x ) = c0 + c1 ( x x0 ) + c2 ( x x0 )( x x1 ) + . . . + cn ( x x0 )( x x1 ) . . . ( x xn1 )
Esempio Consideriamo sempre le tre coppie di punti degli Questo esempio ci permette di capire come
si costruiscono i coefficienti c0 , c1 , ....
esempi precedenti, (1, 1), (2, 3) e (4, 3).
Per costruire p2 ( x ) abbiamo bisogno di 0 , 1 e 2 :
0 ( x ) = 1
1 ( x ) = ( x x0 ) = ( x 1)
2 ( x ) = ( x x0 )( x x1 ) = ( x 1)( x 2)
Quindi c1 = 1 = f ( x0 ).
In x1 = 2 abbiamo:
f ( x1 ) f ( x0 ) 31
Ricaviamo quindi c1 = = = 2. Chiamiamo
x1 x0 21
questa quantit differenza divisa del primo ordine tra x0 e x1 e la
indichiamo con f [ x0 , x1 ]. Quindi
f ( x1 ) f ( x0 )
c1 = f [ x0 , x1 ] =
x1 x0
Infine,
Per ottenere una formula per c2 che abbia carattere generale, riscri-
viamo 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 )
Ma = f [ x1 , x2 ] la differenza divisa del primo ordine
x2 x1
tra x1 e x2 da cui
f [ x1 , x2 ] f [ x0 , x1 ]
f [ x1 , x2 ] f [ x0 , x1 ] = c2 ( x2 x0 ) = c2 =
x2 x0
f [ x1 , x2 ] f [ x0 , x1 ]
f [ x0 , x1 , x2 ] = .
x2 x0
4 2
Facendo le opportune sostituzioni si ricava c2 = = . Quin-
6 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
_ Date le stesse coppie di punti, cambia il
modo per arrivare al polinomio di interpola-
Da questo esempio, si pu vedere come la rappresentazione se-
zione, usando come funzioni base i mono-
condo Newton sia di tipo ricorsivo: il polinomio p1 ( x ) = f ( x0 ) + mi, o i polinomi di Lagrange e ora la formu-
f [ x0 , x1 ]( x x0 ) (che si ha arrestandosi ai primi due passi del pro- lazione di Newton, ma il polinomio finale
sempre lo stesso essendo unico il polinomio
cedimento appena effettuato) un polinomio, in tal caso una retta, interpolatore.
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:
f [ x0 ] = c0 , f [ x0 , x1 ] = c1 , . . . , f [ x0 , x1 , . . . , x n ] = c n
f [ xi ] = f ( xi )
f [ x i +1 , . . . x j ] f [ x i , . . . , x j 1 ]
f [ xi , . . . , x j ] =
x j xi
xi f [] f [, ] f [, , ] f [, , , ] f [, , , , ]
x0 f ( x0 )
f [ x1 ] f [ x0 ]
f [ x0 , x1 ] =
x1 x0
x1 f ( x1 ) f [ x0 , x1 , x2 ] =
f [ x1 , x2 ] f [ x0 , x1 ]
=
x2 x0
f [ x2 ] f [ x1 ]
f [ x1 , x2 ] = f [ x0 , x1 , x2 , x3 ] =
x2 x1
f [ x1 ,x2 ,x3 ] f [ x0 ,x1 ,x2 ]
= x3 x0
x2 f ( x2 ) f [ x1 , x2 , x3 ] = f [ x0 , x1 , x2 , x3 , x4 ] =
f [ x2 , x3 ] f [ x1 , x2 ] f [ x1 ,x2 ,x3 ,x4 ] f [ x0 ,x1 ,x2 ,x3 ]
= = x4 x0
x3 x1
f [ x3 ] f [ x2 ]
f [ x2 , x3 ] = f [ x1 , x2 , x3 , x4 ] =
x3 x2
f [ x2 ,x3 ,x4 ] f [ x1 ,x2 ,x3 ]
= x4 x1
..
x3 f ( x3 ) f [ x2 , x3 , x4 ] = .
f [ x3 , x4 ] f [ x2 , x3 ]
=
x4 x2
f [ x4 ] f [ x3 ] ..
f [ x3 , x4 ] = .
x4 x3
..
x4 f ( x4 ) .
..
.
.. ..
. .
I coefficienti della diagonale principale sono i coefficienti c j del
polinomio interpolatore di Newton.
xi f [] f [, ] f [, , ]
1 1
31
=2
21
02 2
2 3 =
41 3
33
=0
42
4 3
2
Il polinomio p2 ( x ) si scrive: p2 ( x ) = 1 + 2( x 1) ( x 1)( x
3
2).
Se vogliamo aggiungere altri dati, per esempio, la coppia (5, 4),
dobbiamo aggiungere una riga alla tabella della differenza divisa e un
termine al polinomio che abbiamo gi ricavato per ottenere quello di
grado superiore interpolante tutti i dati che abbiamo a disposizione.
xi f [] f [, ] f [, , ] f [, , , ]
1 1
31
=2
21
02 2
2 3 =
41 3
1 2
33
=0 3 3 = 1
42 51 4
10 1
4 3 =
52 3
43
=1
54
5 4
1
Il polinomio p3 ( x ) p3 ( x ) = p2 ( x ) + ( x 1)( x 2)( x 4).
4
_
f ( k ) ( x0 )
f [ x|0 ,x{z
0 ,...,x0 ] =
} k!
k +1 volte
pn+1 ( x ) = f ( x ) = pn ( x ) + f [ x0 , x1 , . . . , xn , x ]( x x0 )( x x1 ) . . . ( x xn ).
appunti di calcolo numerico 89
xi 5 2.5 0 2.5 5
yi = f ( xi ) 3.846154e 2 1.379310e 1 1. 1.379310e 1 3.846154e 2
Con lo stesso procedimento, costruiamo i polinomi di interpolazione
di grado 8 e 16. In Figura 6.5 sono riportati i grafici della funzione
di Runge (in nero) e dei polinomi interpolanti di grado 2, 4 e 8. Si
pu osservare che solo in un sottointervallo di [5, 5] al crescere di
n, i polinomi convergono alla funzione. Agli estremi dellintervallo
[5, 5] si hanno oscillazioni che aumentano sempre pi al crescere di
n. Con n = 16 si ha il polinomio riportato in Figura 6.6 (in alto), che
non permette di distinguere il profilo della funzione di Runge a causa
delle oscillazioni molto forti. Solo se restringiamo il grafico in un
intorno dellorigine, possiamo vedere come il profilo del polinomio
p16 si avvicini bene alla funzione si veda la Figura 6.6 (in basso)!
90 annamaria mazzia
Lesempio di Runge utile per capire che la scelta dei nodi equi-
distanti non si rivela sempre la scelta giusta e che occorrono altre
strategie nella scelta dei nodi per ottenere migliori risultati. Nelle-
f (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 in-
terpolazione, aumenta lerrore! Per indagare ulteriormente su questo
problema, si rimanda alla letteratura specializzata del settore.
v ( x ) = s i ( x ) = a i + bi ( x x i ) + c i ( x x i ) 2 + d i ( x x i ) 3 , xi x xi+1 , i = 1, 2, . . . m 1
si ( xi ) = yi , i = 1, 2, . . . , m 1
s i ( x i +1 ) = y i +1 , i = 1, 2, . . . , m 1
si ( xi+1 ) = si0+1 ( xi+1 ),
0
i = 1, 2, . . . , m 2
si00 ( xi+1 ) = si00+1 ( xi+1 ), i = 1, 2, . . . , m 2
Da un punto di vista storico, il termine spli-
ne deriva da un sottile e flessibile strumento
Osserviamo che le condizioni di continuit delle derivate prime e per disegnare curve, fatto di legno o metal-
seconde le possiamo imporre solo nei punti interni, e non in x1 e xm , lo, utilizzato prima dellavvento dei compu-
ter, soprattutto nellindustria navale. Per po-
il primo e lultimo punto. Le condizioni che abbiamo appena scritto
ter passare per determinati punti, la spline
sono 2(m 1) + 2(m 2) = 4(m 1) 2. Abbiamo 2 condizioni in era tenuta ferma da alcuni pesi, mentre alle
meno rispetto alle 4(m 1) incognite che dobbiamo determinare! Le estremit non aveva costrizioni (quindi deri-
vata seconda nulla, come accade nelle spline
due condizioni che mancano vengono imposte su punti estremi x1 naturali). La spline naturale minimizza lener-
e xm e, in base alle condizioni imposte si hanno le cosiddette spline gia di tensione tra tutte le funzioni che sono
costrette a passare per quei punti e con la
naturali, complete e not-a-knot.
stessa continuit.
Nelle spline naturali si richiede s100 ( x1 ) = s00m1 ( xm ) = 0. Nelle
spline complete, vengono specificati i valori delle derivate prime
per s10 ( x1 ) e per s0m1 ( xm ). Invece per le spline not-a-knot si richie-
de la continuit della derivata terza di s1 e di sm1 in x2 e in xm1
94 annamaria mazzia
ai = yi , i = 1, 2, . . . , m 1
Da questultima otteniamo
c i +1 c i
di = , i = 1, 2, . . . , m 2 (6.3)
3hi
Questa equazione si ha per i = 1, . . . , m 2, quindi abbiamo un Il procedimento seguito fino a questo punto
valido qualunque sia il tipo di spline che
sistema di m 2 equazioni, ma le incognite ci che abbiamo introdotto
vogliamo generare.
sono m: c1 , c2 , . . . , cm . Aggiungendo le due condizioni che mancano,
Aggiungiamo, allora, le condizioni per le spline naturali: deve il procedimento si distingue da spline a spline.
essere s100 ( x1 ) = s00m1 ( xm ) = 0. Si ha
s100 ( x1 ) = 2c1 = 0
s00m1 ( xm ) = 2cm1 + 6dm1 hm1 = 0
c m 1
da cui c1 = 0 e, dm1 = . Di conseguenza, ponendo cm =
3hm1
0 possiamo estendere allindice i = m 1 la relazione (6.3) per i
c m c m 1
coefficienti di : dm1 = .
3hm1
Con la posizione c1 = cm = 0 le equazioni (6.5), per i = 1 e per
i = m 2 si semplificano, rispettivamente, in
2( h1 + h2 ) h2 0 0
..
h2 2( h2 + h3 ) h3 0 .
0 h3 2( h3 + h4 ) h4 ...
A= .. .. ..
0 . . . 0
..
. h m 3 2 ( h m 3 + h m 2 ) h m 2
0 0 h m 2 2 ( h m 2 + h m 1 )
c2 3( f [ x2 , x3 ] f [ x1 , x2 ])
c3 3( f [ x3 , x4 ] f [ x2 , x3 ])
c= .. = ..
. .
c m 1 3( f [ xm1 , xm ] f [ xm2 , xm1 ])
ai = yi
(2ci + ci+1 )hi
bi = f [ x i , x i + 1 ]
3
c i +1 c i
di =
3hi
( t1 , x1 ), ( t2 , x2 ) . . . ( t m , x m )
( t1 , y1 ), ( t2 , y2 ) . . . ( t m , y m )
6.6 Esercizi
xi -1 0 2 3 4
f ( xi ) 9 0 0 15 84
Svolgimento
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
xi f ( xi ) f (, ) f (, , ) f (, , , ) f (, , , , )
-1 9
09
0 0 = 9
0 (1)
00 0+9
2 0 =0 = 3
20 2 (1)
15 0 15 0 53
3 15 = 15 =5 = 0.5
32 30 3 (1)
84 15 69 15 27 5 11 11/2 1/2
4 84 = 69 = 27 = =1
43 42 40 2 4 (1)
Svolgimento
xi f ( xi ) f (, ) f (, , ) f (, , , )
0 1
0.48 1
0.1 0.48 = 5.2
0.1
p0 ( x ) = 1
p1 ( x ) = 1 5.2x
p2 ( x ) = 1 5.2x + 8x ( x 0.1) = 8x2 6x + 1
p3 ( x ) = 1 5.2x + 8x ( x 0.1) + 0x ( x 0.1)( x 0.8) = 1 5.2x + 8x ( x 0.1) = p2 ( x )
p00 ( x ) = 0
p10 ( x ) = 5.2
p20 ( x ) = 16x 6
Il polinomio :
e raccogliendo i termini
p2 ( x ) = 8x2 6x + 1
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 00 (0)
f [0, 0] = f 0 (0) = 7 f [0, 0, 0] = =9 f [1, 1] = f 0 (1) = 60
2!
0 2
f 0 (0)=7
0 2 f 00 (0)/2=9
18 9
f 0 (0)=7 =9
10
25 7 17 9
0 2 =18 =8
10 10
27 2 35 18
=25 =17
10 10
60 25
1 27 =35
10
f 0 (1)= 60
1 27
p( x ) = 8x4 + x3 + 9x2 + 7x + 2.
Svolgimento
La tabella delle differenze divise :
appunti di calcolo numerico 101
xi f ( xi ) f (, ) f (, , ) f (, , , )
0.4 17.62
23.5 17.62
1. 23.5 = 9.8
1 0.4
G p0 ( x ) = 17.62
14. Spiegare cosa una spline e quali sono le condizioni che vanno
imposte per ottenere i coefficienti delle spline.
x 0.00000 0.04200 0.08000 0.11800 0.15600 Tabella 7.1: Dati sperimentali per la legge di
Hooke
F 1.472481 2.418165 3.363849 4.309533 5.255217
G
ti, anche molto accurati, una funzione inter-
i dati a disposizione sono affetti da errore; polante pu dare una buona idea localmen-
te, mentre una funzione approssimante data
G siamo interessati a vedere landamento dei dati su lunga scala, in da una retta fornisce una migliore idea del
comportamento su lunga scala dei dati.
una visione globale
G vogliamo che la funzione dipenda da pochi parametri, sebbene
questi siano determinati considerando tutti i dati a disposizione.
n n
S( a0 , a1 )
0=
a0
=
a0 [(a0 + a1 xi ) yi ]2 = 2 [(a0 + a1 xi ) yi ] Data una funzione f ( x, y) che dipende da
i =0 i =0 f
n n due variabili, il simbolo rappresenta la
S( a0 , a1 )
[(a0 + a1 xi ) yi ] = 2 [( a0 + a1 xi ) yi ] xi
2 x
0= = derivata parziale della f rispetto alla variabile
a1 a1 i =0 i =0 x, che altro non che la derivata della fun-
zione g( x ) = f ( x, y) considerando y come
Queste equazioni si semplificano nel sistema delle cosiddette equa- una costante. Viceversa, con il simbolo
f
si
y
zioni normali: indica la derivata parziale della f rispetto alla
variabile y, che, per definizione, la derivata
( n + 1) a + a n x = n y della funzione h(y) = f ( x, y), dove ora x
0 1 i =0 i i =0 i
a0 n x i + a1 n x 2 = n x i y i considerata costante. Largomento viene
i =0 i =0 i i =0 trattato nei dettagli in Analisi Matematica 2.
a0 + a1 X = Y
La funzione da minimizzare
n h i2
S( a0 , a1 , . . . , am ) = ( a0 + a1 xi + a2 xi2 + . . . + am xim ) yi
i =0
Ricaviamo, quindi
n
2 ( a0 + a1 xi + . . . + am xim yi ) xi = 0
j
per j = 0, 1, . . . , m
i =0
A T Aa = A T b
1 x1 x12 . . . x1m
A= .. .. .. ..
. . . .
ln (y) = ln ( a) + bx
7.5 Esercizi
xi -1 0 2 3 4
f ( xi ) 9 0 0 15 84
(c) Calcolare il punto di intersezione delle due rette e dire di che punto
si tratta.
Svolgimento
4i=0 xi 1 + 2 + 3 + 4 4i=0 yi 9 + 15 + 84
X= = = 1.6 Y= = ) = 21.6
5 5 5 5
Svolgimento
Per trovare la curva di approssimazione del tipo y = ax b , dobbiamo
prima passare ai logaritmi:
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
10a + 16.6995268a = 52.0472913
0 1
16.6995268a0 + 28.2537116a1 = 87.6541085
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
q1 = C11 1
q2 = C21 1
q3 = C31 1
q4 = C41 1
a11 a12 a13 ... a1n
a a22 a23 ... a2n
21
a a32 a33 ... a3n
A = aij =
31
.. .. .. ..
. . . ... .
an1 an2 an3 ... ann
appunti di calcolo numerico 113
Esempio:
Per indicare che una matrice A ha n righe e m colonne, diremo che
2 10 5
A ha dimensione n m. Quando lavoreremo con matrici quadrate A=
3 1 0
di n righe e n colonne, parleremo di dimensione n della matrice per una matrice 2 3 con elementi a11 = 2,
indicare che il numero di righe uguale al numero di colonne e vale a12 = 10, a13 = 5, a21 = 3, a22 = 1 e
n. a23 = 0.
GA + B = B + A G( A + B ) + C = A + ( B + C )
GA + O = O + A = A G A + ( A) = A + A = O
G( A + B) = A + B G( + ) A = A + A
G(A) = () A G1A = A
114 annamaria mazzia
G In generale, AB 6= BA.
G
0 0 1 0
Una matrice si dice tridiagonale se gli elementi non nulli si 0 0 0 1
trovano sulla diagonale principale e sugli elementi delle diagonali Esempio di matrice tridiagonale:
che si trovano sopra e sotto la diagonale principale. 2
1 0 0 0
Ax = b
AA1 = A1 A = I
G A1 unica
G A1 nonsigolare e ( A1 )1 = A
Esempio:
Teorema 8.2.4 Valgono le seguenti propriet (per matrici per cui possi-
1 4 8 1 4 8
bile eseguire le seguenti operazioni): A = 4 2 6 T
A = 4 2 6
8 6 5 8 6 5
G( A )T T =A G( A + B ) = A + B
T T T
n
det( A) = (1)i+ j aij Mij (fissato un qualunque i = 1, 2, . . . , n)
j =1
n
det( A) = (1)i+ j aij Mij (fissato un qualunque j = 1, 2, . . . , n)
i =1
G det( A T ) = det( A)
G Se esiste A1 , si ha det( A1 ) =
1
det( A)
bi nj=i+1 aij x j
xi =
aii
bi ij 1
=1 aij x j
xi =
aii
118 annamaria mazzia
4x1 + x2 + 2x3 = 12
4x1 + 2x2 + 4x3 = 20 =
x2 2x3 = 8
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
Nella seconda e terza equazione non c pi lincognita x1 .
x3 = 3
a21 a a a
( a22 a ) x + ( a23 21 a13 ) x3 + . . . + ( a2n 21 a1n ) xn = b2 21 b1
a11 12 2 a11 a11 a11
a31
sottraiamo la prima equazione moltiplicata per dalla terza
a11
equazione.
...
an1
sottraiamo la prima equazione moltiplicata per dalla n-sima
a11
equazione.
a11 a12 ... a1n x1 b1
(1) (1) (1)
0 a22 ... a2n x2 b2
.. .. .. .. =
.
. . ... . . ..
(1) (1) xn (1)
0 an2 ... ann bn
(k)
Gli elementi diagonali aii generati ad ogni passo del metodo di
eliminazione sono detti elementi pivotali.
Nel descrivere il metodo di eliminazione di Gauss abbiamo suppo-
sto, per semplicit, che tutti gli elementi diagonali fossero diversi da
zero. Ma una matrice pu essere non singolare senza che gli elementi
della diagonale principale siano tutti diversi da zero.
Inoltre, andando avanti nel procedimento di eliminazione, pu
succedere che un elemento pivotale diventi nullo e quindi la cor-
rispondente incognita non pu essere eliminata attraverso quella
equazione nel procedimento di sostituzione allindietro.
C, infine, da considerare il fatto che si possono avere grossi errori
numerici quando un elemento pivotale molto piccolo.
Cosa fare in queste circostanze? In che modo applicare lelimina-
zione di Gauss?
Si hanno le cosiddette strategie di pivoting:
G pivoting parziale
Mano mano che si va avanti nelleliminazione, per i = 1, 2, . . . , n 1
a ciascuno stadio si sceglie il pi piccolo intero q tale che Si opera, dunque, un controllo sulla colonna
i-sima dalla posizione i fino alla posizione n,
( i 1) ( i 1)
| aqi | = max | a ji | andando a cercare il coefficiente massimo in
i jn modulo.
e si scambiano le righe i e q.
122 annamaria mazzia
e, infine, a
x1 + x2 + x3 = 1
0.0001x2 + 1x3 = 1
9999x3 = 10000
Se risolviamo il sistema utilizzando unaritmetica in base 10 con 3
cifre decimali, la sostituzione allindietro ci dar
10000 11
x3 = = 1.000, x2 = = 0, x1 = 0.
9999 0.0001
La soluzione completamente sbagliata.
Se, invece, facciamo lo scambio della seconda e terza riga adottando
il pivoting parziale, allora avremo il sistema:
x1 + x2 + x3 = 1
1x2 + 1x3 = 0
0.0001x2 + 1x3 = 1
e, infine,
x1 + x2 + x3 = 1
1x2 + 1x3 = 0
0.9999x3 = 1
U = A ( n 1) = M ( n 1) . . . M (2) M (1) A
1 0 0 a11 a12 a13 a11 a12 a13
PA = 0 0 1 a21 a22 a23 = a31 a32 a33
0 1 0 a31 a32 a33 a21 a22 a23
a11 a12 a13 1 0 0 a11 a13 a12
AP = a21 a22 a23 0 0 1 = a21 a23 a22
a31 a32 a33 0 1 0 a31 a33 a32
_
Quindi, il teorema LDU si pu applicare alla matrice A o ad
unopportuna matrice PA, se si effettua il pivoting parziale, o a PAQ
se si effettua il pivoting totale (e quindi si considerano due matrici di
permutazioni P e Q).
In genere, la matrice D viene inglobata nella L o nella U (post-
moltiplicando o pre-moltiplicando le L e le U definite prima per la
D).
appunti di calcolo numerico 125
j 1
lij = aij lim umj i = 1, 2, . . . n j = 1, 2, . . . , i
m =1
i 1
1
uij = ( aij lim umj ) i = 1, 2, . . . , n 1 j = i + 1, . . . n
lii m =1
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. Nelleliminazione di Gauss noi ricaviamo
espressamente solo la U mentre le modi-
Lo sforzo computazionale maggiore quindi quello per il calcolo
fiche operate sulla colonna dei termini noti
dei coefficienti di L e U. equivalente al prodotto L1 b (quindi da
LUx = b risolviamo Ux = L1 b).
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
G indefinita altrimenti.
Osserviamo che non tutti gli autori richiedono
Si ha unanaloga definizione per matrici definite negative e semi- la simmetria per definire una matrice defi-
nita positiva, e distinguono tra matrici defi-
definite negative. nite positive e matrici simmetriche definite
positive.
Definizione 8.5.5 Una matrice A di dimensione n si dice
nj=1 a1j x j
n
j=1 a2j x j
n n
= x1 x2 ... xm
..
= aij xi x j > 0
. i =1 j =1
nj=1 anj x j
Il seguente risultato ci permette di eliminare certe matrici dalla
classe delle matrici definite positive, se non soddisfano certi requisiti.
Basarsi sulla definizione per verificare che
una matrice sia o meno definita positiva pu
essere molto difficile. Fortunatamente, ci so-
Teorema 8.5.4 Se una matrice A di dimensione n definita positiva, allora no molti criteri che ci permettono di dire se
G
una matrice definita positiva oppure no.
A ammette la matrice inversa;
l11 = a11
li1 = ai1 /l11 i = 2, 3, . . . , n
v
i 1
u
u
l = t( a
ii ii l2 ) i = 2, 3, . . . , n
ik
k =1
j 1
1
l jj ij k
lij = (a lik l jk ) j = 2, . . . , n i = j + 1, . . . , n
=1
. Andr-Louis Cholesky (1875-1918) fu un ma-
tematico francese. Fu ufficiale ingegnere e
Tale fattorizzazione prende il nome di fattorizzazione di Cholesky.
mor alla fine della prima guerra mondiale.
8.6 Esercizi
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:
l11 0 0 l11 l21 l31 2
l11 l11 l21 l11 l31
2 + l2
l21 l22 0 0 l22 l32 = l21 l11 l21 l21 l31 + l22 l32
22
l31 l32 l33 0 0 l33 2 + l2 + l2
l31 l11 l31 l21 + l32 l22 l31 32 33
La matrice L dunque
1 0 0
0 2 0
2 4 3
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
l11 = 0.2
0.2u12 = 1 = u12 = 5
0.2u13 = 0.2 = u13 = 1
l21 = 1
1 5 + l22 = 6.5 = l22 = 1.5
1 1 + 1.5u23 = 1.75 = u23 = 0.5
l31 = 0
0 5 + l32 = 2 = l32 = 2
0 1 + 2 0.5 + l33 = 2.25 = l33 = 1.25
Le matrici L e U sono:
0.2 0 0 1 5 1
L = 1 1.5 0 U = 0 1 0.5
0 2 1.25 0 0 1
appunti di calcolo numerico 131
(d) Da Ax = b si ha LUx = b.
Si pone Ux = y e si hanno i due sistemi da risolvere per sostituzio-
ne in avanti e allindietro: Ly = b e Ux = y.
0.2 0 0 y1 2.8 y1 = 2.8/0.2 = 14
1 1.5 0 y2 = 19.25 = y2 = (19.25 14)/1.5 = 3.5
0 2 1.25 y3 10.75
y3 = (10.75 2 3.5)1.25 = 3
1 5 1 x1 14 x3 = 3
0 1 0.5 x2 = 3.5 = x2 = 3.5 3 0.5 = 2
0 0 1 x3 3
x1 = 14 3 5 2 = 1
Quindi x = (1, 2, 3) T .
Svolgimento
Inoltre
1 0 0 y1 4.5 y1 = 4.5
Ly = b = 0 1 0 y2 = 1 = y2 = 1
0.5 0.75 1 y3 31.5
y3 = 28.5
2 0.5 0.5 x1 4.5 x3 = 3 1
Ux = y = 0 1 1 x2 = 1 = x2 = 2 = x = 2
0 0 9.5 x3 28.5
x1 = 1 3
Svolgimento
appunti di calcolo numerico 133
16 > | 8| + |4| = 12
20 > | 8| + |4| = 12
12.25 > |4| + |4| = 8
La matrice L dunque
4 0 0
L = 2 4 0
1 1.5 3
HT = q
G kxk = 0 se e solo se x = 0
G kx + yk kxk + kyk
Le principali norme vettoriali sono:
G Norma assoluta (o norma l1 ), indicata con k k1 : kxk1 = in=1 | xi |
G
qNorma euclidea (o norma l 2 ), indicata con k k 2 : k x k 2 = xT x =
n
i =1 | x i | 2
Tra le norme 1, e 2 valgono le seguenti relazioni (che pongono
n
unequivalenza tra esse). Dato un vettore x R :
k x k k x k2 n k x k
k x k k x k1 n k x k
x T y k x k2 k y k2
n
Dati due vettori x e y R , si definisce distanza tra i due vettori
la norma della differenza tra i vettori. Quindi:
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
G k Ak = 0 se e solo se A = 0
G kAk = ||k Ak
G k A + Bk k Ak + k Bk
G k ABk k Akk Bk
k Axk k Akkxk
Alcune norme su matrici sono generate da norme su vettori: si Una definizione alternativa a quella che ab-
parla allora di norma naturale o indotta dalla norma di vettori. biamo dato per la norma naturale su matrici
k Ayk
n data da k Ak = maxy6=0 . Infatti,
Definizione 9.4.2 Se k k una norma su vettori in R , si definisce come kyk
preso un qualunque vettore y 6= 0, si pu
norma naturale o indotta su matrici la norma data da k Ak = maxkxk=1 k Axk. considerare il vettore x = y/kyk che ha
norma unitaria. Allora (sfruttando le proprie-
Le norme di matrici indotte dalla norma 1 e dalla norma infinito t delle norme su vettori e considerando la
su vettori sono: relazione che lega x a y) abbiamo
G
y
Norma 1: k Ak1 = max j in=1 | aij | (data dal massimo sulla somma
k Ak = max k Axk = max
A
kyk
kxk=1 y6=0
delle colonne)
da cui
G Norma infinito: k Ak = maxi nj=1 | aij | (data dal massimo sulla k Ak = max
y6=0
k Ayk
kyk
somma delle righe)
G N( A) = ptr( A
r
ni=1 | aij |2 .
p
T A) = tr ( AA T ) =
j =1
Tra le norme naturali su matrici e le norme di vettori da cui sono
generate, facile provare la seguente proposizione.
da cui
k Axk k Akkxk
Ax = x
appunti di calcolo numerico 139
( A I )x = 0
G
Quindi esistono n coefficienti 1 , 2 , . . . , n
Se tutti gli n autovalori di una matrice A sono distinti, allora gli per cui x = 1 u(1) + 2 u(2) + . . . + n u(n) .
Inoltre, per vettori linearmente indipenden-
n autovettori u(1) , u(2) , . . . u(n) sono linearmente indipendenti. ti vale il risultato: 1 u(1) + 2 u(2) + . . . +
n u(n) = 0 se e solo se tutti i coefficienti i
sono uguali a zero, per i = 1, 2, . . . , n.
140 annamaria mazzia
( A) = max ||
autovalore di A
Se un numero complesso, si pu scrivere
Quindi il raggio spettrale il massimo, in modulo, degli autovalori come = + i, con e numeri reali e
di A. i = 1 la cosiddetta unit
p immaginaria.
Per il modulo si ha || = 2 + 2 .
Possiamo ora definire la norma 2 su matrici indotta dalla norma 2
su vettori. Si pu, infatti, provare che
G k Ak 2
p
= ( A T A ).
Inoltre, per ogni norma naturale, vale il risultato
( A) k Ak
lim ( Ak )ij = 0, i, j = 1, 2, . . . , n
k
Si ha il seguente teorema.
4. ( A) < 1.
O, equivalentemente,
x ( k +1) = ( I M 1 A ) x ( k ) + M 1 b k = 0, 1, . . .
Notiamo che, ad ogni passo, non dobbiamo calcolare esplicitamente Lo schema iterativo appena descritto un
metodo stazionario (cio non dipende dalli-
M1 , perch risolviamo problemi del tipo Mp(k) = r(k) = b Ax(k)
terazione k) e pu essere visto come caso
in modo da porre x(k+1) = x(k) + p(k) . La matrice E = I M1 A particolare di uno schema di punto fisso per
detta matrice di iterazione del metodo. Nel seguito, per semplicit, equazioni nonlineari: la funzione g tale che
x(k+1) = g(x(k) ) converga alla soluzione
poniamo q = M1 b. del sistema Ax = b, data da g(x) =
x + M1 (b Ax) o equivalentemente da
g(x) = Ex + q.
9.6.1 Convergenza
x = Ex + q
x(k) = Exk1 + q
e sottraendo si ricava
e (k)
= Ee(k1)
e(k) = Ee(k1)
e(k1) = Ee(k2)
e(k2) = Ee(k3)
.. ..
.=.
e(2) = Ee(1)
e(1) = Ee(0)
x(k+1) = Ex(k) + q 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
!
2k k
= 1k 1 u (1)
+ 2 u (2)
+ . . . + n nk u(n)
1k 1
ik
per k si ha 0 per i = 2, 3, . . . , n
1k
1k 1 u(1)
appunti di calcolo numerico 143
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
k e (0) k 1
( E ) k k e (0) k = ( E)k
10 10
Applicando il logaritmo in base 10 ad ambo i membri si ha
1
k log10 (( E)) 1 = k
log10 (( E))
cio occorrono k iterazioni con k dato dal pi piccolo intero che
soddisfa la relazione appena scritta. Meno iterazioni occorrono fare,
pi veloce il metodo.
Si definisce perci velocit asintotica di convergenza
log10 (( Ek ))
R = log10 (( E)) =
k
Osserviamo che, essendo ( E) < 1, nelle ipotesi in cui il metodo
converge, log10 (( E)) < 0 e, di conseguenza, R > 0.
Se vogliamo ridurre lerrore iniziale di una certa quantit e, rifacen-
do i conti come prima, dobbiamo cercare lintero k che renda valida la
disuguaglianza ke(k) k eke(0) k, sapendo che ke(k) k ( E)k ke(0) k.
Ma allora deve valere la relazione
log10 (e)
k log10 (( E)) log10 (e) = k log10 (( E)) log10 (e) = k
R
Troviamo in questo modo quante iterazioni (il primo intero k che
verifica la relazione precedente) occorre fare per poter ridurre lerrore
iniziale di e.
e(k) 1k 1 u(1)
9.6.3 I metodi
A = L+D+U
Il metodo di Jacobi (o degli spostamenti simultanei - o rilassamento Carl Gustav Jacob Jacobi (1804-1851) fu un
grande matematico tedesco. Tra i suoi nume-
simultaneo) si ha ponendo M = D da cui la matrice di iterazione
rosi studi ricordiamo quelli sulle funzioni ellitti-
diventa E J = I D 1 A = I D 1 ( L + D + U ) = D 1 ( L + U ). che, sulla teoria dei numeri e sulla meccanica
Scrivendo lo schema iterativo per Jacobi, si ha, in forma matriciale: celeste.
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
Componente per componente, il metodo di Jacobi si scrive, per i =
1, 2, . . . , n, come
(k)
( D 1 )ii (( L+U )x )i
n
1
( k +1)
bi (k)
xi = aij x j
aii
j=1,j6=i
o, equivalentemente,
( Lx(k) )i
( D 1 )ii (Ux(k) )i
i 1 n
1
( k +1)
bi (k) (k)
xi = aij x j aij x j per i = 1, . . . , n
aii
j =1 j = i +1
146 annamaria mazzia
1
x1 = [b ( a12 x2 + a13 x3 + . . . + a1n xn )]
a11 1
1
x2 = [b2 ( a21 x1 + a23 x3 + . . . + a2n xn )]
a22
.. ..
.= .
1
xi = [b ( ai1 x1 + ai2 x2 + . . . + aii1 xi1 + aii+1 xi+1 + . . . + ain xn )]
aii i
.. ..
.= .
1
xn = [bn ( an1 x1 + an2 x2 + an3 x3 + . . . + ann1 xn1 )]
ann
Ax = b
( 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)1 Ux(k) + ( D + L)1 b
Moltiplicando ambo i membri per ( D + L) si ha
( 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)
" #
i 1 n
1
aii i j
aij x j
( k +1) ( k +1) (k)
xi = b aij x j per i = 1, . . . , n
=1 j = i +1
x ( k +1) = x ( k ) + ( D + L ) 1 r ( k )
" #
i 1 n
aii i j
aij x j
( k +1) (k) ( k +1) (k)
xi = (1 ) x i + b aij x j per i = 1, . . . , n
=1 j = i +1
E = ( D + L)1 [(1 ) D U ]
= ( D + L)1 [(1 ) D ( A D L)]
= ( D + L)1 [( D + L) A]
h i
= I ( D + L)1 A
0 0 1 2
G
coerentemente ordinata.
se j > i allora q j qi = 1
G se j < i allora q j qi = 1
2
opt = q e ( Eopt ) = opt 1
1+ 1 ( E J )2
9.7 Esercizi
9.7.1
Esercizio lineare Ax = b, dove
Siadato il sistema
8 2 6 30
A = 7 5 0 b = 34
1 0 5 7
Svolgimento
appunti di calcolo numerico 153
8 2 6
7 5 0
1 0 5
1/4 3/4
3 1 1 7
7/5 0 = 3 + + = 0
4 5 4 5
1/5 0
3 7
Si ha: 0 = det ( E J I ) = 3 + (+ ),
20 20
Una radice = 0, e le altre due sono = 1/2 = 0.5 =
0.707106781.
Gli autovalori sono tutti reali e quello di massimo modulo =
0.707106781 < 1.
C, dunque, convergenza per i metodi di Jacobi e di Gauss-Seidel
(( ES ) = ( E J )2 = 0.5). Le velocit di convergenza valgono
R J = log10 (( E J )) = 0.1505149
RS = log10 (( ES )) = 0.301029995 = log10 (( E J )2 ) = 2R J
Lo schema di Jacobi :
Partendo dal vettore x (0) con
( k +1) 1 (k) (k)
x1 = (30 2x2 6x3 ) componenti tutte nulle, abbiamo
8
k x(1k) x(2k) x(3k)
(b)
1
( k +1) (k)
x2 = (34 7x1 ) 0 0 0 0
5
1 3.75 6.8 1.4
x ( k +1) = 1 (7 x ( k ) )
2 1.0 1.55 0.65
3 5 1
154 annamaria mazzia
Lo schema di Seidel :
Partendo dal vettore x (0) con
x (k+1) = 1 (30 2x (k) 6x (k) )
componenti tutte nulle, abbiamo
1 8 2 3
(k) (k) (k)
k x1 x2 x3
1
( k +1) ( k +1)
x2 = (34 7x1 ) 0 0 0 0
5
1 3.75 1.55 0.65
( k +1) 1 ( k +1) 2 2.875 2.775 0.825
x
3 = (7 x1 )
5
il sistema Ax = b con
9.7.2 Dato
Esercizio
5 0 10
A = 0 3 15
2 1
Svolgimento
3
Ricaviamo gli autovalori = 0 e = .
3
Perch ci sia convergenza deve dunque essere < 1 ovvero
3 < . Ricaviamo la relazione > 9.
2
(b) Dalla relazione dellopt , opt = q , 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:
2 3 1 8 9 81
= = = 1 9/ = = = = = 10.125
1+ 1 9/ 2 3 9 8
appunti di calcolo numerico 155
3
Da opt = = 1.5 segue opt = opt 1 = 0.5, da cui R =
2
log10 (opt ) = 0.3010299957.
9.7.3 Dato
Esercizio il sistema Ax = b dove:
lineare
6 1 3 9
A = 1 8 2 b=3
4 3 10 14
Svolgimento
0.403125000000000 7.836588541666667E 002
d2 = x2 x1 = 0.135546875000000 e d3 = x3 x2 = 4.068277994791664E 002
0.201914062500000 4.355118815104175E 002
11. Che relazione c tra gli autovalori di una matrice e la sua traccia
e determinante?
14. Che relazione esiste tra il raggio spettrale di una matrice e una
norma naturale su matrice?
36. Abbiamo studiato alcune matrici che sono sia bicicliche sia coe-
rentemente ordinate: quali sono?
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) ).
appunti di calcolo numerico 163
(k) (k)
k k p ( k ) k2 kf(x(k) )k2 x1 x2
0 2.000000e-10 2.302173e+01 1.0000000000000000 1.0000000000000000
1 1.228623e+00 1.022848e+01 1.9117647058823530 1.8235294117647058
2 2.729148e-01 6.073071e-01 1.6642652418726938 1.7085228106205075
3 1.924654e-02 3.326709e-03 1.6451607390354450 1.7061888752349927
4 1.112225e-04 1.120144e-07 1.6450495207124343 1.7061879132266946
5 3.759668e-09 7.108896e-15 1.6450495169527666 1.7061879132265310
6 2.633315e-16 0.000000e+00 1.6450495169527668 1.7061879132265312
(k) (k)
k k p ( k ) k2 kf(x(k) )k2 x1 x2
0 2.000000e-10 2.980143e+01 -0.5000000000000000 1.0000000000000000
1 2.702083e+00 6.267123e+01 -3.0735294117647061 1.8235294117647058
2 1.102160e+00 1.093291e+01 -1.9773856415813829 1.7085228106205077
3 3.044172e-01 8.391335e-01 -1.6729773676003774 1.7061888752349932
4 2.769474e-02 6.945470e-03 -1.6452826237649281 1.7061879132266946
5 2.330903e-04 4.919889e-07 -1.6450495334662778 1.7061879132265312
6 1.651351e-08 0.000000e+00 -1.6450495169527668 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
k x ( k +1) x ( k ) k M k x ( k ) x ( k 1) k 2
164 annamaria mazzia
2
il problema applicandolo allo spazio R .
Sono date n misure di (con i = 1, 2, . . . , n) tra un punto incognito P0
di coordinate ( x0 , y0 ) (il ricevitore) ed n punti noti Pi ( xi , yi ) (i satelliti
GPS). La distanza osservata affetta da errore di misura ei . Quindi
abbiamo la relazione tra distanza osservata, distanza esatta (data dalla
ben nota formula di Euclide) ed errore data da
q
d i = ( x i x 0 ) 2 + ( y i y 0 ) 2 + ei , i = 1, 2, . . . , n
Allora
i ( x, y) ( x, y)
i ( x0 , y0 ) = i ( x, y) + ( x0 x ) + i ( y0 y )
x y
bi = di i ( x, y) = i ( x0 , y0 ) + ei i ( x, y)
i ( x, y) ( x, y)
= i ( x, y) + ( x0 x ) + i (y0 y) + ei i ( x, y)
x y
( x, y) ( x, y)
= i ( x0 x ) + i ( y 0 y ) + ei
x y
(10.1)
A + e = b o, quivalentemente, e = b A
(7, 9), (2, 7), (1, 4), (10, 15), (5, 8), (20, 15) Figura 10.3: Esempio di minimi quadrati non
lineari: in blu i punti noti, il puntino in rosso
Il punto ( x, y) ha coordinate (4.04, 4.96). Le distanze osservate dagli il punto provvisorio, il puntino in nero
il punto incognito che si ricava mediante il
n punti rispetto al punto incognito ( x0 , y0 ) sono date dai valori (in procedimento ai minimi quadrati.
chilometri)
_
11 Integrazione numerica
f (b) f ( a)
p( x ) = f ( a) + ( x a)
ba
Lerrore di interpolazione, utilizzando lespressione del resto di La-
grange (e, quindi, considerando valide le ipotesi, per questo caso, di
f continua fino alla derivata seconda) dato da
f 00 ( x )
E( x ) = ( x a)( x b)
2
dove x un punto incognito dellintervallo [ a, b] che varia al variare
di x. Per quanto abbiamo studiato sullinterpolazione, sappiamo
che la funzione f ( x ) si pu scrivere come somma del polinomio e
dellerrore: f ( x ) = p( x ) + E( x ). Nel nostro caso, abbiamo
f (b) f ( a) f 00 ( x )
f ( x ) = f ( a) + ( x a) + ( x a)( x b)
ba 2
Dovendo integrare la f tra a e b e valendo luguaglianza precedente,
integrando ambo i membri, otteniamo:
f 00 ( x )
Z b Z b Z b
f (b) f ( a)
f ( x )dx = f ( a) + ( x a) dx + ( x a)( x b) dx
a a ba a 2
ovvero
Z b Z b
f ( a) + f (b) 1
f ( x )dx = (b a) + ( x a)( x b) f 00 ( x ))dx
a 2 2 a
( b a )3
Z b
f ( a) + f (b) 1 00
f ( x )dx = (b a) f ( )
a 2 2 3!
Lintegrale della funzione f pu essere visto, dunque, come la somma
f ( a) + f (b)
di due termini, il primo dato da (b a) che riusciamo
2
appunti di calcolo numerico 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 termi-
ne 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 lerro-
re mediante la relazione
( b a )3
| Eint | M
12
Z n
(n) 1
Ci = Li (s)ds i = 0, 1, . . . , n
n 0
1 1 1 ( s 1) 1
Z Z
(1)
C0 = L0 (s)ds = ds =
1 0 0 1 2
1 1
Z 1
s 1
Z
(1)
C1 = L (s)ds = ds =
1 0 1 0 1 2
Gli integrali degli altri termini del polinomio p( x ) portano alla for-
mula di Cavalieri-Simpson. Infatti (omettendo i passaggi matematici
e ricordando che lampiezza dellintervallo su cui stiamo lavorando
h = 2t) si ha
Z 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 t t2 2t3
2t
= ( f (t) + 4 f (0) + f (t))
6
h
= ( f (t) + 4 f (0) + f (t))
6
Allora lerrore della formula di Cavalieri-Simpson coincide con
lintegrale di E( x ).
R t f ( IV ) ( x )
Quindi Eint = t ( x + t) x2 ( x t)dx
4!
La funzione ( x + t) x2 ( x t) = ( x2 t2 ) x2 non cambia mai segno
allinterno dellintervallo [t, t], quindi si pu applicare il teorema
del Valore Medio del calcolo integrale, per cui
t
f ( IV ) ( ) f ( IV ) ( ) x5 x3 f ( IV ) ( ) 5
Z t
Eint = ( x2 t2 ) x2 dx = t2 = t
24 t 24 5 3 t 90
Considerando che lampiezza dellintervallo h = 2t si ha
f ( IV ) ( ) h 5 f ( IV ) ( ) 5
Eint = ( ) = h
90 2 2880
Troviamo la formula dellerrore per Cavalieri-Simpson.
a
f ( x )dx = f ( x )dx
i =1 x i 1
n Z xi n n
x i x i 1 h
f ( x )dx 2
[ f ( xi1 ) + f ( xi )] = [ f ( xi1 ) + f ( xi )]
2
i =1 x i 1 i =1 i =1
h
I [ f ( x0 ) + 2 f ( x1 ) + 2 f ( x2 ) + . . . + 2 f ( xn1 ) + f ( xn )]
2
f ( a) + f (b)
= h[ + f ( x1 ) + f ( x2 ) + . . . f ( xn1 )]
2
m f 00 ( i ) M i = 1, . . . , n
in=1 f 00 ( i )
Per il teorema del Valor Intermedio (teorema 3.6.3),
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
in=1 f 00 ( i ) n
f 00 ( ) =
n
ovvero f 00 ( i ) = n f 00 ( ).
i =1
a
f ( x )dx 6 ( f (ai ) + 4 f (ci ) + f (bi )) mula va scritta considerando il valore hi per
i =1 ciascun intervallino.
x0 = a
x2i = x0 + ih i = 0, . . . n I nodi pari corrispondono agli estremi dei
1 sottointervalli, mentre i nodi dispari sono i
x2i+1 = x0 + (i + )h i = 0, . . . , n 1 punti centrali di ogni sottointervallo.
2
Per la formula di quadratura otteniamo
Z b n1 Z x2i+2
I=
a
f ( x )dx = x2i
f ( x )dx
i =0
n 1
h
6
[ f ( x2i ) + 4 f ( x2i+1 ) + f ( x2i+2 )]
i =0
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 annamaria mazzia
h 0 2 2 3 2 2
ICS = [e + 4e(h/2) + 2e(h) + 4e( 2 h) + e(2h) ]
6
0.25 2 2 2
= [1 + 4e0.125 + 2e0.5 + 4e0.75 + e1 ]
3
= 0.746855
L = 2 (v1 + 4v2 + 2v3 + 4v4 + 2v5 + . . . + 2v12 + 4v13 + v14 ) = 3010 metri
max0 x1 | f 00 ( x )| (b a)3
| Etrap |
12 n2
Per Cavalieri-Simpson si ha
max0 x1 | f IV ( x )| (b a)5
| ECS |
2880 n4
2
Da f ( x ) = e x abbiamo, per le derivate:
2
f 0 ( x ) = 2xe x
2
f 00 ( x ) = (2 + 4x2 )e x
2
f 000 ( x ) = (12x 8x3 )e x
2
f IV ( x ) = (12 48x2 + 16x4 )e x
appunti di calcolo numerico 183
1 1
105 105
6n2 240n4
f IV ( 1 ) b a 5 f IV ( 1 )
E1 = = ( b a )5
90 2 2880
Suddividiamo ora lintervallo [ a, b] in due sottointervalli e applichia-
mo la formula composta di Cavalieri-Simpson. Lerrore che otteniamo
vale
f IV ( 2 ) (b a)5
E2 =
2880 24
e, supponendo che le derivate quarte della f non siano molto diverse
E
tra loro, si ha E2 1 .
16
Lerrore, quindi, diventa 16 volte pi piccolo passando dalla for-
mula di Cavalieri-Simpson in un intervallo alla formula applicata in
due sottointervalli.
Sia I il valore esatto dellintegrale e Q1 e Q2 i due valori approssi-
mati ottenuti considerando la formula di Cavalieri-Simpson con n = 1
e n = 2 sottointervalli. Sia e lerrore, cambiato di segno, che si ha con
n = 2, e = E2 E1 /16. Possiamo scrivere
I + e = Q2 per n = 2
I + 16e = Q1 per n = 1
184 annamaria mazzia
Q1 Q2
e=
15
Quindi
Q2 Q1
I Q2 +
15
Utilizzando le due approssimazioni Q1 e Q2 possiamo approssimare
lintegrale esatto con una maggiore accuratezza mediante la formula
appena scritta. Questo procedimento prende il nome di estrapola- Si pu dimostrare che la nuova approssi-
mazione ottenuta coincide con la formula di
zione di Richardson. Pu essere utilizzato per migliorare lapprossi-
Newton-Cotes con n = 4, dove lerrore
mazione di un integrale ma basato sullipotesi che le derivate quarte proporzionale a 1/n6 e alla derivata sesta di
della funzione integranda siano circa uguali e, quindi, va usato con f.
cautela.
11.6 Esercizi
Z 0
Esercizio 11.6.1 Sia dato lintegrale I = e x ( x + 1) dx.
2
Svolgimento
i xi f ( xi )
0 -2 -7.3890561
1 -1.6 -2.97181945
2 -1.2 -0.664023385
3 -0.8 0.445108186
4 -0.4 0.895094819
5 0 1
f ( x0 ) + f ( x5 )
Itrap = h( + 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):
Z 0 Z 0
x
I= f ( x ) dx = e ( x + 1)|02 + e x dx = e x ( x + 2)|02 = 2
2 2
Svolgimento
b a f ( a) + f (b)
IT = ( + 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.5( 0.571428571 0.666666667 0.8)
2
= 1.39404762
f 00 ( ) (b a)3
(b) Consideriamo la formula dellerrore: E =
12 n2
2 2 4
Da f ( x ) = segue f 0 ( x ) = e f 00 ( x ) = .
x4 ( x 4)2 ( x 4)3
186 annamaria mazzia
Z 2
2
I= dx = 2 ln (| x 4|)|20 = 2 ln (| 2|) 2 ln (| 4|) = 2 ln (1/2) = ln (1/4) 1.386294361
0 x4
Lerrore esatto commesso con la formula dei trapezi, in valore
assoluto, | I IT | = 0.00775325793
Svolgimento
0.5
Q1 = ( f (0) + 4 f (0.25) + f (0.5)) = 0.523823565
6
Si ha, infatti, f (0) = 1, f (0.25) = 1.03279556 e f (0.5) = 1.15470054.
appunti di calcolo numerico 187
h
Q2 = ( f ( x0 ) + 4( f ( x1 ) + 4 f ( x3 )) + 2 f ( x2 ) + f ( x4 )) = 0.523616326
6
Q2 Q1
(b) La formula di estrapolazione di Richardson : IR = Q2 +
15
da cui ricaviamo IR = 0.5236025101
Z 0.5
1
I= dx = arcsin ( x )|0.5
0 = /6 0 = 0.523598775
0 1 x2
xi 1 2 3 4 5 6 7
yi 3.1 5 6.2 8.6 9.8 11.4 12.9
Svolgimento
In questo esercizio, non sappiamo chi sia la funzione f ma abbia-
mo 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 permet-
tono 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.
188 annamaria mazzia
Svolgimento
Allinizio del 900, van der Pol studi fenomeni non lineari e Balthasar van der Pol (1889-1959) fu un fisico
e matematico olandese. Nel 1916 lavor per
propose lequazione differenziale
un anno con lingegnere John Ambrose Fle-
ming a Londra (Fleming aveva gi inventato il
y00 (t) + e(y2 (t) 1)y0 (t) + y(t) = 0 diodo nel 1904). Si trasfer successivamente
a Cambridge e inizi una collaborazione con
Questa equazione governa lintensit di corrente in un circuito oscil- John Joseph Thomson al Cavendish Labora-
tory (Thomson aveva scoperto lelettrone nel
lante a triodo e viene utilizzata nello studio di circuiti che contengono 1897). Qui divenne amico di Edward Apple-
valvole termoioniche, i cosiddetti tubi a vuoto, come il tubo catodico ton che, nel 1947, ricevette il premio Nobel
del televisore o il magnetron nei forni a microonde. La quantit per la fisica per i suoi contributi alla cono-
scenza della ionosfera studi fatti insieme a
e indica lintensit dello smorzamento non lineare: quanto pi e van der Pol. La loro collaborazione riguard
elevato tanto pi il sistema perde energia rapidamente. anche lo studio di fenomeni non lineari usan-
do circuiti triodi per verificare le loro teorie.
Lequazione differenziale del secondo ordine si pu ricondurre Quando van del Pol rientr in Olanda, conti-
ad un sistema di equazioni differenziali del primo ordine. Ponendo nu a occuparsi di ottica, elettromagnetismo,
u = (u1 , u2 ) = (y, y0 ) si ha onde radio e fisica atomica. Il nome di van der
Pol associato con lequazione differenziale
! ! che porta il suo nome. Questa equazione ap-
u10 u2 parve per la prima volta sul suo articolo On
=
u20 e((u1 )2 1)u2 u1 relaxation oscillation pubblicato sulla rivista
Philosophical Magazine nel 1926.
h2 00
f ( x0 h ) = f ( x0 ) h f 0 ( x0 ) + f ( )
2
Portiamo a primo membro f 0 ( x0 ), ottenendo
f ( x0 ) f ( x0 h) h 00
f 0 ( x0 ) = + f ( )
h 2
h2 00
Se trascuriamo il termine f ( ) abbiamo una formula che appros-
2
0
sima f ( x0 ) e che si chiama backward difference formula, formula delle
differenze allindietro (stiamo usando infatti il punto x0 h).
h2 00
f ( x0 + h ) = f ( x0 ) + h f 0 ( x0 ) + f ( )
2
da cui
f ( x0 + h) f ( x0 ) h 00
f 0 ( x0 ) = f ( )
h 2
f ( x0 + h ) f ( x0 )
La forward formula f 0 ( x0 ) =
h
appunti di calcolo numerico 193
h2 00 h3 000
f ( x0 + h ) = f ( x0 ) + h f 0 ( x0 ) + f ( x0 ) + f ( 1 )
2 6
h2 00 h3 000
f ( x0 h ) = f ( x0 ) h f 0 ( x0 ) + f ( x0 ) f ( 2 )
2 6
f ( x0 + h) f ( x0 h) h2 000
f 0 ( x0 ) = f ( )
2h 6
Se trascuriamo il termine che dipende da h2 otteniamo unapprossi-
mazione di f 0 ( x0 ).
f ( x0 + h ) f ( x0 h )
La formula centrata data da f 0 ( x0 ) =
2h
1 h4
f 0 ( x0 ) = ( f ( x0 2h) 8 f ( x0 h) + 8 f ( x0 + h) f ( x0 + 2h)) + f (v) ( )
12h 30
Da questa, otteniamo la formula detta a 5 punti perch, oltre al
punto in cui vogliamo approssimare la derivata, ne consideriamo altri
quattro.
194 annamaria mazzia
1
f 0 ( x0 ) ( f ( x0 2h) 8 f ( x0 h) + 8 f ( x0 + h) f ( x0 + 2h))
12h
y0 = y + t, t0
Per risolvere il sistema, possiamo usare metodi che vanno bene per
risolvere equazioni differenziali del primo ordine. La prima compo-
nente 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 n +1 n
dove y : R R con y = (y1 y2 . . . yn ), f : R R e y0 (t) =
dy
denota la derivata rispetto a t (per cui la i-sima componente del
dt
dy (t)
vettore derivata data da yi0 (t) = i ). La funzione f assegnata e
dt
noi vogliamo determinare il vettore di funzioni y che soddisfa lODE.
Per semplicit noi studieremo il caso di una singola equazione
scalare, n = 1. Ma lapproccio del tutto simile nel caso di sistemi di
equazioni del primo ordine.
Sia data lODE
y( a) = y a .
Con il metodo di Eulero esplicito applichiamo la formula di Taylor Leonhard Euler (1707-1783) fu un matemati-
co svizzero. Fu studente di Johann Bernoulli
(del secondo ordine) alla funzione y(t), di centro ti , in modo da poter
che comprese le sue grandi potenzialit e
successivamente approssimare la derivata prima y0 (ti ): favor i suoi studi. Eulero noto soprattutto
per i suoi contributi nel campo della geome-
(t ti )2 00
y ( t ) = y ( ti ) + ( t ti ) y 0 ( ti ) + y ( i ) tria, della teoria dei numeri, delle equazioni
2 differenziali, del calcolo delle variazioni.
lui che introdusse il simbolo f ( x ) per indica-
(t ti )2 00
La quantit y ( i ) il resto della formula di Taylor con i un re le funzioni, e per la base naturale, i per
2 la radice quadrata di 1, di , il simbolo di
punto opportuno nel segmento di estremi t e ti . sommatoria e altri ancora.
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:
h2 00
y(ti+1 ) = y(ti ) + hy0 (ti ) + y ( i )
2
Esplicitando y0 (ti ) rispetto agli altri termini si ha:
y(ti+1 ) y(ti ) h 00
y 0 ( ti ) = y ( i )
h 2
Ora si sostituisce il valore trovato per y0 (ti ) nella ODE y0 =
f (t, y(t)) per t = 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 so-
2
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 ).
y1 = y0 + f ( t0 , y0 )
y2 = y1 + f ( t1 , y1 )
.. ..
.= .
appunti di calcolo numerico 197
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:
per cui il valore che otteniamo per il tempo ti+1 tangente alla
traiettoria della soluzione di questo IVP.
(t ti+1 )2 00
y ( t ) = y ( t i +1 ) + ( t t i +1 ) y 0 ( t i +1 ) + y ( i )
2
Per t = ti , si ha t ti+1 = ti ti+1 = ti (ti + h) = h. Sostituendo,
abbiamo:
h2 00
y(ti ) = y(ti+1 ) hy0 (ti+1 ) + y ( i )
2
Otteniamo quindi
y(ti+1 ) y(ti ) h 00
y 0 ( t i +1 ) = + y ( i )
h 2
Andando a sostituire nella ODE al tempo ti+1 , si ha :
y(ti+1 ) y(ti ) h 00
+ y ( i ) = f (ti+1 , y(ti+1 ))
h 2
h 00
Trascurando il termine del resto di Taylor y ( i ) abbiamo:
2
y i +1 y i
= f (ti+1 , yi+1 ))
h
y1 = y0 + h f (t1 , y1 ) = 1 0.5y31
y 0 = y2
y (0) = 1
Partendo da y0 = 1 si ricava:
y1 = 1 0.1(12 ) = 0.9
y2 = 0.9 0.1(0.92 ) = 0.819
1
Per confronto, calcoliamo la soluzione esatta y(t) = , ottenendo:
t+1
y(t1 ) = y(0.1) = 1/(0.1 + 1) = 0.9090909090
y(t2 ) = y(0.2) = 1/(0.2 + 1) = 0.8333333333
y1 = y0 + h f (t1 , y1 ) = 1 0.1(y21 )
Quindi y1 = 0.9161779367.
Al secondo passo, lo schema di punto fisso dato dalla funzione
g(y) = y1 h(y2 ) = 0.9161779367 0.1y2 .
Come approssimazione iniziale prendiamo y(0) = y1 + h f (t1 , y1 ) =
g(y1 ) = 0.8322397355. Si ha:
h
Si ha la formula di Crank-Nicolson: yi+1 = yi + [ f (ti , yi ) + f (ti+1 , yi+1 )]
2
y i +1 y i = h f ( t i , y i )
y i +1 y i = h f ( t i +1 , y i +1 )
h h
y i +1 y i = [ f (ti , yi ) + f (ti+1 , yi+1 )] = yi+1 = yi + [ f (ti , yi ) + f (ti+1 , yi+1 )]
2 2
i = y ( ti ) yi .
Definizione 12.7.3 Lerrore globale dello schema numerico dato dal con-
tributo dellerrore totale di troncamento e dellerrore totale di arrotondamen-
to
ei = y ( t i ) y i = i + i
y ( t i +1 ) y ( t i ) h
di = f (ti , y(ti )) = y00 ( i ) = O(h)
h 2
y ( t i +1 ) y ( t i ) h
di = f (ti+1 , y(ti+1 )) = y00 ( i ) = O(h)
h 2
h f 00 ( i , i ) 3
y ( t i +1 ) y ( t i ) = [ f (ti , y(ti )) + f (ti+1 , y(ti+1 ))] h
2 12
dove i e i sono opportuni punti. Ma f = y0 da cui f 0 = y00 e
f 00 = y000 .
appunti di calcolo numerico 203
Perci
h y000 ( i ) 3
y ( t i +1 ) y ( t i ) = [ f (ti , y(ti )) + f (ti+1 , y(ti+1 ))] h
2 12
y ( t i +1 ) y ( t i ) 1 y000 ( i ) 2
di = [ f (ti , y(ti )) + f (ti+1 , y(ti+1 ))] = h = O(h2 )
h 2 12
| e i | M | e0 |
y0 = y
y1 = (1 h ) y0
y2 = (1 h ) y1 = (1 h )2 y0
..
.
y i = (1 h ) y i 1 = (1 h ) i y 0
ln (1 h)
Di conseguenza limh0 e h = e 1
Allora
1 t
Quindi
y0
y1 =
(1 + h)
y1 y0
y2 = =
(1 + h) (1 + h)2
y2 y0
y3 = =
(1 + h) (1 + h)3
..
.
y i 1 y0
yi = =
(1 + h) (1 + h)i
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.
y0
Per la stabilit, dalla soluzione numerica yi = , si osser-
(1 + h)i
va che, per i +, qualunque sia il valore di h, la soluzione
1
tende a zero in quanto limi+ = 0 Si parla di metodo
(1 + h)i
incondizionatamente stabile.
Ma
1 1 2 h
2 h
h = e h ln ( 2 + h )
2 + h
Nel fare il limite per h 0 e i + della quantit che si trova
allesponente, applichiamo lHpital e ricordiamo che la derivata
2 h (2 + h) (2 h)
di , rispetto alla variabile , vale =
2 + h (2 + h)2
4
:
(2 + h)2
2 h
ln ( )
lim 2 + h = lim 2 + h 4 = lim
4
=
h 0 h h0 2 h (2 + h )2 h0 (2 + h )(2 h )
i + i + i +
Quindi
ih
1
i
2 h 2 h h
t
lim yi = lim y0 = lim y0 = y0 e = y(t)
h 0 h 0 2 + h h 0 2 + h
i + i + i +
La convergenza provata.
2 h i
Per la stabilit, si vede che la soluzione numerica yi = y0 .
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.
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 +. . .
_
12.10 Esercizi
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
10. Cosa significa che un metodo per risolvere equazioni alle derivate
ordinarie un metodo stabile?