Vous êtes sur la page 1sur 212

ANNAMARIA MAZZIA

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

utilizzando uno stile latex (personalizzato) reperibile su tufte-latex.googlecode.com

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/)

Il pacchetto Latex utilizzato ha la Licenza Apache, Version 2.0. (http://www.apache.org/licenses/


LICENSE-2.0) .

Dispensa aggiornata in Marzo 2015


Indice

1 Introduzione al Calcolo Numerico 7

2 Struttura dellelaboratore 9

3 Richiami di analisi 21

4 Rappresentazione dei numeri nel calcolatore 27

5 Zeri di funzione 47

6 Interpolazione 79

7 Approssimazione 103

8 Metodi diretti per la soluzione di sistemi lineari 111

9 Metodi iterativi per la soluzione di sistemi lineari 135

10 Problemi non lineari in pi variabili 159

11 Integrazione numerica 169

12 Differenziazione numerica ed equazioni alle derivate ordinarie 191

Bibliografia 211
Istruzioni per luso

Il matematico sbircia dietro le spalle di Dio per


trasmettere la bellezza della Sua creazione
Le pagine che seguono sono una dispensa di Calcolo Numerico, al resto delle Sue creature.
Paul Erds
aggiornata di anno in anno e pensata per il corso di Calcolo Numerico
degli studenti di Ingegneria dellUniversit di Padova, in particolare
per quelli dellarea industriale e, nello specifico, del corso di laurea
triennale in Ingegneria dellEnergia.
Ogni capitolo spiega, spero con molti dettagli, i vari punti del
programma di Calcolo Numerico, con esempi, dimostrazioni, appro-
fondimenti ed esercizi.
Le parti introdotte dalla figura della lente di ingrandimento e la
scritta Dettagli sono parti di approfondimento che non fanno parte
esplicita del programma del corso ma che possono essere utili per
comprendere meglio un determinato argomento. Di queste parti,
quindi, suggerita una attenta lettura.

Alla fine di ogni capitolo sono presenti esercizi svolti. Qualche


studente potrebbe dire che non ci sono molti esercizi svolti. In effetti,
il numero di esercizi proposti per ogni capitolo essenziale, va da tre
a sei, per due motivi: molti esercizi vengono svolti in aula durante le
lezioni e si suppone che uno studente segua il corso e quindi partecipi
alla soluzione degli esercizi proposti a lezione; inoltre, come raccolta
a parte (una dispensa parallela a questa) viene offerta unampia
collezione di esercizi (per un totale di oltre centotrenta!) presi dai
temi desame degli anni passati e, da questanno, per ciascuno di
questi esercizi data anche una soluzione sintetica.
Oltre agli esercizi, alla fine di ogni capitolo vi una sezione inti-
tolata Domande di riepilogo in cui sono proposte domande di
comprensione degli argomenti trattati nel capitolo stesso. Soffermarsi
a rispondere a queste domande permette di prepararsi con maggiore
cura alla parte teorica del compito desame.
Buon lavoro e buono studio!!
Padova, Marzo 2015

Annamaria Mazzia

P.S. Per migliorare sempre pi queste dispense, se avete dubbi su


alcune parti o trovate errori, di stampa e non, potete gentilmente
segnalarmi le vostre perplessit allindirizzo email:
annamaria.mazzia CHIOCCIOLA unipd.it
1 Introduzione al Calcolo Nu-
merico

Quando puoi misurare ci di cui stai parlando,


ed esprimerlo in numeri, puoi affermare di sa-
perne qualcosa; se per non puoi misurarlo,
Il calcolo numerico una disciplina che riguarda lo studio e lo se non puoi esprimerlo con numeri, la tua
sviluppo di algoritmi numerici (cio di procedimenti di calcolo) utili conoscenza sar povera cosa e insoddisfa-
cente: forse un inizio di conoscenza, ma non
per risolvere problemi matematici che si incontrano in vari campi abbastanza da far progredire il tuo pensiero
delle scienze e dellingegneria. fino allo stadio di scienza, qualsiasi possa
Si parte infatti da un modello matematico che traduce un parti- essere largomento.
Lord William T. Kelvin
colare fenomeno osservato, ad esempio, in biologia, chimica, fisica,
economia o nei vari settori dellingegneria (chimica, civile, informati-
ca, dellenergia, meccanica ...). Molti di questi modelli sono difficili
o impossibili da risolvere da un punto di vista analitico, vale a dire
puramente matematico. Si applica, quindi, un metodo numerico per
risolvere il problema matematico e arrivare ad una sua soluzione
numerica che sia efficiente, accurata ed affidabile.
Il calcolo numerico pone le basi teoriche, entrando in profondit nei
diversi metodi numerici, per capire sotto quali ipotesi questi metodi
possano dare risultati buoni, quando possono essere usati e per quali
tipi di problemi.
Gli algoritmi numerici vanno poi sviluppati per essere implemen-
tati al calcolatore: tutto ci ha portato allo sviluppo di linguaggi o
ambienti di programmazione (Fortran, C++, MATLAB, Octave,...).
In un corso di Calcolo Numerico, si cerca di combinare gli ele-
menti della teoria degli algoritmi numerici per risolvere determinati
problemi matematici insieme alla conoscenza di un linguaggio di pro-
grammazione che permetta di risolvere numericamente quei problemi
al calcolatore.
Perci importante partire dalla struttura di un calcolatore e dalla
rappresentazione dei numeri al calcolatore, per poi passare allo studio
di metodi numerici per la soluzione di diversi problemi. Vedremo, in
particolare, la ricerca degli zeri di funzione, problemi di interpolazio-
ne e approssimazione di dati, metodi diretti e iterativi per la soluzione
di sistemi lineari, problemi non lineari in pi variabili, formule di
quadratura numerica, problemi di differenziazione numerica e metodi
per la soluzione di equazioni differenziali.
Per ciascuno di essi presenteremo degli esempi che derivano da
fenomeni osservati in diversi settori scientifici e che vengono tradotti
in problemi matematici, da risolvere, appunto, con le pi opportune
tecniche numeriche.
8 annamaria mazzia

In questo modo, impareremo i metodi di base e gli strumenti di


analisi e di programmazione, per poter affrontare i problemi pi
complicati che ci riserver il futuro.
2 Struttura dellelaboratore

I computer sono incredibilmente veloci, accu-


2.1 Introduzione rati e stupidi. Gli uomini sono incredibilmente
lenti, inaccurati e intelligenti. Linsieme dei
due costituisce una forza incalcolabile.
Albert Einstein

Se dobbiamo comprare un computer, abbiamo solo limbarazzo


della scelta tra i tanti disponibili sul mercato. Ma in base a quali
criteri scegliamo un computer?
Le caratteristiche fondamentali di un computer si possono riassu-
Figura 2.1: Stralci di volantini pubblicitari per
mere in poche parole-chiave: processore, sistema operativo, memo- lacquisto di un computer.
ria. Cosa significano esattamente? E, prima ancora, cosa significa
Computer?

Definizione 2.1.1 Computer = elaboratore elettronico digitale


Dispositivo elettronico che elabora le informazioni, immesse sot-
to forma di dati numerici, secondo una sequenza di istruzioni
preordinate (programma).

G Elaboratore: macchina capace di immagazzinare ed elaborare


dati in base ad una serie di istruzioni (programmi) memorizzate sul
computer

G elettronico: utilizza componenti elettroniche per elaborare le


informazioni

G digitale: elabora e memorizza segnali digitali basati su cifre


binarie: 0 e 1

In generale, un computer esegue operazioni logiche e aritmetiche


e ha una memoria per conservare i dati. Un programma contiene le
informazioni relative alle operazioni da eseguire.
Si definisce hardware la struttura fisica del computer cio i i suoi
componenti elettronici e i dispositivi fisici che lo compongono.
Si chiama, invece, software linsieme delle istruzioni (i programmi)
che consentono allhardware di svolgere i propri compiti Un sistema operativo, come Windows, Mac,
Linux, un tipo di software; programmi ap-
Attraverso un computer, elaboriamo dati (numeri, suoni, video,
plicativi come Word, Excel, LaTex sono dei
fotografie) in modo da ottenere informazioni (lettere, tabelle, risultati software.
di procedimenti numerici. . . ). Alcune di queste informazioni possono
diventare dati da elaborare di nuovo al computer.
10 annamaria mazzia

2.2 La preistoria del computer: Babbage e Lovelace

La seconda met del diciannovesimo secolo fu un tempo di grande


fermento in numerosi campi, dallingegneria ai trasporti, dalla comu-
nicazione allarchitettura... Furono scoperti nuovi materiali, la forza
animale fu sostituita dalla forza motrice, le navi a vapore iniziarono a
competere con quelle a vela, la rete ferroviaria si espanse sempre pi,
il telegrafo elettrico rivoluzion le comunicazioni... In questo contesto,
ingegneri, architetti, matematici, astronomi, marinai, banchieri, agenti
assicurativi... chiunque avesse a che fare con il calcolo si basava
su tavole di calcolo per eseguire i calcoli meno banali. Tuttavia, si sa,
gli uomini possono sbagliare e il timore che su quelle tavole ci fossero
degli errori era giustificato: un errore non trovato poteva diventare
un disastro nelle numerose applicazioni in cui le tavole di calcolo
venivano usate!
Gi nel 1812 Charles Babbage era consapevole dellinaccuratezza Charles Babbage (1791-1871), inventore e
matematico inglese, senza dubbio il pri-
dei calcoli fatti dalluomo. Nel suo lavoro, Babbage doveva verificare
mo ad avere avuto il concetto del moderno
lesattezza di tavole di calcolo che sarebbero state usate da banchieri calcolatore.
come da marinai. Le navi avrebbero identificato la loro posizione in
mare mediante quelle tavole! Eliminare il rischio dellerrore umano Babbage stesso scrisse che, mentre era se-
duto nella stanza della Societ Analitica, a
divenne per lui un desiderio sempre pi grande.
Cambridge, lavorando, mezzo addormenta-
Il suo desiderio di creare una macchina per eseguire calcoli si to, su una tavola dei logaritmi, arriv un altro
concretizz in due progetti, quello della Macchina alle Differenze e membro della societ che gli chiese cosa
stesse sognando. E lui rispose : Sto pen-
quello della Macchina Analitica. La Macchina alle Differenze doveva sando che tutte queste tavole riferendosi
calcolare in modo automatico funzioni polinomiali ma non venne alle tavole dei logaritmi potrebbero essere
calcolate da una macchina!
mai completata per il suo costo eccessivamente elevato. La Macchina
Nel 1821, Babbage e il suo amico e
Analitica, invece, doveva essere una macchina di calcolo programma- astronomo John Herschel stanno controllan-
bile, e si pu considerare come la prima idea del moderno computer. do delle tabelle calcolate a mano. Errore
dopo errore, Babbage esclama : Volesse
Anche questo progetto, tuttavia, rimase incompiuto. Dio che questi calcoli venissero eseguiti da
Nel 1833, Babbage incontr Ada Lovelace , figlia del famoso poeta una macchina a vapore!
Lord Byron. Lovelace, appena diciassettenne, aveva parecchie cono- Osserviamo che linvenzione del telaio mec-
canico a schede, in cui il tipo di tessuto veniva
scenze matematiche, inusuali per lepoca, e si entusiasm talmente scelto (o programmato) in base a delle sche-
tanto per il progetto di Babbage, da intuire altre potenzialit della de inserite nella macchina, un precursore
del progetto di Babbage.
macchina stessa, come la capacit dei numeri di poter rappresentare
Solo nel 2002 stato possibile costruire
altre entit quali le lettere dellalfabeto o le note musicali, e che dalla una macchina che rispondesse al progetto di
manipolazione dei numeri la macchina avrebbe esteso la propria po- Babbage.

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.

venzioni: il triodo, il registratore magnetico, la televisione, fino ad


appunti di calcolo numerico 11

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

te da un programma che veniva inserito dallesterno mediante nastri


perforati.
Intanto, nel 1944 aveva iniziato a collaborare nella costruzione
dellENIAC, John von Neumann. Egli si accorse che larchitettura John von Neumann (1903-1957) ungherese,
studi prima a Berlino, poi a Zurigo e infine
della macchina andava rivista e che la programmazione del computer
a Budapest, dove ricevette il dottorato in ma-
mediante un numero enorme di cavi e interruttori rendeva lenta e tematica. Nel 1930 si trasfer alla Universit
poco flessibile la programmazione stessa. Sostenne, quindi, che il pro- di Princeton dove insegn matematica. Il suo
nome legato a studi in diversi settori: teo-
gramma non dovesse essere rigidamente predisposto nellhardware ria dei giochi, matematica applicata, logica...
tramite interruttori e cavi e neanche letto mediante nastri perforati, Occupa un ruolo fondamentale nello sviluppo
dei calcolatori elettronici. Ricevette numerosi
ma risiedesse in una memoria su cui poter scrivere e accedere ve-
premi e riconoscimenti in tutto il mondo.
locemente insieme ai dati da elaborare. Von Neumann per primo
descrisse larchitettura dei calcolatori in termini logico-funzionale,
secondo uno schema astratto non legato ai dispositivi fisici utilizzati
per le varie operazioni. E il suo schema, sostanzialmente invariato,
larchitettura adottata dai calcolatori dei nostri giorni!
Prima di von Neumann, il calcolatore veniva controllato mediante
programmi non modificabili, registrati su nastro perforato o cablati
in una configurazione di cavetti e interruttori. Con von Neumann si
presenta unarchitettura di riferimento precisa.
Il primo calcolatore costruito seguendo larchitettura di von Neu-
mann entr in funzione nel 1948 allUniversit di Manchester e venne
chiamato Manchester Mark I.
Inizia, in tal modo, una nuova fase per i calcolatori: i programmi
che controllano le operazioni da svolgere risiedono nella memoria del
calcolatore insieme ai dati e possono essere modificati dinamicamente
nel corso dellelaborazione.
Dal 1948 fino ai nostri giorni, lo sviluppo dei calcolatori elettronici
ha avuto ritmi esponenziali: linvenzione del circuito integrato (chip)
alla fine degli anni cinquanta permise non solo di ridurre via via lo
spazio fisico occupato dai computer ma anche di ottenere computer
sempre pi potenti tanto che, in due suoi lavori, del 1965 e del
1975, Gordon Moore stabil che il numero dei transistor inseribili Gordon Moore nato nel 1929 in Califor-
nia. Di lui basti ricordare che ha stabilito
su un chip raddoppia approssimativamente ogni 24 mesi (legge di
la legge di Moore, co-fondatore della Intel
Moore). Nel 1971 tre ingegneri della Intel tra cui litaliano Federico Corporation e nel 2008 ha ricevuto la me-
Faggin inventarono il microprocessore, vale a dire unintera CPU in daglia donore dellIEEE per il suo pioneri-
stico contributo nei processi dei circuiti inte-
un singolo circuito integrato: su una piastrina di 4 3 millimetri grati, e per la leadership nello sviluppo del-
riuscirono a inserire 2250 transistor, che formavano il cuore di un la memoria del MOS (semiconduttore metal-
ossido), del microprocessore e dellindustria
intero computer: questo microprocessore fu chiamato Intel 4004 ed
dei semiconduttori.
era capace di eseguire 60. 000 operazioni al secondo. Federico Faggin nato nel 1940 a Vicenza
Se pensiamo che il processore Intel Pentium 4 introdotto nel 2000 ha e si laureato in fisica allUniversit di Pado-
va. Nel 1968 si trasferito prima a Palo Alto
42 000. 000 processori e lIntel Itanium 2 (con 9MB di cache) introdotto
.
presso la Fairchild Semiconductor e poi nel
nel 2004 ha 592. 000. 000 transistors, ci accorgiamo di come la legge di 1970 nella Intel. Oggi presidente e CEO
(Chief Executive Officer) della Foveon.
Moore, dal 1968 ad oggi, sia stata rispettata.

2.4 Architettura del Computer

Larchitettura del Computer si pu riassumere in tre unit:


appunti di calcolo numerico 13

G il processore, che fornisce la capacit di elaborazione delle


informazioni;

G la memoria (centrale e di massa)

G i dispositivi di input/output, che comunicano attraverso un


canale detto BUS, costituito da un insieme di linee elettriche
digitali.

Il processore composto da blocchi con funzionalit diverse:

G CPU (Central Processing Unit), unit centrale di elaborazione

G cache

G varie interfacce

Se il processore integrato su un unico chip prende il nome di


microprocessore. Sia la CPU sia gran parte dei dispositivi che servono
per lattivit della CPU sono realizzati con la tecnologia dei circuiti
integrati, che possono essere disposti in una singola scheda detta
scheda madre. Questa scheda pu essere dunque considerata la parte
pi importante del computer. La CPU esegue tutte le operazioni di
elaborazione numerica e di controllo e rappresenta la parte centrale
del computer. La CPU si suddivide in
Ogni elaboratore contiene un circuito di temporizzazione (clock) G unit logico-aritmetica (ALU), che svol-
ge tutti i calcoli logici ed aritmetici;
che genera un riferimento temporale comune per tutti gli elementi
del sistema. G unit floating-point (FPU) (Floating Point
Unit), che consente di eseguire le
Un ciclo-macchina il tempo richiesto per svolgere unoperazione operazioni su numeri reali;
elementare (ed un multiplo del periodo del clock). La velocit di G unit di controllo (CU), che sovrintende
elaborazione di un processore dipende dalla frequenza del clock. I allelaborazione dei dati e alle operazioni
di input e output;
processori attuali hanno valori di frequenza del clock che variano tra
gli 8 MHz e i 3500 MHz (1 MHz = 1 milione di istruzioni al secondo).
G registri, cio memoria locale per memo-
rizzare dati e lo stato di avanzamento del-
La memoria serve per conservare le istruzioni da eseguire e per le istruzioni. Abbiamo, ad esempio, il re-
gistro di Program Counter, di Program
scrivere/leggere i dati elaborati. Si suddivide in memoria principale
Status Word, il registro Istruzioni, Indirizzi
e memoria secondaria. Memoria. . .
La memoria principale (o di lavoro) la memoria in grado di
conservare dinamicamente dati e programmi che il processore sta
utilizzando. A sua volta la memoria principale pu essere di due tipi:

G memoria di sola lettura (read-only memory): ROM. Viene scrit-


ta una volta per tutte dal produttore del sistema e contiene pro-
grammi e informazioni specifiche per il sistema; utilizzata per me-
morizzare parametri di configurazione del sistema, utili allavvio
del computer;

G memoria per scrittura-lettura (random access memory): RAM.


Serve alla CPU per lavorare con i programmi inseriti dallutente.

Poich la RAM conserva i dati solo fino a quando il computer


rimane acceso (infatti detta memoria di tipo volatile, perch se ne
perde il contenuto quando la macchina viene spenta), per conservare
dati e programmi per tempi lunghi e a sistema spento, si utilizza la
14 annamaria mazzia

memoria di massa (o secondaria) dischi come lHard Disk, CDROM,


DVD, pendrive USB. . . .
La RAM pu essere pensata come una sequenza di celle (loca-
zioni), ognuna identificata da un indirizzo e capace di contenere
informazioni binarie.
Lunit minima indirizzabile della memoria detta parola (word)
e pu variare da macchina a macchina. In genere una parola vale un
byte, cio 8 bit.
Il computer scambia informazioni con il mondo esterno per Bit lunit elementare di informazione. Per
esempio: 0/1, s/no.
mezzo delle periferiche di input/output (monitor, mouse, stampante,
1 byte = 8 bit
web-cam,...). 1 Kilobyte (KB) = 210 byte = 1024 byte (circa
Input linserimento di dati nel computer per lelaborazione. 103 )
1 Megabyte (MB) = 220 byte (circa 106 )
Output il trasferimento di dati dal computer a dispositivi che 1 Gigabyte (GB) 109 byte (un miliardo di
permettono allutente di vedere/ascoltare i risultati dellelaborazione. byte)
1 Terabyte (TB) 1012 byte (mille miliardi di
byte)
2.5 Software e Sistema Operativo 1 Petabyte (PB) 1015 byte (un milione di
miliardi di byte)

Un software una sequenza di istruzioni per eseguire le varie elabo-


razioni sui dati. Ci sono diverse categorie di software: software per il
sistema operativo, software di base, software di tipo applicativo.
Il sistema operativo costituito dallinsieme dei programmi essen-
ziali per far funzionare la macchina. Esso utilizza piccoli programmi
gi presenti nel calcolatore per accedere ai singoli dispositivi fisici.
Questi programmi prendono il nome di Device Driver e sono me-
morizzati nel BIOS (Basic Input Output System). Il BIOS si trova
nella ROM del Computer.
Il sistema operativo, da una parte, permette di rendere fruibile
allutente le molteplici risorse del computer (gestione della memoria, Figura 2.3: Dispositivi di input e output.
della stampante, della tastiera,...); dallaltra rende il computer uno
strumento amichevole e utile per affrontare le molteplici attivit che
gli si richiedono.
I compiti affidati al sistema operativo sono molteplici:

G agire da intermediario tra lutente e lharware del computer

G controllare e coordinare lutilizzo dellhardware tra i programmi


applicativi

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

G nascondere i dettagli legati alla gestione delle risorse del sistema.


inserire un programma (scritto in linguaggio
macchina) bisognava azionare un gruppo di
interruttori o modificare collegamenti tramite
I primi sistemi operativi iniziarono a vedersi intorno alla met degli
opportuni cavi e spinotti. Ci rendiamo con-
anni cinquanta quando si cominci a individuare una serie di pro- to, quindi, di quanto fosse difficile usare il
grammi standard di comune utilizzo indipendenti dallapplicazione computer per risolvere problemi mediante le-
secuzione di un programma perch oltre alla
specifica richiesta al computer. competenza specifica del problema da risol-
Levoluzione dei sistemi operativi ha influenzato anche lo sviluppo vere, si richiedeva una grande conoscenza
tecnica della macchina su cui si doveva la-
dellhardware in quanto per supportare certe funzioni del sistema
vorare. Il programma doveva contenere non
operativo sono necessari meccanismi hardware ad hoc (basti pensare solo le istruzioni per la risoluzione del proble-
alla gestione della memoria o delle interruzioni). ma (per esempio un sistema di equazioni) ma
anche le istruzioni per gestire le unit di input
e output e delle altre periferiche collegate al
computer. Infine, poteva essere eseguito un
solo programma alla volta.
appunti di calcolo numerico 15

Considerando gli elevatissimi costi per la realizzazione e la gestione


dei primi computer, il calcolo automatico era una risorsa preziosa a
disposizione di pochi utenti. Tutto ci port ad un ripensamento del
modo di utilizzare i computer e nacquero le prime idee di sistema
operativo.
Per prima cosa si pens di creare delle librerie con le istruzioni
necessarie per eseguire le operazioni pi comuni legate alla gestione
delle periferiche del computer (ingresso e uscita dei dati, accesso alla
memoria,...).
Ulteriori progressi si ebbero quando il sistema operativo inizi a
sfruttare anche il disco fisso ed ebbe inizio la cosiddetta multipro-
grammazione, in base alla quale nella memoria centrale venivano
tenuti attivi contemporaneamente alcuni processi e i loro dati pronti
per essere eseguiti. Ad ogni momento, uno solo di questi processi
veniva eseguito, tuttavia, quando il processo in esecuzione richiedeva
unistruzione di ingresso o di uscita, esso veniva sospeso attivando
le unit periferiche necessarie per lesecuzione dellistruzione data.
Questa tecnica richiedeva una elevata capacit della memoria centrale
e solo pochi sistemi potevano funzionare in modo adeguato.
Uno dei primi sistemi che inizi ad utilizzare la multiprogramma-
zione fu il sistema OS/360 realizzato per i computer IBM 360. Questo
sistema operativo fu importante per due motivi:
G si cerc di realizzare un sistema operativo uniforme e compatibile
per macchine IBM molto diverse tra loro per quanto riguarda
lhardware sottostante: fino a quel momento ogni macchina aveva
il proprio sistema operativo, che cambiava da macchina a macchina!

G lo sviluppo di questo sistema operativo fu molto delicato e com-


plesso e apr lo studio delle problematiche relative allingegneria
del software.
Nonostante questi progressi, la multiprogrammazione non per-
metteva molta interattivit tra utente e computer: di fatto lutente
consegnava i dati e il programma da eseguire (un pacco di schede per-
Figura 2.4: Schede perforate a 80
forate) alloperatore del computer e accedeva ai risultati dopo qualche e a 96 colonne. Foto presa da
ora se non addirittura dopo giorni e giorni, risultati che riceveva in http://compvter.blogspot.it/2010/
forma cartacea ad esecuzione avvenuta (non cera ancora il monitor 09/punch-card-ibm-96-colonne.html

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

Immaginiamo un ristorante con un capo-

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 gestione delle periferiche (drivers)


lordine e assegna al suo aiutante il compito
di preparare il piatto. Laiutante si dediche-

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,

G laiutante corrisponde al processore


2.6 Il file system (CPU) (Se abbiamo pi processori, ci
sono pi aiutanti),

G la cucina corrisponde al computer,

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 posizione (path, o percorso): sequenza delle directories che


Quando il ristorante chiude, il tavolo de-
ve essere pulito e sgombro altrimenti si rovi-
portano al file na tutto quello che vi rimane, ad eccezione
di ci che vi stato inciso. Perci il cuo-
dir1 / dir2 / . . . / . . . /
co conserva in dispense e frigoriferi i vari

G nome: individua univocamente il file allinterno della cartella (o


ingredienti rimasti e gli utensili da lavoro: le
dispense e i frigoriferi rappresentano i dischi
directory) (Hard Disk, CDROM, pen drive USB . . . ) per

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 )

G dimensione: quantit di informazione contenuta nel file

G altre informazioni (data di creazione, data di ultima modifica,


permessi di scrittura, lettura. . . )
File in inglese significa archivio. Il termine
. compare nei primi anni cinquanta e inizial-
mente si riferisce a un pacco di schede con-
Lintera gestione dei file a carico di un componente del sistema tenente informazioni omogenee. il sistema
operativo detto file system. operativo a realizzare il concetto astratto di
file nella gestione dei dispositivi di memoria
di massa.
appunti di calcolo numerico 17

2.7 Un po di storia sui sistemi operativi

Tra i numerosi sistemi operativi, il sistema Unix quello che ha


maggiormente influenzato questo settore dellinformatica. Il sistem
Unix venne sviluppato sul finire degli anni sessanta nei laboratori
della AT & T. La filosofia di base era di realizzare un sistema semplice
rispetto agli altri in uso e adatto per la ricerca e lo sviluppo. La
prima versione fu scritta in linguaggio Assembly e dipendeva dal
tipo di macchina su cui si doveva applicare. Successivamente venne
scritto in larga parte in un linguaggio di alto livello, il C, progettato
appositamente per il sistema Unix. In tal modo il sistema operativo
diventava facilmente portabile su macchine di tipo diverso senza
dipendere eccessivamente dalle caratteristiche dellhardware su cui
veniva fatto funzionare. Diversamente dalle abitudini del tempo,
lazienda AT & T distribu Unix nelle universit e rese disponibili i
codici sorgenti utilizzati per realizzarlo. Questo port ad una sua
ulteriore innovazione grazie a tutti i ricercatori delle universit che
iniziarono a sperimentarlo.
Quando furono messi in commercio i primi microcomputer (a parti-
re dal 1975), fu necessario sviluppare sistemi operativi appositamente
progettati per sfruttare le poche risorse disponibili essendo le risorse
di calcolo di tali macchine molto limitate. Inoltre, queste macchine
erano pensate pi per gli appassionati che per il personale tecnico
esperto e quindi era importante creare un sistema operativo che fosse
duso relativamente semplice. In questo campo si distinsero Bill Gates
e Paul Allen, che iniziarono la loro attivit scrivendo il linguaggio di
programmazione Basic per il micromputer Altair. Nel 1975 crearono
una ditta... la Microsoft.
Un altro microcomputer, popolare nei primi anni ottanta, fu lApple
sviluppato da Steve Wozniak e Steve Jobs. Per questa macchina
svilupparono un sistema pi semplice ed efficiente di quello usato I sistemi operativi per i microcomputer dove-
vano essere pi semplici di quelli impiegati
per lAltair, che si ispirava vagamente al sistema Unix.
per i grandi computer, in quanto la macchina
I microcomputer iniziarono ad avere un grosso successo tanto veniva utilizzata da un solo utente e le peri-
che allinizio degli anni ottanta, lIBM pens di entrare in questo feriche collegate erano poche e semplici. Il
problema maggiore ero quello di gestire i file
settore (prima si era solo occupata di grandi computer e di software), su floppy disk (gli antenati dei CD-ROM e dei
introducendo il personal computer, IBM PC, realizzando in tal modo DVD, in uso fino ad una decina di anni fa) o
su nastri magnetici e mettere a disposizione
una macchina che servisse non solo per gli appassionati e per giocare
dellutente un linguaggio di programmazione
(uno dei fattori che aveva determinato il successo dei microcomputer) semplice, come il Basic. Tuttavia, il confine
ma anche come strumento di studio, per i professionisti e per la tra linguaggio di programmazione e sistema
operativo non era ancora ben definito e, una
gestione di piccole aziende. volta avviato, il sistema era pronto per rice-
LIBM incaric Bill Gates di realizzare un sistema operativo per il vere sia comandi del sistema operativo, sia
istruzioni in linguaggio Basic.
nuovo personal computer. Il successo dellIBM PC port al successo
anche di Bill Gates: i profitti della Microsoft iniziarono a crescere in
modo esponenziale. Il sistema realizzato dalla Microsoft prese il nome
di MS-Dos e divenne il sistema operativo pi diffuso al mondo grazie
alla standardizzazione dei personal computer lanciato dallIBM.
Il sistema MS-Dos non era facile da usare perch lutente interagiva
con il computer solo attraverso comandi testuali la cui sintassi non
18 annamaria mazzia

era cos semplice da ricordare (qualche anno pi tardi fu lanciata sul


mercato una versione pi amichevole).
Nel 1984, invece, dalla Apple fu prodotto il personal computer
Macintosh che adottava un tipo di interfaccia grafico progettato per
interagire in modo semplice e intuitivo con lutente. Il Macintosh utilizzava un interfaccia grafico
chiamato GUI (Graphic User Interface) com-
Le novit della Apple furono molto apprezzate e la Microsoft,
posto da icone, finestre, men... Gli oggetti
per colmare questa lacuna, lanci un altro sistema operativo basato dellambiente operativo erano rappresentati
su interfaccia grafica: nel 1985 nacque il primo Windows 1.0 che con simboli grafici di facile intuizione senza
dover comprendere a fondo tutti i tecnicismi
trov pochi consensi perch troppo lento e instabile. Nel 1986, con informatici. Linterfaccia GUI non era uninve-
la comparsa di nuovi microprocessori, il sistema Windows cominci zione della Apple perch era stata gi spe-
rimentata nel corso degli anni settanta dalla
a funzionare in modo adeguato tanto che le versioni di Windows
Xerox, che per non aveva intuito le poten-
3.1 e di Windows 95 portarono al sopravvento del sistema operativo zialit di questo lavoro, lasciandone invece la
Windows rispetto al Macintosh. fortuna e il successo alla Apple che, insieme
ad esso, introdusse il mouse.
Accanto a questi sistemi operativi, e forse anche per ridurre lo
strapotere della Microsoft, si deve vedere la strada percorsa da un
informatico di Helsinki (data di nascita 1969), Linus Benedict Torvalds,
che ha introdotto il sistema Linux. Durante gli studi universitari, Torvalds si era
interessato di sistemi operativi e aveva studia-
Nel 1991 fu completata la prima versione del sistema, che fu chia-
to una versione semplificata di Unix, chiama-
mata Linux e venne messa a disposizione di tutti. Torvalds si riserv ta Minix. Questo sistema poteva funzionare
il compito di coordinare i diversi miglioramenti via via introdotti su personal computer e veniva distributo con
i programmi sorgenti disponibili. Torvalds mi-
dagli altri sviluppatori. glior il sistema Minix, in modo da poterlo
Linux si dimostrato e si dimostra tuttora un valido sistema utilizzare come alternativa a Windows, nel-
la logica di non realizzare profitti (cio non
operativo, affidabile, sicuro e di buone prestazioni, in grado di gestire
diventare milionario) ma di realizzare un si-
situazioni multiutente e multitasking. stema utilizzabile gratuitamente da tutti e mi-
Ed il sistema operativo di riferimento del corso di Calcolo gliorabile con il contributo di tutti (la filosofia
dellopen source).
Numerico.
Tra le tante distribuzioni attualmente in uso
ricordiamo: Debian, Ubuntu, Fedora, Gentoo,
Slackware. . .
2.8 Lavorare in ambiente Linux

Una volta entrati nel sistema (tramite login e password), si apre


lambiente grafico e di qui possiamo lavorare (per esempio, aprire
una finestra di editor, lavorare in Office, navigare in Internet ....).
Per aprire nuove directories (cartelle), per spostare files, per eseguire
programmi, ... bene lavorare tramite una finestra di terminale o
shell.
La finestra di terminale (shell) mostra il prompt dei comandi.
Un esempio di prompt la login dellutente (ad esempio studente)
+ chiocciola + nome della macchina su cui si sta lavorando (ad esem-
pio george) + attuale directory di lavoro (se non compare nessun
nome, perch ci troviamo nella home directory, la directory principale
dellutente) + un simbolo (% o $, a seconda della macchina):
studente@george:~ $

Vediamo ora alcuni comandi essenziali (comandi da scrivere dopo


il prompt, in una finestra di terminale dopodich si clicca il tasto di
Invio):

G ls mostra lelenco dei files e delle directories contenuti nella


directory attuale ( ls sta per list).
appunti di calcolo numerico 19

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 creare una nuova directory: mkdir nomedirectory


2
3
calcolo/
fortran/
4 movies/
1 varie/
(mkdir sta per make directory). 3 foto/ 57 prova.pdf

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 Per trasferire un file in una directory


Una volta cliccato il tasto di Invio, si
entrati nella directory foto:
mv nomefile nomedirectory (mv sta per move). studente@george:~/foto $

G Per rinominare un file (o una directory):


mv nomevecchio nomenuovo .

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.

G Per sapere in quale directory ci troviamo, si usa il comando pwd.

Esempio Abbiamo due directory chiamate uno e due e il file


prova.f nella directory uno. Vogliamo copiare il file dalla directory
uno alla directory due.
Se ci troviamo nella home, cio nellambiente di partenza, dobbia-
mo scrivere cp uno/prova.f due

studente@george:~ $ cp uno/prova.f due

Se ora passiamo nella directory due e facciamo ls, vedremo il file


prova.f

studente@george:~ $ cd due
studente@george:~/due $ ls
total 1
1 prova.f

Se siamo nella directory uno, dobbiamo scrivere cp prova.f ../due


per ottenere lo stesso risultato. Riassumendo
Se siamo nella directory due, dobbiamo scrivere cp ../uno/prova.f G ls : lista dei files e delle directory

. (il punto finale serve per copiare il file prova.f nella directory G cd : per cambiare directory

in cui ci troviamo). G mkdir: per creare una nuova 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

Se vogliamo trasferire il file dalla directory uno alla directory


due (in questo modo avremo solo un file alla fine del procedimento),
dobbiamo usare il comando mv.
_
20 annamaria mazzia

2.9 Editor di testo

Se vogliamo scrivere su un file un documento di testo, abbiamo


bisogno di un editor di testo. Sotto Linux ne troviamo diversi: vi,
emacs, kedit, gedit, nedit.... I pi semplici da utilizzare sono kedit e
gedit.
Sotto Linux esiste anche il pacchetto Office (del tutto simile alle-
quivalente Microsoft) per scrivere documenti in word, creare tabelle,
etc. . . . Anche il programma Gnumeric molto utile per creare tabelle.
Per visualizzare grafici, invece, c il pacchetto Gnuplot.
3 Richiami di analisi

La teoria attrae la pratica come il magnete


3.1 Lalfabeto greco attrae il ferro.
Carl Friedrich Gauss

Quando si descrivono teoremi, si danno definizioni o, sempli- A Alfa N Nu


B Beta Xi
cemente, si discute di matematica, abbastanza usuale prendere in Gamma O o Omicron
prestito lettere dellalfabeto greco. Delta Pi
importante, quindi, saperle riconoscere e chiamarle in maniera E e Epsilon P Rho
Z Zeta Sigma
corretta (si veda tabella a lato). H Eta T Tau
Theta Upsilon
I Iota Fi
3.2 Radici di un polinomio di secondo grado K Kappa X Chi
Lambda Psi
M Mu Omega

Dato il polinomio ax2 + bx + c con a, b, c R (a 6= 0), le radici del


polinomio (cio quei valori di x per cui ax2 + bx + c = 0) si trovano
applicando la formula

b + b2 4ac b b2 4ac
x1 = , x2 =
2a 2a

G Se b2 4ac > 0 le radici sono reali e distinte,

G se b2 4ac = 0 le due radici coincidono (il polinomio si pu


b
anche scrivere come ( x + )2 )
2a

G se b2 4ac < 0 non ci sono radici reali.


b c
Inoltre, si ha x1 + x2 = e x1 x2 =
a a

3.3 Identit trigonometriche

Nel seguito introduciamo alcune formule trigonometriche, con la


notazione:

G sin ( x ) seno( x ), cos ( x ) coseno( x ),


Figura 3.1: I tre casi delle radici di un polino-

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

cos ( ) = cos ( ) sin ( ) = sin ( )


cos ( 2 ) = sin ( ) sin ( 2 ) = cos ( )
cos ( 2 + ) = sin ( ) sin ( 2 + ) = cos ( )
cos ( ) = cos ( ) sin ( ) = sin ( )
cos ( + ) = cos ( ) sin ( + ) = sin ( )
cos ( + ) = cos ( ) cos () sin ( ) sin () sin ( + ) = sin ( ) cos () + cos ( ) sin ()
sin (2 ) = 2 sin ( ) cos ( ) cos (2 ) = cos2 ( ) sin2 ( )
sin2 ( ) + cos2 ( ) = 1 tan2 ( ) + 1 = sec2 ( )

3.4 Regole su funzione esponenziale e logaritmica

Assumiano a, b R, con a > 0 e b > 0. Si ha:

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)

3.5 Derivate e integrali

Siano f e g due funzioni dipendenti dalla variabile reale x mentre


df
c R sia una costante. Indichiamo la derivata di f con il simbolo
dx
o mediante f 0 . Valgono le seguenti regole:

G regola della costante:


d (c f )
dx
= cf0

G regola della somma:


d ( f + g)
dx
=
d f
+
dx dx
dg

G regola del quoziente:


d ( f /g)
dx
=
f 0 g f g0
g2

G regola del prodotto:


d ( f g)
dx
= f g0 + f 0 g

G regola della potenza:


d fr
dx
= r f r 1 f 0

Tra le regole di integrazione, invece, ricordiamo quella di integrazione


per parti:
Z Z
f g0 dx = f g f 0 g dx
appunti di calcolo numerico 23

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

3.6 Teoremi utili

Richiamiamo, nel seguito, teoremi che trovano applicazione nel Cal-


colo Numerico. Per alcuni diamo anche la dimostrazione.
Utilizzeremo, inoltre, le seguenti notazioni per funzioni di una
sola variabile definite in un insieme X R. Linsieme delle funzioni
continue in X verr denotato con il simbolo C ( X ). Linsieme delle
funzioni continue in X, che hanno le prime n derivate pure esse
continue, sar indicato con C n ( X ).
24 annamaria mazzia

Michel Rolle (1652- 1719) fu un matematico


francese. conosciuto per il teorema che
Teorema 3.6.1 (Teorema di Rolle) Sia f C ([ a, b]) e differenziabile in
porta il suo nome. Si deve a lui la notazione
] a, b[. della radice n-sima per mezzo del simbolo

Se f ( a) = f (b) = 0, allora esiste un punto ] a, b[ tale che f 0 ( ) = 0
n
x.

Teorema 3.6.2 (Teorema del Valor Medio) Sia f C ([ a, b]) e diffe-


f (b) f ( a)
renziabile in ] a, b[, allora esiste un punto ] a, b[ tale che f 0 ( ) =
ba

Teorema 3.6.3 (Teorema del Valore Intermedio) Sia f C ([ a, b]) e


sia K un valore compreso tra f ( a) e f (b). Allora esiste almeno un punto
] a, b[ tale che f ( ) = K.

Quindi, per funzioni continue, un valore compreso tra i due estremi 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

Allora ( a) = g( a) a > 0 e (b) = g(b) b < 0. Per il Teorema del


Valore Intermedio esiste almeno un punto ] a, b[ tale che ( ) = 0,
vale a dire g( ) = 0, cio g( ) = . Esiste almeno un punto fisso Figura 3.4: Teorema del Valore Intermedio:
per la funzione g. 4 f (c) = K

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.

Dimostrazione. Lesistenza di almeno un punto fisso assicurata


dal teorema precedente (le ipotesi del teorema precedente ci sono
tutte). Supponiamo, allora, che esistano due punti fissi e , con
6= , per la funzione g. Si ha

| | = | g( ) g( )|
appunti di calcolo numerico 25

Applicando il teorema del Valor Medio, esiste un punto c compreso


tra e per cui

| g( ) g( )| = | g0 (c)( )| | g0 (c)|| |

Ma per ipotesi | g0 (c)| m < 1 da cui

| | m| | < | |

Si arriva ad una contraddizione. Lassurdo deriva dallaver supposto


6= . Quindi = e il punto fisso unico. 4

Teorema 3.6.6 (Teorema del Valor Medio del Calcolo Integrale) Se f


C ([ a, b]) e g integrabile in [ a, b] e g( x ) non cambia segno in [ a, b], allora
esiste un punto ] a, b[ tale che
Z b Z b
f ( x ) g( x ) d x = f ( ) g( x ) d x
a a

Per g 1, questo teorema ci d il valore medio della funzione f


1 Rb
sullintervallo [ a, b], dato da f ( ) = f (x) d x
ba a
Teorema 3.6.7 (Teorema di Rolle generalizzato) Sia f C ([ a, b]) n
volte differenziabile in ] a, b[. Se f si annulla in n + 1 punti distinti x0 , x1 , . . . , xn
in ] a, b[, allora esiste un punto ] a, b[ in cui la derivata n-sima della f si
annulla: f (n) ( ) = 0.
Brook Taylor (1685 - 1731) fu un matematico
Teorema 3.6.8 (Formula di Taylor) Sia f C2 ([ a, b]) e sia x0 un punto inglese che svilupp quello che oggi chia-
mato calcolo delle differenze finite. Limpor-
dellintervallo [ a, b]. Allora, per qualunque x [ a, b] si pu scrivere: tanza del suo lavoro e, soprattutto, della for-
mula conosciuta oggi con il suo nome, venne
( x x0 )2 00
f ( x ) = f ( x0 ) + f 0 ( x0 )( x x0 ) + f ( x ) riconosciuta solo nel 1772 da Lagrange.
2
dove x un opportuno punto di [ a, b] che si trova sul segmento indivi-
duato da x0 e x.

La formula appena scritta si dice formula di Taylor di centro x0 nel


punto x.
La formula di Taylor appena scritta si pu generalizzare se la
funzione f derivabile n + 1 volte. Si ha cos la formula polinomiale
di Taylor di centro x0 :

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) !

con x un opportuno punto di [ a, b] che si trova sul segmento indivi-


duato da x0 e x.
4 Rappresentazione dei numeri nel
calcolatore

Tutti noi ogni giorno usiamo la matematica:


4.1 Disastri numerici! per prevedere il tempo, per dire lora, per
contare il denaro. Usiamo la matematica an-
che per analizzare i crimini, comprendere gli
schemi, prevedere i comportamenti. Usando
i numeri, possiamo svelare i pi grandi miste-
ri della vita!
Molte volte, si pensa che i risultati numerici ottenuti da un calcola- NUMB3RS
tore elettronico, specie se sono ottenuti come output di un sofisticato
software, non contengano errori e, se ne abbiano, siano da ritenersi
trascurabili. In realt, quando si esegue un programma al calcolatore,
bisogna prima di tutto aver verificato che sia stato scritto corretta-
mente (il programma deve, cio, tradurre correttamente il problema
matematico che si vuole risolvere). Inoltre, bisogna tener conto che i
risultati numerici sono sempre affetti da un certo tipo di errore, che
pu essere, per esempio, di arrotondamento o di troncamento:
un numero con infinite cifre decimali ma il calcolatore lo pu vedere
solo come un numero con finite cifre decimali..., molte formule non
possono essere usate cos come sono ma devono essere in qualche
modo semplificate (basti pensare ad una somma di infiniti termini).
Non tenere conto di questi fattori pu portare a risultati davvero
disastrosi, come pu essere verificato andando a controllare la pagi-
na web dedicata ai disastri dovuti a uno scorretto calcolo numerico:
http://www.ima.umn.edu/~arnold/disasters/disasters.html La pagina web del prof. Douglas N. Ar-
nold, dellUniversit del Minnesota, e viene
Vediamo alcuni di questi disastri numerici.
introdotta con la seguente frase (traducendo):
Stai seguendo con attenzione il tuo corso di
Il disastro del missile Patriot nel 1991. Il 25 febbraio 1991, durante la analisi numerica o di calcolo scientifico? Se
non lo stai facendo, potrebbe costarti un ca-
prima Guerra del Golfo, un missile Patriot fall lintercettazione di un ro errore. Nel seguito, ci sono esempi dal-
missile Scud iracheno. la vita reale di ci che pu succedere quan-
do gli algoritmi numerici non sono applicati
Questo errore cost la vita di 28 soldati, un centinaio di feriti e correttamente.
la distruzione di un capannone americano. La causa del disastro
fu dovuto ad errori di arrotondamento nel sistema operativo del
Patriot: ad ogni secondo che passava si introduceva un ritardo infini-
tesimo che comportava un errore nella valutazione della traiettoria
del missile Scud. Col passare delle ore il ritardo accumulato fu tale
da far intercettare una posizione del tutto diversa da quella in cui
si trovava il missile da abbattere. Difatti, il computer usato per con-
trollare il missile Patriot era basato su unaritmetica a 24 bit. Per i
calcoli, il tempo veniva registrato dallorologio interno del sistema Figura 4.1: Il disastro del missile Patriot. La
in decimi di secondi e successivamente moltiplicato per 1/10 per foto presa dal sito del prof. Douglas.
28 annamaria mazzia

ottenere i secondi, utilizzando 24 bit in virgola fissa. Il numero 1/10


in base 2 ha infinite cifre decimali: la sua espansione binaria in-
fatti 0.0001100110011001100110011001100 . . .. In 24 bit esso veniva
registrato come 0.00011001100110011001100 introducendo un errore
di 0.0000000000000000000000011001100 . . ., che, in base 10, significa
circa 0.000000095.
Gli errori di arrotondamento nella conversione del tempo causaro-
no un errore nel calcolo della traiettoria: il tempo di 100 ore calcolato
in secondi diede il valore 359999.6567 invece di 360000, un errore di
0.3433 secondi che port il Patriot 687 metri fuori della traiettoria del
missile Scud!

Lesplosione dellAriane 5 nel 1996. Il 4 giugno 1996, dopo una spesa


di 7 miliardi di dollari, e dopo appena 40 secondi dal suo lancio,
esplose il razzo Ariane 5, nella Guiana Francese. Il razzo e il suo
carico erano valutati per oltre 500 milioni di dollari.
Perci il costo totale della missione era stato di oltre 7 miliardi
e mezzo di dollari. Fu scoperto che lerrore era nel software e, in
particolare, nella componente del Sistema di Riferimento Inerziale,
che era stato preso dal software dellAriane 4. Certe parti del software
dellAriane 5 erano state aggiornate rispetto al software dellAriane 4,
ma non si era aggiornato quanto preso dal software dellAriane 4. Figura 4.2: Lesplosione di Ariane 5. Foto
In particolare, il fallimento dellAriane 5 dovuto ad un errore di tratta da http://personal.victoria.ac.
nz/stephen_marshall/SE/Failures/
conversione da un sistema a 64 bit a virgola mobile ad uno a 16 bit a SE_Ariane.html
virgola fissa.
La velocit orizzontale del razzo rispetto alla piattaforma misurato
in 64 bit era un numero pi grande del massimo consentito nella-
ritmetica a 16 bit. Si ebbe quindi un errore di overflow che caus
larresto del software di controllo del volo 37 secondi dopo il lancio
del razzo. Dopo 3 secondi il razzo si distrusse.

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

Diversi furono i motivi che portarono al fallimento di questa missio-


ne. Il principale dovuto allerrore nel trasferimento di informazioni
tra il team che lavorava sul veicolo spaziale, che si trovava in Colorado
e il team della missione di navigazione, che lavorava in California.
Un team usava le unit inglesi (inches, feet, pounds) mentre laltro
usava le unit metriche. Lerrore fu nella mancata conversione delle
unit di misura tra unit inglesi e unit metriche!

4.2 Aritmetica di macchina

Un qualunque numero reale pu essere rappresentato accuratamente


da una sequenza di infinite cifre decimali.
Ad esempio: Si osservi che la notazione di usare la virgola
per esprimere la parte decimale di un nume-
ro non una notazione internazionale. Noi
useremo sempre il punto decimale per dire
 
1 0 3 3 3 3
= 0.3333333 . . . = + + + + . . . 100 che le cifre che seguono rappresentano la
3 100 101 102 103 104 parte decimale del numero.

 
3 1 4 1 5
= 3.14159265358979 . . . = + 1 + 2 + 3 + 4 . . . 100
100 10 10 10 10

Osserviamo che abbiamo scritto 1/3 e in base 10, usando, quindi,


le cifre 0, 1, 2, . . . , 9 per poterli rappresentare.
In genere, un numero reale x pu essere rappresentato in base N
come

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

dove m e n sono interi naturali e xk , k = m, m 1, . . . , n sono interi


naturali compresi tra 0 e N 1. In base 10, il numero 72.65, scritto in forma
Tuttavia, i calcolatori hanno una memoria finita per poter rappre- estesa dato dalla forma:
sentare i numeri. Ci significa che solo una sequenza finita di cifre
7 101 + 2 100 + 6 101 + 5 102
possono essere usate. Inoltre, i calcolatori lavorano in base binaria,
quindi ogni numero pu essere rappresentato mediante una sequenza
di 0 e 1.
Avendo in mente questi due fattori, possiamo ora capire la rap-
presentazione dei numeri al calcolatore, per cui ad ogni numero
reale x associato il numero di macchina denotato come f l ( x ), in
rappresentazione floating point virgola mobile.

4.3 Conversione di base

Nel seguito, non affronteremo gli aspetti teorici del passaggio da una
base ad un altra per rappresentare lo stesso numero, ma vedremo
limplementazione pratica per convertire un numero dalla base 10
alla base 2 e viceversa.
30 annamaria mazzia

Il passaggio di un numero dalla rappresentazione in base 2 alla


rappresentazione in base 10 semplice, in quanto si tratta di scrivere
il numero come combinazione delle opportune potenze di 2. Vediamo
un esempio.

Esempio Sia 10001000.010 il numero scritto in base 2.


Se lo scriviamo mediante le potenze di 2 si ha:

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

= 27 + 23 + 22 = 128 + 8 + 0.25 = 136.25

Questo quindi lo stesso numero ma rappresentato in base 10.


_
Il passaggio di un numero dalla rappresentazione in base 10 a
quella in base 2 si effettua, invece, in due passi.
GSi prende la parte intera del numero e la si divide per 2: se il
resto della divisione zero, allora la corrispondente cifra binaria sar
0; se il resto diverso da zero, la corrispondente cifra binaria sar
1. Si ripete la procedura sul risultato avuto dalla divisione, fino a
quando si arriva a 1. In tal modo, calcoliamo le cifre binarie a partire
da x0 (il primo resto ottenuto) e andando avanti con indice crescente.
GSi prende la parte frazionaria del numero e la si moltiplica per 2.
Se il risultato delloperazione ha la parte intera diversa da zero, allora
la corrispondente cifra binaria vale 1, altrimenti vale 0. Si ripete la
procedura sulla parte frazionaria del risultato appena ottenuto e si
continua fino a quando si arriva allo zero (o se si vede che c una
periodicit nei risultati). Le cifre binarie vengono costruite da x1 con
indice decrescente.

Esempio Vogliamo convertire il numero 725.625 dalla base 10


nella base 2.
Per la parte intera si ha:
Per la parte decimale si ha :
: 2 = quoziente resto
.625 2 = 1.250 x1 = 1
725 362 1 x0
.250 2 = 0.50 x 2 = 0
362 181 0 x1
.5 2 = 1.0 x 3 = 1
181 90 1 x2
.0 2 = 0.0
90 45 0 x3
45 22 1 x4
22 11 0 x5
11 5 1 x6
5 2 1 x7
2 1 0 x8
1 0 1 x9
In base 2 il numero diventa 1011010101.101.
_
appunti di calcolo numerico 31

Osserviamo che un numero pu avere una rappresentazione finita


in base 10 e infinita in base 2. Vediamo in dettaglio un esempio:

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} . . .
_

4.4 Rappresentazione IEEE dei numeri di macchina

Lo sviluppo dei calcolatori ha promosso e sviluppato luso del sistema


binario, in cui ciascun numero rappresentato da una successione
di cifre binarie (0 e 1). Ma come avviene la rappresentazione di un
numero nel calcolatore? Come rappresentare un numero a infinite
cifre in maniera accurata utilizzando solo un numero finito di cifre?
Lo standard IEEE , oggi utilizzato dalla maggior parte dei calcola- IEEE la sigla dellInstitute of Electrical and
Electronics Engineers
tori, dato dalla rappresentazione in virgola mobile (floating point).
Esiste anche un tipo di rappresentazione in virgola fissa (fixed point),
ma in genere preferita quella in floating point, e noi ci soffermeremo
solo su questa.
Riprendiamo lesempio proposto in Sezione 4.2, dove abbiamo
1
scritto in base 10 come
3
 
1 0 3 3 3 3
= 0.3333333 . . . = + + + + . . . 100
3 100 101 102 103 104

Questo un esempio di numero scritto in virgola mobile: un qua-


lunque numero x, in base 10, si pu scrivere sotto la forma x = f 10e
dove f rappresenta la parte frazionaria, detta mantissa, del numero e 12.5 = 1.25 101 = 0.125 102 =
0.000125 105 sono tutte rappresentazioni
e lesponente (intero) della base con cui stiamo rappresentando il
equivalenti dello stesso numero.
numero stesso, che d informazioni sulla parte intera del numero.
Ci sono diverse rappresentazioni in virgola mobile, tutte equiva-
lenti tra loro. Si parla di virgola mobile normalizzata quando la La rappresentazione in virgola mobile nor-
malizzata, se stiamo lavorando in base 10,
mantissa ha una singola cifra di valore diverso da zero a sinistra della
esprimer la mantissa del numero come
virgola. x.qualcosa con x una cifra diversa da zero.
Invece, in base 2, la mantissa sar del tipo
1.qualcosa.
32 annamaria mazzia

La rappresentazione in virgola mobile normalizzata in base 2


quella utilizzata nello standard IEEE: i numeri si possono scrivere nel-
la forma x = f 2e . Al calcolatore, tuttavia, non possiamo rappresentare
numeri con una mantissa a infinite cifre, perci f = 1. f 1 f 2 . . . f n
e e = e Ne1 e Ne2 . . . e0 ., dove f 1 , f 2 , . . . , f n , e e Ne1 , e Ne2 , . . . , e0
sono le cifre che caratterizzano rispettivamente la mantissa e lespo-
nente del numero in virgola mobile normalizzata in base 2, e quindi
possono valere 1 o 0. Abbiamo n cifre per la mantissa (in realt sono
n + 1 ma poich la rappresentazione normalizzata f 0 = 1) e Ne
per lesponente. Nel sistema binario, le cifre vengono chiamate bits
( binary digits): quindi n bits sono riservati per la mantissa, Ne per
lesponente.

Un numero in floating point nella rappresentazione IEEE viene


scritto come

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,

G e la potenza della base 2 cui sono riservati un numero Ne


di bits ed limitato a variare in un determinato intervallo
[ L, U ].

Il primo 1 della mantissa (che corrisponde a f 0 ) non viene messo


in memoria ma c. La rappresentazione in virgola mobile pu essere
schematizzata nel modo seguente (s, e ed f rappresentano i bits
riservati rispettivamente per il segno della mantissa, e per le cifre
dellesponente e della mantissa ogni celletta pu avere il valore 0 o
1):
s e e e e e e f f f f f f
|{z} | {z } | {z }
segno cifre dellesponente cifre della mantissa

Abbiamo 1 bit riservato al segno (si ha 0 per il segno + e 1 per il


segno ), un numero Ne di bits per lesponente 2e , e un numero n di
bits per la mantissa.
La scelta del numero di bits da riservare allesponente e alla man-
tissa si basa su un compromesso tra la dimensione dellesponente
(e quindi il pi piccolo e il pi grande numero rappresentabile) e
la dimensione della mantissa (e quindi la precisione del numero
rappresantibile, pi o meno cifre decimali).
Nel sistema IEEE, la rappresentazione in singola precisione a 32
bits mentre quella in doppia precisione a 64 bits. La suddivisione
dei bits tra esponente e mantissa viene ripartita nel modo seguente:
s Ne n # totale bits
Singola precisione 1 8 23 32
Doppia precisione 1 11 52 64
appunti di calcolo numerico 33

Gli esponenti possono essere sia positivi sia negativi ma si pre-


ferisce memorizzarli come interi positivi (senza segno). Abbiamo
dunque bisogno di una tecnica che permetta di rappresentare espo-
nenti negativi come interi positivi. La tecnica utilizzata nello standard
IEEE chiamata di biasing (distorsione): un numero positivo (detto
bias) viene aggiunto allesponente (sia esso positivo o negativo) in
modo che il risultato finale sia sempre positivo. Ed questo valore
che viene memorizzato per rappresentare lesponente. Lesponen-
te viene quindi rappresentato in forma biased (parziale, influenzata
da un altro numero): se e lesponente effettivo, noi memorizzia-
mo il valore b + e dove b il bias dato b = 0111 | {z. . . 1}, vale a dire
Ne bits
1 2 Ne1
b = 1 + 2 + 22 + . . . + 2 Ne2 + 0 2 Ne1 = = 2 Ne1 1 Si arriva a questo risultato perch abbiamo
12 una somma del tipo S = 1 + a + a2 + . . . +
1 a ( n +1)
an e vale S = . In questo caso,
Esempio Cerchiamo di capire perch b ha questo valore, con- 1a
1
siderando la rappresentazione in singola precisione. Il pi grande a= = 21 .
2
esponente che pu essere rappresentato in singola precisione dato
da 11111111 che, in base 10 vale 255. La met di 255 127 (con resto
1). Questo valore proprio quello assegnato al bias (infatti 127 in base
2 si scrive come 011111111) e ci permette di ottenere valori sempre
positivi per lesponente che viene effettivamente memorizzato. Dal
momento che (in base 10) deve valere la relazione 0 b + e 255
(noi memorizziamo il valore b + e sia che e sia positivo sia che sia
negativo), troviamo che e pu variare tra 127 e +128. Tuttavia, per
e = 127 si ha b + e = 0 e per e = 128 si ha b + e = 255, questi due
valori dellesponente sono riservati per i numeri speciali (zero, infinito
e Not-a-Number), quindi, e potr variare nellintervallo [126, 127].
_
In generale, quindi, si ha 0 b + e 1111 . . . 1 (il valore massimo
dato dal numero in base 2 formato da Ne cifre uguali a 1). Per trovare
il limite superiore e inferiore entro cui pu variare e, dobbiamo tener
conto del fatto che, nella rappresentazione IEEE, i valori 0 e 1111 . . . 1
sono riservati per rappresentare numeri speciali quali lo zero, infinito
e il Not-a-Number.
Di conseguenza, la relazione di prima va scritta con le disugua-
glianze strette: 0 < b + e < 1111 . . . 1. Ci significa che il massimo
esponente che si pu rappresentare dato da 1111 . . . 1 1 che, in
base 2, vale 1111 . . . 10.
Da b + e 1111 . . . 10 si ha pure e 1111 . . . 10 b = 1111 . . . 10
0111 . . . 1 = 0111 . . . 1 = b.
Il limite superiore per e, che indichiamo con U vale proprio b.
Per il limite inferiore abbiamo: 0 < b + e cio 1 b + e (si noti che
siamo passati da < a ) da cui 1 b e, ovvero, (b 1) e.
Il limite inferiore L = (b 1).
In singola precisione, b = 0111| {z. . . 1}: in base 10 b = 12710 , da cui
8 bits
lintervallo [ L, U ] = [126, 127].
In doppia precisione, invece, b = 102310 da cui [ L, U ] = [1022, 1023].
34 annamaria mazzia

Per quanto riguarda la mantissa, sono ad essa riservati n bits.


Considerando anche l1 della normalizzazione, la precisione di
n + 1 bits.
Il pi grande numero che si pu rappresentare , quindi
Dati n valori w1 , w2 , . . . , wn con la
seguente simbologia si indica la loro somma:
n
1 2(n+1) U
1. 111 . . . 1} 2U = ( 2k ) 2U = 2 = (2 2n )2U 2U +1 n
| {z
k =0
1 21 w k = w1 + w2 + w3 + . . . w n
n bits k =1
.

Il pi piccolo numero positivo rappresentabile dato, invece, da:


In singola e doppia precisione abbiamo, per
il pi grande e il pi piccolo numero positivo
1. 000
| {z. . . 0} 2 L = 2 L rappresentabile, i seguenti valori:

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.

Esempio Vogliamo scrivere il numero 5.7510 in formato IEEE


in singola precisione.
Effettuiamo prima la conversione in base 2:
Per la parte intera: Per la parte decimale:
5 2 1 x0 .75 2 = 1.50 x1 = 1
2 1 0 x1 .5 2 = 1.0 x 2 = 1
1 0 1 x2 .0 2 = 0.0
Quindi 5.7510 = 101.112 = 1.0111 22 .
Memorizziamo ora il numero in singola precisione:
Per lesponente, essendo e = 2, si ha:

(b + e)10 = (127 + 2)10 = 12910 = 100000012

Per la mantissa, m = 23 e si deve trascurare l1 della norma-


lizzazione, quindi memorizzeremo le cifre 0111 e poi avremo tutti
0.
0 1 1 1 0 0 0 ... 0 0 0 0 0 0 0 0 0 0

Il segno positivo, quindi s = 0


Perci la memorizzazione, considerati i bits per il segno, lesponen-
te e la mantissa :
0 1 0 0 0 0 0 0 1 0 1 1 1 0 ... 0 0 0 0 0
|{z} | {z } | {z }
s esponente mantissa

_
Consideriamo, ora, la rappresentazione dei numeri speciali.
Per convenzione si pone uguale a 0 la rappresentazione che vede
tutti zero sia nel segno, sia nellesponente che nella mantissa (non
dimentichiamo che il valore 1 della normalizzazione non messo in
memoria ma c e quindi non potremmo mai avere il valore 0, perci
lo si pone per convenzione).
Per i valori si considerano tutti 1 nello spazio dedicato 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

0/1 1 1 1 ... 1 1 0 0 0 ... 0 0


|{z} | {z } | {z }
s esponente mantissa

I valori si hanno se si fa una divisione per zero o si fa un


calcolo che comporta overflow.
Si ha invece il Not-a-Number (NaN) come risultato di operazioni
non definite, come 0/0 o log 0.
A seconda della macchina si ha:

NaNS, che produce un segnale di errore


0 1 1 1 ... 1 1 0 1 1 ... 1 1
|{z} | {z } | {z }
s esponente mantissa

NaNQ, con il quale il calcolo continua comunque...


0 1 1 1 ... 1 1 1 0 0 ... 0 0
|{z} | {z } | {z }
s esponente mantissa

4.5 Precisione numerica

Un numero pu avere una rappresentazione finita o infinita. Basti



pensare al valore di o a 2 in base 10. Abbiamo anche visto che un
numero pu avere rappresentazione finita in una base ma infinita in
unaltra.
Quando rappresentiamo un numero al calcolatore possibile me-
morizzare solo un certo numero di cifre: in che modo lo esprimiamo?
Per lasciare maggiore generalit al discorso, consideriamo una base
N.
Sia x = ( k p
k =0 xk N ) N il numero esatto (pu avere infinite
cifre decimali e lo rappresentiamo come somma di infiniti termini).
In floating-point esso sar espresso come x = (tk 1 k p
=0 x k N ) N ,
esso, cio, sar arrotondato (non possiamo avere infinite cifre decimali
e, difatti, la somma considera solo t termini).
Ci sono due modi per arrotondare un numero

G troncamento: x = tronc( x ), dove p = p e x = x


k k per
k = 0, . . . , t 1. Le altre cifre, xt , xt1 , . . . sono ignorate.

G 1
arrotondamento simmetrico: x = arr ( x ) = tronc( x + N t+1 N p ),
2
aggiungiamo ununit a xt+1 se xt N/2.

Lerrore assoluto | x x | che si commette approssimando il nume-


ro x con x sar Evitiamo di effettuare tutti i passaggi che por-
tano alle formule dellerrore assoluto e rela-
tivo, che sono il risultato di maggiorazioni di
serie geometriche.
N 1 t N p nel troncamento
|x x | 1
N 1 t N p nellarrotondamento
2
36 annamaria mazzia

|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|

ci significa che avremo 8 cifre decimali corrette.


In doppia precisione (n = 52) avremo

|x x |
253 1.11 1016
|x|

ci significa che avremo 16 cifre decimali corrette.

4.6 Cifre significative

Prima di vedere come si propagano gli errori nelle operazioni elemen-


tari di moltiplicazione, divisione, addizione e sottrazione, vediamo il
concetto di cifre significative.
Le cifre significative sono quelle che danno uninformazione effet-
tiva sul valore del numero, indipendentemente dalla parte esponen-
ziale.

Esempio Supponiamo di dover calcolare lerrore assoluto e


relativo per approssimare un certo numero x mediante x , per i
seguenti casi:

1. x = 0.6000 101 , x = 0.6100 101 ;

2. x = 0.6000 103 , x = 0.6100 103 ;

3. x = 0.6000 104 , x = 0.6100 104 ;

Nel primo caso, abbiamo | x x | = 0.1 mentre lerrore relativo vale


0.166666 101
Nel secondo caso, lerrore assoluto vale 1 105 e lerrore relativo
0.166666 101 .
Nellultimo caso, lerrore assoluto 1 102 e quello relativo 0.166666
101 .
appunti di calcolo numerico 37

Lerrore relativo rimane sempre lo stesso, mentre quello assoluto


cambia per i tre casi esaminati. Come misura di accuratezza, ler-
rore assoluto pu portare a conclusioni fuorvianti, mentre lerrore
relativo ci d informazioni pi significative perch tiene conto della
dimensione del valore.
_
Abbiamo quindi la seguente definizione (per numeri in base 10).
Definizione 4.6.1 Si dice che un numero x approssima x con t cifre
significative se t il pi grande intero positivo per il quale
|x x |
5 10t
|x|
Nellesempio precedente, i tre numeri sono
Se il numero x rappresentato al calcolatore in floating point, rappresentati con due cifre significative dal
mediante la rappresentazione data da f l ( x ), sappiamo che vale momento che 0.166666 101 5 102
e 0.166666 101 > 5 103 .
| x f l ( x )| 1
N 1t (N la base, t il numero di cifre per la man-
|x| 2
tissa): se consideriamo la base dieci, questa maggiorazione si scrive
proprio come
|x x |
0.5 101t = 5 10t
|x|
Questultima maggiorazione, con t il pi grande intero positivo per il
quale verificata la relazione scritta, d quindi la definizione di cifre
significative per un numero espresso in floating point.

4.7 Propagazione degli errori

Se scriviamo il numero in virgola mobile normalizzata, le cifre si-


gnificative sono date, quindi, dalle cifre della parte frazionaria. La
bont delle cifre va diminuendo procedendo da sinistra verso destra e
questo pu portare ad una perdita di cifre significative, come possia-
mo vedere studiando la propagazione degli errori nelle operazioni
elementari.
Supponiamo che i numeri su cui lavoriamo siano affetti da errore
(di arrotondamento), mentre le operazioni siano eseguite in modo
esatto. Indichiamo con il simbolo o una qualunque delle operazioni
elementari {, /, +, } e con f l ( x ) il numero x rappresentato in
floating point e arrotondato, quindi f l ( x ) = x (1 + ex ) dove ex x f l (x)
Da e x = si ha xe x = x f l ( x )
x
lerrore di arrotondamento relativo. da cui f l ( x ) = x (1 + e x ).
Allora f l ( x o y) = f l ( x ) o f l (y) = x (1 + ex ) o y(1 + ey ).

G Moltiplicazione Nei calcoli sono trascurabili le potenze


maggiori o uguali a due per e x e ey

x (1 + ex ) y(1 + ey ) = ( x y)(1 + ex )(1 + ey ) ( x y)(1 + ex + ey )

Quindi lerrore nel prodotto dato da exy = ex + ey


G Divisione (con y 6= 0)
x (1 + e x ) x x
= (1 + ex )(1 ey + e2y + . . .) (1 + ex ey )
y (1 + e y ) y y
38 annamaria mazzia

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.
_

Esempio Sia da risolvere lequazione ax2 + bx + c = 0 con


a = 1, b = 56 e c = 1, quindi x2 56x + 1 = 0, in una macchina a 4
cifre decimali (normalizzata).
b b2 4ac
Applicando la formula x1/2 = abbiamo x1/2 =
2a
0.01786284073
28 783 = 28 27.98213716 = . Larrotonda-
55.98213716
mento delle due radici in virgola mobile normalizzata a 4 cifre
decimali d: x1 = 1.7863 102 e x2 = 5.5982 101 .
Consideriamo ora la macchina a 4 cifre decimali per risolvere
lequazione:

x1 = 28 783 = 2.8 101 2.7982 101 = 0.0018 101 = 0.018 = 1.8 102
appunti di calcolo numerico 39


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!
_

Esempio Vediamo come non valga pi la relazione ( a b)2 =


a2 2ab + b2 .
Sia a = 15.6 e b = 15.7 e la macchina sia a 3 cifre decimali Questa volta lavoriamo su una macchina non
( a b) = ( a b) + eab . Abbiamo ( a b) = 15.6 15.7 = 0.1. normalizzata, per cui scriviamo la parte fra-
zionaria come 0.qualcosa. Per esercizio, si
Quindi ( a b)2 = +0.01 = 0.1 101 . ripeta lesempio lavorando su una macchina
Consideriamo ora a2 2ab + b2 = 243.36 489.84 + 246.49 = a 2 cifre decimali normalizzata e su una mac-
china a 3 cifre decimali normalizzata. Cosa
0.24336 103 0.48984 103 + 0.24649 103 si osserva?
Considerando la macchina a 3 cifre decimali, abbiamo: 0.243 103
0.490 103 + 0.246 103 = 0.1 101
I risultati sono completamente diversi!
_

Esempio Consideriamo il problema di approssimare la deriva-


ta della funzione f ( x ) = sin x nel punto x = 1.2.
Supponiamo di non poter valutare direttamente la derivata della
f e di volerla approssimare applicando la formula polinomiale di
Taylor:

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

Per h = 0.1 non abbiamo unapprossimazione accurata. Ci aspettia-


mo che diminuendo il passo h lerrore che commettiamo diminuisca.
Riportiamo, nella tabella a lato, gli errori della formula (in valore h 00
h errore | f ( x0 )|
h 2
assoluto) e confrontiamoli con lerrore di discretizzazione | f 00 ( x0 )| 1.e-1 4.7167e-2 4.6602e-2
2 1.e-2 4.6662e-3 4.6602e-3
(i conti sono fatti in singola precisione):
1.e-3 4.6608e-4 4.6602e-4
Lerrore commesso dallo schema decresce come h e, in particolare, 1.e-4 4.6603e-5 4.6602e-5
h 1.e-5 4.6602e-6 4.6602e-6
come | f 00 (1.2)| = 0.46602h. 1.e-6 4.6597e-7 4.6602e-7
2
Possiamo pensare di ottenere unaccuratezza grande quanto vo-
gliamo a condizione di prendere valori di h sempre pi piccoli. In
realt, per valori di h molto piccoli, gli errori iniziano ad aumentare!
h 00
h errore | f ( x0 )|
2
1.e-8 4.3611e-10 4.6602e-9
1.e-9 5.5947e-8 4.6602e-10
1.e-10 1.6697e-7 4.6602e-11
1.e-11 4.6603e-5 4.6602e-12
1.e-12 1.3006e-4 4.6602e-13
1.e-13 4.2505e-4 4.6602e-14
1.e-16 3.6236e-1 4.6602e-16
1.e-18 3.6236e-1 4.6602e-19
In Figura 4.4 vediamo come la curva dellerrore inizialmente segue
la retta descritta dallerrore di discretizzazione ma poi si allontana
da essa. Perch questo diverso comportamento per valori di h molto
piccoli?
Dobbiamo tenere presente che lerrore che noi valutiamo non
semplicemente lerrore di discretizzazione ma la somma dellerrore
di discretizzazione e dellerrore di arrotondamento! Per valori di
h grandi, lerrore di discretizzazione descresce al diminuire di h e
domina sullerrore di arrotondamento. Ma quando lerrore di di- Figura 4.4: In alto: errore di discretizzazione
f ( x0 + h ) f ( x0 )
scretizzazione diventa molto piccolo, per valori di h minori di 108 , ed effettivo ( f 0 ( x0 )
h
).
In basso: errori di discretizzazione, di arroton-
allora lerrore di arrotondamento inizia a dominare e ad aumenta-
damento, ed errore effettivo (con f 0 ( x0 )
re sempre pi al diminuire di h. Questo un motivo per cui si f ( x0 + h ) f ( x0 )
), ed errore dalla for-
deve cercare di far prevalere lerrore di discretizzazione in un pro- h
mula trigonometrica per cui sin ( x0 + h)
cedimento numerico. Nellerrore di arrotondamento, per h via via sin ( x0 ) = 2 cos (2x0 + h/2) sin (h/2). I
pi piccoli, si verifica un errore di cancellazione: f ( x0 + h) pra- grafici sono in scala logaritmica.

ticamente uguale a f ( x0 ) per h molto piccoli! per cui lerrore che


calcoliamo | f 0 ( x0 ) 0| = f 0 ( x0 ) = 0.3623577544.... Una strategia
per evitare la cancellazione di scrivere diversamente la differenza
f ( x0 + h) f ( x0 ). Nel caso di f ( x ) = sin ( x ) ricorriamo alla formula
+
trigonometrica per cui sin () sin () = 2 cos ( ) sin ( ).
2 2
Vediamo come migliorano le cose inserendo nel grafico 4.4 anche
la curva dellerrore che otteniamo utilizzando questa espressione
trigonometrica. Lerrore continua a diminuire anche quando la for-
mula precedente d un errore crescente. Sempre in Figura 4.4, e in
riferimento alla formula non buona, abbiamo considerato la curva
dellerrore di arrotondamento in modo da confrontare landamento
effettivo dellerrore con un limite superiore teorico dellerrore compu-
tazionale totale dato dalla somme degli errori di discretizzazione e
appunti di calcolo numerico 41

di arrotondamento. La rappresentazione di f ( x ) affetta da errore


per cui avremo: f ( x ) = f ( x ) + ex . Lerrore di arrotondamento
f ( x0 + h ) f ( x0 ) f ( x0 + h ) f ( x0 ) e x + h e x0
= + 0 . Maggioran-
h h h
do ex con la precisione di macchina e, lerrore di arrotondamento
dato da 2e/h: per h piccoli lerrore che predomina!
_

4.8 Instabilit e malcondizionamento

4.8.1 Instabilit

In generale impossibile evitare un accumulo lineare degli errori di


arrotondamento durante un calcolo, ed accettabile che ci sia una
crescita lineare moderata, del tipo

En c0 nE0

dove En misura lerrore in valore assoluto delln-sima operazione


dellalgoritmo e c0 rappresenta una costante non molto grande. Per algoritmo intendiamo un procedimento di
calcolo.
Se invece avviene una crescita di tipo esponenziale

En c1n E0

con c1 > 1, allora lalgoritmo instabile. Algoritmi del genere devono


essere evitati!

Definizione 4.8.1 Un procedimento numerico si dice instabile se gli errori


che vi sono associati non rimangono limitati ma crescono fino a distruggere
completamente la soluzione.

Esempio Consideriamo lintegrale

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:

1. valutare y0 = ln (11) ln (10)


42 annamaria mazzia

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:

n1 n0 < log e = n0 > n1 log e

Fissato n1 = 20 si ricava n0 = 26.


Questa volta i calcoli danno gli stessi risultati sia in Matlab sia in
Fortran:
appunti di calcolo numerico 43

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

Osserviamo come il valore y0 coincida con il valore teorico noto.


_
Lesempio appena visto ci porta a dare alcune considerazioni sui
criteri su cui si deve basare un algoritmo: un algoritmo deve essere
accurato, efficiente e robusto, accurato nel senso che bisogna essere
in grado di sapere la grandezza dellerrore che si commette nellal-
goritmo stesso; efficiente in termini di velocit di esecuzione e di
richiesta di spazio di memoria per le variabili utilizzate; robusto nel
dare il risultato corretto entro un livello di tolleranza dellerrore che
sia accettabile.

4.8.2 Malcondizionamento

Definizione 4.8.2 Un problema si dice malcondizionato se a piccole varia-


zioni nei dati di input del problema corrispondono forti variazioni nei dati
di output.

Quando il problema molto sensibile alle variazioni dei dati di input,


producendo risultati molto diversi tra loro, allora nessun algoritmo,
per quanto robusto e stabile, potr dare una soluzione robusta al
problema stesso.

Esempio Il problema del calcolo delle radici di un polinomio


p( x ) di grado n un esempio di problema malcondizionato.
Sia p( x ) = a0 + a1 x + a2 x2 + . . . + an x n . I dati di input del proble-
ma sono i coefficienti a0 , a1 , . . . , an . I dati di output sono le radici del
polinomio.
Si pu provare che a piccole variazioni sui dati iniziali, corrispon-
dono grandi variazioni sui risultati. Vediamo il caso del polinomio
p( x ) = ( x 1)( x 2) ( x 10). Chiaramente, tale polinomio ha
radici 1, 2, . . . , 10.

Figura 4.5: Esempio: malcondizionamento


44 annamaria mazzia

Se perturbiamo il polinomio variando il coefficiente a9 del valore


di 0.00001, considerando quindi il polinomio p( x ) + 0.00001x9 , le
radici corrispondenti si discostano di poco da quelle del polinomio
di partenza, come si pu notare in Figura 4.5. Ma se variamo il
coefficiente a9 del valore 0.0001, considerando cio il polinomio p( x ) +
0.0001x9 allora le radici corrispondenti a x7 , x8 , x9 , x10 non saranno pi
reali ma avranno anche una parte immaginaria. La piccola variazione
sui dati di ingresso, quindi, provoca una grande variazione sui dati
in uscita, proprio perch il problema malcondizionato.
_
Una quantit che misura il grado di sensibilit di un problema
fornendoci indicazioni sul fatto che a piccole variazioni sui dati di
ingresso del problema ci possono essere piccole o grandi variazioni
sui dati di uscita si chiama indice di condizionamento (o numero di
condizionamento) del problema.
Diamo la definizione nel caso in cui il nostro problema si possa
identificare come una funzione f : R R. Il valore y = f ( x ) il
valore di uscita del problema f . Vogliamo vedere cosa succede se il
dato di ingresso non pi x ma x + x. x rappresenta quindi una
perturbazione sul dato iniziale. Assumiamo x 6= 0, y 6= 0.
Applichiamo la formula di Taylor di centro x. Si ha:

f ( x + x ) = f ( x ) + f 0 ( x )x + O(x2 ) f ( x ) + f 0 ( x )x

La variazione sul dato duscita data dalla differenza f ( x + x )


f ( x ). Chiamiamo questa differenza con y. Quindi y = f ( x +
x ) f ( x ) f 0 ( x )x (utilizziamo il risultato ottenuto dalla formula
di Taylor).
Se utilizziamo gli errori relativi, abbiamo (e sapendo che y = f ( x )): Come esempio, consideriamo f ( x ) = x1/ ,
con x > 0 e > 0. Calcoliamo lindi-
y f 0 ( x )x ce di condizionamento applicando la formu-
la (poich abbiamo supposto x > 0, si ha
y f (x)
f ( x ) 6= 0). Risulta

Moltiplicando numeratore e denominatore a secondo membro per x 1 1/1



x f ( x ) x x
0
1
si ricava (cond f )( x ) = = =

f ( x ) x1/

y x f 0 ( x ) x
Per grande, (cond f )( x ) tende a zero, quin-
y f (x) x di abbiamo un problema bencondizionato.
Se, invece molto piccolo si ha un pro-
Al limite per x 0, questa uguaglianza approssimata (abbiamo blema malcondizionato (se = 1010 , si
10
usato il simbolo ) diventa una vera uguaglianza. Questo suggerisce ha f ( x ) = x10 e (cond f )( x ) = 1010 , un
valore molto grande).
di definire lindice di condizionamento di f mediante la formula

0
x f (x)
(cond f )( x ) =
f (x)

Questo numero ci dice quanto grandi sono le perturbazioni relative


per y confrontate con le relative perturbazioni di x.
x
Per x = 0 e y 6= 0, non ha senso considerare lerrore relativo ,e
x
si considera lerrore assoluto su x. In tal caso, si definisce indice di
condizionamento la quantit
appunti di calcolo numerico 45

0
f (x)
(cond f )( x ) =

f (x)

Per x = y = 0 si considera invece lerrore assoluto sia per x che


per y, dimodoch lindice di condizionamento diventa

(cond f )( x ) = | f 0 ( x )|

4.9 Domande di riepilogo

1. Cosa significa fenomeno di cancellazione numerica? Spiegare e fornire


un esempio.

2. Definire un algoritmo stabile e fare un esempio mostrando un


algoritmo stabile e uno instabile.

3. Cosa vuol dire che un problema malcondizionato? Dare un


esempio.

4. Come definito lindice di condizionamento di una funzione f ?


5 Zeri di funzione

Non so come il mondo potr giudicarmi ma


5.1 Partiamo da alcuni problemi... a me sembra soltanto di essere un bambino
che gioca sulla spiaggia, e di essermi diverti-
to a trovare ogni tanto un sasso o una conchi-
glia pi bella del solito, mentre loceano della
verit giaceva insondato davanti a me.
Isaac Newton
Il problema di calcolare la radice quadrata di un numero un
problema molto antico. Gi gli antichi Babilonesi, intorno al 1700
a.C., se lo erano posto e avevano trovato la soluzione: per calcolare

b, partivano da un certo valore x che si avvicinava alla soluzione,
dividevano b per questo numero, e facevano poi la media, iterando il
procedimento. Lalgoritmo si pu schematizzare nel modo seguente:

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.

Sia data una funzione f continua in un intervallo [ a, b], con f ( a) e


f (b) che assumono valori di segno opposto. Allora, per il teorema del
48 annamaria mazzia

Valore Intermedio (si veda il Teorema 3.6.3 con K = 0), esiste almeno
un punto ] a, b[ tale che f ( ) = 0.
Assumiamo, per semplicit che ci sia una sola radice 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.

G Si pone a0 = a e b0 = b. Si prende il punto medio dellintervallo


a + b0
[ a0 , b0 ], c0 = 0 .
2
G Se f (c0 ) = 0 allora abbiamo trovato la radice dellequazione,
altrimenti si va a controllare il segno di f (c0 ).

Se f (c0 ) e f ( a0 ) hanno lo stesso segno, allora si trova nel-


lintervallo ]c0 , b0 [ (applicando di nuovo il teorema del Valore
Intermedio). In tal caso porremo a1 = c0 e b1 = b0 .
Se, invece, f (c0 ) e f (b0 ) hanno lo stesso segno, allora si trova
nellintervallo ] a0 , c0 [ In tal caso porremo a1 = a0 e b1 = c0 .

G Riapplichiamo questa procedura appena descritta sul sottointer-


vallo [ a1 , b1 ]

G Fermiamo il procedimento ad una certa iterazione n, se f (cn ) = 0


o se lampiezza del sottointervallo sufficientemente piccola, cio
bn a n
tol dove tol una certa tolleranza prefissata. In tal caso
2
assumiamo cn come approssimazione della radice .
Figura 5.2: Metodo delle Bisezioni
Osserviamo che, ad ogni passo, viene dimezzato lintervallo in cui
si trova la radice , da cui
ba
| cn | .
2n +1
Da questa relazione, si pu determinare il numero di iterazioni n
necessarie per calcolare unapprossimazione della radice entro una
certa tolleranza tol richiesta. Infatti
ba
tol = | cn | tol
2n +1
Ma
ba
 
log
ba ba 2tol
tol 2n = n .
2n +1 2tol log(2)
Lalgoritmo di bisezione pu essere descritto sotto forma di pseudo-
codice. Se il metodo non converge (perch, ad esempio, la funzione
che abbiamo scelto non assume segno opposto agli estremi dellinter-
vallo), il procedimento iterativo potrebbe entrare in stallo (pensiamo
ad un programma da fare eseguire al calcolatore) e quindi convie-
ne introdurre un numero massimo di iterazioni, che viene indicato
con itmax. Si intende che il metodo converge quando lampiezza del
nuovo intervallo diventa minore di una tolleranza tol prefissata.
appunti di calcolo numerico 49

Dati di input: a, b, tol, itmax


Dati di output: soluzione approssimata c o messaggio di
fallimento
1 verificare che f ( a) f (b) < 0, altrimenti non si pu implementare
il metodo ;
2 n 1 ;
3 c ( a + b)/2 ;
4 ampiezza intervallo |b a|/2 ;
5 Fintantoch n itmax e ( f (c) 6= 0 e ampiezza intervallo > tol)
6 n n + 1 (incrementa n) ;
7 Se f ( a) f (c) > 0 allora
8 a c
9 altrimenti
10 b c
11 Fine-Se
12 aggiorna c ;
13 aggiorna ampiezza intervallo ;
14 Fine-Fintantoch
15 Se f (c) = 0 o ampiezza intervallo tol allora
16 c la soluzione approssimata
17 altrimenti
18 n > itmax ;
19 il metodo fallito dopo itmax iterazioni ;
20 Fine-Se

5.3 Metodo del Punto Fisso  x 2


Un esempio. Da f ( x ) = sin ( x ) =
2
0, aggiungendo ad ambo i membri x, ottenia-
 x 2
Il problema f ( x ) = 0 pu essere reso equivalente alla ricerca del mo sin ( x ) + x = x. Se poniamo
2  
punto fisso di una opportuna funzione g (vale a dire del problema x 2
g( x ) = sin ( x ) + x, le radici della
2
g( x ) = x). f coincidono con i punti fissi della g.

Definizione 5.3.1 Data una funzione g, si definisce punto fisso della


g, quel punto che soddisfa la relazione g( ) =

Una funzione pu ammettere uno o pi punti fissi o non ammet-


terne affatto.
Un modo per calcolare un punto fisso di una funzione g dato da
iterazioni successive sulla funzione g stessa.
 x 2
Figura 5.3: Radici di f ( x ) =
2
Esempio sin ( x ).
Supponiamo che la funzione g sia g( x ) = cos ( x ). Prendiamo come
valore iniziale x0 = 1. Con una calcolatrice, andiamo a calcolare (in
modalit radianti!) il suo coseno: ricaviamo x1 = cos ( x0 ) = g( x0 ) =
0.54030230. Successivamente, calcoliamo il coseno di x1 , ottenen-
do x2 = cos ( x1 ) = 0.857553216. Osserviamo che x2 = cos ( x1 ) =
cos (cos ( x0 )) e non cos2 ( x0 )! Abbiamo innescato, in questo modo,
un procedimento iterativo per cui xn+1 = cos ( xn ) = g( xn ). Con

 x 2
Figura 5.4: Punti fissi di g( x ) =
2
sin ( x ) + x.
50 annamaria mazzia

la calcolatrice, basta digitare sulla funzione cos ogni volta in modo n xn


da avere i nuovi valori della successione xn+1 . I primi numeri che 5 0.7013687746
11 0.7356047404
otteniamo non sono molto importanti. Quelli importanti sono quelli 13 0.7414250866
che si hanno dopo 15, 30 o 100 passi. Nel nostro caso, abbiamo 14 0.7375068905
15 0.7401473356
Perch i valori di x tendono a 0.7390851332? Cosa ha di speciale
29 0.7390893414
questo numero? Il valore 0.7390851332 un punto fisso per la funzione 30 0.7390822985
cos ( x ). 56 0.7390851333
57 0.7390851332
_ 58 0.7390851332

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

respingere i valori xn prodotti dallo schema iterativo.


Prima di passare a studiare quando lo schema di punto fisso
converge, ricordiamo che una funzione pu ammettere pi di un
punto fisso, ammetterne uno solo o non ammetterne affatto. Ci
sono due teoremi (3.6.4 e 3.6.5) che ci dicono quando una funzione
pu ammettere punti fissi. Il primo assicura lesistenza di almeno un
punto fisso (ci vuol dire che vi possono essere pi punti fissi) quando
la funzione g, definita e continua in [ a, b], tale che a g( x ) b per
ogni x [ a, b]. Il secondo teorema aggiunge, a queste ipotesi, quelle
che g sia di classe C1 e, inoltre, | g0 ( x )| m < 1 per ogni x [ a, b]: in
tal caso esiste un unico punto fisso. importante osservare che, data una fun-
zione che ammette punto fisso, le ipotesi dei
Possiamo ora provare un teorema di convergenza per lo schema
due teoremi 3.6.4 e 3.6.5 possono essere ri-
iterativo del punto fisso. lassate dallintervallo [ a, b] ad un intorno del
punto fisso.
Teorema 5.3.1 A partire da un punto iniziale x0 , lo schema iterativo xn+1 =
g( xn ) converge al punto fisso di g se | g0 ( x )| < 1 in un intorno di .

Dimostrazione. Dalle relazioni

= g( )
x n +1 = g ( x n )

sottraendo membro a membro e, applicando il teorema del Valore


Medio 3.6.2 (con n un opportuno punto del segmento che congiunge
a xn ), otteniamo:

xn+1 = g( ) g( xn ) = g0 ( n )( xn )

Possiamo scrivere questa relazione per n = 0, 1, . . . ottenendo

x1 = g0 ( 0 )( x0 )
x2 = g0 ( 1 )( x1 )
x3 = g0 ( 2 )( x2 )
.. ..
.=.
xn = g0 ( n1 )( xn1 )

Moltiplicando, ora, membro a membro e prendendo i valori assoluti,


abbiamo:

| x1 | | x2 | . . . | x n | =
| g0 ( 0 )| | g0 ( 1 )| | g0 ( 2 )| . . . | g0 ( n1 )| | x0 | | x1 | . . . | xn1 |

La relazione appena trovata pu essere semplificata, dividendo


ambo i membri per | x1 | | x2 | . . . | xn1 | ottenendo:

| xn | = | g0 ( 0 )| | g0 ( 1 )| | g0 ( 2 )| . . . | g0 ( n1 )|| x0 |

Assumiamo, ora che | g0 ( xi )| m per i = 0, 1, . . . , n 1. Abbiamo


dunque una relazione che lega lerrore assoluto al passo n con lerrore
assoluto iniziale.

| x n | m n | x0 |
52 annamaria mazzia

Perch il metodo converga, lerrore deve tendere a zero per n che


tende allinfinito. Se m < 1 assicurata la convergenza (quindi, se in
un intorno del punto fisso, la derivata prima minore di 1, lo schema
converge). Se invece m > 1 in un intorno del punto fisso, lo schema
non pu convergere al punto fisso.
Se vale m = 1 nulla si pu dire a priori, ma bisogna vedere caso
per caso cosa succede nellintorno del punto fisso. 4
Negli esempi precedenti:

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

Nel primo caso (con g( x ) = cos ( x )) si ha sin (0.7390851332) =


0.673612, perci in un intorno del punto fisso la derivata minore
di 1 in valore assoluto e si ha convergenza.
1 1
Nellesempio in cui g( x ) = x + 2, risulta g0 ( x ) = qualunque
2 2
sia x: si ha convergenza.
Nel terzo caso (g( x ) = x2 ), g0 ( x ) = 2x da cui g0 (0) = 0 e g0 (1) = 2.
Figura 5.8: Il metodo di punto fisso con e
In un intorno del primo punto fisso, vale m < 1, in un intorno del 1
g( x ) = x+2
secondo punto fisso m > 1 e non si potr mai avere convergenza ad 2
esso.
Il bacino di attrazione si ha quindi se vale m < 1.
Da un punto di vista grafico, le iterazioni dello schema di punto
fisso si possono vedere sotto forma di ragnatela. Le iterazioni, infatti,
si muovono avanti e indietro tra il grafico della y = g( x ) e il grafico
della bisettrice y = x. Lesempio con g( x ) = cos ( x ), rappresentato
in Figura 5.7 : partendo da ( x0 , x0 ) sulla retta y = x, applicando
lalgoritmo si ha x1 = g( x0 ). Perci:

G da ( x0 , x0 ) si va su o gi fino a raggiungere ( x0 , x1 ) sulla curva g;

G da ( x0 , x1 ) si arriva a ( x1 , x1 ) sulla bisettrice y = x.

Questi due passi vengono ripetuti per tutte le altre iterazioni. Da


x1 si arriva sulla curva a g( x1 ). Ora laltezza x2 . Da qui si va
sulla bisettrice al punto ( x2 , x2 ). E cos via. Lo scopo delle iterazioni,
infatti, di arrivare al punto (, ) 0.7390851332 che il punto Figura 5.9: Il metodo di punto fisso: esem-
di intersezione tra il grafico di g e la bisettrice y = x. Osserviamo pio con g( x ) = x2 . Si noti la convergenza
monotona a = 0 (in alto) e la divergenza
che, per questo esempio, i valori della successione si avvicinano
monotona da = 1 (in basso)
a muovendosi a destra e a sinistra rispetto ad esso. Si parla di
convergenza oscillante.
1
Nellesempio con g( x ) = x + 2, si devono intersecare due linee
2
rette. Notiamo, anche dalla Figura 5.8, che i valori delle iterazioni si
trovano tutti da un lato rispetto al punto fisso: si parla di convergenza
monotona.
In generale, quando 0 g0 ( x ) < 1 in un intorno del punto fisso, si
ha convergenza monotona. Se, invece, 1 < g0 ( x ) < 0 in un intorno
del punto fisso, si ha convergenza oscillante.
appunti di calcolo numerico 53

Analogamente, in Figura 5.9, si possono ritrovare le conclusioni


gi viste dellesempio in cui g( x ) = x2 : si ha convergenza monotona
verso = 0 partendo da un punto iniziale in valore assoluto minore
di uno, e divergenza monotona a infinito, partendo da | x0 | > 1.

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 )|.

Dimostrazione della relazione precedente. Proviamo questo risultato,


scrivendo lerrore alliterazione n come xn = g( ) g( xn1 )
Applicando il teorema del valor medio e considerando, come prima,
0
| g ( x )| m < 1 in un intorno del punto fisso, si ha:

| x n | m | x n 1 | (5.2)

Possiamo scrivere xn1 nel modo seguente aggiungendo e sot-


traendo xn :

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).

Errore e scarto. La disuguaglianza (5.1) fornisce una maggiorazione


dellerrore al passo n tramite il valore assoluto della differenza tra
due iterazioni successive | xn xn1 |. Questultima quantit prende il
nome di scarto e viene indicata con il simbolo dn . dn = | xn xn1 | rappresenta lo scarto
alliterazione n.
Generalmente, per vedere se il metodo di punto fisso converge al
punto fisso entro una certa tolleranza prestabilita, il controllo da fare
proprio sullo scarto dn . Sfruttiamo questo fatto per vedere come
54 annamaria mazzia

implementare lalgoritmo dello schema di punto fisso (sotto forma di


pseudo-codice):
Dati di input: x0 , tol, itmax
Dati di output: xn soluzione approssimata o messaggio di
fallimento
1 n 1 contatore delle iterazioni;

2 d n 2tol (una quantit iniziale > tol) ;

3 Fintantoch n itmax e d n > tol


4 incrementa n di 1;
5 applicare lalgoritmo di punto fisso xn = g( xn1 ) ;
6 aggiorna dn ;
7 Fine-Fintantoch
8 Se dn tol allora
9 xn la soluzione approssimata
10 altrimenti
11 n > itmax ;
12 il metodo fallito dopo itmax iterazioni ;
13 Fine-Se

5.4 Il Metodo di Newton-Raphson

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 )

Supponendo f 0 ( xn ) 6= 0, otterremmo, con semplici passaggi, Osserviamo che

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

Per una funzione non lineare, il discorso da fare molto simile.


La nuova approssimazione xn+1 vogliamo che sia uguale al valore
xn pi una certa quantit h che ci permetta di arrivare alla soluzione
desiderata.
Applicando la formula di Taylor di centro xn , deve essere

f ( xn+1 ) = f ( xn + h) = f ( xn ) + f 0 ( xn )h + f 00 ( h )h2 /2

Vogliamo che sia f ( xn+1 ) = 0, da cui, trascurando il termine in h2


e considerando f 0 ( xn ) 6= 0, ricaviamo Trascurando il termine f 00 ( h ) h2 /2 nella for-
mula di Taylor, abbiamo una linearizzazione
f ( xn ) della f in un intorno di xn : approssimiamo,
h= cio la funzione f con la retta tangente a
f 0 ( xn )
( xn , f ( xn )). Se ci troviamo vicino ad una ra-
dice della f , quindi, ci aspettiamo che il pro-
Utilizziamo questo valore di h per la nuova approssimazione
cedimento che stiamo applicando ci avvicini
xn+1 = xn + h ottenendo la formula molto rapidamente alla radice stessa!

f ( xn )
x n +1 = x n , n = 0, 1, 2, . . . (5.3)
f 0 ( xn )

Linterpretazione geometrica del metodo di Newton che xn+1


lintercetta, sullasse delle x, della tangente della f a xn (vedi figura
5.11).

Figura 5.11: Il metodo di Newton-Raphson


applicato alla funzione f ( x ) = ( x/2)2
sin ( x ) con x0 = 1.3

Lo schema di Newton-Raphson si pu vedere come un caso par-


ticolare dello schema del punto fisso applicato alla funzione g( x ) =
x f ( x )/ f 0 ( x ). Perch lo schema del punto fisso converga, deve
essere | g0 ( x )| < 1 in un intorno di . Nel caso specifico abbiamo:

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

Supponendo f 0 ( ) 6= 0 (che il caso in cui la radice non multipla),


si ha | g0 ( )| = 0, poich al numeratore f ( ) = 0 (essendo radice
della f ). Per continuit, allora, vale | g0 ( x )| < 1 in un intorno di .
56 annamaria mazzia

Pertanto il metodo di Newton-Raphson generalmente convergente.


Cosa vuol dire quel generalmente? Vuol
dire: quasi sempre, tranne alcuni casi
Per vedere come si riduce lerrore via via che le approssimazioni si
particolari (che vedremo in seguito).
avvicinano a , consideriamo lerrore cambiato di segno en , per cui
xn = + en . Sostituendo in (5.3) abbiamo
f ( + en )
e n +1 + = e n +
f 0 ( + en )
f ( + en )
e n +1 = en 0
f ( + en )
Applicando la formula polinomiale di Taylor sia su f sia su f 0 di
centro , si ha:
f ( ) + en f 0 ( ) + en2 f 00 ( )/2 + . . .
e n +1 = e n
f 0 ( ) + en f 00 ( ) + . . .
Poich f ( ) = 0, raccogliendo i termini si ricava:

en f 0 ( ) + en2 f 00 ( ) en f 0 ( ) en2 f 00 ( )/2 + . . . en2 f 00 ( )/2 + . . .


e n +1 = =
f 0 ( ) + en f 00 ( ) + . . . f 0 ( ) + en f 00 ( ) + . . .
Trascurando i termini en f 00 ( ) + . . . al denominatore e le potenze
maggiori o uguali a en3 al numeratore si trova:
f 00 ( ) 2 f 00 ( )
e n +1 = e = Aen2 ponendo A = .
2 f 0 ( ) n 2 f 0 ( )
Lultima relazione che abbiamo ottenuto ci dice che lerrore al passo
n + 1 proporzionale, secondo il fattore A, al quadrato dellerrore al
passo precedente. Si parla di convergenza quadratica. Se partiamo da un errore iniziale dellordine
di 102 , al passo successivo lerrore pro-
Nel caso in cui sia una radice multipla, allora f 0 ( ) = 0 e A = :
porzionale a 104 e poi a 108 fino a 1016
se il metodo converge, la convergenza non sar pi quadratica ma in tre sole iterazioni. Generalmente, quindi, il
avremo una convergenza di tipo lineare, come vedremo meglio in numero delle cifre significative raddoppia ad
ogni passo del metodo.
seguito.
Se in vi un punto di flesso non orizzontale, per cui f ( ) =
0, f 0 ( ) 6= 0, f 00 ( ) = 0, allora A = 0 e ci aspettiamo una convergenza
superiore a quella quadratica.

5.5 Convergenza di un metodo iterativo

Quando si parla di un metodo iterativo, ci sono due cose fondamentali


da vedere: se il metodo converge alla soluzione, in che modo si riduce
lerrore ad ogni passo e secondo quale fattore? Si parla di ordine di
convergenze e di fattore di convergenza.
Vediamo la definizione pi usata.

Definizione 5.5.1 Un metodo ha ordine di convergenza p se si possono


definire due costanti p 1 e M > 0 tali che
| x n +1 |
lim =M
n | xn | p
La costante M prende il nome di costante asintotica dellerrore o fattore
di convergenza.
appunti di calcolo numerico 57

In maniera alternativa, un metodo iterativo si

G Nel caso del metodo di Newton-Raphson, generalmente vale


dice:
G linearmente convergente se esiste
p = 2 e la costante asintotica dellerrore quella che abbiamo una costante M < 1 tale che, per n
f 00 (

sufficientemente grande, vale
definito come A presa in valore assoluto, cio M = 0
.
2 f ( ) | x n +1 | M | x n |

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

Ricordiamo che, se il metodo di punto


fisso converge linearmente, deve essere
La costante asintotica per lo schema di punto fisso vale, dunque,
| g0 ( )| < 1. Infatti, se un metodo lineare,
M = | g0 ( )|. affinch lerrore al passo n + 1 decresca di

G Il metodo delle bisezioni pu essere visto come un metodo lineare,


1
M rispetto allerrore al passo n, deve essere
M < 1.
con M = (considerando che, ad ogni passo, si riduce della met
2
lintervallo in cui viene cercata lapprossimazione della radice).

5.6 Errore e scarto nel metodo di Newton-Raphson

Come per lo schema di punto fisso, quando implementiamo il me-


todo di Newton-Raphson, non potendo misurare lerrore en (la ra-
dice incognita), usiamo lo scarto dn come misura della bont
dellapprossimazione della radice.

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

I valori generati dallalgoritmo tendono a = 0.


Considerando che f 00 ( x ) = cos ( x ) possiamo valutare la costante
| f 00 ( )| | cos ( )| 1
asintotica M = = = = 0.25
2| f 0 ( )| 2(|2 + sin ( )|) 4
_
Da un punto di vista teorico, considerando la radice e lappros-
simazione xn e applicando il teorema del valor medio, possiamo
scrivere

f ( ) f ( xn ) = f 0 ( n )( xn )

dove n un punto, che non conosciamo, compreso tra e xn . Per xn


vicino a possiamo considerare n xn , da cui ricaviamo (essendo
f ( ) = 0):

f ( xn ) f 0 ( xn )( xn )

Sostituendo questa espressione nelliterazione di Newton-Raphson si


ha:
f ( xn )
x n +1 = x n xn + ( xn )
f 0 ( 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).

6 6.0348e-01 1.3931e+00 3.2160e+00


7 1.7081e-01 6.5339e-01 2.4994e+00
8 4.0115e-03 8.9840e-02 2.0120e+00
9 6.4168e-08 3.5824e-04 2.0000e+00
Allo stesso risultato si arriva anche per via
I rapporti che indicano convergenza lineare e quadratica tendono a ze- teorica (sapendo qual la radice), applican-
dn do lo sviluppo di Taylor alla formula dellerrore
ro, mentre i rapporti tendono a 2: ci dice che la convergenza
( d n 1 )3 dellalgoritmo di Newton-Raphson. e consi-
derando che la radice un punto di flesso
cubica e che la costante asintotica vale 2.
non orizzontale.
_

5.7 Ancora esempi sul metodo di Newton-Raphson

Vediamo un esempio che ci permette di capire meglio il significato di


metodo generalmente convergente (e che il metodo di Newton-Raphson
non converge proprio sempre!).

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

Se partiamo da x0 > 0 abbiamo



x0
x1 = x0 = x0 2x0 = x0
1

2 x0
Se partiamo da x0 < 0 abbiamo

x0
x1 = x0 = x0 + 2( x0 ) = x0 .
1

2 x0
Il metodo di Newton applicato alla funzione f , diventa quindi:

x n +1 = x n , n = 0, 1, 2, . . .

Qualunque sia il valore iniziale x0 6= 0, si ha x1 = x0 , x2 = x1 = x0


... i valori generati dal metodo di Newton-Raphsono si alternano tra
x0 e x0 e non si avr mai convergenza alla radice = 0.
_
Da un punto di vista pratico occorre prestare molta attenzione
anche alla scelta del punto iniziale per il metodo di Newton-Raphson.
Dal momento che la formula richiede una divisione per f 0 ( xn ), occorre
evitare di prendere un punto iniziale in cui la f abbia una tangente
quasi orizzontale (e quindi il corrispondente valore di f 0 sia un valore
vicino allo zero). In tal caso, infatti, ci si pu allontanare dalla radice
e il metodo pu non convergere o converger molto lentamente.

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

5.8 Il metodo delle secanti o Regula Falsi

La conoscenza della derivata prima della f per applicare il metodo


di Newton-Raphson potrebbe essere semplice ma a volte potrebbe
rivelarsi unoperazione molto costosa e alquanto complicata.
Il metodo delle secanti una variante del metodo di Newton-
Raphson dove, al posto della derivata prima, si considera una sua
approssimazione.
Scriviamo la formula ricorsiva
f ( xn )
x n +1 = x n
Cn
appunti di calcolo numerico 61

Per Cn = f 0 ( xn ) abbiamo la formula di Newton-Raphson, che pos-


siamo anche chiamare della tangente variabile perch il coefficiente
angolare della retta tangente a ( xn , f ( xn )) che interseca lasse delle x
in xn+1 .
Ci possono essere altre scelte per Cn :

G Cn = f 0 ( x0 ): il valore di Cn costante e d vita al metodo della


tangente fissa.

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 )

Notiamo che, per innescare il metodo occorrono due valori iniziali,


x0 e x1 . Ma richiesta solo la valutazione della funzione f a ciascun
passo (nessuna conoscenza della derivata prima).

Figura 5.17: Il metodo della Regula Falsi


applicato alla funzione f ( x ) = ( x/2)2
sin ( x ) con x0 = 1.3 e x1 = 1.35

Per quanto riguarda laccumulo degli errori


Da un punto di vista geometrico, nel metodo delle secanti il valore di arrotondamento, conviene utilizzare la for-
mula cos come stata scritta in quanto
xn+1 dato dallintercetta sullasse delle x della retta passante per pi sicura rispetto alla forma compatta in cui
x n , f ( x n ) e x n 1 , f ( x n 1 ). vengono raccolti i termini, data da
Per quanto riguarda lordine di convergenza si pu dimostrare che x n 1 f ( x n ) x n f ( x n 1 )
x n +1 =
si ha convergenza superlineare poich vale la relazione f ( x n ) f ( x n 1 )

p in quanto in questultima, si pu avere il fe-


nomeno della cancellazione numerica per
= Mp+1e
p
e
n +1 n xn xn1 e f ( xn ) f ( xn1 ) > 0.
62 annamaria mazzia

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.

5.9 Complessit computazionale di uno schema

Un altro elemento da considerare per valutare lefficienza numerica


di uno schema iterativo la sua complessit computazionale. Un
metodo, infatti, pu avere un elevato ordine di convergenza ma avere
anche un costo computazionale molto elevato. Viceversa, un metodo
pu avere un basso ordine di convergenza ma essere anche semplice
computazionalmente e, quindi, molto vantaggioso da questo punto
di vista.
Si definisce indice di efficienza E dello schema iterativo la quantit

E = p1/s

dove s indica il numero delle funzioni coinvolte ad ogni iterazione


(per esempio: solo f , oppure f e f 0 , e cos via), mentre p lordine di
convergenza del metodo.
Sebbene il metodo di Newton-Raphson abbia ordine di convergen-
za pi elevato della Regula Falsi, questultimo computazionalmente
pi efficiente. Si ha infatti

Metodo p s E

Newton-Raphson 2 2 2 1.414
Regula Falsi 1.618 1 1.618

5.10 Confronto tra Newton-Raphson e Regula Falsi

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

Per la Regula Falsi si ha:

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
_

5.11 Metodo di Newton-Raphson per radici multiple

Il metodo di Newton-Raphson non si comporta come ci si aspetta se


viene applicato per approssimare una radice per cui vale f 0 ( ) = 0.
In tal caso, la radice non una radice semplice ma una radice
multipla. Un conto dire che una radice multipla,
cio la stessa radice si ripete per un certo
Definizione 5.11.1 Data unequazione f ( x ) = 0, una radice si dice numero di volte. Un conto dire che una
multipla con molteplicit r se vale: f ( ) = f 0 ( ) = . . . = f r1 ( ) = 0 funzione ha molteplici radici (distinte, diverse
tra loro).
e f r ( ) 6= 0. Ci significa che la funzione f ( x ) pu essere scritta come
f ( x ) = ( x )r q( x ), dove q( x ) una funzione per cui vale q( ) 6= 0 o
limx q( x ) 6= 0.

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 )

Da un punto di vista geometrico, la nuova approssimazione xn+1


dato dallintercetta con lasse delle ascisse della retta data da y =
f 0 ( xn )( x xn ) + r f ( xn ) (retta che parallela alla retta tangente alla f
in 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.

5.12 Controllo sugli scarti e grafici di convergenza

Da un punto di vista pratico, il controllo per verificare la conver-


genza o meno della successione di valori xn1 , xn , xn+1 , generata
dallo schema iterativo viene effettuato sugli scarti dn = | xn xn1 |
piuttosto che sugli errori (assoluti) en = | xn |, poich, se avessimo
appunti di calcolo numerico 65

Figura 5.20: Prima iterazione dello schema di


Newton-Raphson e dello schema diNewton-
Raphson modificato per approssimare la radi-
ce doppia della funzione f ( x ) = x2 8x +
16 = ( x 4)2 .

informazioni sugli errori, conosceremmo anche il valore di (che, in


generale, non noto). Fissata una certa tolleranza tol, arrestiamo lo
schema iterativo quando dn < tol (o quando dn+1 < tol a seconda
della notazione usata).
Nel caso del metodo di Newton-Raphson a convergenza quadratica,
abbiamo visto che il controllo sullo scarto va bene (si veda quanto
detto a pag. 58).
Vediamo cosa succede per metodi lineari. Sia tol la tolleranza
richiesta per approssimare utilizzando gli scarti. Sappiamo che, per
n grande e se il metodo converge, vale la relazione en+1 Men dove
M < 1, M 6= 0, la costante asintotica.
Riscriviamo la precedente formula come:

| xn+1 | M| xn | = M| xn + xn+1 xn+1 | M (| xn+1 | + | xn+1 xn |)

Quindi

en+1 M (en+1 + dn+1 ) vale a dire (1 M )en+1 Mdn+1

Se siamo arrivati ad un indice n per cui dn+1 tol, allora vale

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 .

si pu dire che en+1 Mn+1 en con Mn+1 0: si pu vedere come


66 annamaria mazzia

un caso limite di convergenza lineare con fattore di convergenza che


tende a zero, e quindi il controllo dello scarto permette un buon
controllo dellerrore.
Quando si implementa un metodo iterativo, si pu fare il grafico
semilogaritmico di convergenza del metodo, ponendo sullasse delle
ascisse i valori delle iterazioni e sullasse delle ordinate i logaritmi (in
base 10) degli scarti.
Asintoticamente, infatti, nella definizione di ordine di convergenza
di un metodo, possiamo sostiture lerrore con lo scarto da cui dn
p
Mdn1 .
Nel caso in cui p = 1, si ha:

dn Mdn1
dn1 Mdn2
dn2 Mdn3
.. ..
. .
d2 Md1
d1 Md0

Partendo dalla prima relazione abbiamo:

dn Mdn1 M2 dn2 M3 dn3 . . . Mn d0 Figura 5.21: Grafico con i profili di convergen-


za per i metodi di Newton-Raphson, secan-
Troviamo una relazione tra dn e d0 . Passando ai logaritmi: te variabile e punto fisso per trovare lo zero
della funzione f ( x ) = x + ln ( x ) (e appli-
cando lo schema di punto fisso alla funzione
log10 (dn ) = n log10 ( M ) + log10 (d0 ) g( x ) = e x ).

Abbiamo unequazione del tipo y = ax + b dove y = log10 (dn ) e


x = n, che rappresenta lequazione della retta nel nostro grafico Nel caso in cui p 6= 1 il discorso si fa pi
complicato (e non staremo qui ad analizzarlo
semilogaritmico, e la pendenza della retta vale a = log10 ( M ). Dalla
nei dettagli).
pendenza della retta possiamo dunque risalire al valore della costante
asintotica M.

5.13 Osservazioni sullordine di convergenza di un me-


todo iterativo

Abbiamo visto che, in generale, uno schema iterativo ha un certo


ordine di convergenza, ma ci sono delle eccezioni: ad esempio, il
metodo di Newton-Raphson in genere di ordine p = 2 ma se la
radice multipla allora il metodo diventa lineare, e se la radice Se stiamo applicando il metodo di Newton-
Raphson e stimando M tramite la formu-
un punto di flesso non orizzontale il metodo ha convergenza cubica; la dn+1 /d2n o tramite la formula teorica
analogamente nello schema di punto fisso, se g0 ( ) = 0 allora il | f 00 ( xn )/(2 f 0 ( xn )| troviamo dei valori che
metodo non pi lineare... tendono ad un limite ben preciso diverso da
zero e da infinito, allora significa che il meto-
Se non abbiamo sufficienti informazioni sulla radice o sul punto fis- do ha ordine p = 2 e che la stima che stiamo
so che vogliamo approssimare, come facciamo a capire qual lordine facendo corretta. Ma se, seguendo questa
strada, troviamo dei valori di M che tendono
di convergenza del metodo iterativo? Una strada vedere se lap- a zero o a infinito, significa che lordine del
prossimazione della costante asintotica usando gli scarti o la formula metodo non p = 2!
teorica che vale per lordine p che ci aspettiamo, abbia senso (cio
appunti di calcolo numerico 67

non tenda n a zero n a infinito ma ad un valore limite ben preciso


si veda lesempio descritto a pag. 62). Ma se lapprossimazione della
costante asintotica non va bene, c una strada pi pratica da seguire
per capire qual lordine di convergenza del metodo? Riprendiamo
la definizione di ordine di convergenza di uno schema iterativo:
| x n +1 |
lim =M
n | xn | p

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

Man mano che ci stiamo avvicinando a convergenza il valore di p


tender ad un valore ben preciso, lordine di convergenza del metodo.
E, una volta trovato p, possiamo stimare M usando la formula del
rapporto tra gli scarti.

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.

n dn (N-R) p (N-R) dn (R-F) p (R-F)


1 1.41452687E+00 5.E-02
2 6.29766079E-01 1.24070285E+00
3 1.40647107E-01 1.8526 8.55361810E-01 -0.11581
4 1.03024203E-02 1.7436 1.43968803E-01 4.7913
5 5.75004640E-05 1.9849 6.13774024E-02 0.47845
6 1.79436599E-09 1.9997 7.14459392E-03 2.5226
7 2.10317362E-04 1.6392
8 7.91146198E-07 1.5836
9 9.06448250E-11 1.6254

Osserviamo che per poter iniziare a stimare il valore approssimato


di p dobbiamo avere fatto almeno
 tre iterazioni
  in modo da poter
dn d n 1
applicare la formula p log / log .
d n +1 dn
Dalla tabella, si pu notare che, per il metodo di Newton Raphson,
a parte uniniziale oscillazione, il valore di p tende a 2. Per il metodo
della Regula Falsi invece si vede allinizio un valore negativo (dovuto
alla scelta dei due valori iniziali x0 e x1 ), successivamente ci sono
forti oscillazioni, infine, quando si sta arrivando a convergenza, si
hanno i valori di p = 1.6392, 1.5836, 1.6254. Ricordiamo che in questo
caso p = 1.618 e lapprossimazione finale che otteniamo abbastanza
buona.
Se, allultima iterazione, il valore dello scarto fosse zero o molto
prossimo a zero (dellordine di 1016 , la precisione di macchina)
allora non conviene usare questultimo valore per stimare lordine di
convergenza (non possiamo fare log 0 o una divisione per zero a
seconda di come stiamo applicando la formula per p). In casi simili
conviene fermarsi alla stima del penultimo passo di iterazione.
_
appunti di calcolo numerico 69

5.14 Esercizi

Esercizio 5.14.1 Si vuole risolvere lequazione x = g( x ) con lo schema


del punto fisso; sapendo che
g( x ) = x2 5x + 9

(a) calcolare analiticamente il valore del punto fisso;

(b) determinare il fattore di convergenza M dello schema del punto


fisso;

(c) calcolare le approssimazioni x1 , x2 e x3 partendo prima da x0 = 1


e poi da x0 = 2.5 e giustificandone il diverso comportamento.

Svolgimento

(a) punto fisso della funzione g se verifica g( ) = .

Imponiamo dunque la condizione g( ) = . Ricaviamo 2 5 +


9 = , ovvero 2 6 + 9 = 0, cio ( 3)2 = 0, da cui = 3
punto fisso della g.

(b) Il fattore di convergenza M = g0 ( ).

Poich g0 ( x ) = 2x 5, si ha g0 ( ) = g0 (3) = 1.

Osserviamo che, a priori, non si pu dire se lo schema del punto


fisso converge o meno proprio perch nel punto fisso la derivata
Figura 5.22: Esercizio sullo schema di punto
prima vale esattamente 1, ma bisogna vedere caso per caso a fisso
seconda del punto iniziale da cui si fa partire il metodo.

Per x0 = 1 si ha Per x0 = 2.5 si ha

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

Per x0 = 1 il metodo non converge, mentre per x0 = 2.5 il metodo


converge. La diversit di comportamento si giustifica graficamente,
come si pu vedere dalla Figura 5.22, osservando che per x0 = 1 i
valori ottenuti dallo schema si allontanano sempre pi dal punto
fisso. Nel secondo caso, al contrario, i valori si avvicinano con
monotonia al punto fisso.
70 annamaria mazzia

Esercizio 5.14.2 Si vuole risolvere lequazione f ( x ) = 0 con f ( x ) =


( x 1)2 + 3 ln ( x ), nellintervallo [0.5, 2] con gli schemi di Newton-
Raphson e della Regula Falsi.

(a) Dimostrare esistenza e unicit della soluzione nellintervallo


considerato.

(b) Calcolare le approssimazioni x1 , x2 e x3 con lo schema di Newton-


Raphson, partendo da x0 = 0.5;

(c) Calcolare le approssimazioni x2 e x3 con lo schema della Regula-


Falsi partendo da x0 = 0.5 e x1 calcolato al punto b).

Stimare, inoltre il fattore di convergenza del metodo di Newton-Raphson


assumendo x3 .

Svolgimento

(a) La funzione ammette valori opposti allestremo dellintervallo.


Infatti f (0.5) = 1.82944154 e f (2) = 3.07944154. Quindi, per il
teorema del valor intermedio, esiste almeno una radice. Inoltre
3 2x2 2x + 3
f 0 ( x ) = 2( x 1) + = sempre positivo nellinter-
x x
2
vallo dato, (la parabola 2x 2x + 3 ha discriminante negativo e
quindi sempre positiva). Perci, da f 0 ( x ) > 0 concludiamo che la
f crescente. Di qui lunicit della radice.

(b) Partendo da x0 = 0.5, il metodo di Newton-Raphson fornisce i


seguenti valori:

k 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

Dalla tabella sembra che i valori della successione tendano a 1. E,


infatti, si vede facilmente che f (1) = 0 e quindi 1 il valore che
stiamo cercando. Per stimare la costante asintotica dellerrore del
metodo di Newton-Raphson assumendo x3 , occorre usare la
formula
| f 00 ( x3 )|
M
2| f 0 ( x3 )|

3
dove, nel caso specifico, vale f 0 ( x ) = 2( x 1) + e f 00 ( x ) =
x
3
2 2.
x
Usando il valore trovato per x3 si ricava M 0.16667004E + 00.
appunti di calcolo numerico 71

(c) Partendo da x0 e x1 del metodo di Newton-Raphson, la Regula


Falsi d:

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

Esercizio 5.14.3 Provare, anche solo graficamente, che lequazione


f ( x ) = sin ( x ) + x 1 = 0
ammette una sola radice nellintervallo [0, 1].

(a) Dire se lo schema del punto fisso con g( x ) = arcsin (1 x ) pu


convergere.

(b) Partendo da x0 = 0.1 calcolare le approssimazioni x1 , x2 e x3 con


lo schema di Newton-Raphson;

(c) Dare una stima del fattore di convergenza.

Svolgimento
Graficamente, da f ( x ) = 0 si ha sin ( x ) = 1 x. Se si studia
lintersezione delle due curve, sin ( x ) e 1 x nellintervallo [0, 1], si
pu osservare una sola intersezione, cio una sola radice della f (fare
il grafico delle due funzioni).
Analiticamente, la funzione f ( x ) assume valori di segno opposto
agli estremi dellintervallo dato:

f (0) = sin (0) + 0 1 = 1


f (1) = sin (1) + 1 1 = 0.8414709848

La derivata prima della f f 0 = cos ( x ) + 1: funzione continua


e sempre positiva nellintervallo [0, 1]. Quindi f una funzione
crescente e interseca lasse delle x solo una volta in [0, 1], vale a dire
ammette ununica radice.

(a) Da f ( x ) = 0 si ha sin ( x ) + x 1 = 0 o, equivalentemente,


sin ( x ) = 1 x, da cui x = arcsin (1 x ).
Consideriamo perci lo schema del punto fisso con g( x ) data da
1
g( x ) = arcsin (1 x ). La derivata di g( x ) g0 ( x ) = p .
1 (1 x )2
Nellintervallo [0, 1] valgono le seguenti disuguaglianze:

0 x 1 = 0 x 1 = 1 1 x 0 =
= 1 (1 x )2 0 = 1 (1 x )2 0 = 0 1 (1 x )2 1 =
1
q
= 0 1 (1 x )2 1 = 1 p
1 (1 x )2
72 annamaria mazzia

Perci g0 ( x ) sempre maggiore di 1 e lo schema del punto fisso


non pu convergere.

(b) Da f ( x ) = sin ( x ) + x 1 si ha f 0 ( x ) = cos ( x ) + 1 e f 00 ( x ) =


sin ( x ). Il metodo di Newton-Raphson :

sin ( x ) + x 1
x k +1 = x k .
cos ( x ) + 1

Utilizziamo la notazione M1 e M2 per indicare la stima della


costante asintotica dellerrore mediante le formule
| x k +1 x k | | f 00 ( xk )|
M1 = o M2 =
| x k x k 1 | 2 2| f 0 ( xk )|

Partendo da x0 = 0.1 si ottengono i seguenti valori:

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

(c) La stima del fattore di convergenza dato da M1 = 0.12905712E+00


o da M2 = 0.13059731E+00, a seconda della strada scelta per dare
la stima.

Esercizio 5.14.4 Data lequazione f ( x ) = ln ( x ) + x2 x = 0,

(a) si provi, anche solo graficamente, che lequazione ammette lunica


radice = 1 nellintervallo [0.7, 2.3];

(b) si applichino due iterazioni del metodo dicotomico (o delle bisezio-


ni) a partire dallintervallo dato, chiamando con x0 lultimo valore
ottenuto con tale metodo;

(c) a partire da x0 del punto (b) si calcoli lapprossimazione x1 con il


metodo di Newton-Raphson;

(d) a partire da x0 e x1 del punto (c) si calcolino le approssimazioni x2


e x3 con il metodo della Regula Falsi;

(e) considerata la radice esatta = 1, si calcoli la costante asintotica di


convergenza del metodo della Regula Falsi.

Svolgimento

(a) Da f ( x ) = 0 si ricava ln ( x ) = x x2 , per cui graficamente si pu


vedere che le due curve si intersecano in un solo punto, che vale
= 1.
appunti di calcolo numerico 73

Analiticamente, invece, la funzione f ( x ) assume valori di segno


opposto agli estremi dellintervallo dato:

f (0.7) = 0.566674943938732
f (2.3) = 3.8229091229351

Inoltre f continua, quindi ammette almeno una radice nellinter-


1
vallo dato. La derivata prima : f 0 ( x ) = + 2x 1, che possiamo
x
0 1 + 2x2 x
anche scrivere come f ( x ) = : numeratore e denomina-
x
tore sono entrambi sempre positivi nellintervallo dato, (la parabola
2x2 x + 1 ha discriminante negativo = 7, di conseguenza,
per ogni x reale si ha 2x2 x + 1 > 0). Da f 0 ( x ) > 0 per ogni x
segue che f crescente e, quindi, ammette ununica radice.

(b) Applichiamo il metodo delle bisezioni a partire dallintervallo


dato (utilizziamo la notazione xs per indicare lestremo sinistro
dellintervallo, xd per indicare lestremo destro dellintervallo, xc ,
il punto medio dellintervallo considerato):

iter. xs f ( xs ) segno xd f ( xd ) segno xc f ( xc )


1 0.7 -0.566674944 - 2.3 3.822909123 + 1.5 1.155465108
2 0.7 -0.566674944 - 1.5 1.155465108 + 1.1 0.205310180

Il valore x0 dunque x0 = 1.1.

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

(d) Applicando il metodo della Regula Falsi si ha:

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

(e) Considerato che la radice esatta = 1, la costante asintotica


di convergenza della Regula Falsi si calcola utilizzando lespres-
f 00 ( ) 0.618 1
sione M = | 0 | . Da f 0 ( x ) = + 2x 1 segue f 0 (1) = 2
2 f ( ) x
1 1 0.618
e f 00 ( x ) = 2 + 2, da cui f 00 (1) = 1, per cui M = =
x 4
0.4245481.
74 annamaria mazzia

Esercizio 5.14.5 Data la funzione


f ( x ) = ln(3 + 2x x2 ) x

(a) dimostrare esistenza della soluzione dellequazione f ( x ) = 0


nellintervallo [0, 2.5];

(b) approssimare con il metodo di Newton Raphson, a partire dal pun-


to iniziale x0 = 1, arrestandosi quando il valore assoluto dello scarto
inferiore a 103 . Usando gli scarti, stimare la costante asintotica
M e lerrore finale.

Svolgimento

(a) La funzione continua e assume segni opposti agli estremi


dellintervallo.

f (0) = 1.09861228866811 > 0 f (2.5) = 1.94038421206458 < 0.


Quindi esiste almeno una radice.

Osserviamo che in questo esercizio richiesta solo lesistenza e


non esistenza e unicit della radice.

(b) Per applicare il metodo di Newton-Raphson, consideriamo la


derivata prima della f :
2 2x
f 0 (x) = 1. Si ha:
3 + 2x x2

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

Ci fermiamo alla terza iterazione, perch lo scarto diventato


minore della tolleranza 103 richiesta.

| 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

Esercizio 5.14.6 Si vuole risolvere lequazione x = g( x ) con lo schema


del punto fisso.
Sapendo che g( x ) = x2 8x + 20.25 calcolarne analiticamente il punto
fisso e determinare:

(a) il fattore di convergenza M1 dello schema del punto fisso e succes-


sivamente le approssimanti x1 , x2 , x3 usando prima x0 = 4 e poi
x0 = 5.5, giustificandone il diverso comportamento.

Risolvere quindi f ( x ) = 0 ove f ( x ) = g( x ) x con lo schema di


Newton-Raphson; calcolare

(b) il fattore di convergenza M2 dello schema di Newton-Raphson e le


approssimanti x1 , x2 , x3 ottenute con lo schema partendo da x0 = 4

(c) le approssimanti x1 , x2 , x3 ottenute con lo schema di Newton-


Rapshon modificato e x0 = 4.

Svolgimento Da g( x ) = x si ha x2 8x + 20.25 = x. Risolvendo


lequazione di secondo grado x2 9x + 20.25 = 0 si trova la radice
doppia (con molteplicit r = 2) = 4.5.

(a) Conoscendo il punto fisso, possiamo calcolare M1 = | g0 (4.5)| = 1.


A priori non possiamo dire nulla sulla convergenza dello schema.
Partendo da x0 = 4 e applicando lo schema troviamo x1 = 4.25,
x2 = 4.3125, x3 = 4.34765625. Si vede che lo schema va a conver-
genza.
Partendo da x0 = 5.5 si ha x1 = 6.5, x2 = 10.5, x3 = 46.5. Il metodo
sta divergendo.
Il diverso comportamento dovuto proprio al fatto che g0 ( ) = 1.
Consideriamo ora f ( x ) = g( x ) x = x2 9x + 20.25. Sappiamo
gi che questo polinomio ha una radice doppia e f ( x ) pu essere
riscritta come f ( x ) = ( x 4.5)2 (quindi f 0 ( x ) = 2( x 4.5)).

(b) Se pensiamo che il metodo di Newton-Raphson abbia conver-


| f 00 ( )
genza quadratica, ci accorgiamo che la formula M2 = |
2| f 0 ( )
non pu essere applicata perch f 0 ( ) = f 0 (4.5) = 0 (e dovrebbe
suonare un campanello di allarme). Se per ci ricordiamo che il
punto fisso che abbiamo appena calcolato una radice doppia per
la f , allora sappiamo che il metodo sar a convergenza lineare
e che vale M2 = (r 1)/r con r = 2 la molteplicit della radice.
Quindi M2 = 0.5.
Il metodo di Newton-Raphson xn+1 = xn ( xn 4.5)/2. Parten-
do da x0 = 4 si ha x1 = 4.25 , x2 = 4.375, x3 = 4.4375 (si vede bene
come la convergenza sia lineare.)
76 annamaria mazzia

(c) Il metodo di Newton-Raphson modificato diventa xn+1 = xn


2( xn 4.5)/2 = xn ( xn 4.5) = 4.5
Partendo da x0 = 4 otteniamo x1 = x2 = x3 = 4.5, cio arriviamo
a convergenza in una sola iterazione.

5.15 Domande di riepilogo

1. Cosa significa che uno zero di una funzione f ?

2. Nellapplicare il metodo delle bisezioni ad una funzione f ( x ) in


un certo intervallo [ a, b], quante iterazioni occorre fare per ricavare
unapprossimazione di una radice della f a meno di una tolleranza
tol? Ricavare la formula spiegando tutti i passaggi.

3. Data una funzione y = g( x ), cosa un punto fisso della g? Come


si pu riconoscere, graficamente, se una funzione g ha un punto
fisso?

4. Qual lo schema iterativo del metodo di punto fisso? Quali


sono le ipotesi che devono valere perch lo schema di punto fisso,
applicato ad una funzione g, converga ad un punto fisso della g?
Dimostrare.

5. Dato un metodo iterativo (per approssimare le radici o il punto


fisso di una funzione), che significa che il metodo ha ordine di con-
vergenza p? Qual la costante asintotica o fattore di convergenza
associato a p?

6. Si ricavi lordine di convergenza e la costante asintotica per lo


schema di punto fisso applicato ad una funzione g( x ) con punto
fisso per il quale g0 ( ) 6= 0.

7. Si ricavi lordine di convergenza e la costante asintotica per lo


schema di punto fisso applicato ad una funzione g( x ) con punto
fisso per il quale g0 ( ) = 0 e g00 ( ) 6= 0.

8. Qual la formula del metodo di Newton-Raphson e come si pu


ricavare la formula partendo dalla formula di Taylor?

9. Qual la formula del metodo di Newton-Raphson e come si pu


ricavare la formula partendo da una rappresentazione grafica?

10. Il metodo di Newton-Raphson si pu vedere come un caso par-


ticolare di schema di punto fisso? Che cosa si pu dedurre? Per-
ch diciamo che lo schema di Newton-Raphson generalmente
convergente?

11. Si ricavi lordine di convergenza e la costante asintotica del me-


todo di Newton-Raphson, nel caso generale. Quale ipotesi viene
fatta?
appunti di calcolo numerico 77

12. Si ricavi lordine di convergenza e la costante asintotica del meto-


do di Newton-Raphson nel caso in cui la radice ha molteplicit
2.

13. Cosa significa che una radice con molteplicit r (r intero


maggiore o uguale a 2) per una funzione f ?

14. Se una radice ha molteplicit r cosa succede al metodo di


Newton-Raphson? Cosa si deve fare per ripristinare lordine di
convergenza?

15. Si ricavi lordine di convergenza e la costante asintotica del meto-


do di Newton-Raphson nel caso in cui la radice un punto di
flesso non orizzontale e f 000 ( ) 6= 0.

16. Descrivere geometricamente il metodo delle secanti variabili


(detto anche Regula Falsi).

17. In genere che ordine ha il metodo delle secanti variabili e qual


la costante asintotica? (Dire solo i valori: non abbiamo dimostrato
nessun teorema.)

18. Se si applica il metodo delle secanti variabili per approssimare


una radice con molteplicit r, che ordine di convergenza ha il
metodo? (Dire solo che cosa succede.)

19. Qual la definizione di scarto alliterazione n?

20. Qual lindice di efficienza di un metodo iterativo?

21. Nel fare un grafico di convergenza in scala logaritmica sullasse


delle ordinate (sullasse delle ascisse si pongono gli indici delle
iterazioni e sullasse delle ordinate i logaritmi degli scarti), per un
metodo a convergenza lineare, cosa si pu dire sulla pendenza
della retta e perch?

22. Se non si conosce lordine di convergenza di un metodo e lo si


vuole ricavare facendo riferimento esclusivamente ai valori degli
scarti, quale formula va applicata? Da dove si ricava?
6 Interpolazione

Non vi alcuna incompatibilit fra lesatto


6.1 Un problema reale e il poetico. Il numero nellarte come nella
scienza. Lalgebra nellastronomia e lastro-
nomia confina con la poesia. Lanima delluo-
mo ha tre chiavi che aprono tutto: la cifra, la
lettera, la nota. Sapere, pensare, sognare.
Victor Hugo
I termistori (o termoresistenze) sono apparecchi che misurano la
temperatura, basati sul principio che un materiale termoresistente
mostra una variazione nella resistenza elettrica al variare della tem-
peratura. Perci, misurando la resistenza di un materiale termistore,
si puo determinare la temperatura. In genere, i termistori sono fatti
di materiali semiconduttori (manganese, nickel, cobalto, etc.). E si
classificano secondo due tipi: i termoresistori NTC (coefficienti a tem-
peratura negativa) e termoresistori PTC (coefficienti a temperatura
positiva). Nei primi, i pi usati, la resistenza decresce con laumentare
della temperatura, nei secondi la resistenza aumenta allaumentare
della temperatura. I termistori possono essere utilizzati per misurare
la temperatura, a motivo della loro alta sensibilit e della loro veloce
risposta alle variazioni di temperatura.
Quando viene preparato un termistore, lindustria che li prepara
fornisce una curva della resistenza al variare della temperatura, data
da
1
= a0 + a1 ln ( R) + a2 (ln ( R))2 + a3 (ln ( R))3
T
nota come equazione di Steinhart-Hart e nella quale T la temperatu-
ra (in Kelvin), R la resistenza (in Ohm), mentre a0 , a1 , a2 e a3 sono
le costanti della curva di calibrazione. Facendo un cambiamento di
1
variabile e, precisamente, ponendo y = e x = ln ( R), la curva di R T
T oC
calibrazione diventa il polinomio Ohm
1101.0 25.113
911.3 30.131
y = a0 + a1 x + a2 x 2 + a3 x 3 636.0 40.120
451.1 50.128
Se si riescono a calcolare le costanti a0 , a1 , a2 e a3 , allora si pu usare Tabella 6.1: Valori di Resistenza e Tempera-
tura di un termistore.
la curva di calibrazione per trovare la temperatura al variare della
resistenza.
Supponiamo di essere in possesso dei dati espressi in Tabella 6.1
per un determinato termistore. Come possiamo usare questi valori
per trovare le costanti della curva di calibrazione? Per prima cosa, si
passa dai valori della temperatura in gradi Celsius ai gradi Kelvin, x = ln ( R) y = 1/T
mediante la formula K =o C + 273.15, poi dai valori R e T, passiamo 7.0040 3.3527103
6.8149 3.2973103
alle variabili x e y (costruendo la nuova Tabella, riportata di lato). 6.4552 3.1921103
6.1117 3.0933103
Tabella 6.2: Tabella con le nuove variabili x e
y.
80 annamaria mazzia

Successivamente, cerchiamo una funzione (nellesempio che stiamo


considerando, un polinomio di grado 3) che passi esattamente per i dati
assegnati (detti anche punti di appoggio), in modo da ricavare le co-
stanti incognite: questo procedimento prende il nome di interpolazione
ed il soggetto di questo Capitolo.
In particolare, dato linsieme dei punti ( xi , yi ), i = 0, 1, . . . , n,
dove yi il valore assunto da una funzione f in xi o il valore di
un dato sperimentale, cerchiamo una funzione v( x ) che, in maniera
Figura 6.1: I valori x e y della Tabella messi
ragionevole si addica allinsieme dei dati. Se i dati sono accurati, ha in grafico.
senso richiedere che la funzione interpoli i dati (cio passi esattamente Le ascisse xi sono dette anche nodi di
interpolazione.
per le coppie di punti): v( xi ) = yi .

6.2 Interpolazione

Una funzione di interpolazione v( x ) serve per vari scopi.

G Possiamo usare la v( x ) per trovare valori approssimati y in punti


x diversi da quelli assegnati x0 , x1 , . . . xn . Se x si trova allinterno Figura 6.2: Il polinomio che passa esat-
dellintervallo che contiene le ascisse dei dati assegnati si parla di tamente per i dati x e y assegnati
y = 3.0091 103 4.5307 104 x +
interpolazione. Se invece x si trova allesterno dellintervallo si 1.0853 104 x2 5.26 106 x3 .
parla di estrapolazione.

G Se le coppie di dati assegnati si riferiscono ad una funzione f ( x ),


la funzione di interpolazione pu essere utile per approssimare le
derivate o gli integrali della f .

Assumiamo che la funzione v di interpolazione sia una combina-


zione lineare di funzioni base di un qualche appropriato spazio di
funzioni, cio si possa scrivere come

v( x ) = c0 0 ( x ) + . . . + cn n ( x )

dove ci , i = 0, 1, . . . , n sono i coefficienti incogniti (o parametri) da


determinare in base ai dati in possesso, mentre i sono le funzioni
base che assumiamo linearmente indipendenti. Le funzioni 0 , 1 , . . . , n si dico-
no linearmente indipendenti se
Esempi di interpolazione sono dati dallinterpolazione polinomiale,
c0 0 ( x ) + . . . cn n ( x ) 0 per ogni
dallinterpolazione polinomiale a tratti, dallinterpolazione trigono- x 6= 0 se e solo se tutti i coefficienti sono
metrica. Noi ci limitiamo a studiare linterpolazione polinomiale e a nulli c0 = . . . = cn = 0.

vedere dei cenni di interpolazione polinomiale a tratti.


Consideriamo, per prima, linterpolazione polinomiale: date n + 1
coppie di punti ( xi , yi ), per i = 0, 1, . . . , n, andremo a cercare un
polinomio p( x ) di grado n per cui p( xi ) = yi . Parleremo, dunque, di
polinomio di interpolazione p( x ) (v( x ) p( x )).
Il processo di interpolazione si basa su due stadi: Il primo punto fatto una volta per tutte, una
volta fissata la base e noto linsieme dei punti

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.

G valutare la funzione interpolante in un assegnato punto x.


appunti di calcolo numerico 81

6.3 Interpolazione polinomiale

Linterpolazione polinomiale il tipo di interpolazione pi semplice.


I polinomi, infatti, sono facili da costruire e da valutare, sono facili da
sommare e moltiplicare (e il risultato sempre un polinomio) e sono
altrettanto facili da differenziare e integrare (e il risultato sempre
un polinomio).
Sia p( x ) = pn ( x ) un polinomio di grado n dato da
p n ( x ) = c0 + c1 x + . . . + c n x n
Date n + 1 coppie di punti ( x0 , y0 ), ( x1 , y1 ), . . ., ( xn , yn ), vogliamo Ricordiamo che, un polinomio di grado n ha
n + 1 coefficienti e che, date n + 1 coppie di
trovare gli n + 1 coefficienti c0 , c1 , . . . cn tali che p( xi ) = yi , i = 0, . . . , n.
punti, il polinomio interpolatore sar di grado
Assumiamo, inoltre, che le ascisse delle coppie dei punti siano n.
distinte, cio xi 6= x j , per i 6= j.

6.3.1 Funzioni base monomiali

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.

Esempio Sia n + 1 = 2: abbiamo quindi due coppie di dati


xi 1 2
yi 1 3
Cerchiamo quindi un polinomio di primo grado (una retta) che
passi per i punti assegnati, della forma p( x ) = p1 ( x ) = c0 + c1 x.
Le condizioni di interpolazione diventano:
p1 ( x0 ) = y0 c0 + 1c1 = 1
p1 ( x1 ) = y1 c0 + 2c1 = 3
Abbiamo due equazioni in due incognite c0 e c1 . Risolvendo il sistema
2 2 otteniamo c1 = 2 e c0 = 1, quindi p1 ( x ) = 2x 1.
_

Esempio Consideriamo adesso un ulteriore coppia di punti


per cui i dati che abbiamo sono n + 1 = 3 e
xi 1 2 4
yi 1 3 3
Il problema ora diverso rispetto a quello appena risolto, perch
la terza coppia di punti specifica una valore y2 ben diverso da quello
predetto da p1 in x2 = 4. Difatti p1 ( x2 ) = 7, nellesempio precedente,
mentre ora al valore di x2 = 4 deve corrispondere y2 = 3.
Cerchiamo il polinomio di grado 2, quindi, della forma p2 ( x ) =
c0 + c1 x + c2 x2 che passa attraverso i punti dati.
Le condizioni di interpolazione adesso sono:

p2 ( x0 ) = c0 + 1c1 + 1c2 = 1


p2 ( x1 ) = c0 + 2c1 + 4c2 = 3


p2 ( x2 ) = c0 + 4c1 + 16c2 = 3

82 annamaria mazzia

Abbiamo un sistema lineare di 3 equazioni in 3 incognite, la cui


7 2
soluzione : c0 = , c1 = 4, c2 = .
3 3
Il polinomio p2 ( x ) = (2x2 + 12x 7)/3. Per x = 3 si ha
11
p2 (3) = = 3.666666667, valore ben diverso da p1 (3) = 5. Del resto
3
le curve che abbiamo ottenuto coincidono solo nei punti dappoggio
comuni a entrambe, una una retta, laltra un polinomio di secondo
grado (si veda Figura 6.3).
Figura 6.3: Interpolazione lineare e quadrati-
_ ca
Generalizzando gli esempi precedenti, date n + 1 coppie di punti,
il polinomio di interpolazione di grado n sar costruito risolvendo un
sistema lineare di n equazioni nelle n incognite c0 , c1 , . . . , cn :



pn ( x0 ) = y0 c0 + c1 x0 + c2 x02 + . . . + cn x0n = y0

p ( x ) = y1 c0 + c1 x1 + c2 x12 + . . . + cn x1n = y1

n 1



pn ( x2 ) = y2 c0 + c1 x2 + c2 x22 + . . . + cn x2n = y2
... ..




.

pn ( xn ) = yn c0 + c1 xn + c2 xn2 + . . . + cn xnn = yn

In forma compatta, sotto forma matriciale le equazioni del sistema si 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.

Perci, date n + 1 coppie di punti di appoggio ( xi , yi ), i = 0, . . . , n,


con ascisse distinte xi , esiste un unico polinomio interpolatore
p( x ) di grado al pi n tale che p( xi ) = yi , i = 0, . . . , n.

Tuttavia, la matrice di Vandermonde non ha buone propriet:


difatti una matrice malcondizionata, e questo lo si osserva al crescere
di n in quanto la soluzione del sistema diventa inaccurata, qualunque Una matrice A malcondizionata quando,
a piccole variazioni sui coefficienti della ma-
metodo venga utilizzato per risolverlo.
trice, corrispondono grandi variazioni nella
Questo approccio ci servito per dimostrare che il polinomio di soluzione del sistema lineare Ax = b
interpolazione esiste ed unico, ma non utile nella pratica a causa
del malcondizionamento. Sarebbe preferibile, quindi, poter usare
funzioni base diverse dai monomi in modo da evitare il malcondizio-
namento, avere meno operazioni dal punto di vista computazionale
e poter manipolare in maniera pi efficiente le funzioni basi i in
vista di una loro applicazione nella differenziazione e integrazione
numerica.
appunti di calcolo numerico 83

6.3.2 Polinomi di Lagrange

Scriviamo il polinomio p( x ) con i coefficienti ci uguali alle ordinate


dei punti dappoggio yi , ci yi : Cos facendo i coefficienti ci non sono inco-
gnite! Bisogna ora capire come scrivere le
p( x ) = pn ( x ) = y0 0 ( x ) + . . . yn n ( x ) funzioni di base i ( x ).

Una base di funzioni che ci permette una simile rappresentazione


data dai polinomi di Lagrange.
I polinomi di Lagrange L j ( x ), per j = 0, 1, . . . , n sono polinomi di
grado n che, nei nodi xi , soddisfano la relazione Joseph Louis Lagrange (1736-1813) nacque
a Torino (come Giuseppe Luigi Lagrangia)
0 se i 6= j e si trasfer in Francia, a Parigi, dove diven-
L j ( xi ) = ne cittadino francese adottando la traduzione
1 se i = j francese del suo nome. Matematico e astro-
nomo, diede un importante contributo alla
In questo modo, il polinomio pn ( x ) = nj=0 L j ( x ) y j tale che meccanica classica e celeste e alla teoria dei
numeri.
pn ( xi ) = yi cio soddisfa la condizione di interpolazione, per ogni
i = 0, . . . , n.
I polinomi di Lagrange sono definiti dalla relazione: Ricordiamo che, dati n valori w1 , w2 , . . . , wn
usiamo la seguente simbologia per indicare
n
(x x )
(x j xkk )
la loro somma e il loro prodotto, rispettiva-
L j (x) = mente:
k =0
k6= j n
w i = w1 + w2 + w3 + . . . + w n
In forma estesa abbiamo i =1
n
( x x0 ) ( x x j1 )( x x j+1 ) ( x xn ) n
x xk w i = w1 w2 w3 . . . w n
( x j x0 ) ( x j x j1 )( x j x j+1 ) ( x j xn ) k
L j (x) = = i =1
x
=0 j
xk .
k6= j

Esempio Siano date le tre coppie di punti dellesempio prece-


dente (1, 1), (2, 3), (4, 3). I polinomi di Lagrange sono:

( 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.
_

6.3.3 Formula dellerrore

Supponiamo, ora, che le ordinate yi siano i valori di una funzione f


continua in un intervallo [ a, b] (e con le derivate fino allordine n + 1
84 annamaria mazzia

continue) valutata nei punti di appoggio xi . Per ipotesi, i punti xi


siano distinti tra loro. Conosciamo, quindi, una funzione f e di questa
funzione vogliamo fare linterpolazione sostituendola mediante un
polinomio di grado n tale che p( xi ) = f ( xi ) = yi , i = 0, . . . , n.
In queste ipotesi, lerrore che si commette interpolando la funzione
f con un polinomio p( x ) di grado n vale
n
f (n+1) ( ( x ))
f ( x ) p( x ) =
( n + 1) ! ( x xi )
i =0

dove ( x ) un punto, che non conosciamo e che dipende da x, che si


trova allinterno dellintervallo [ a, b]. La formula che abbiamo scritto
per lerrore anche chiamata formula del resto di Lagrange.

Dimostrazione della formula del resto di Lagrange. Proviamo questo ri-


sultato introducendo il polinomio F ( x ) di grado n + 1 che si annulla
nelle n + 1 ascisse dei dati assegnati.

n
F(x) = ( x xk )
k =0

Consideriamo, inoltre, un punto t distinto dai punti di appoggio e


compreso nellintervallo individuato dai valori minimo e massimo
delle ascisse dei punti di appoggio.
f (t) p(t)
Definiamo la quantit S che dipende da t, data da S =
F (t)
e la funzione G ( x ) = f ( x ) p( x ) SF ( x ).
La funzione G si annulla non solo negli n + 1 punti dappoggio
poich G ( xi ) = f ( xi ) p( xi ) SF ( xi ) = 0 per i = 0, . . . , n ma anche
in t a causa di come stato definito S. Si annulla, quindi, in n + 2
punti.
Per il teorema di Rolle, la derivata prima si annulla n + 1 volte
nellintervallo (individuato dalle ascisse dei punti di appoggio). Ap-
plicando ripetutamente il teorema di Rolle sulle derivate successive,
si arriva alla derivata n + 1-sima di G, che si annulla almeno 1 volta
nellintervallo. Sia il punto in cui G (n+1) ( ) = 0. Ma La derivata n + 1-sima di un polinomio di gra-
do n una quantit nulla, mentre la derivata
G ( n +1) ( ) = f ( n +1) ( ) S ( n + 1 ) ! n + 1-sima di un polinomio di grado n + 1,
quale F ( x ), vale (n + 1)!.
Si ha perci:
f (t) p(t) f ( n +1) ( )
f ( n +1) ( ) S ( n + 1 ) ! = 0 ovvero =S=
F (t) ( n + 1) !
Considerando, ora, x al posto di t, e scrivendo come funzione di x
(in quanto il valore di dipende da x) e scrivendo in forma estesa il
polinomio F ( x ), otteniamo
n
f (n+1) ( ( x ))
f ( x ) p( x ) =
( n + 1) ! ( x xk )
k =0

Il resto normalmente incognito ma se conosciamo la f e una maggio-


n
razione della f (n+1) , e abbiamo un limite superiore per | ( x xk )|,
k =0
allora possiamo maggiorare lerrore di interpolazione.
appunti di calcolo numerico 85

6.3.4 Differenze divise e formula di Newton

Uno dei punti forti della rappresentazione di Lagrange che se


alcuni dati cambiano (ad esempio il valore di y j per un certo j) allora
il cambiamento immediatamente visibile nellintero polinomio di
interpolazione. Uno dei punti deboli, invece, la procedura per
valutare pn ( x ). Con la formula di Newton, al contrario, abbiamo un
utile compromesso.
Le funzioni base che ora consideriamo sono
j 1
j ( x ) = ( x xi ) j = 0, 1, . . . , n
i =0

Questa volta, scriveremo il polinomio di interpolazione come:

p( x ) = c0 + c1 ( x x0 ) + c2 ( x x0 )( x x1 ) + . . . + cn ( x x0 )( x x1 ) . . . ( x xn1 )

dove c0 , c1 . . . cn sono delle costanti da definire in modo opportuno.


Vediamo in ch modo con lesempio che segue.

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)

La condizione di interpolazione in x0 = 1 porta a:

f ( x0 ) = 1 = p2 ( x0 ) = p2 (1) = c0 0 (1) + c1 1 (1) + c2 2 (1) = c0 1 + c1 0 + c2 0

Quindi c1 = 1 = f ( x0 ).
In x1 = 2 abbiamo:

f ( x1 ) = 3 = p2 ( x1 ) = p2 (3) = f ( x0 ) + c1 1 (2) + c2 2 (2) = f ( x0 ) + c1 1 + c2 0

f ( x1 ) f ( x0 ) 31
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,

f ( x2 ) = 3 = p2 ( x2 ) = p2 (4) = f ( x0 ) + f [ x0 , x1 ]1 (4) + c2 2 (4)


= f ( x0 ) + f [ x0 , x1 ](4 1) + c2 (4 1)(4 2)

Per ottenere una formula per c2 che abbia carattere generale, 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

La quantit chiamata c2 prende il nome di differenza divisa del


secondo ordine e si indica con

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

La notazione utilizzata ci permette di capire anche da quali coppie


di punti dipende il coefficiente c j .
appunti di calcolo numerico 87

Dati i punti x0 , x1 , . . . , xn , per indici i e j arbitrari con 0 i j


n, si ha

f [ xi ] = f ( xi )
f [ x i +1 , . . . x j ] f [ x i , . . . , x j 1 ]
f [ xi , . . . , x j ] =
x j xi

La formula interpolatoria alle differenze divise di Newton dun-


que data da
pn ( x ) = f [ x0 ] + f [ x0 , x1 ]( x x0 ) + f [ x0 , x1 , x2 ]( x x0 )( x x1 ) + . . .
+ f [ x0 , x1 , . . . , xn ]( x x0 )( x x1 ) ( x xn1 )
Da un punto di vista computazionale i coefficienti si ricavano
mediante la tabella delle differenze divise, tenendo presente che per
calcolare f [ x0 , x1 , . . . , xn ] dobbiamo aver calcolato tutte le differenze
divise f [ x jk , . . . , x j ], con 0 k j n.

xi 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.

Esempio Costruiamo la tabella delle differenze divise per i


dati (1, 1), (2, 3) e (4, 3).
88 annamaria mazzia

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
_

Differenze divise e derivate. La differenza divisa k-sima e la derivata


k-sima di f sono legate tra loro. Si pu provare, infatti, per k 1 che Il concetto di differenza divisa pu essere
visto come unestensione del concetto di de-
vale la relazione
rivata di una funzione. Si ha, infatti, che, per
f (k) ( ) f derivabile, la differenza divisa del primo
f [ x0 , x1 , . . . , x k ] = ordine f [ x0 , x1 ] pu essere vista come un
k! rapporto incrementale e quindi, al limite per
x1 x0 , si ha f 0 ( x0 ). Il discorso si estende
dove un punto appartente allinterno dellintervallo individuato
alle differenze divise di ordine superiore.
dai nodi x0 , . . . , xk . Quando i punti coincidono, si ha

f ( k ) ( x0 )
f [ x|0 ,x{z
0 ,...,x0 ] =
} k!
k +1 volte

Questa formula serve per calcolare il polinomio di interpolazione che


interpola non solo una certa funzione f ma anche le sue derivate in
alcuni punti assegnati (si veda lesercizio 6.6.3 a fine Capitolo).

Relazione tra differenze divise ed errore di interpolazione. Se al polinomio


pn ( x ) aggiungiamo la coppia di dati ( x, f ( x )) si ha

pn+1 ( x ) = f ( x ) = pn ( x ) + f [ x0 , x1 , . . . , xn , x ]( x x0 )( x x1 ) . . . ( x xn ).
appunti di calcolo numerico 89

Lultima differenza divisa non si pu calcolare, poich dipende da x


(che la nostra variabile), ma ci utile per capire quanto vale lerrore
che commettiamo nellapprossimare f ( x ) mediante il polinomio in-
terpolatore, applicando la rappresentazione di Newton. Inoltre, dato
che il polinomio interpolatore unico (fissate le coppie di dati del
problema), anche lerrore che si commette lo stesso, qualunque sia la
strategia utilizzata per arrivare ad esso. Quindi possiamo eguagliare
lerrore trovato utilizzando i polinomi di Lagrange con lerrore trovato
nella rappresentazione di Newton, ottenendo:
n n
f (n+1) ( ( x ))
( n + 1) ! ( x xi ) = f [ x0 , x1 , . . . , x n , x ] ( x x i )
i =0 i =0

6.4 Considerazioni sullinterpolazione polinomiale

6.4.1 Fenomeno di Runge

Data una funzione f , si pensa che il polinomio di interpolazione


possa approssimare bene la funzione, soprattutto se si aumenta il
numero dei punti di appoggio. In realt questo non sempre vero e
un semplice e famoso esempio ce lo fa capire. Sia data la funzione di
1
Runge f ( x ) = e consideriamo il polinomio di interpolazione di Carl Runge (1856-1927) fu un matematico
1 + x2 tedesco. Fu studente di Weierstrass, Kirch-
questa funzione per valori crescenti di n prendendo punti di appoggio hoff, Helmholtz. Inizi poi a collaborare con
equidistanti nellintervallo [5, 5]. Partiamo da n + 1 = 2 con i punti Kronecker e poi si dedic in particolare allo
studio della soluzione numerica di equazioni
equidistanti x0 = 5, x1 = 0 e x2 = 5. Si ha la tabella
algebriche e alla spettroscopia.
xi 5 0 5
yi = f ( xi ) 3.846154e 2 1. 3.846154e 2
Costruiamo quindi il polinomio di interpolazione p2 ( x ) (utilizzan-
do uno degli approcci proposti, monomiale, Lagrange o Newton, i
risultati non cambiano). Raddoppiamo il numero dei punti ag-
giungendo un punto tra x0 e x1 e uno tra x1 e x2 . Abbiamo n + 1 = 5
e i valori della tabella

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

Figura 6.5: Funzione di Runge e polinomi


interpolanti di grado 2, 4 e 8.

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.

6.4.2 Malcondizionamento nellinterpolazione con funzioni


base monomiali

Allinizio di questo Capitolo, abbiamo introdotto il polinomio di


interpolazione mediante funzioni base monomiali: utilizzando questa Figura 6.6: Funzione di Runge e polinomio
interpolante di grado 16 su tutto lintervallo
strada, i coefficienti del polinomio si ricavano risolvendo un sistema [5, 5] (in alto) e in un sottointervallo ristretto
lineare la cui matrice, di Vandermonde, malcondizionata. A causa (in basso)

del malcondizionamento, questo approccio pu portare a risultati


errati!
Vediamo di capire il malcondizionamento mediante un esempio.
Si voglia studiare linterpolazione dei seguenti dati

xi 1010.5 1011.5 1012.5 1013 1014 1015


yi 4 2.5 2.5 2 2 0

Confrontando i vari algoritmi di interpolazione, osserveremo che


gli algoritmi di Lagrange e delle differenze divise di Newton danno
buoni risultati. Al contrario, il metodo che porta alla costruzione della
matrice di Vandermonde d risultati disastrosi, come si pu vedere Figura 6.7: Effetti del malcondizionamento
in Figura 6.7. Eppure, dal punto di vista teorico i risultati dovrebbero
essere identici.
appunti di calcolo numerico 91

Perch si hanno questi risultati? Bisogna tener conto di tre aspetti:


il calcolo della matrice di Vandermonde; la soluzione del sistema
lineare per ricavare i coefficienti del polinomio con funzioni base
monomiali; il calcolo dei valori del polinomio.
La matrice di Vandermonde consiste di colonne i cui valori cre-
scono di colonna in colonna - 1, xi , xi2 , xi3 , . . ., xi5 . Per questo caso
test, si va da 1 a elementi dellordine di 1015 . La matrice molto mal
condizionata. Perci la soluzione del sistema lineare non pu dare
risultati affidabili e il vettore che fornisce i coefficienti del polinomio
interpolatore completamente errato. Ci porta anche al fenomeno
della cancellazione numerica nel calcolo del polinomio di interpola-
zione, per cui si ha una significativa perdita di accuratezza e il grafico
risultante presenta un profilo altamente oscillante.

6.5 Interpolazione polinomiale a tratti

Abbiamo visto, nellesempio di Runge, che linterpolazione polino-


miale con nodi equidistanti non porta a una buona interpolazione,
in quanto lerrore, che dipende dalla derivata f n+1 ( x ), aumenta al
crescere di n. Nel caso dellesempio di Runge, una diversa scelta di
nodi pu portare a buoni risultati, ma resta il fatto che se il rapporto
f n +1 ( x )
aumenta al crescere di n, anche lerrore rimane elevato.
( n + 1) !
Aumentando il numero dei punti di appoggio, il polinomio di
interpolazione porta forti e irragionevoli oscillazioni al di fuori del-
lintervallo dei nodi, come si pu vedere nellesempio mostrato in
Figura 6.8.
A volte, se la funzione da interpolare continua a tratti, il termine
dellerrore pu essere ancora grande anche allinterno dellintervallo
dei nodi. In Figura 6.9, sono messi a confronto il polinomio di
interpolazione di grado n = 5 che interpola la funzione f ( x ) =
Figura 6.8: Interpolazione della funzione
p
| x | + 1 prendendo 6 punti equidistanti nellintervallo [1, 1] e il f ( x ) = exp( x ) con n = 20 (in alto) e
polinomio di interpolazione della funzione f ( x ) = e x nello stesso n = 40 (in basso). I nodi di interpolazione
intervallo e con gli stessi punti. Mentre nel caso della funzione sono nellintervallo [0, 1].

f ( x ) = e x il polinomio di interpolazione, nellintervallo dei nodi, si


p
sovrappone alla funzione interpolata, per la funzione f ( x ) = | x | + 1
lerrore ben evidente.

Figura 6.9:p Interpolazione della funzione


f (x) = | x | + 1 (a sinistra) e della fun-
zione f ( x ) = e x (a destra) con n = 5
nellintervallo [1, 1]

Se, in alcuni casi, la scelta dei nodi, fatta in maniera opportuna, pu


risolvere determinati problemi che si incontrano nellinterpolazione,
92 annamaria mazzia

altre volte il polinomio di interpolazione produce risultati comunque


non buoni, indipendentemente dalla scelta dei nodi.
La domanda, allora, la seguente: come possiamo ridurre il ter-
mine dellerrore senza aumentare il grado n nellinterpolazione e,
tuttavia, mantenendo un numero elevato di nodi? La risposta viene
dallinterpolazione polinomiale a tratti.
Supponiamo di voler costruire una curva che interpola dei dati
che si trovano allinterno di un certo intervallo [ a, b]. Prenderemo dei
punti allinterno di questo intervallo, in modo che il primo e lultimo
punto coincidano con a e b rispettivamente: a = x1 < x2 < . . . <
xm = b. Chiamiamo questi punti nodi o punti di appoggio. A ciascun Come si pu notare, abbiamo cambiato la
numerazione dei nodi (non pi da x0 a xn
nodo associato il valore yi da interpolare. In questo modo abbiamo
ma da x1 a xm ) per evitare confusioni con
m nodi in [ a, b] e possiamo considerare gli m 1 sottointervalli dati quanto detto prima sullinterpolazione polino-
da [ x1 , x2 ], [ x2 , x3 ], . . . fino ad arrivare a [ xm1 , xm ] (da cui il generico miale. Inoltre i nodi sono ordinati in modo
crescente, ordine non necessario quando si
sottointervallo dato da [ xi , xi+1 ] con i = 1, 2, . . . , m 1). Su ciascun fa linterpolazione polinomiale.
sottointervallo andremo a costruire un polinomio di interpolazione
di grado basso (considereremo n = 1 e n = 3), che chiamamo si ( x ).
La funzione di interpolazione globale sar una curva v( x ) continua
(in alcuni casi anche di classe C1 o C2 ) che soddisfa la relazione
v ( x ) = s i ( x ), xi x xi+1 , i = 1, 2, . . . , m 1.
Ci sono diversi tipi di interpolazione polinomiale a tratti. Noi
ne consideriamo solamente due: linterpolazione lineare a tratti e le
spline cubiche.

6.5.1 Interpolazione lineare a tratti

Il caso pi semplice da considerare prendere, su ciascun sottointer-


vallo [ xi , xi+1 ] un polinomio di interpolazione lineare (grado n = 1),
quindi una retta. Allora la funzione v( x ) sar continua (ma non avr
le derivate continue) in tutto lintervallo.
Nellintervallo [ xi , xi+1 ], il polinomio di interpolazione si ( x ) si
pu costruire facilmente applicando, ad esempio, la formula delle
differenze divise di Newton, da cui si ( x ) = yi + f [ xi , xi+1 ]( x xi ).
Globalmente avremo v( x ) tale che
v( x ) = si ( x ) = yi + f [ xi , xi+1 ]( x xi ), x i x x i +1 , i = 1, 2, . . . , m 1.
Un esempio di interpolazione lineare a tratti si ha in Figura 6.10.
Il grande vantaggio di usare questo tipo di interpolazione la sua
semplicit e facilit. Tuttavia spesso questo tipo di interpolazione
non sufficiente perch non abbastanza regolare (c discontinuit
nelle derivate ai punti di appoggio) e in molte applicazioni, invece,
serve che ci sia continuit anche nelle derivate. Per avere maggiore
continuit (vogliamo ad esempio che la funzione di interpolazione
v( x ) sia di classe C1 o C2 ), si deve aumentare il grado del polinomio
si ( x ) su ciascun sottointervallo. La scelta pi diffusa quella di usare
polinomi cubici. Tra i polinomi cubici c linterpolazione cubica di
Hermite a tratti (che non descriviamo) e linterpolazione spline cubica
(che vedremo pi nei dettagli).
appunti di calcolo numerico 93

Figura 6.10: Esempio di interpolazione


lineare a tratti

6.5.2 Interpolazione spline cubica

Su ciascun sottointervallo, consideriamo un polinomio di terzo grado


(n = 3), da cui la funzione globale v( x ) sar:

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

Quindi su ciascun sottointervallo abbiamo un polinomio cubico, che


dipende da quattro coefficienti (ai , bi , ci , di ). Per ora, questi coefficienti
sono incogniti, e poich abbiamo 4 incognite su m 1 sottointervalli,
abbiamo un totale di 4(m 1) incognite. Come determinare queste
incognite? Imponendo non solo le condizioni di interpolazione (ricor-
diamo che noi abbiamo non solo le ascisse xi ma anche le ordinate yi
e la condizione di interpolazione si legge come v( xi ) = yi ), ma anche
la continuit della derivata prima e della derivata seconda nei punti
di raccordo tra un sottointervallo e il successivo. Abbiamo quindi le
seguenti condizioni da imporre:

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

Figura 6.11: Esempio di interpolazione spline


cubica

rispettivamente: poich la derivata terza una costante (stiamo lavo-


rando con polinomi cubici), questa condizione fa s che s1 = s2 e che
sm2 = sm1 e, in questo modo, il primo e lultimo nodo non sono
attivi.
Nel seguito, tratteremo solamente il caso delle spline cubiche
naturali, per la loro semplicit di implementazione.

Costruzione della spline cubica naturale. Passiamo ora a capire come si


ricavano i coefficienti incogniti, ponendo hi = xi+1 xi , i = 1, . . . , m
1: hi rappresenta lampiezza del sottointervallo i-simo [ xi , xi+1 ].
Dalla relazione di interpolazione si ( xi ) = yi si ricava facilmente

ai = yi , i = 1, 2, . . . , m 1

Dallaltra relazione di interpolazione si ( xi+1 ) = yi+1 si ricava

ai + bi hi + ci h2i + di h3i = yi+1

cio (sostituendo il valore per ai ):

yi + bi hi + ci h2i + di h3i = yi+1 , i = 1, 2, . . . , m 1 (6.1)

Useremo lequazione (6.1) successivamente.


Per usare le altre relazioni, scriviamo la derivata prima e seconda
di si . Si ha, per i = 1, 2, . . . , m 1 Osserviamo che, dalla relazione si00 ( xi ) =
2ci si ricava il significato geometrico dei
si0 ( x ) = bi + 2ci ( x xi ) + 3di ( x xi )2 s00 ( xi )
coefficienti ci = i .
2
si00 ( x ) = 2ci + 6di ( x xi )

A questo punto, dalla relazione si0 ( xi+1 ) = si0+1 ( xi+1 ), i = 1, 2, . . . , m


2 ricaviamo (osserviamo che a destra dobbiamo valutare si0+1 ( xi+1 ):

bi + 2ci hi + 3di h2i = bi+1 , i = 1, 2, . . . , m 2 (6.2)

Dalla relazione si00 ( xi+1 ) = si00+1 ( xi+1 ), i = 1, 2, . . . , m 2 ricaviamo

2ci + 6di hi = 2ci+1 , i = 1, 2, . . . , m 2


che si semplifica in
ci + 3di hi = ci+1 , i = 1, 2, . . . , m 2
appunti di calcolo numerico 95

Da questultima otteniamo

c i +1 c i
di = , i = 1, 2, . . . , m 2 (6.3)
3hi

Adesso i coefficienti di sono in funzione dei coefficienti ci . Sostituiamo


il valore di di appena ricavato nellequazione (6.1) e ricaviamo bi in
funzione dei coefficienti ci . abbiamo
Dividiamo tutto per hi e per compattare i
yi + bi hi + ci h2i + di h3i = yi+1 termini utilizziamo le differenze divise dove
servono.
c ci 3
bi hi + ci h2i + ( i+1 ) h i = y i +1 y i
3hi
c ci
bi + c i h i + ( i + 1 ) h i = f [ x i , x i +1 ]
3

Otteniamo, per bi , la relazione

(2ci + ci+1 )hi


bi = f [ x i , x i + 1 ] , i = 1, . . . , m 1 (6.4)
3

Sostituiamo ora i valori per bi e per di nellequazione (6.2):


bi + 2ci hi + 3di h2i = bi+1 , i = 1, 2, . . . , m 2

(2ci + ci+1 )hi c ci 2 (2ci+1 + ci+2 )hi+1


f [ x i , x i +1 ] + 2ci hi + 3 i+1 h i = f [ x i +1 , x i +2 ]
3 3hi 3

Raccogliamo i termini in hi a sinistra.


(c + 2ci+1 )hi (2ci+1 + ci+2 )hi+1
f [ x i , x i +1 ] + i = f [ x i +1 , x i +2 ]
3 3
Moltiplichiamo ambo i membri per 3 e
portiamo le differenze divise a destra.

ci hi + 2ci+1 (hi + hi+1 ) + ci+2 hi+1 = 3( f [ xi+1 , xi+2 ] f [ xi , xi+1 ]) (6.5)

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

2c2 (h1 + h2 ) + c3 h2 =3( f [ x2 , x3 ] f [ x1 , x2 ]), (6.6)


cm2 hm2 + 2cm1 (hm2 + hm1 ) =3( f [ xm1 , xm ] f [ xm2 , xm1 ]),
(6.7)
96 annamaria mazzia

Perci il sistema da risolvere per trovare i coefficienti c2 , c3 , . . . , cm1 ,


mettendo insieme le equazioni (6.5), (6.6),(6.7), dato da Ac = dove



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 ])

Una volta ricavati i coefficienti ci , usando le equazioni (6.3) e (6.4),


per i = 1, . . . , m 1, si trovano tutti i coefficienti delle cubiche si .

Ricapitolando, per trovare i coefficienti delle spline cubiche


naturali si deve:

1. risolvere il sistema Ac = che, risolto, fornisce i coefficienti


c2 , c3 , . . . , cm1 delle spline;

2. aggiungere al vettore c, i valori c1 = cm = 0

3. applicare, per i = 1, . . . , m 1 le relazioni

ai = yi
(2ci + ci+1 )hi
bi = f [ x i , x i + 1 ]
3
c i +1 c i
di =
3hi

6.5.3 Curve parametriche

Supponiamo di avere un insieme di punti in cui le ascisse possono


ripetersi e in cui si vuole che i punti vengano messi insieme per
formare una particolare curva.
In Figura 6.12 vediamo un esempio di punti e di curva che vo-
gliamo ottenere: in questo caso andiamo a unire i punti nellordine
considerato mediante segmenti di retta. Figura 6.12: Esempio di curva parametrica.
Questa curva, tuttavia, non pu essere espressa come funzione di x
o di y perch non una funzione (ad ogni valore di x non corrispon-
de un solo valore sullasse delle ordinate, come deve accadere per
funzioni del tipo y = f ( x )). Ci troviamo di fronte ad un esempio di
curva. Possiamo pensare alla curva come il percorso di una particella
che si muove in funzione del tempo t e, di conseguenza, le coordinate
appunti di calcolo numerico 97

della particella sono funzioni di t ( x = x (t), y = y(t)). Abbiamo le


cosiddette equazioni parametriche di una curva.
Per poter costruire la curva di interpolazione, come nellesempio
proposto, dobbiamo, quindi, parametrizzare le coordinate ( xi , yi ),
i = 1, 2, . . . , m.
Dobbiamo cercare, quindi dei valori t1 , t2 , . . . tm tali che xi il
risultato di una certa funzione x al tempo ti mentre yi il risultato di
una certa funzione y allo stesso tempo ti . Dobbiamo dunque avere
una rappresentazione del tipo:

( t1 , x1 ), ( t2 , x2 ) . . . ( t m , x m )
( t1 , y1 ), ( t2 , y2 ) . . . ( t m , y m )

In tal caso, possiamo approssimare la curva x mediante le condizioni


di interpolazione x (ti ) = xi mentre la curva y dovr verificare y(ti ) =
yi .
Se abbiamo m punti a disposizione, possiamo fissare i valori ti
i
come ti = i, per i = 1, 2, . . . , m (si pu anche scegliere ti = ): Figura 6.13: Esempio di curva parametri-
m
limportante avere dei valori crescenti per la variabile t. ca con interpolazione spline cubica a tratti
(stessi nodi della figura 6.12).
La curva in forma parametrica dunque espressa da ( x (t), y(t)).
Per costruire x (t) e y(t) usiamo le tecniche di interpolazione a tratti
(per esempio di interpolazione lineare a tratti o di spline cubiche a
tratti) in modo da ottenere il risultato finale. In figura 6.13 vediamo
un esempio di interpolazione lineare a tratti con gli stessi nodi usati
per ottenere la curva di figura 6.12.

6.6 Esercizi

Esercizio 6.6.1 Sia data la tabella seguente:

xi -1 0 2 3 4
f ( xi ) 9 0 0 15 84

(a) Scrivere la tabella delle differenze divise.

(b) Trovare il polinomio interpolatore (con la formula di Newton) di


grado non superiore a 4.

Svolgimento

(a) La tabella delle differenza divise :

(b) Il polinomio di Newton di grado 4 che interpola i dati assegnati


dunque (prendendo i valori della diagonale principale della tabella)

p( x ) = 9 9( x + 1) + 3( x + 1) x + 0.5( x + 1) x ( x 2) + ( x + 1) x ( x 2)( x 3) =
= x4 3.5x3 + 3.5x2 x
98 annamaria mazzia

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)

Esercizio 6.6.2 Sia data la tabella seguente:

xi 0 0.1 0.8 1.2


f ( xi ) 1 0.48 1.32 5.32

(a) Scrivere la tabella delle differenze divise.

(b) Usando i quattro punti in successione, scrivere i polinomi interpo-


lanti (di Newton) pn ( x ) di grado non superiore ad n (con n=0,1,2,3);
commentare il risultato.

(c) Usando pn ( x ) stimare, per ogni n, f (0.6) e f 0 (0.6).

(d) scrivere il polinomio p2 ( x ) con la formula di Lagrange.

Svolgimento

(a) La tabella delle differenza divise :

xi f ( xi ) f (, ) f (, , ) f (, , , )
0 1
0.48 1
0.1 0.48 = 5.2
0.1

1.32 0.48 1.2 + 5.2


0.8 1.32 = 1.2 =8
0.7 0.8

5.32 1.32 10 1.2 88


1.2 5.32 = 10 =8 =0
0.4 1.1 1.2
appunti di calcolo numerico 99

(b) I polinomi di Newton di grado 0,1,2 e 3 sono:

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 )

Il polinomio p3 ( x ) coincide con p2 ( x ) in quanto p2 ( x3 ) = p2 (1.2) =


f (1.2) = f ( x3 ) cio il polinomio di grado 2 interpola non solo i
dati ( x0 , f ( x0 )), ( x1 , f ( x1 )) e ( x2 , f ( x2 )) ma anche ( x3 , f ( x3 )).

(c) Per le derivate di pn ( x ), n = 0,1,2 si ha

p00 ( x ) = 0
p10 ( x ) = 5.2
p20 ( x ) = 16x 6

La stima di f (0.6) e f 0 (0.6) :

n pn (0.6) p0n (0.6)


0 1 0
1 -2.12 -5.2
2 0.28 3.6

(d) I polimoni di Lagrange per ricavare il polinomio p2 sono dati


considerando i valori x0 , x1 e x2 :

( x 0.1)( x 0.8) x2 0.9x + 0.08


L0 ( x ) = =
(0.1)(0.8) 0.08
x ( x 0.8) 2
x 0.8x
L1 ( x ) = =
0.1(0.1 0.8) 0.07
x ( x 0.1) 2
x 0.1x
L2 ( x ) = =
0.8(0.8 0.1) 0.56

Il polinomio :

p2 ( x ) = 1L0 ( x ) + 0.48L1 ( x ) + 1.32L2 ( x )


x2 0.9x + 0.08 x2 0.8x x2 0.1x
= 0.48 + 1.32
0.08 0.07 0.56
= 12.5( x2 0.9x + 0.08) 6.857142857( x2 0.8x ) + 2.357142857( x2 0.1x )

e raccogliendo i termini

p2 ( x ) = 8x2 6x + 1

Esercizio 6.6.3 Trovare il polinomio di grado non superiore a 4 che


interpola i dati seguenti: f (0) = 2, f 0 (0) = 7, f 00 (0) =
18, f (1) = 27 f 0 (1) = 60. Stimare f (0.2) e f 0 (0.2).
100 annamaria mazzia

Svolgimento
Costruiamo la tabella delle differenze divise tenendo presente che
le derivate di una funzione f si possono avere come limite delle
differenze divise:

f 00 (0)
f [0, 0] = f 0 (0) = 7 f [0, 0, 0] = =9 f [1, 1] = f 0 (1) = 60
2!

Tenendo conto di queste relazioni tra differenze divise e derivate,


nella tabella delle differenze divise, dobbiamo ripetere per tre volte
lascissa 0 e due volte lascissa 1. Si ottiene:

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

Il polinomio dunque p( x ) = 2 + 7x + 9x2 + 9x3 + 8x3 ( x 1), vale


a dire

p( x ) = 8x4 + x3 + 9x2 + 7x + 2.

La stima di f (0.2) data da: f (0.2) p(0.2) = 3.7808.


Per stimare f 0 (0.2) dobbiamo prima calcolare la derivata prima di
p. Si ha

p0 ( x ) = 32x3 + 3x2 + 18x + 7,

da cui f 0 (0.2) p0 (0.2) = 12.056.

Esercizio 6.6.4 Sia data la tabella seguente di dati sperimentali

xi 0.4 1 2.8 3.8


f ( xi ) 17.62 23.5 92.98 165.18

(a) Costruire la tabella delle differenze divise.

(b) Usando i quattro punti in successione, scrivere i polinomi di in-


terpolazione di Newton pn di grado n = 0, 1, 2, 3. Commentare il
risultato.

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

92.98 23.5 38.6 9.8


2.8 92.98 = 38.6 = 12
2.8 1 2.8 0.4

165.18 92.98 72.2 38.6 12 12


3.8 165.18 = 72.2 = 12 =0
3.8 2.8 3.8 1 3.8 0.4

I polinomi da costruire sono

G p0 ( x ) = 17.62

G p1 ( x ) = p0 ( x ) + 9.8( x 0.4) = 17.62 + 9.8( x 0.4) = 9.8x + 13.7

G p2 ( x ) = p1 ( x ) + 12( x 0.4)( x 1) = .... = 12x2 7x + 18.5

G p3 ( x ) = p2 ( x ) + 0( x 0.4)( x 1)( x 2.8) = p2 ( x )

Il polinomio p3 coincide con il polinomio p2 perch il punto (3.8, 165.18)


appartiene gi al polinomio p2 .

6.7 Domande di riepilogo

1. Date n + 1 coppie di punti da interpolare, di che grado il


polinomio di interpolazione?

2. Se si cerca di ricavare i coefficienti del polinomio di interpolazione


scritto come p( x ) = a0 + a1 x + a2 x2 + . . . + an x n , utlizzando come
funzioni base i monomi 1, x, . . ., x n , si deve risolvere un sistema
lineare in cui la matrice dei coefficienti ha un nome ben preciso.
Come si chiama questa matrice e quali caratteristiche ha?

3. Come si definiscono i polinomi di Lagrange? Dati n + 1 nodi


x0 , x1 , . . . , xn , quanti polinomi di Lagrange possiamo costruire?
Che caratteristica ha ciascun polinomio di Lagrange? Provare a
fare il grafico di questi polinomi per n = 3 e per n = 4.

4. I polinomi di Lagrange sono utilizzati per costruire il polinomio di


interpolazione. Che forma assume il polinomio di interpolazione
utilizzando i polinomi di Lagrange?

5. Data una funzione f e date le coppie di punti ( xi , f ( xi )), i =


0, 1, . . . , n, si pu costruire il polinomio che interpola queste n + 1
coppie di punti. Preso un generico punto x compreso nellinter-
vallo individuato dalle ascisse di interpolazione, qual la formula
dellerrore che si commette sostituendo a f ( x ) il valore del polino-
mio valutato in x? Quali sono le ipotesi che devono valere perch
valga questa formula dellerrore?
102 annamaria mazzia

6. Spiegare come si costruisce la tabella delle differenze divise di


Newton e a cosa serve.

7. Quali sono i vantaggi dellapproccio delle differenze divise nel


costruire il polinomio di interpolazione?

8. Che relazione c tra differenze divise e derivate di una funzione?

9. Lapproccio delle differenze divise di Newton serve anche se si


vogliono interpolare non sono i valori di una certa funzione f ma
anche valori delle sue derivate. Spiegare con un esempio come si
deve procedere e per quale motivo.

10. Spiegare il fenomeno di Runge nellinterpolazione polinomiale.

11. Ci possono essere casi in cui la matrice di Vandermonde molto


malcondizionata. In questo caso, tutti gli approcci per arrivare allo
stesso polinomio di interpolazione vanno bene o no? E perch?

12. Che differenza c tra interpolazione polinomiale e interpolazione


polinomiale a tratti?

13. Spiegare come si arriva a costruire la funzione di interpolazione


lineare a tratti.

14. Spiegare cosa una spline e quali sono le condizioni che vanno
imposte per ottenere i coefficienti delle spline.

15. Quanti tipi di spline abbiamo?

16. Come si pu ottenere una curva parametrica?


7 Approssimazione

I numeri governano il mondo.


7.1 Perch approssimare dati? Platone

La legge di Hooke stabilisce che lallungamento subito da una


molla, costruita con materiale uniforme, direttamente proporzionale
alla forza applicata: F ( x ) = kx dove k la costante di proporzionalit,
detta costante elastica, e x rappresenta lallungamento della molla.
Supponiamo di voler determinare k per una molla che, quando a
riposo, esercita una forza di 1.4724811N. Se applichiamo una forza
pari a 2.418165N si misura un allungamento pari a 0.042m. Siano
effettuate diverse misure, ricavando i dati mostrati in Tabella.

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

I dati raccolti non giacciono esattamente su una linea retta.


Per approssimare la costante elastica k, potremmo prendere una
qualunque coppia di dati e fare il rapporto tra la forza e lallunga-
mento. In questo modo, tuttavia, non terremmo conto di tutte le
Figura 7.1: Legge di Hooke: i dati
misure effettuate. pi ragionevole trovare la linea retta che meglio sperimentali
approssima tutti i dati sperimentali e utilizzarla per approssimare
il valore di k. Questo tipo di approssimazione sar largomento di
questo Capitolo.
A differenza dellinterpolazione, in cui si cerca una funzione che
passi esattamente per i dati assegnati, nellapprossimazione si cerca
una funzione (pi semplice di quella data, se vi una funzione di
partenza) che approssimi al meglio i dati assegnati, senza passare
esattamente per questi.
Alcuni dei motivi che spingono a cercare una funzione di approssi-
mazione piuttosto che di interpolazione sono questi: Se si hanno a disposizione n = 100 da-

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.

Nel seguito studieremo lapprossimazione ai minimi quadrati.


104 annamaria mazzia

7.2 Retta di regressione lineare


Si presti sempre attenzione alla numerazione
dei dati: le coppie dei dati, nellesempio, sono
10. Se partiamo a numerare i dati dallindice
Supponiamo di avere i 10 dati sperimentali della Tabella 7.2 ( abbiamo 0, il valore finale dellindice sar n = 9, in
quindi le coppie di dati ( xi , yi ) con i = 0, . . . , n, dove n = 9). modo che n + 1 = 10.

xi 1 2 3 4 5 6 7 8 9 10 Tabella 7.2: Dati sperimentali

yi 1.2 2.3 4.5 5.1 7 8.5 10.2 13.1 12.5 16.5

La Figura 7.2 (a sinistra) mostra il grafico delle coppie di punti:


appare evidente che la relazione tra x e y di tipo lineare. Il motivo
per cui i dati non sono esattamente su una retta dovuto ad errori
nei dati. Non ha senso, quindi, cercare una funzione che passi esatta-
mente per i dati assegnati (come accade nellinterpolazione), perch
una funzione del genere introdurrebbe oscillazioni prive di significato
fisico: lo vediamo andando a costruire il polinomio di interpolazione
di grado 9 che passa esattamente per i dati e che vediamo in Figura 7.2
(a destra).

Figura 7.2: Dati sperimentali (a sinistra) della


Tabella 7.2 e polinomio di interpolazione (a
destra).

Cerchiamo allora una retta (funzione lineare, poich abbiamo visto


che i dati hanno una relazione di tipo lineare) che meglio approssima
i dati senza dover passare esattamente per essi. Sia p1 ( x ) = a0 + a1 x
la retta che andiamo cercando (dobbiamo quindi capire come trovare
i due coefficienti a0 e a1 ). Allora p1 ( xi ) = a0 + a1 xi , per i = 0, 1, . . . , n
rappresenta il valore sulla retta che deve approssimare il valore yi dato
dal problema. Per ogni dato sperimentale, per i = 0, 1, . . . , n, possia-
mo misurare lo scarto che scaturisce dallapprossimare yi mediante In questo caso, lo scarto sul dato i-simo rap-
presenta la differenza tra il valore dato yi e il
a0 + a1 xi . Nellapproccio ai minimi quadrati, si cerca di minimizzare
valore approssimato dal polinomio, a0 + a1 xi ,
la somma dei quadrati degli scarti, cio la somma dei quadrati delle vale a dire yi ( a0 + a1 xi ).
differenze tra i valori assegnati yi e i valori corrispondenti p1 ( xi ) sulla
retta. Introduciamo, quindi la funzione che dipende dai coefficienti
incogniti a0 e a1 . Per funzioni f ( x ) di una variabile reale, i pun-
ti di massimo o minimo si trovano tra i punti
critici della f , per i quali f 0 ( x ) = 0, studian-
n
do il segno della f 00 . Analogo procedimento
S ( a0 , a1 ) = [(a0 + a1 xi ) yi ]2 si segue per funzioni di due variabili. Per la
i =0
funzione S( a0 , a1 ) che stiamo studiando, si
pu provare che i valori ( a0 , a1 ) che annulla-
Per minimizzare questa funzione, occorre porre le derivate parziali no le derivate parziali della S rappresentano
i valori che minimizzano la S stessa. Que-
della S rispetto ad a0 e a1 uguali a zero. Si pone dunque sto argomento viene approfondito nei corsi di
Analisi Matematica.
appunti di calcolo numerico 105

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.

Introducendo la notazione A12 = in=0 xi , A22 = in=0 xi2 , b1 =


in=0 yi e b2 = in=0 xi yi e osservando che la matrice del sistema
simmetrica (A12 = A21 ), la soluzione data da:

A22 b1 A12 b2 (n + 1)b2 A12 b1


a0 = a1 =
(n + 1) A22 A212 (n + 1) A22 A212

Nellesempio proposto, per calcolare la retta di approssimazione xi yi xi2 xi yi


1 1.2 1 1.2
ai minimi quadrati, dobbiamo calcolare i coefficienti delle equazioni 2 2.3 4 4.6
normali. In Tabella 7.3 poniamo i valori che servono per risolvere il 3 4.5 9 13.5
sistema: la soluzione a0 = 0.87333333 e a1 = 1.62969697. La retta 4 5.1 16 20.4
5 7 25 35
rappresentata in Figura 7.3. 6 8.5 36 51
La retta che abbiamo appena costruito la retta che minimizza gli 7 10.2 49 71.4
8 13.1 64 104.8
scarti verticali, supponendo affetti da errore le ordinate delle coppie di 9 12.5 81 112.5
punti a disposizione. Essa prende pure il nome di retta di regressione 10 16.5 100 165
lineare sugli scarti verticali. A12 = 55 b1 = 80.9 A22 = 385 b2 = 579.4
Tabella 7.3: Tabella per il calcolo della retta
Osserviamo che il baricentro dei punti assegnati giace sulla retta di approssimazione ai minimi quadrati
ai minimi quadrati, in quanto considerando la prima equazione del
sistema si ha, per X = in=0 xi /(n + 1) e Y = in=0 yi /(n + 1) (le
coordinate del baricentro dei punti assegnati):

a0 + a1 X = Y

Se invece sono affetti da errore le ascisse delle coppie di punti, si


pu cercare la retta che minimizza gli scarti orizzontali, detta anche
retta di regressione lineare sugli scarti orizzontali, (basta scambiare
Figura 7.3: Retta di approssimazione sugli
il ruolo delle x con quello delle y per ricavare, con lo stesso proce- scarti verticali.
dimento, la retta p1 (y) = b0 + b1 y). Il baricentro dei punti assegnati
giace anche su questa retta, da cui possiamo concludere che esso
il punto di intersezione delle due rette che minimizzano gli scarti
verticali e orizzontali.

7.3 Approssimazione polinomiale ai minimi quadrati

In generale, avendo a disposizione n + 1 coppie di punti, il problema


di approssimazione si pu ricondurre alla ricerca di un polinomio di
approssimazione di grado m, pm ( x ) = a0 + a1 x + a2 x2 + . . . + am x m
con m < n. Quando n = m il polinomio dapprossimazione coincide
con quello dinterpolazione.
106 annamaria mazzia

La funzione da minimizzare
n h i2
S( a0 , a1 , . . . , am ) = ( a0 + a1 xi + a2 xi2 + . . . + am xim ) yi
i =0

La procedura seguita per la retta viene generalizzata. Questa volta


bisogna porre uguali a zero le m + 1 derivate parziali della S rispetto
ai coefficienti del polinomio pm .
S
=0 j = 0, 1, . . . , m
a j

Ricaviamo, quindi
n
2 ( a0 + a1 xi + . . . + am xim yi ) xi = 0
j
per j = 0, 1, . . . , m
i =0

In forma estesa possiamo scrivere


n n n n
x i + a1 x i + . . . + a m xi xi yi
j j +1 j+m j
a0 = per j = 0, 1, . . . , m
i =0 i =0 i =0 i =0

Poich queste equazioni si hanno per j = 0, 1 . . . , m, si ha da


risolvere un sistema, che, scritto in forma matriciale, :

A T Aa = A T b

dove A una matrice rettangolare (n + 1) (m + 1), data da



1 x0 x02 . . . x0m

1 x1 x12 . . . x1m

A= .. .. .. ..
. . . .

1 xn xn2 ... xnm

Le equazioni del sistema sono dette equazioni normali. Si pu


provare che la matrice Q = A T A simmetrica, definita positiva ed Le definizioni di matrice simmetrica e matrice
definita positiva sono date nel Capitolo 8.
non singolare, quindi il sistema ammette soluzione.

7.4 Approssimazioni di tipo esponenziale e potenza

Pu capitare che i dati sperimentali abbiano un andamento di tipo


esponenziale o ricordino una funzione potenza della variabile x. Allo-
ra si pu richiedere che la funzione approssimante abbia una delle
forme seguenti (a seconda della rappresentazione, si ha un diverso
modello):

y( x ) = aebx modello esponenziale


b
y( x ) = ax modello potenza

con a e b opportune costanti. Per ottenere i valori incogniti di a e b si


passa ai logaritmi, trasformando il modello di partenza nellequazione
di una retta i cui coefficienti possono essere ricavati applicando la
procedura di minimizzazione ai minimi quadrati. Da questi, si ritorna
poi ai valori a e b della funzione di partenza. Vediamo nei dettagli
come fare.
appunti di calcolo numerico 107

G Nel caso del modello esponenziale, passando ai logaritmi (in base


naturale) si ha:

ln (y) = ln ( a) + bx

Ponendo X = x, Y = ln (y), a0 = ln ( a) e a1 = b, si ha unequazione


del tipo Y = a0 + a1 X.
Quindi, dalle coppie di dati ( xi , yi ) i = 0, 1, . . . , n, si deve passare
alle coppie ( Xi = xi , Yi = ln (yi )) e su queste coppie si costruisce la
retta di approssimazione ai minimi quadrati con la procedura che
abbiamo studiato in Sezione 10.3. Una volta ricavati i coefficienti
a0 e a1 , si ha a = e a0 e b = a1 .

G Nel caso del modello potenza, passando ai logaritmi (qualunque


sia la base usata, il risultato non cambia) si ha:

log (y) = log ( a) + b log ( x )

Ponendo X = log ( x ), Y = log (y), a0 = log ( a) e a1 = b, si ha


unequazione del tipo Y = a0 + a1 X.
Quindi, dalle coppie di dati ( xi , yi ) i = 0, 1, . . . , n, si deve passare
alle coppie ( Xi = log ( xi ), Yi = log (yi )) e su queste coppie si
costruisce la retta di approssimazione ai minimi quadrati. Una
volta ricavati i coefficienti a0 e a1 , si ha b = a1 mentre, con gli
opportuni passaggi, si trova il valore di a.

7.5 Esercizi

Esercizio 7.5.1 Sia data la tabella seguente:

xi -1 0 2 3 4
f ( xi ) 9 0 0 15 84

(a) Trovare la retta ai minimi quadrati che minimizza la somma dei


quadrati degli scarti verticali.

(b) Trovare la retta ai minimi quadrati che minimizza la somma dei


quadrati degli scarti orizzontali.

(c) Calcolare il punto di intersezione delle due rette e dire di che punto
si tratta.

Svolgimento

(a) Il sistema da risolvere per ottenere la retta di approssimazione ai


minimi quadrati :

( n + 1) a + n x a = n y
0 i =0 i 1 i =0 i
n x i a0 + n x 2 a1 = n x i y i
i =0 i =0 i i =0
108 annamaria mazzia

dove n + 1 = 5. Poich 4i=0 xi = 8, 4i=0 xi2 = 30, 4i=0 yi = 108 e


4i=0 xi yi = 372, si ha il sistema

5a + 8a = 108
0 1
8a0 + 30a1 = 372

La soluzione a0 = 3.069767442, a1 = 11.581395349. La ret-


ta ai minimi quadrati che minimizza gli scarti verticali : y =
3.069767442 + 11.581395349x.

(b) Ricaviamo la retta di approssimazione che minimizza gli scarti


orizzontali.

( n + 1) b + n y b = n x
0 i =0 i 1 i =0 i
n yi b0 + n y2 b1 = n yi xi
i =0 i =0 i i =0

dove n + 1 = 5. Poich 4i=0 yi = 108, 4i=0 y2i = 7362, 4i=0 xi = 8


e 4i=0 xi yi = 372, si ha il sistema

5b + 108b = 8
0 1
108b0 + 7362b1 = 372

La soluzione b0 = 0.744452398, b1 = 0.03960868528. La retta


ai minimi quadrati che minimizza gli scarti orizzontali : x =
0.744452398 + 0.03960868528y.

(c) Troviamo il punto di intersezione delle due rette:



y = 3.069767442 + 11.581395349x
x = 0.744452398 + 0.03960868528y

Ricaviamo x = 1.6 e y = 21.6


Se calcoliamo il baricentro dei punti assegnati, troviamo

4i=0 xi 1 + 2 + 3 + 4 4i=0 yi 9 + 15 + 84
X= = = 1.6 Y= = ) = 21.6
5 5 5 5

Il punto di intersezione delle due rette il baricentro dei punti


assegnati.

Esercizio 7.5.2 Sono assegnati i seguenti dati sperimentali


xi 4.0 4.2 4.5 4.7 5.1 5.5 5.9 6.3 6.8 7.1
yi 102.56 113.18 131.2 142 168 196.2 225 256.8 299.51 325.6
Costruire la curva di approssimazione ai minimi quadrati della forma ax b .

Svolgimento
Per trovare la curva di approssimazione del tipo y = ax b , dobbiamo
prima passare ai logaritmi:

log(y) = log( ax b ) = log( a) + b log( x )


appunti di calcolo numerico 109

In questo modo ci riconduciamo ad una retta di approssimazione ai


minimi quadrati sui logaritmi dei punti assegnati. Consideriamo il
logaritmo naturale (ma i risultati non cambiano con i logaritmi in
unaltra base).
I dati su cui lavorare sono dunque:
log( xi ) log(yi )
1.386294361 4.630447993
1.435084525 4.728979472
1.504077397 4.876722876
1.547562509 4.955827058
3.931825633 5.123963980
1.704748092 5.279134547
1.774952351 5.416100402
1.840549633 5.548297572
1.916922612 5.702147806
1.960094784 5.785669634
Calcoliamo la retta di approssimazione ai minimi quadrati, ponen-
do Xi = log( xi ) e Yi = log(yi ). Il sistema da risolvere

( n + 1) a + n X a = n Y
0 i =0 i 1 i =0 i
n Xi a0 + n X 2 a1 = n Xi Yi
i =0 i =0 i i =0

dove n + 1 = 10.
Si ha in=0 Xi = 16.6995268, in=0 Xi2 = 28.2537116, in=0 Yi =
52.0472913, in=0 Xi Yi = 87.6541085
Il sistema da risolvere diventa

10a + 16.6995268a = 52.0472913
0 1
16.6995268a0 + 28.2537116a1 = 87.6541085

che ha come soluzione a0 = 1.84197978 e a1 = 2.013679425.


Ora a0 = log( a) da cui a = e a0 = 6.30901637 Invece a1 = b. Il
modello y = ax b diventa quindi y = 6.30901637x2.013679425 .

Esercizio 7.5.3 Sia data la tabella seguente di dati sperimentali

xi 0.2 1 2.4 3.4


f ( xi ) 15.02 15.5 40.98 78.38

Trovare la curva di approssimazione ai minimi quadrati y = cx d che


minimizza gli scarti verticali.

Svolgimento
Per la curva di approssimazione y = cx d si passa ai logaritmi, in
modo da ricondursi allequazione della retta log y = log c + d log x.
Si pone poi Y = log y e X = log x; a0 = log c e a1 = d.
Considerando i logaritmi naturali si ha

Xi = [1.609437912434 0.0 0.8754687373539 1.223775431622]


110 annamaria mazzia

Yi = [2.70938264633 2.7408400239 3.7130841428 4.36156879277]


Il sistema da risolvere

4a + 0.48980625654a = 13.52487560584
0 1
0.48980625654a0 + 4.854362211106a1 = 4.22768666781

Risolvendo si trova a0 = 3.3155400568494 da cui c = 27.537261656285


e a1 = d = 0.53636590986. La curva y = 27.537261656285x0.53636590986 .

7.6 Domande di riepilogo

1. Che differenza si ha tra interpolazione e approssimazione di dati?

2. Se si vogliono approssimare n + 1 coppie di dati attraverso una


retta di approssimazione che minimizza gli scarti verticali, va
minimizzata una certa funzione S. Qual questa funzione e come
viene costruita?

3. Quali sono le derivate parziali di questa funzione S e per quale


motivo vengono poste uguali a zero?

4. Qual il sistema di equazioni da risolvere per ricavare i coefficienti


della retta di approssimazione che minimizza gli scarti verticali?

5. Qual il sistema di equazioni da risolvere per ricavare i coefficienti


della retta di approssimazione che minimizza gli scarti orizzontali?

6. Che propriet possiede il baricentro delle coppie di punti che


vengono approssimati tramite una retta di approssimazione?

7. Che procedimento va fatto per ricondursi al caso della retta di


approssimazione se si vogliono approssimare i dati attraverso un
modello esponenziale del tipo y = ae xb ?

8. Che procedimento va fatto per ricondursi al caso della retta di


approssimazione se si vogliono approssimare i dati attraverso un
modello potenza del tipo y = ax b ?

9. Che procedimento va fatto per ricondursi al caso della retta di


approssimazione se si vogliono approssimare i dati attraverso un
modello del tipo y = a + bx m , con m intero maggiore o uguale a 2?
8 Metodi diretti per la soluzio-
ne di sistemi lineari

Allinizio e alla fine abbiamo il mistero. Po-


8.1 Un esempio di sistema lineare tremmo dire che abbiamo il disegno di Dio.
A questo mistero la matematica si avvicina,
senza penetrarlo.
Ennio De Giorgi

Si consideri la capacit C di un conduttore. Dallelettrostatica, sap-


piamo che vale q = C dove q rappresenta la carica del conduttore e
il suo potenziale elettrostatico, quando il conduttore isolato. Nel
caso in cui il conduttore non sia isolato, la situazione cambia. Sup-
poniamo di avere 4 conduttori in equilibrio elettrostatico allinterno
di una cavit collegata a terra (a terra il potenziale elettrostatico vale
zero). Supponendo di collegare i conduttori 2, 3 e 4 a terra, si ha
2 = 3 = 4 = 0 e 1 6= 0. Il conduttore 1 induce carica sugli altri
conduttori, per cui, per ciascun conduttore vale, rispettivamente:

q1 = C11 1
q2 = C21 1
q3 = C31 1
q4 = C41 1

Si ripete lo stesso discorso supponendo 2 6= 0 e tutti gli altri poten-


ziali nulli. Poi sia 3 6= 0 e gli altri potenziali nulli. Infine 4 6= 0 e
tutti gli altri nulli.
La sovrapposizione dei 4 stati considerati corrisponde alla situazio-
ne in cui 1 , 2 , 3 , 4 sono tutti diversi da zero. Si ha perci:
q1 = C11 1 + C12 2 + C13 3 + C14 4
q2 = C21 1 + C22 2 + C23 3 + C24 4
q3 = C31 1 + C32 2 + C33 3 + C34 4
q4 = C41 1 + C42 2 + C43 3 + C44 4

I coefficienti Cii si chiamano coefficienti di capacit, mentre i coeffi-


cienti Cij , con j 6= i si chiamano coefficienti di induzione.
Si pu presentare il problema inverso: note le cariche qi , si vuole
determinare il valore dei i . Si deve quindi risolvere un sistema
lineare di 4 equazioni in 4 incognite.
112 annamaria mazzia

In questo Capitolo studieremo metodi diretti per la soluzione di


sistemi lineari del tipo

a11 x1 + a12 x2 + . . . + a1n xn

= b1

a21 x1 + a22 x2 + . . . + a2n xn

= b2


a31 x1 + a32 x2 + . . . + a3n xn = b3 (8.1)
.. .
= ..




.


an1 x1 + an2 x2 + . . . + ann xn = bn

dove aij , per i, j = 1, 2, . . . , n e bi , per i = 1, 2, . . . , n sono assegnati


e le incognite da determinare sono x1 , x2 , . . . , xn . I metodi diretti
sono metodi che risolvono il problema in un numero fissato di passi,
introducendo un errore dovuto solo allarrotondamento.

8.2 Elementi di Algebra Lineare

Sia dato un sistema lineare come in (8.1). Per poterlo semplificare,


possiamo eseguire le seguenti operazioni (trasformazioni elementari):

G Li-sima equazione del sistema pu essere moltiplicata per una


qualunque costante 6= 0 e lequazione risultante pu essere usata
al posto di quella di partenza: la soluzione del sistema non cambia.

G Lequazione j-sima, moltiplicata per una qualunque costante


6= 0 e sommata allequazione i-sima, pu essere usata al posto
dellequazione i-sima di partenza: la soluzione del sistema non
cambia.

G Le equazioni i-sima e j-sima possono essere scambiate: la solu-


zione del sistema non cambia.

In questa maniera, un sistema lineare pu essere trasformato in uno


di pi facile soluzione, come vedremo nellalgoritmo di eliminazione
di Gauss. Poich le operazioni da fare coinvolgono i
coefficienti aij e bi , conviene scrivere il siste-
Definizione 8.2.1 Si definisce matrice n m una griglia rettangolare (o ma di equazioni lineari utilizzando una forma
compatta mediante matrici e vettori.
array) di elementi disposti su n righe e m colonne.

Generalmente, una matrice si denota con una lettera maiuscola,


per esempio A, mentre i suoi valori si indicano con la corrispondente
lettera minuscola e i pedici che si riferiscono alla riga e colonna in cui
si trova quel valore, per esempio aij si riferisce allelemento di riga i e
colonna j della matrice A.


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.

I vettori si possono vedere come un caso particolare delle matrici.


Si parla di vettore riga se ci riferiamo a una matrice 1 n e si parla di
vettore colonna se ci si riferisce a una matrice n 1.
Per indicare un vettore colonna e un vettore riga si usa, rispettiva-
mente, la notazione

x1
x
2  
x3

x= x = x 1 x 2 x 3 . . . x n
..

.
xn

Vediamo, nel seguito, alcune importanti definizioni e propriet


delle matrici.

G Due matrici A e B, di dimensione n m, sono uguali se hanno lo


stesso numero di righe e di colonne, e, inoltre, vale, aij = bij per
i, = 1, 2, . . . , n e j = 1, 2, . . . , m.

G Date due matrici A e B, entrambe n m, si definisce la matrice


somma di A e B la matrice n m A + B i cui elementi sono dati
da aij + bij , per i, = 1, 2, . . . , n e j = 1, 2, . . . , m.

G Se A una matrice n m e un numero reale, la moltiplicazione


scalare di per A, denotata con A, una matrice n m i cui
elementi sono aij per i, = 1, 2, . . . , n e j = 1, 2, . . . , m.

G Indichiamo con O la matrice cosiddetta nulla, i cui elementi sono


tutti uguali a zero.

G Data la matrice A, n m, indichiamo con A la matrice i cui


elementi sono aij .

Teorema 8.2.1 Date A, B e C tre matrici n m, e e due numeri reali,


valgono le seguenti propriet:

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 Date due matrici A di dimensione n m e B di dimensione m p,


la matrice prodotto di A e B, denotata con C = AB, una matrice
i cui elementi cij sono dati da:
m
cij = aik bkj = ai1 b1j + ai2 b2j + . . . + aim bmj
k =1
per i = 1, 2, . . . , n e j = 1, 2, . . . , p.

G Data una matrice A di dimensione n e un vettore colonna x di


lunghezza n, si definisce il vettore y = Ax prodotto della matrice
A per il vettore x, il vettore le cui componenti sono date da
n
yi = aij x j per i = 2, . . . , n
j =1

G Dati due vettori x e y si definisce prodotto scalare x T y = in=1 xi yi


.

G In generale, AB 6= BA.

G Una matrice D si dice diagonale se quadrata con dij = 0 per Esempio:

i 6= j. Gli elementi diversi da zero si trovano quindi sulla diagonale



1 0 0 0
0 2 0 0
(detta diagonale principale) che si pu tracciare partendo dallele- D=
0

0 5 0
mento in alto a sinistra (di posto 11) e arrivando allelemento in 0 0 0 1
basso a destra (di posto nn). Esempio:

G Si chiama matrice identit e si indica con I, una matrice diagonale


0
1

0
1
0
0
0
0

i cui elementi diagonali valgono 1. I=

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

G Una matrice si dice triangolare se ha tutti gli elementi nulli


1

A=
0
2
1
1
2
0
1
0
0


ad eccezione di quelli che si trovano tutti sopra (o tutti sotto) la 0 0 1 2 1
0 0 0 1 2
diagonale principale.
Si definisce matrice triangolare superiore U (U sta per upper) di
dimensione n, la matrice per la quale, per j = 1, 2, . . . , n, si ha

uij = 0 per i = j + 1, j + 2, . . . , n Esempi:



1 2 5.3
Si definisce matrice triangolare inferiore L (L sta per lower) di
U = 0 3.2 4
dimensione n, la matrice per la quale, per i = 1, 2, . . . , n, si ha 0 0 10

1 0 0
lij = 0 per j = i + 1, i + 2, . . . , n
L= 2 21 0
3.4 5.7 4

Teorema 8.2.2 Date A matrice n m, B matrice m s, C matrice s p,


D matrice m s, Im e Is le matrici identit, rispettivamente di dimensione
m e s, e e due numeri reali, valgono le seguenti propriet:

G A(BC) = ( AB)C G A(B + D) = AB + AD


G I B = B BI = B G( AB) = (A)B = A(B).
m s
appunti di calcolo numerico 115

A questo punto, il sistema lineare (8.1) pu essere scritto in forma


matriciale come

Ax = b

Collegata alla soluzione di un sistema lineare linversa di una


matrice.

Definizione 8.2.2 Data una matrice A di dimensione n, A si dice nonsin-


golare (o invertibile o regolare) se esiste una matrice, che indichiamo come
A1 di dimensione n tale che

AA1 = A1 A = I

La matrice A1 si chiama matrice inversa della A. Una matrice che non ha


inversa si dice, invece, singolare (o non invertibile).

Teorema 8.2.3 Per ogni matrice A di dimensione n nonsingolare si ha:

G A1 unica

G A1 nonsigolare e ( A1 )1 = A

G Se B non singolare, di dimensione n, allora ( AB)1 = B1 A1

Dato il sistema Ax = b, se A nonsingolare, si ha x = A1 b.


Unaltra importante matrice associata ad unassegnata matrice A
la sua trasposta.

Definizione 8.2.3 La trasposta di una matrice A di dimensione n m


la matrice indicata con A T , di dimensione m n, per la quale la colonna i
della trasposta coincide con la riga i della matrice A di partenza: aijT = a ji .
Esempio:
Legata alla trasposta di una matrice la seguente definizione.
  1 2
1 2 3 T
A= A = 2 5
Definizione 8.2.4 Una matrice quadrata si dice simmetrica se A = A T . 2 5 6
3 6

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

G( AB) T = BT AT GSe esiste A allora ( A


1 1 ) T = ( A T ) 1

Il determinante di una matrice permette di stabilire esistenza e


unicit della soluzione nei sistemi lineari. Data una matrice quadrata
A, il suo determinante si indica mediante la notazione det( A) o | A|.

G Se A = [ a] una matrice 1 1, det( A) = a.

G Se A una matrice di dimensione n, si definisce minore Mij


il determinante della sottomatrice di dimensione n 1 ottenuta
cancellando la i-sima riga e la j-sima colonna da A.
116 annamaria mazzia

G Il determinante di A dato dalla formula

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

Il calcolo del determinante di una matrice di dimensione n richie-


de O(n!) moltiplicazioni. Quindi, anche per valori piccoli di n, le
operazioni da fare diventanto proibitive.

Teorema 8.2.5 Sia assegnata A una matrice quadrata di dimensione n.

G Se una riga o una colonna di A ha elementi tutti nulli, det( A) = 0.

G Se A ha due righe o due colonne con gli stessi elementi, det( A) = 0.

G Denotata con A la matrice ottenuta scambiando due righe di A, si ha


det( A) = det( A).

G Denotata con A la matrice ottenuta da A moltiplicando una sua riga


per un numero reale , si ha det( A) = det( A).

G Denotata con A la matrice ottenuta da A sommando una sua riga per


unaltra che stata moltiplicata per , si ha det( A) = det( A).

G Se B unaltra matrice di dimensione n, si ha det( AB) = det( A)det( B)

G det( A T ) = det( A)

G Se esiste A1 , si ha det( A1 ) =
1
det( A)

G Se A una matrice triangolare superiore o triangolare inferiore o dia-


gonale, allora det( A) = in=1 aii

8.3 Metodo di eliminazione di Gauss


Carl Friedrich Gauss fu un matematico e fi-
sico tedesco (1777-1855) che ha dato il suo
contribuito in maniera significativa in numero-
Ritorniamo al sistema di equazioni (8.1), che possiamo scrivere in si campi: teoria dei numeri, analisi, geometria
forma matriciale come Ax = b. differenziale, geodesia, magnetismo, astro-
nomia, ottica. Al pari di Eulero, Newton e
Nel metodo di eliminazione di Gauss il sistema lineare di partenza Archimede considerato uno dei pi grandi
viene trasformato in uno equivalente di pi facile soluzione in quanto matematici della storia.
In suo onore stato dato il suo nome a
la matrice del nuovo sistema ha forma triangolare (superiore o inferio-
una nave di ricerca tedesca, a una montagna
re) e pu essere risolto facilmente mediante sostituzione (allindietro (Gaussberg) in Antartide, a un cratere sul-
o in avanti). la luna, e allunit di misura della densit di
flusso magnetico o di induzione magnetica.
Vediamo nel dettaglio come si risolve un sistema lineare di forma
triangolare, utilizzando queste tecniche.
appunti di calcolo numerico 117

8.3.1 Sostituzione allindietro e in avanti

La matrice A sia nonsingolare e triangolare superiore, cio



a11 a12 ... a1n
..
a22 . a2n
A=

.. ..
. .


ann

La soluzione del sistema Ax = b pu dunque procedere dal basso


verso lalto, a partire dallultima riga. Le equazioni, infatti, sono



a11 x1 + a12 x2 + a13 x3 + . . . . . . + a1n xn = b1

a22 x2 + a23 x3 + . . . . . . + a2n xn = b2






a33 x3 + . . . . . . + a3n xn

= b2
.. .



. = ..

a n 1 n 1 x n 1 + a n 1 n x n = bn 1







ann xn = bn

Lultima riga si legge come ann xn = bn . Quindi possiamo ricavare


xn = bn /ann .
Noto il valore di xn , possiamo ricavare xn1 dalla riga n 1 del
1
sistema ottenendo xn1 = (b a n 1 n x n ).
a n 1 n 1 n 1
Si procede a ritroso in questo modo arrivando fino alla prima
equazione che ci permette di calcolare il valore di x1 . Osserviamo che
tutte le divisioni per i coefficienti aii sono possibili in quanto stiamo
supponendo A non singolare e, poich, in questo caso, det ( A) =
in=1 aii 6= 0, necessariamente ciascun aii 6= 0.
Possiamo dunque scrivere lalgoritmo di sostituzione allindietro:

Per i = n fino a i = 1, procedendo allindietro con passo 1

bi nj=i+1 aij x j
xi =
aii

Un analogo algoritmo si ricava quando la matrice triangolare


inferiore. In tal caso, si parte dalla prima equazione per ricavare x1 e
poi si va avanti nellequazione successiva.
Si ha lalgoritmo di sostituzione in avanti:

Per i = 1 fino a i = n, procedendo in avanti con passo 1

bi ij 1
=1 aij x j
xi =
aii
118 annamaria mazzia

8.3.2 Eliminazione di Gauss: esempio particolare

Il metodo di eliminazione di Gauss trasforma il sistema di partenza


in uno ad esso equivalente ma pi facile da risolvere, perch la
matrice del sistema di forma triangolare superiore, in modo da
poter applicare il metodo di sostituzione allindietro.
Per capire come si applica questo metodo consideriamo un sem-
plice esempio di sistema di 3 equazioni in 3 incognite, Ax = b
dove

2 1 2 10
A = 4 1 2 b = 12

1 2 5 20

Le equazioni del sistema sono, dunque,



2x1 + x2 + 2x3 = 10


4x1 + x2 + 2x3 = 12


x1 + 2x2 + 5x3 = 20

G Al primo passo del metodo, cerchiamo di annullare tutti i coeffi-


cienti dellincognita x1 nella seconda e terza equazione.

Dividiamo il coefficiente 4 che moltiplica x1 nella seconda equa-


zione con il coefficiente 2 che moltiplica x1 nella prima equa-
4
zione. Otteniamo il valore = 2. Adesso moltiplichiamo per
2
questo valore (2) la prima equazione, ricavando

2 (2x1 + x2 + 2x3 = 10) = 4x1 + 2x2 + 4x3 = 20

Se ora facciamo la sottrazione tra la seconda equazione del


sistema e questa che abbiamo ricavato otteniamo

4x1 + x2 + 2x3 = 12
4x1 + 2x2 + 4x3 = 20 =

x2 2x3 = 8

Sostituiamo questa equazione alla seconda del sistema (il siste-


ma rimane equivalente), ricavando

2x1 + x2 + 2x3 = 10


x2 2x3 = 8


x1 + 2x2 + 5x3 = 20

Abbiamo eliminato, in questo modo, il coefficiente di x1 nella


seconda equazione.
Alla stessa maniera, dividiamo il coefficiente di x1 nella terza
equazione (che vale 1) con il coefficiente di x1 nella prima equa-
1 1
zione: abbiamo . Moltiplichiamo la prima equazione per
2 2
appunti di calcolo numerico 119

e poi facciamo la sottrazione tra la terza equazione e la prima


1
moltiplicata per :
2
x1 + 2x2 + 5x3 = 20 x1 + 2x2 + 5x3 = 20
1 1
(2x1 + x2 + 2x3 = 10) x1 + x2 + x3 = 5 =
2 2

3
x2 + 4x3 = 15
2
Sostituiamo questa equazione alla terza del sistema.
A questo punto il sistema

2x + x2 + 2x3 = 10
1



x2 2x3 = 8
3 x2 + 4x3 = 15



2
Nella seconda e terza equazione non c pi lincognita x1 .

G Per poter arrivare ad un sistema di equazioni triangolare inferiore,


dobbiamo eliminare il coefficiente di x2 nella terza equazione del
sistema. Ripetiamo il ragionamento appena fatto, lavorando sulla
seconda e terza equazione.
3
Consideriamo il coefficiente di x2 della terza equazione ( ) e
2
lo dividiamo per il coefficiente di x2 della seconda equazione (
che vale 1). Moltiplichiamo la seconda equazione per questo
3
coefficiente (cio per ) e poi sottraiamo la terza equazione
2
3
dalla seconda moltiplicata per :
2
3 3
x2 + 4x3 = 15 x2 + 4x3 = 15
2 2
3 3
( x2 2x3 = 8) x2 + 3x3 = 12 =
2 2

x3 = 3

Sostituiamo questa equazione alla terza del sistema, ricavando


il sistema equivalente

2x1 + x2 + 2x3 = 10


x2 2x3 = 8


x3 = 3

Con tutte le trasformazioni effettuate, abbiamo trasformato il siste-


ma di partenza in uno equivalente, che si pu risolvere facilmente
mediante sostituzioni allindietro. Dallultima equazione abbiamo
x3 = 3. Sostituendo questo valore nella seconda equazione otteniamo
x2 6 = 8 da cui x2 = 2. Infine, sostituendo i valori di x3 e x2
nella prima equazione abbiamo 2x1 + 2 + 6 = 10 da cui x1 = 1.
120 annamaria mazzia

8.3.3 Eliminazione di Gauss: caso generale

Vediamo ora il caso generale, in cui il sistema di n equazioni ha la


matrice dei coefficienti A piena (o densa, cio abbia quasi tutti gli
elementi non nulli). Applichiamo trasformazioni elementari per riga
in modo da ridurre il sistema di partenza in uno equivalente di forma
triangolare superiore, che potremo risolvere mediante sostituzioni
allindietro.
La soluzione del problema Ax = b, infatti, non cambia se moltipli-
chiamo una riga per una costante, se sottraiamo il multiplo di una
riga da unaltra riga o se facciamo scambi di righe, come abbiamo
detto allinizio della Sezione 8.2.
Supponiamo, per il momento, che tutti gli elementi della diagonale
principale di A siano non nulli.

G Al primo passo vogliamo eliminare gli elementi della prima


colonna al di sotto della diagonale principale:
a21
sottraiamo la prima equazione moltiplicata per dalla secon-
a11
da equazione:

a21 x1 + a22 x2 + a23 x3 + . . . + a2n xn = b2


a21 a21
( a x + a12 x2 + a13 x3 + . . . + a1n xn ) = b =
a11 11 1 a11 1

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.

Come risultato di questa operazione avremo una nuova matrice


con gli elementi della prima colonna, eccetto quello di posto 11,
tutti uguali a zero.


a11 a12 ... a1n x1 b1
(1) (1) (1)
0 a22 ... a2n x2 b2


.. .. .. .. =

.

. . ... . . ..


(1) (1) xn (1)
0 an2 ... ann bn

G Al secondo passo, consideriamo il sistema ridotto che si ha igno-


rando la prima equazione del sistema e la prima colonna della
nuova matrice che abbiamo ottenuta (che ha tutti 0 al di sotto
dellelemento diagonale).
appunti di calcolo numerico 121

A questa sottomatrice applichiamo lo stesso procedimento di prima,


sottraendo, quindi, la prima equazione della sottomatrice molti-
(1)
a32
plicata per (1)
dalla seconda equazione della sottomatrice, e cos
a22
via.
Dopo questo passo, il sistema sar equivalente a:

a11 a12 . . . . . . a1n x

1
b 1
(1) (1) (1)
b (1)

0 a22 a23 . . . a2n
x2 2
..
x3 = b3(2)
( 2 ) ( 2 )
. 0 a . . . a

33 3n
.. ..

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


(2) (2) x (1)
0 0 a ... a n
nn bn
n3

G Dopo aver applicato questo procedimento n 1 volte, avremo


un sistema triangolare superiore semplice da risolvere utilizzando
lalgoritmo di sostituzione allindietro.

a11 a12 . . . . . . a1n
x1 b1
(1) (1) (1)
b (1)

0 a22 a23 . . . a2n
x2 2(2)

.. (2) (2) x

b3
a33 . . . a3n 3 =
. 0


.. ..

. . .

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

( n 1) x ( n 1)
0 0 ... 0 ann n b n

8.4 Strategie di pivoting

(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

G pivoting totale Con il pivoting totale, si opera uno scambio


non solo di righe ma anche di colonne in
Nel pivoting totale, invece, la ricerca dellelemento pi grande
modo da portare lelemento pivotale dalla riga
in tutta la sottomatrice che si ha considerando le colonne e le righe e colonna qr al posto ii. Di questo scambio
rispettivamente a destra e sotto lelemento diagonale i-simo. Si di colonne bisogna conservare traccia perch
vengono scambiate anche le componenti del
vanno quindi a cercare i pi piccoli interi q e r tali che vettore soluzione, in modo da effettuare lo
( i 1) ( i 1) scambio inverso una volta risolto il sistema.
| aqr | = max | a jk |
i k,jn

Il maggiore sforzo computazionale garantisce maggiore accuratez-


za e stabilit nei risultati, nel senso che gli errori di arrotondamento
non sono cos amplificati come potrebbe succedere senza ladozione
di una tecnica di pivoting.

Esempio Consideriamo il sistema



x1 + x2 + x3 = 1


x1 + 1.0001x2 + 2x3 = 2


x1 + 2x2 + 2x3 = 1

Lesatta soluzione, corretta a 4 cifre decimali, x = (1, 1.0001, 1.0001) T .


Leliminazione di Gauss senza pivoting porta, applicando il primo
passo del metodo, al sistema

x1 + x2 + x3 = 1


0.0001x2 + 1x3 = 1


1x2 + 1x3 = 0

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

Questa volta si ha (sempre lavorando con 3 cifre decimali) x3 = 1.000,


x2 = 1.000, x1 = 1.000, che la soluzione corretta a 3 cifre decimali.
_
appunti di calcolo numerico 123

8.5 Fattorizzazione triangolare

Il metodo di eliminazione di Gauss, visto in forma matriciale, decom-


pone la matrice A nel prodotto LU di due matrici, la L triangolare
inferiore, e la U triangolare superiore.
Ad ogni passo, infatti, il metodo di eliminazione pu essere visto
introducendo la matrice

1
0 1


.
.
. 0 1
.. ..


. . 0 1

( k 1)
.. .. .. a k +1 k


. . . 1
(k) ( k 1)
M = akk


( k 1)

. . .
. . . a k +2 k ..
. . . ( k 1) .


akk

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


. . . ( k 1)
a
.. .. .. n k

( k 1)
1
akk

Le matrici intermedie che vengono generate sono date da A(k) =


M(k) A(k1) = M(k) M(k1) . . . M(1) A mentre il vettore termine noto
dato da b(k) = M(k) b(k1) = M(k) M(k1) M(1) b.
Dopo n 1 passi, avremo un sistema la cui matrice finale trian-
golare superiore (possiamo chiamare questa matrice U):

U = A ( n 1) = M ( n 1) . . . M (2) M (1) A

Per ritornare alla matrice di partenza A, possiamo moltiplicare ambo


i membri delluguaglianza appena scritta con la matrice data da

L = ( M ( n 1) M (2) M (1) ) 1 = [ M (1) ] 1 [ M ( n 2) ] 1 [ M ( n 1) ] 1

L triangolare inferiore con elementi dati dal prodotto delle matrici


M(k) generate durante leliminazione di Gauss. Otteniamo quindi
A = LU.

8.5.1 Fattorizzazione LDU

Leliminazione di Gauss un caso particolare di fattorizzazione LDU,


nella quale la matrice A viene decomposta nel prodotto di 3 matrici,
la L che triangolare inferiore con elementi sulla diagonale principale
(elementi diagonali) uguali a 1, la D che una matrice diagonale e la
U che una triangolare superiore con elementi diagonali uguali a 1.
Nelleliminazione di Gauss vista prima, nella U abbiamo inglobato
anche la matrice D, per cui abbiamo una fattorizzazione LU.
La decomposizione LDU assicurata dal teorema LDU. Prima di
vedere il teorema, definiamo i minori principali di una matrice A.
124 annamaria mazzia

Definizione 8.5.1 Data una matrice A si definisce minore principale di


dimensione k (con 1 k n), la sottomatrice che si ha prendendo le prime
k righe e k colonne di A.

a11 . . . a1k
. ..
.
. .

ak1 . . . akk

Teorema 8.5.1 (LDU) Nellipotesi che tutti i minori principali di A, (per


i = 1, 2, . . . , n) siano non-singolari, allora la matrice A decomponibile in
maniera univoca nel prodotto A = LDU

Qualsiasi matrice non singolare pu essere condotta sotto una


forma tale da soddisfare il teorema LDU mediante opportuni scambi
di righe e di colonne (abbiamo visto cosa fare quando un elemento
pivotale nullo). Fare uno scambio di righe o di colonne significa
moltiplicare la matrice A con unopportuna matrice di permutazione.
Una matrice di permutazione P una matrice ottenuta dalla ma-
trice identit operando scambi di righe o di colonne in modo che la
matrice risultante abbia esattamente un unico valore diverso da zero
su ogni riga e colonna, e tale valore sia uguale a 1.

Esempio Si consideri la matrice di permutazione P di dimen-


sione 3 data da

1 0 0
P = 0 0 1

0 1 0

Qualunque sia la matrice A, di dimensione 3, moltiplicandola a


sinistra per P si ottiene lo scambio della seconda e terza riga di A;
invece, moltiplicandola a destra per P si ottiene lo scambio della
seconda e terza colonna di A:


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

G Nel caso in cui la matrice D viene inglobata nella matrice L, la L


ha elementi diagonali lii 6= 0, mentre la U ha elementi diagonali
unitari. Si parla di fattorizzazione di Crout.

G Nel caso in cui la matrice D viene inglobata nella matrice U, la U


ha elementi diagonali uii 6= 0, mentre la L ha elementi diagonali
unitari. Si parla di fattorizzazione di Doolittle.

Scriviamo in forma estesa il prodotto tra matrici, nellipotesi di


operare la fattorizzazione di Crout:

a11 a12 ... a1n l11 0 ... 0 1 u12 ... u1n
a21 a22 ... a2n l21 l22 ... 0 0 1 ... u2n

= .
. .. .. .. .. . .. ..
.
. ..
.
. . . . . . .

an1 an2 ... ann ln1 ln2 ... lnn 0 0 ... 1

Moltiplichiamo la prima riga di L per le colonne di U ed eguaglia-


mo i termini con gli elementi della prima riga di A. Otteniamo:
l11 1 = a11
l11 u1k = a1k , k = 2, . . . , n
Quindi: l11 = a11 e u1k = a1k /l11 . Abbiamo ricavato gli elementi
della prima riga di L e U.
Moltiplicando le successive righe di L per le colonne di U ed
uguagliando i termini ai corrispondenti termini di A, abbiamo:

j 1
lij = aij lim umj i = 1, 2, . . . n j = 1, 2, . . . , i
m =1
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).

8.5.2 Fattorizzazione di Gauss senza pivoting

Abbiamo visto che, a volte, il metodo di eliminazione di Gauss richie-


de scambi di righe per evitare divisioni per zero. Allo stesso modo, il
teorema di fattorizzazione LDU vale su matrici A non singolari o su
matrici ottenute da A mediante moltiplicazioni a sinistra o a destra
con opportune matrici di permutazione.
Ci chiediamo se esistono matrici per le quali il metodo di elimina-
zione di Gauss possa essere implementato senza scambi di righe e
126 annamaria mazzia

per le quali lalgoritmo di eliminazione di Gauss sia stabile rispetto


ad una crescita di errori di arrotondamento.
Vediamo, nel seguito, alcune speciali classi di matrici per cui
valgono le nostre richieste.

Definizione 8.5.2 Una matrice A di dimensione n si dice diagonalmente


dominante in senso stretto per righe se vale la relazione
n
| aii | > |aij | per ogni i = 1, 2, . . . , n.
j =0
j 6 =i

Definizione 8.5.3 Una matrice A di dimensione n si dice diagonalmente


dominante in senso stretto per colonne se vale la relazione
n
| a jj | > |aij | per ogni j = 1, 2, . . . , n.
i =0
i6= j

Esempio

7 3 1
A = 2 10 2

5 0 6
A una matrice diagonalmente dominante in senso stretto per righe
poich vale:|7| > |3| + |1| = 4, |10| > |2| + | 2| = 4 e |6| > |5| + |0|.
Non diagonalmente dominante in senso stretto per colonne in
quanto sulla prima colonna si ha |7| = |2| + |5|.
_

Esempio

6 3 4
A= 3 9 5

4 5 11
A non diagonalmente dominante in senso stretto per righe poich,
sulla prima riga si ha |6| < |3| + | 4| = 7. Essendo simmetrica, la
matrice non pu essere neanche diagonalmente dominante in senso
stretto per colonne, perch la relazione che abbiamo sulla prima riga
vale sulla prima colonna.
_
Le definizioni appena date si possono rilassare, definendo le matrici
diagonalmente dominanti.
Una matrice A di dimensione n si dice diagonalmente dominante
per righe se vale la relazione
n
| aii | |aij | per ogni i = 1, 2, . . . , n.
j =0
j 6 =i

Analoga la definizione di matrice diagonalmente dominante


per colonne (basta applicare la definizione di matrice diagonalmente
dominante per righe sulla matrice A T )
Si hanno i seguenti teoremi.
appunti di calcolo numerico 127

Teorema 8.5.2 Se A una matrice diagonalmente dominante e non sin-


golare, allora il metodo di eliminazione di Gauss pu essere implementato
senza alcuno scambio di righe e di colonne e i calcoli sono stabili rispetto
alla crescita degli errori di arrotondamento.

Teorema 8.5.3 Se A una matrice diagonalmente dominante in senso


stretto (per righe o per colonne), allora A non singolare. In questo ca-
so il metodo di eliminazione di Gauss pu essere implementato senza alcuno
scambio di righe e di colonne e i calcoli sono stabili rispetto alla crescita
degli errori di arrotondamento.

Unaltra importante classe di matrici data dalle matrici definite


positive.

Definizione 8.5.4 Una matrice A di dimensione n si dice

G definita positiva se simmetrica e vale x T Ax > 0 qualunque sia il


vettore x 6= 0

G semidefinita positiva se x T Ax 0 qualunque sia il vettore x,

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

G definita negativa se simmetrica e vale x T Ax < 0 qualunque sia il


vettore x 6= 0,

G semidefinita negativa se x T Ax 0 qualunque sia il vettore x.

Dalla definizione di matrice definita positiva, deve essere x T Ax > 0


qualunque sia il vettore x, vale a dire:

a11 a12 . . . a1n x1
 a a . . . a 2n x2

 21 22
x1 x2 . . . x m . . . ..
.

. .. ... . ..
an1 an2 . . . ann xm

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;

G aii > 0 per ogni i = 1, 2, . . . , n


128 annamaria mazzia

Quindi se una matrice ha elementi aii 0, non una matrice definita


positiva, perch, se lo fosse, in base al teorema avrebbe elementi
diagonali tutti positivi.
Vediamo ora una condizione necessaria e sufficiente per matrici
definite positive.

Teorema 8.5.5 Una matrice A simmetrica di dimensione n definita posi-


tiva se e solo se tutti i suoi minori principali hanno determinante positivo.

Teorema 8.5.6 Una matrice A simmetrica di dimensione n con elementi


diagonali tutti positivi e diagonalmente dominante definita positiva.

Anche per matrici simmetriche definite positive, si pu applicare il


metodo di eliminazione di Gauss senza operare scambi di righe e di
colonne e i calcoli rimangono stabili rispetto alla crescita degli errori
di arrotondamento. Questo risultato ci serve per la fattorizzazione di
Cholesky.

8.5.3 Fattorizzazione di Cholesky

Nel caso in cui la matrice A sia simmetrica, il teorema LDU si presenta


nel seguente modo

Teorema 8.5.7 (LDU per matrici simmetriche) Se A una matrice sim-


metrica e nessuno dei suoi minori principali singolare, allora A si pu
decomporre nel prodotto A = LDL T , dove L triangolare inferiore con
elementi diagonali unitari ed univocamente determinata, L T la sua
trasposta e D matrice diagonale.

Dimostrazione. Intanto valgono le ipotesi del teorema LDU e


quindi si pu scrivere in maniera univoca A = LDU con L matrice
triangolare inferiore, D diagonale e U triangolare superiore. Inoltre,
poich A simmetrica, e quindi A = A T , si ha pure LDU = ( LDU ) T
vale a dire LDU = U T D T L T = U T DL T . Si deduce, dalluguaglianza,
che U = L T e la decomposizione diventa A = LDL T . 4

Proposizione 8.5.1 (Fattorizzazione di Cholesky) Nel caso particola-


re in cui A sia simmetrica e definita positiva, da x T Ax > 0 vale pure

x T Ax = x T LDL T x = ( L T x) T DL T x = y T Dy > 0 con y = L T x per ogni x > 0.

Essendo A definita positiva, risulta anche D definita positiva. Perci


gli elementi di D (che una matrice diagonale) devono necessaria-
mente essere tutti positivi. In tal caso, si considera la matrice D1/2
che la matrice diagonale con elementi dati dalle radici quadrate
degli elementi diagonali di D (si prende il valore positivo della radice
quadrata, e il risultato un numero reale in virt del fatto che gli ele-
menti diagonali di D sono tutti positivi). Si pone, quindi, M = LD1/2
e si ottiene A = MM T : abbiamo il prodotto di una matrice triangolare
inferiore con coefficienti tutti reali per la sua trasposta. Se D non
appunti di calcolo numerico 129

fosse definita positiva (ma avesse qualche elemento negativo), allora


neanche A sarebbe definita positiva e la matrice M sarebbe non reale.
Quindi se A simmetrica, si ha la decomposizione nel prodotto
LL T (chiamiamo di nuovo con L la matrice M) con L reale se e solo
se A definita positiva.
I coefficienti della matrice L si trovano facendo il prodotto righe
per colonne ed eguagliando i termini ai corrispondenti elementi di A.
Si ricava:


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

Esercizio 8.6.1 Siadata la matrice


1 0 2
A = 0 4 8

2 8 29
Provare che verifica le condizioni del teorema LDU e trovare i fattori L
e L T tali che A = LL T .

Svolgimento
La matrice A simmetrica ! e soddisfa le ipotesi del teorema LDU (
1 0
infatti | a11 | = 1, det = 4 e det( A) = 116 16 64 = 36) per
0 4
cui possibile scrivere la matrice A come A = LL T . Si ha, quindi:

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

Devono quindi valere le relazioni:


2
l11 = 1 = l11 = 1
l21 l11 = 0 = l21 = 0
l31 l11 = 2 = l31 = 2
2 2

l21 + l22 = 4 = l22 = 4 0 = 2
l21 l31 + l22 l32 = 8 = l32 = 8/2 = 4
2 2 2
p
l31 + l32 + l33 = 29 = l33 = 29 22 42 = 29 4 16 = 9 = 3
130 annamaria mazzia

La matrice L dunque

1 0 0
0 2 0

2 4 3

8.6.2 Data la matrice


Esercizio
0.2 1 0.2
A = 1 6.5 1.75

0 2 2.25

(a) verificare che A soddisfa le condizioni del teorema LDU;

(b) fattorizzare secondo Crout A = LU (prendendo uii = 1);

(c) usare la fattorizzazione per calcolare det ( A2 );

(d) usare la fattorizzazione per risolvere il sistema Ax = b, con b T =


(2.8 19.25 10.75)T .

Svolgimento
(a) La matrice verifica le condizioni del teorema LDU in quanto i
minori principali costruiti a partire dallangolo superiore sinistro
hanno tutti determinante diverso da zero:
!
0.2 1
a11 = 0.2 6= 0 det = 0.3 6= 0 det A = 0.375 6= 0
1 6.5

(b) La fattorizzazione di A come A = LU si costruisce imponendo:



0.2 1 0.2 l11 0 0 1 u12 u13
A = 1 6.5 1.75 = LU = l21 l22 0 0 1 u23

0 2 2.25 l31 l32 l33 0 0 1

Usando le formule di pag. 125, si ottiene

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

(c) Si ha det A = det LU = det L det U = det L = 0.375. Quindi


det ( A2 ) = det ( A)2 = 0.3752 = 7.11111111.

(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 .

8.6.3 Sia data la


Esercizio matrice
2 0.5 0.5
A = 0 1 1

1 0.5 10.5

(a) Calcolare k Ak (norma massima per righe), k Ak1 (norma massima


per colonne) e norma F ( A) (norma di Frobenius).

(b) Fattorizzare la matrice A nel prodotto LU (con lii = 1).

(c) Utilizzando la fattorizzazione trovata, risolvere il sistema lineare


Ax = b con b = [4.5, 1, 31.5] T , e calcolare il determinante di A2 .

Svolgimento

(a) Applicando le definizioni per le diverse norme abbiamo: k Ak =


max (3, 2, 12) = 12,
k Ak1 = max (3, 2, 12) = 12,

F ( A) = 4 + 0.25 + 0.25 + 1 + 1 + 1 + 0.25 + 110.25 = 118 =
10.862780491.

(b) Per la fattorizzazione nel prodotto LU con lii = 1, imponendo


luguaglianza LU = A si ha:

1 0 0 u11 u12 u13 2 0.5 0.5
l21 1 0 0 u22 u23 = 0 1 1

l31 l32 1 0 0 u33 1 0.5 10.5
vale a dire

u11 u12 u13 2 0.5 0.5
21 u11
l l21 u12 + u22 l21 u13 + u23 =
0 1 1

l31 u11 l31 u12 + l32 u22 l31 u13 + l32 u23 + u33 1 0.5 10.5
132 annamaria mazzia

Uguagliando i termini e sostituendo i valori dei coefficienti via via


che vengono ricavati si ha:

u11 = 2 u12 = 0.5 u13 = 0.5


l21 = 0 u22 = 1 u23 = 1

Inoltre

l31 2 = 1 = l31 = 0.5


0.5 0.5 + l32 = 0.5 = l32 = 0.75
u33 = 9.5

Quindi le due matrici sono



1 0 0 2 0.5 0.5
L=0 1 0 U = 0 1 1

0.5 0.75 1 0 0 9.5

(c) Per risolvere il sistema,


applichiamo i seguenti passaggi: Ax =
Ux = y
b = LUx = b = .
Ly = b


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

Per il determinante, risulta: det( A) = det( L) det(U ) = 1 (2 1


9.5) = 19, da cui det( A2 ) = (det( A))2 = 192 = 361.

8.6.4 dato il sistema


Esercizio lineareAx = b dove:
16 8 4 20
A = 8 20 4 b = 28

4 4 12.25 28.25

(a) Provare che la matrice definita positiva.

(b) Fattorizzare la matrice secondo Cholesky: A = LL T .

(c) Usare la fattorizzazione per risolvere il sistema Ax = b e per


calcolare det( A3 ).

Svolgimento
appunti di calcolo numerico 133

(a) La matrice simmetrica, definita positiva in quanto gli elemen-


ti della diagonale principale sono tutti positivi e la matrice
diagonalmente dominante in senso stretto:

16 > | 8| + |4| = 12
20 > | 8| + |4| = 12
12.25 > |4| + |4| = 8

(b) Ponendo A = LL T si ricava:


2
l11 = 16 = l11 = 4
l21 l11 = 8 = l21 = 2
l31 l11 = 4 = l31 = 1
2 2

l21 + l22 = 20 = l22 = 20 4 = 4
l21 l31 + l22 l32 = 4 = l32 = (4 + 2)/4 = 1.5
2 2 2

l31 + l32 + l33 = 12.25 = l33 = 12.25 1 2.25 = 9 = 3

La matrice L dunque

4 0 0
L = 2 4 0

1 1.5 3

(c) Per risolvere il sistema Ax = b, adoperiamo il metodo di sosti-


tuzione in avanti e allindietro risolvendo i sistemi: Ly = b e poi
L T x = y.
Il primo sistema d:

4 0 0 y1 20
2 4 0 y2 = 28

1 1.5 3 y3 28.25

e otteniamo y1 = 20/4 = 5, y2 = (28 + 10)/4 = 9.5, y3 = (28.25


5 14.25)/3 = 3.
Nel risolvere il sistema L T x = y si ha

4 2 1 x1 5
0 4 1.5 x2 = 9.5

0 0 3 x3 3

da cui x3 = 1, x2 = (9.5 1.5)/4 = 2, x1 = (5 1 + 4)/4 = 2,


quindi x = (2, 2, 1).
Inoltre, da det( A) = det( LL T ) = det( L)2 = (4 4 3)2 = 482 =
2304 e da det( A3 ) = (det( A))3 si ha det( A3 ) = 23043 = 12230590464.

8.7 Domande di riepilogo

1. Quale la definizione di una matrice e di un vettore?


134 annamaria mazzia

2. Che differenza c tra matrici diagonali, tridiagonali, triangolari?

3. Cosa significa che una matrice non singolare?

4. Come si definisce il determinante di una matrice?

5. Che cosa significa sistema di equazioni lineari?

6. Descrivere il procedimento di sostituzione in avanti e allindietro.


Su quali matrici pu essere applicato?

7. Descrivere il metodo di eliminazione di Gauss.

8. A cosa servono le strategie di pivoting?

9. Enunciare e spiegare il teorema LDU.

10. Spieare le differenze tra fattorizzazione di Crout e fattorizzazione


di Doolittle.

11. Per quali matrici la fattorizzazione LDU stabile rispetto ad una


crescita degli errori di arrotondamento e, quindi, viene fatta senza
applicare tecniche di pivoting?

12. Come diventa il teorema di fattorizzazione LDU quando appli-


cato a matrici simmetriche?

13. Sotto quali ipotesi si parla di fattorizzazione di Cholesky e di


cosa si tratta?
9 Metodi iterativi per la solu-
zione di sistemi lineari

Mi spiace ammettere che la materia che mi


9.1 Da unequazione alle derivate parziali ad un siste- piaciuta di meno stata la matematica. Ci ho
pensato su, e credo che la ragione sia che la
ma lineare matematica non lascia spazio alle discussioni.
Se fai un errore, non puoi scamparla.
Malcom X

Lequazione che governa la conduzione del calore in una piastra


metallica piana, omogenea e isotropa prende il nome di equazione di
Poisson e si scrive come Si tratta di unequazione alle derivate parziali
dove T [ o C] la temperatura, K H [m2 /s] il
2 T 2 T f ( x, y) coefficiente di diffusivit termica, [Kg/m2 ]
2
+ 2
= la densit della piastra, c [Cal/Kg o C ] il
x y cK H calore specifico, f ( x, y) [Cal/m2 s] il calo-
re aggiunto o sottratto alla piastra per unit
In letteratura diverse tecniche numeriche permettono di risolvere il di tempo e di area.
problema (ricordiamo i metodi alle differenze finite e i metodi agli
elementi finiti), in determinati punti (detti nodi) della piastra. Qua-
lunque sia il metodo utilizzato, si arriva ad un sistema di equazioni
lineari del tipo

HT = q

dove H rappresenta la matrice di discretizzazione del metodo, T


rappresenta il vettore delle temperature nei nodi e q il vettore dei
termini noti che deriva dal metodo applicato.
La matrice H pu avere una dimensione molto elevata ma ha la
caratteristica di essere sparsa, cio di avere pochi elementi diversi da
zero per ogni riga.
Per risolvere sistemi lineari di questo tipo, si preferisce usare
metodi iterativi piuttosto che diretti. In questo Capitolo presentiamo
alcuni dei metodi iterativi per la risoluzione di sistemi lineari.

9.2 Metodi iterativi

Per risolvere un sistema di equazioni lineari Ax = b, applicando un


metodo diretto, e trascurando gli errori di arrotondamento, si ottiene
la soluzione esatta del problema in un numero finito (e noto a priori)
di operazioni. Nei metodi iterativi, invece, si parte da unapprossima-
zione iniziale che viene migliorata, mediante un procedimento iterati-
136 annamaria mazzia

Lidea di risolvere sistemi lineri con metodi


iterativi risale ai tempi di Gauss (1823), ma
vo, fino ad ottenere una approssimazione sufficientemente accurata
solo con lavvento dei computers (negli anni
della soluzione. cinquanta) si pu osservare il loro sviluppo,
Quando abbiamo studiato gli zeri di funzione nel Capitolo 5, data visto che diventa possibile risolvere sistemi
lineari dove la matrice A sparsa e di grandi
unapprossimazione iniziale, si procedeva nellalgoritmo iterativo fino dimensioni un particolare tipo di problema
a quando lo scarto tra due approssimazioni successive non diventava improponibile per i metodi diretti. Difatti, nei
metodi diretti, il processo di eliminazione di
minore di una prefissata tolleranza.
Gauss (o la decomposizione della matrice
Nel caso dei sistemi lineari, lapproccio simile. Si parte da un di partenza nel prodotto LU con L triangola-
vettore iniziale che approssima la soluzione del sistema e, mediante un re inferiore e U triangolare superiore) porta
allintroduzione del cosiddetto fill-in, cio a
certo procedimento ricorsivo, si calcola una nuova approssimazione matrici L e U con elementi diversi da zero
(un vettore). Dobbiamo dunque essere capaci di misurare lo scarto l dove la matrice di partenza A ha elementi
nulli. I metodi diretti diventano quindi proibitivi
tra due vettori in modo da capire quando la successione dei vettori
perch troppo costosi per quanto riguarda il
generati dallalgoritmo tende al vettore soluzione del sistema lineare. numero di operazioni aritmetiche e loccupa-
Abbiamo perci bisogno di definire le norme di vettori e di matrici. zione di dati che devono essere salvati per
limplementazione numerica del metodo stes-
Nel seguito, tratteremo solo norme di matrici e vettori definite nello so. I metodi iterativi, al contrario, lavorano
spazio dei numeri reali (e non complessi). direttamente sulla matrice A e, dal momen-
to che A viene coinvolta solo in termini di
prodotti matrice-vettore, non c neanche bi-
9.3 Norme di vettori sogno di memorizzare tutta la matrice (in ge-
nere, quando la matrice sparsa, si lavora su
memorizzazioni in forma compatta delle ma-
trici, memorizzando solo gli elementi non nulli
Il concetto di norma generalizza quello di valore assoluto (o modulo) che servono per il prodotto matrice-vettore).

di un numero reale (o complesso).


n
Sia R lo spazio dei vettori colonna di lunghezza n. La norma di
n n
un vettore x R una funzione, k k, definita in R e a valori in R,
che gode delle seguenti propriet:
G kxk > 0 per ogni x 6= 0

G kxk = 0 se e solo se x = 0

G kxk = ||kxk dove un reale (o complesso) arbitrario

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 Norma massima (o norma infinito, l ), indicata con k k : kxk =


max1in | 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

Esempio Il vettore x = (1, 5, 20) T ha norme:


kxk1 = |1| + |5| + | 20| = 26
kxk = max (|1|, |5|, | 20|) = 20
q
kxk2 = (12 + 52 + (20)2 ) = 426 = 20.639767441
appunti di calcolo numerico 137

R2 con norma unitaria


Figura 9.1: Vettori in
nelle norme 1, e 2.

Per la norma euclidea vale la diseguaglianza di Cauchy-Schwarz

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

Il concetto di distanza serve per definire il limite di una successione


di vettori.
n
Data una successione di vettori in R , x(k) , per k = 1, 2, . . . , , si
n
dice che la successione converge ad un vettore x di R e si scrive
limk x(k) = x se, per ogni e > 0, esiste un intero m tale che

kx(k) xk < e per tutti gli indici k m

9.4 Norme di matrici

Analogamente alla definizione di norma vettoriale, la norma di matrici


quadrate di dimensione n una funzione, che indichiamo con k k
che, per tutte le matrici A e B di dimensione n e per tutti i numeri
reali (o complessi) , soddisfa le seguenti propriet:

G k Ak > 0 per ogni A 6= 0

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

Una propriet importante che si richiede alle norme su matrici


che siano compatibili con norme vettoriali.
138 annamaria mazzia

Definizione 9.4.1 La norma k Ak di una matrice A si dice compatibile con


la norma kxk di un vettore x se vale la relazione

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)

La norma di matrice indotta dalla norma 2 pi complicata e vedremo


in seguito come definita.
Una norma di matrici, che non indotta, ma compatibile con la
norma 2 la cosiddetta norma euclidea (o di Frobenius). Tenendo
presente che, data una matrice A, si chiama traccia della matrice o
tr ( A) la somma degli elementi della diagonale principale di A, la
norma euclidea (o di Frobenius) data da

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.

Proposizione 9.4.1 Le norme naturali su matrici sono norme compatibili


con le norme di vettori da cui sono costruite.

Dimostrazione. Dalla definizione alternativa che abbiamo dato


di norma naturale (e chiamando il generico vettore con il simbolo x),
segue per un vettore x diverso dal vettore nullo,
k Axk k Axk
max = k Ak
kxk x6=0 k x k

da cui

k Axk k Akkxk

Se invece il vettore x il vettore nullo, la relazione di compatibilit


ovvia. 4

9.5 Autovalori e autovettori

Data una matrice quadrata A di ordine n, se esiste un numero (reale


o complesso) e un vettore x 6= 0 tali che

Ax = x
appunti di calcolo numerico 139

allora un autovalore e x il corrispondente autovettore della


matrice A.
Scritta in maniera equivalente, la relazione definisce il sistema
lineare

( A I )x = 0

Poich x 6= 0 e il termine noto del sistema il vettore di tutti zeri, il


determinante della matrice del sistema deve necessariamente essere
uguale a zero, cio det ( A I ) = 0.
Lo sviluppo del determinante porta a un polinomio di grado n
nellincognita :

n tr ( A)n1 + . . . + (1)n det ( A) = 0

Questo polinomio si chiama polinomio caratteristico. Le sue n radici,


che chiamiamo 1 , 2 , . . . , n , sono gli n autovalori della matrice A.
Per le propriet dei polinomi vale:
n n
i = tr( A) = a11 + a22 + . . . + ann e i = det ( A)
i =1 i =1

Alcune propriet sugli autovalori e autovettori sono le seguenti:

G Se autovalore della matrice A, allora k autovalore della


matrice potenza Ak (cio A A A k volte).

G Se autovalore della matrice A, e A regolare, allora 1


autovalore della matrice inversa A1 .

G Gli autovalori di una matrice A e della sua trasposta A T sono gli


stessi (ma gli autovettori sono, in genere, diversi).

G Se A e B sono due matrici arbitrarie regolari, allora gli autovalori


di AB sono gli stessi di BA.

Se x un autovettore associato alla matrice A, allora Ax = x: la


matrice A trasforma il vettore x in un vettore le cui componenti sono
moltiplicate per : se > 1, allora A ha leffetto di allungare x di un
fattore ; se invece 0 < < 1, allora x si restringe di un fattore ;
gli effetti sono simili, ma il verso del vettore risultante Ax opposto,
quando < 0. I quattro casi che si possono presentare sono illustrati
in Figura 9.2.

Figura 9.2: Autovalori e autovettori

Dati n vettori linearmente indipendenti di


n
Rn ,
u(1) , u(2) , . . . u(n) , ogni vettore di
R si pu
Altre propriet da tenere presenti sono le seguenti: scrivere come una loro combinazione lineare.

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

G Se A una matrice simmetrica reale definita positiva, allora i suoi


autovalori sono tutti reali e positivi.

Introduciamo ora il raggio spettrale di una matrice A

Definizione 9.5.1 Il raggio spettrale ( A) di una matrice A definito da

( 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

Matrici convergenti. Nello studiare i metodi iterativi per risolvere


i sistemi lineari, sar di particolare importanza sapere quando le
potenze di una matrice tendono alla matrice nulla. Matrici A, per cui
( Ak )ij 0 per k , qualunque sia i, j = 1, 2, . . . , n, (consideriamo
A A A k volte e gli elementi della matrice risultante tendono a
zero per k ) si dicono matrici convergenti. Diciamo che una
matrice A di dimensione n convergente se

lim ( Ak )ij = 0, i, j = 1, 2, . . . , n
k

Si ha il seguente teorema.

Teorema 9.5.1 Data una matrice A di dimensione n, sono equivalenti le


seguenti proposizioni

1. A una matrice convergente.

2. limk k Ak k = 0, per qualche norma naturale.

3. limk k Ak k = 0, per tutte le norme naturali.

4. ( A) < 1.

5. limk Ak x = 0, qualunque sia il vettore x.

9.6 Metodi classici

I metodi iterativi classici per la risoluzione di un sistema di equazioni


lineari del tipo Ax = b si basano su unidea molto semplice.

G Si parte da unapprossimazione iniziale x(0) , commettendo uner-


rore e(0) = x x(0) . Lerrore e(0) soluzione del sistema Ae(0) =
b Ax(0) = r(0) , dove r(0) il residuo (ci che resta fuori, ci dice
di quanto il vettore Ax(0) si discosta da b).
appunti di calcolo numerico 141

G Successivamente si definisce il passo x(1) come x(1) = x(0) + p(0) ,


dove ora p(0) soluzione del sistema Mp(0) = r0 , in cui la matrice
M pi semplice della A e, allo stesso tempo, M1 approssima in
qualche modo A1 .

G Il procedimento viene iterato fino a convergenza.

Da queste richieste tra loro contradditorie, si sviluppa una strategia


che porta alla soluzione esatta x come limite della successione dei
valori approssimati x(k) .
Il processo iterativo si legge, infatti, come:

x(k+1) = x(k) + M1 (b Ax(k) ) k = 0, 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

Per studiare la convergenza di un metodo iterativo, consideriamo, per


ogni vettore x(k) , il residuo r(k) = b Ax(k) e lerrore e(k) = x x(k) .
Osserviamo che si ha la relazione r(k) = Ae(k) . Infatti

Ae(k) = A(x x(k) ) = Ax Ax(k) = b Ax(k) = r(k)

Lo schema converge quando la successione x(k) converge alla solu-


zione x per k , ovvero quando limk e(k) = 0 qualunque sia il Il vettore soluzione x punto fisso della fun-
zione vettoriale g(x) = Ex + q. Infatti po-
vettore iniziale x(0) .
nendo E = I M1 A e q = M1 b si
Consideriamo lo schema iterativo x(k+1) = Ex(k) + q. ha Ex + q = ( I M1 A)x + M1 b =
facile vedere che per la soluzione esatta x vale la relazione x M1 Ax + M1 b. Dal momento che x
il vettore soluzione si ha Ax = b perci la
x = Ex + q. relazione precedente diventa
Consideriamo x x(k) . Si ha Ex + q = x M1 b + M1 b = x. Il
vettore soluzione punto fisso!

x = Ex + q
x(k) = Exk1 + q
e sottraendo si ricava
e (k)
= Ee(k1)

La relazione appena trovata vale, alla stessa maniera, tra lerrore


e(k1) e lerrore e(k2) per cui possiamo scrivere e(k1) = Ee(k2) .
142 annamaria mazzia

Scriviamo queste relazioni dalliterazione k fino ad arrivare allite-


razione 0.

e(k) = Ee(k1)
e(k1) = Ee(k2)
e(k2) = Ee(k3)
.. ..
.=.
e(2) = Ee(1)
e(1) = Ee(0)

Partendo, ora, dalla prima relazione e, andando a sostituire, ogni


volta, a secondo membro, la relazione successiva, si ha:

e(k) = Ee(k1) = E( Ee(k2) ) = E2 e(k2) = E2 ( Ee(k3) ) = E3 e(k3) = . . . = Ek e(0)

Osserviamo che Ek rappresenta la potenza k della matrice E, cio la


E E E k volte.
Il metodo converge se e(k) 0 per k . Poich lerrore iniziale
arbitrario, si ha che limk e(k) = limk Ek e(0) = 0 se e solo se
limk Ek = 0.
Per il teorema sulla convergenza di matrici (si veda pag. 140),
questo si ha se e solo se ( E) < 1. Si pu dunque stabilire il seguente
teorema.
Teorema 9.6.1 Lo schema iterativo

x(k+1) = Ex(k) + q k0

converge qualunque sia il vettore iniziale x0 al vettore x = Ex + q = A1 b


se e solo se ( E) < 1.
Questo risultato lo si pu provare facilmente, nel caso in cui la
matrice di iterazione E abbia n autovalori distinti e, quindi, possie-
da n autovettori linearmente indipendenti, per cui lerrore iniziale
e(0) si pu scrivere come e(0) = 1 u(1) + 2 u(2) + . . . + n u(n) , do-
ve 1 , 2 , . . . , n sono delle costanti, mentre u(1) , u(2) . . . u(n) sono
gli autovettori associati, rispettivamente, a 1 , 2 , . . . , n . Supponia-
mo che gli autovalori siano in ordine decrescente in modulo, cio:
|1 | > |2 | > . . . > |n |, per cui ( E) = |1 |. In tal caso si pu
scrivere Ricordiamo che, se un autovalore asso-
ciato alla matrice A, con u un autovettore ad
e ( k ) = E k e (0) = E k ( 1 u (1) + 2 u (2) + . . . + n u ( n ) ) esso associato, si ha Ak u = k u).

= 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

Perci limk e(k) = limk 1k 1 u(1) = 0 se e solo se 1k 0 e


questo si ha se e solo se |1 | < 1. Ma |1 | = ( E): ritroviamo il
risultato visto prima.

9.6.2 Controllo della convergenza

Oltre a sapere che lo schema iterativo converge, importante cono-


scere quanto velocemente lo schema converge. A tal proposito osser-
viamo che, in condizioni asintotiche (per k +) vale il seguente
risultato Questa relazione vale anche per matrici con
autovalori non distinti tra loro.
k e ( k ) k ( E ) k k e (0) k (9.1)

Scrivendo lequazione (9.1) per literazione k 1 e facendo il rapporto


tra le norme degli errori a due passi successivi si ha:

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

( E)k ke(0) k eke(0) k = ( E)k e


144 annamaria mazzia

Passando ai logaritmi (di quantit minori di uno) si ha

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.

Grafico di convergenza e velocit asintotica di convergenza. Se si traccia


un grafico semilogaritmico del profilo di convergenza dello schema
iterativo, ponendo sullasse delle ascisse il numero delle iterazioni
e sullasse delle ordinate la norma dellerrore, si pu vedere che
la velocit asintotica di convergenza legata alla pendenza della
retta. Infatti, riconducendoci, per semplicit, al caso in cui la matrice
di iterazione abbia n autovalori distinti tra loro e ordinati in senso
crescente, dalla relazione (vista a pag. 142)

e(k) 1k 1 u(1)

passando alle norme e ai logaritmi in base 10 si ha

log10 ke(k) k k log10 |1 | + costante

La pendenza del grafico lopposto della velocit asintotica di con-


vergenza R.
Nel caso in cui non nota la soluzione esatta x, poich ke(k) k
kx(k) x(k1) k = kd(k) k (valgono le stesse considerazioni viste per
gli schemi iterativi per funzioni non lineari a pag. 64), ritroviamo lo
stesso risultato sul profilo di convergenza semilogaritmico in cui si
pone sullasse delle ascisse il numero delle iterazioni e sullasse delle
ordinate la norma degli scarti.

9.6.3 I metodi

Si scriva la matrice A come somma della matrice che ha i soli elementi


diagonali di A (che chiamiamo D), della matrice costituita dai soli
elementi della parte triangolare bassa di A (che chiamiamo L) e dai
soli elementi della parte triangolare alta di A (che denotiamo con U),

A = L+D+U

Figura 9.3: La matrice A come somma delle


matrici L, D e U .
appunti di calcolo numerico 145

In questo modo facile ricavare i metodi iterativi di Jacobi, Gauss-


Seidel e di rilassamento, che sono i metodi iterativi classici per la
soluzione di sistemi lineari.
Lipotesi da fare che A abbia elementi diagonali diversi da ze-
ro (aii 6= 0 per i = 1, 2, . . . , n, n, da cui la matrice diagonale D
invertibile).
Se la matrice A simmetrica, definita positiva, necessariamente
aii 6= 0. Altrimenti, poich A non singolare (se cos non fosse
non potremmo risolvere il sistema), le equazioni del sistema possono
essere riordinate in modo da avere la matrice risultante con elementi
diagonali diversi da zero.

9.6.4 Il metodo di Jacobi

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

La formula la si pu ricavare direttamente, scrivendo, equazione


per equazione, il sistema da risolvere Ax = b:

a11 x1 + a12 x2 + a13 x3 + . . . + a1n xn = b1


a21 x1 + a22 x2 + a23 x3 + . . . + a2n xn = b2
.. .
. = ..
ai1 x1 + ai2 x2 + ai3 x3 + . . . + ain xn = bi
.. .
. = ..
an1 x1 + an2 x2 + an3 x3 + . . . + ann xn = bn

Dalla prima equazione isoliamo la prima incognita rispetto a tutte


le altre; dalla seconda equazione isoliamo la seconda incognita e
cos via per le altre equazioni, ottenendo:

a11 x1 = b1 ( a12 x2 + a13 x3 + . . . + a1n xn )


a22 x2 = b2 ( a21 x1 + a23 x3 + . . . + a2n xn )
.. ..
.= .
aii xi = bi ( ai1 x1 + ai2 x2 + . . . + aii1 xi1 + aii+1 xi+1 + . . . + ain xn )
.. ..
.= .
ann xn = bn ( an1 x1 + an2 x2 + an3 x3 + . . . + ann1 xn1 )

Dividendo li-sima equazione per il coefficiente aii , per i = 1, 2, . . . , n,


ricaviamo

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

Se pensiamo di partire da un vettore iniziale x(0) , il vettore x(1) si


ottiene dalle equazioni precedenti, ponendo a secondo membro di
ciascuna equazione le componenti del vettore x(0) . Si ricava, in tal
appunti di calcolo numerico 147

modo, la formula ricorsiva dello schema di Jacobi:


( k +1) 1 h 
(k) (k) (k)
i
x1 = b1 a12 x2 + a13 x3 + . . . + a1n xn
a11
( k +1) 1 h 
(k) (k) (k)
i
x2 = b2 a21 x1 + a23 x3 + . . . + a2n xn
a22
.. ..
.= .
( k +1) 1 h 
(k) (k) (k) (k) (k)
i
xi = bi ai1 x1 + ai2 x2 + . . . + aii1 xi1 + aii+1 xi+1 + . . . + ain xn
aii
.. ..
.= .
( k +1) 1 h 
(k) (k) (k) (k)
i
xn = bn an1 x1 + an2 x2 + an3 x3 + . . . + ann1 xn1
ann
Ritroviamo, dunque, la formula che prima avevamo scritta in modo
compatto.
Il metodo di Jacobi pu essere scritto in modo equivalente in
funzione del residuo r(k) = b Ax(k) mediante la formula x(k+1) =
x ( k ) + D 1 r ( k ) .

9.6.5 Il Metodo di Gauss-Seidel

Nellalgoritmo di Gauss-Seidel si pone M = D + L ottenendo la Philipp Ludwig von Seidel (1821-1896) fu


matrice ES = I ( D + L)1 A = I ( D + L)1 ( L + D + U ) = ( D + un matematico tedesco. Il suo lavoro pi
importante riguarda le aberrazioni ottiche.
L)1 U. Lo schema iterativo :

x(k+1) = ES x(k) + ( D + L)1 b

Lo schema di Gauss-Seidel si pu ricavare a partire dal sistema lineare


Ax = b nel modo seguente:

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)

Componente per componente si ha


148 annamaria mazzia

" #
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

Il metodo detto anche degli spostamenti successivi, in quanto


il calcolo delle componenti del vettore x(k+1) fatto utilizzando le
componenti gi calcolate del vettore stesso. Infatti, per i > 1,
( k +1) ( k +1) ( k +1)
ragionevole pensare che i valori gi calcolati x1 , x2 , . . . , x i 1
possano essere utilizzati per dare una migliore approssimazione del
( k +1)
valore xi . Dalle equazioni del sistema, ragionando come per il
metodo di Jacobi, possiamo quindi scrivere:
 
( k +1) (k) (k) (k)
a11 x1 = b1 a12 x2 + a13 x3 + . . . + a1n xn
 
( k +1) ( k +1) (k) (k)
a22 x2 = b2 a21 x1 + a23 x3 + . . . + a2n xn
.. ..
.= .
 
( k +1) ( k +1) ( k +1) ( k +1) (k) (k)
aii xi = bi ai1 x1 + ai2 x2 + . . . + aii1 xi1 + aii+1 xi+1 + . . . + ain xn
.. ..
.= .
 
( k +1) ( k +1) ( k +1) ( k +1) ( k +1)
ann xn = bn an1 x1 + an2 x2 + an3 x3 + . . . + ann1 xn1

Dividendo ambo i membri dellequazione i-sima per aii (per i =


1, 2, . . . , n) si ha:
( k +1) 1 h 
(k) (k) (k)
i
x1 = b1 a12 x2 + a13 x3 + . . . + a1n xn
a11
( k +1) 1 h 
( k +1) (k) (k)
i
x2 = b2 a21 x1 + a23 x3 + . . . + a2n xn
a22
.. ..
.= .
( k +1) 1 h 
( k +1) ( k +1) ( k +1) (k) (k)
i
xi = bi ai1 x1 + ai2 x2 + . . . aii1 xi1 + aii+1 xi+1 + . . . + ain xn
aii
.. ..
.= .
( k +1) 1 h 
( k +1) ( k +1) ( k +1) ( k +1)
i
xn = bn an1 x1 + an2 x2 + an3 x3 + . . . + ann1 xn1
ann
Usando il residuo, lo schema di Gauss-Seidel si scrive come

x ( k +1) = x ( k ) + ( D + L ) 1 r ( k )

9.6.6 Il metodo di rilassamento

Ciascuno dei metodi di Jacobi e Gauss-Seidel pu essere anche ri-


lassato tramite un fattore in modo che la nuova approssimazione
( k +1)
xR sia ottenuta come una combinazione di x(k+1) e x(k) mediante
il fattore . In particolare: Abbiamo usato in pedice la notazione R
per indicare il vettore ottenuto con il rilassa-
( k +1) ( k +1)
xR (1 )x(k) + x(k+1) mento x R . Poi abbandoneremo questa
notazione.
appunti di calcolo numerico 149

Questa operazione viene fatta direttamente nel momento in cui si


stabilisce il metodo iterativo con rilassamento.
Si pu osservare che il metodo di Jacobi rilassato non produce
effettivi miglioramenti rispetto al metodo non rilassato. Invece, il
metodo di Gauss-Seidel rilassato pu produrre un metodo molto
pi veloce in termini di convergenza e, quindi, preferibile rispetto al
metodo senza rilassamento. Come metodo di rilassamento, dunque,
consideriamo il metodo di rilassamento ottenuto da Gauss-Seidel. Per
scelte di nellintervallo ]0, 1[ si parla di metodo Sotto-Rilassato, o
Under-Relaxation (e in genere usato per ottenere convergenza nella
soluzione di sistemi che non convergono con il metodo di Gauss-
Seidel). Per valori di nellintervallo [1, 2[ si ha, invece, il metodo
noto come metodo di sovra-rilassamento o SOR (Successive Over-
Relaxation) usato per accelerare la convergenza in sistemi che sono
convergenti con il metodo di Gauss-Seidel.
Lo schema di rilassamento, applicato al metodo di Gauss-Seidel,
dato da

" #
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

La matrice di iterazione del metodo di rilassamento si ricava


scrivendo in forma matriciale lalgoritmo appena descritto
 
x(k+1) = (1 )x(k) + D 1 b Lx(k+1) Ux(k)
h i
x(k+1) = (1 ) I D 1 U x(k) D 1 Lx(k+1) + D 1 b
h i
( I + D 1 L)x(k+1) = (1 ) I D 1 U x(k) + D 1 b

Moltiplicando ambo i membri per D, si ricava

( D + L)x(k+1) = [(1 ) D U ] x(k) + b

La matrice di iterazione del metodo dunque

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

A questo punto, ci si pu chiedere quale sia l ottimale nel metodo


di rilassamento. L ottimale quello che fa s che il metodo di
rilassamento converga nel minor numero di iterazioni (quindi, l
ottimale rende minimo il raggio spettrale della matrice di iterazione).
Per particolari matrici A, sar possibile stabilire a priori l ottimale
per risolvere il sistema lineare Ax = b.
150 annamaria mazzia

9.6.7 Convergenza dei metodi di Jacobi, Gauss-Seidel, rilassa-


mento

Le matrici di iterazione dei tre metodi appena descritti sono scritte in


Tabella 9.1

metodo matrice Tabella 9.1: Matrici di iterazione dei metodi di


Jacobi, Gauss-Seidel, rilassamento
Jacobi E J = I D 1 A = D 1 ( L + U )
Gauss-Seidel ES = I ( D + L)1 A = ( D + L)1 U
rilassamento E = I ( D + L)1 A

Perch ci sia convergenza, il raggio spettrale della matrice di


iterazione deve essere minore di uno.
Per i metodi di Jacobi e di Gauss-Seidel si pu provare la convergen-
za del metodo, se la matrice A ha una delle seguenti caratteristiche:

G A diagonalmente dominante in senso stretto


G
Una matrice si dice irriducibile se non pu
A a diagonalmente dominante (per righe o per colonne) ed essere messa sotto la forma di matrice riduci-
bile,
 vale a dire, non pu essere scritta come
irriducibile. P Q
.
R
Si ha inoltre, questo risultato:

G se A simmetrica non singolare con elementi principali reali e


positivi, allora il metodo di Gauss-Seidel convergente se e solo se
A definita positiva.

Per quanto riguarda il metodo di rilassamento, condizione necessaria


per la convergenza | 1| < 1, cio deve appartenere allinter-
vallo [0, 2] ( per 0 < < 1 si ha sotto-rilassamento e per 1 < 2
si ha sovra-rilassamento). Dalla definizione di E si ha det E =
det [( D + L)1 ((1 ) D U )].
Difatti il determinante della matrice di iterazione del metodo di
Poich il determinante del prodotto di due
rilassamento vale det E = (1 )n e, poich il prodotto degli auto- matrici uguale al prodotto dei determinanti
valori di una matrice uguale al determinante della matrice stessa, delle matrici stesse, si ha det E =
det [( D + L)1 ] det [(1 ) D U )].
segue la relazione ( E ) |1 |. Quindi, se |1 | > 1, sicura- Consideriamo ora il fatto che il determinante
mente il metodo di rilassamento non converger. Perci, condizione di una matrice triangolare uguale al
prodotto degli elementi della diagonale prin-
necessaria per la convergenza |1 | < 1.
cipale. Per il primo determinante abbiamo
Molto importante il seguente teorema (che non dimostriamo). det [( D + L)1 ] = (det ( D + L))1 .
Ora la matrice D + L triangolare
Teorema 9.6.2 (Ostrowski-Reich) Se A definita positiva e un nu- e il suo determinante coincide con il
prodotto degli elementi della diagonale,
mero reale nellintervallo ]0, 2[, allora il metodo di rilassamento conver-
vale a dire con det D. Si ha quindi:
gente. det [( D + L)1 ] = (det D )1 . Per il
determinante det [(1 ) D U )] (di
G La convergenza del metodo di rilassamento si ha, inoltre, per una matrice che sempre triangolare), gli
elementi della diagonale principale sono gli
A simmetrica con elementi diagonali positivi ed elementi extra- elementi della matrice diagonale D ciascuno
diagonali negativi o nulli, se e solo se A definita positiva. dei quali moltiplicati per (1 ). Perci:
det [(1 ) D U )] = (1 )n det D.
Arriviamo perci al risultato: det E =
Un altro interessante teorema mette in relazione il metodo di rilas-
(det D )1 (1 )n det D = (1 )n .
samento con i metodi di Jacobi e di Gauss-Seidel, sia per quanto Inoltre, considerando i autovalori del-
riguarda la convergenza, sia per quanto riguarda il valore ottimale la matrice E , per i = 1, 2, . . . , n e
( E ) il raggio spettrale, si ha det E =
del parametro , in corrispondenza di matrici A che godono della in=1 i in=1 ( E ) = ( E )n da
cosidetta propriet A e che siano coerentemente ordinate. cui segue (1 )n ( E )n , cio
( E ) |1 |.
appunti di calcolo numerico 151

Definizione 9.6.1 Una matrice A, di dimensione n, si dice che ha pro-


priet A se esiste una matrice di permutazione
! P tale che la matrice PAP T
D1 A1
abbia la forma PAP T = dove D1 e D2 sono matrici diagonali.
A2 D2

Una matrice con propriet A pu essere anche chiamata matrice


biciclica.
In modo equivalente, si pu dire che una matrice A, di dimensione
n, ha propriet A se linsieme dei numeri naturali {1, 2, . . . , n} pu
essere scomposto in due sottoinsiemi non vuoti e complementari S Due insiemi S e T non vuoti si dicono com-
plementari di V = {1, 2, . . . , n} se S 6= ,
e T in modo tale che i coefficienti non nulli aij 6= 0 si hanno se gli
T 6= , S T = V e, inoltre, se i S, i 6
indici i e j sono coincidenti tra loro, cio i = j, oppure se gli indici T e, viceversa, se j T, j 6 S
i e j non appartengono allo stesso insieme S o T, vale a dire che se
lindice i S allora j T, oppure se i T allora j S.

Esempio La matrice tridiagonale



2 1 0 0
1 2 1 0
A=

0 1 2 1

0 0 1 2

ha propriet A (o biciclica): permutando la prima e quarta riga e


la prima e quarta colonna, mediante la matrice di permutazione

0 0 0 1
0 1 0 0
P= si ha

0 0 1 0
1 0 0 0

2 0 1 0 !
0 2 1 1 2 0
PAP T = = D1 = D2 =

1 1 2 0 0 2
0 1 0 2

Usando laltra definizione, basta scegliere come insiemi S e T, gli


insiemi S = {1, 3} e T = {2, 4}.
_ Considerando la matrice dellesempio prece-
dente, si pu prendere il vettore di ordinamen-
Definizione 9.6.2 Una matrice si dice coerentemente ordinata in relazione to q = (q1 , q2 , q3 , q4 ) = (1, 2, 3, 4). Si veri-
fica infatti, per a12 , q2 q1 = 2 1 = 1; per
ad un vettore di ordinamento q, di lunghezza n, se per ogni coefficiente aij a21 , q1 q2 = 1 2 = 1 e cos via per
non nullo, con i 6= j, si verifica: gli altri elementi non nulli. Quindi la matrice

G
coerentemente ordinata.
se j > i allora q j qi = 1

G se j < i allora q j qi = 1

Unaltra definizione di matrice con coerente ordinamento considera


la matrice A data non dalla scomposizione A = L + D + U che
abbiamo visto fino ad ora ma come A = D ( L A + I + U A ), (osserviamo
che, rispetto alla prima scomposizione, abbiamo messo in evidenza
la matrice diagonale D e quindi le matrici triangolari superiore e
inferiore sono L A = D 1 L e U A = D 1 U). Sia D non singolare.
Allora la matrice A detta coerentemente ordinata se gli autovalori
152 annamaria mazzia

della matrice J () = L A + 1 U A , con 6= 0 sono indipendenti dal



parametro . 2 0 1
La matrice A = 0 3 5 bicicli-
Le matrici con
! propriet A (o bicicliche) che sono gi nella forma 1 2 3
D1 A1 ca e coerentemente ordinata.
 Infattisi ri-
A= (senza dover fare permutazioni di righe o colonne) 2 0
A2 D2 conosce la matrice D1 = , la
0 3
sono coerentemente ordinate.
 
 1
matrice D2 = 3 , mentre A1 = e
Le matrici tridiagonali sono un altro esempio di matrici bicicliche 5

A2 = 1 2 .
e coerentemente ordinate.

Fatta questa premessa sulle matrici bicicliche e coerentemente 1 2 0
La matrice A = 1 3 2 tridiago-
ordinate, possiamo dare il seguente risultato (che non dimostriamo). 0 5 6
nale (gli elementi non nulli sono sulla diago-
Teorema 9.6.3 (Young) Se A una matrice con propriet A e coerente nale principale e sulle diagonali immediata-
ordinamento e 0 < < 2, allora: mente sopra e sotto la diagonale principale).
Quindi biciclica e coerentemente ordinata.

G se autovalore della matrice di iterazione di Jacobi E J , ogni che


verifica la relazione ( + 1)2 = 2 2 autovalore di E ;

G se autovalore non nullo di E , allora ogni che verifica la relazione


precedente autovalore di E J ;

G se gli autovalori di E J sono reali e il metodo di Jacobi converge (( E J ) <


1), esiste uno ed uno solo opt che rende ottimale il metodo di rilassa-
mento, tale cio che (opt ) = min0< <2 ( E ). Risulta

2
opt = q e ( Eopt ) = opt 1
1+ 1 ( E J )2

Per = 1 il metodo di rilassamento coincide con il metodo di


Gauss-Seidel. Allora, per matrici con propriet A e coerentemente
ordinate, nelle ipotesi del teorema di Young, valendo la relazione
( + 1)2 = 2 2 , si trova, per = 1, 2 = 2 da cui ( ES ) =
( E J )2 . Come conseguenza, si ha che il metodo di Gauss-Seidel ha
velocit doppia rispetto al metodo di Jacobi.

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

(a) Provare che gli schemi di Jacobi e di Seidel convergono e calcolare la


velocit asintontica di convergenza di entrambi gli schemi.

(b) A partire dallo stesso vettore iniziale x(0) = (0 0 0) T , calcolare le


approssimazioni x(1) e x(2) che si ottengono applicando lo schema di
Jacobi e lo schema di Seidel.

Svolgimento
appunti di calcolo numerico 153

(a) la matrice A non diagonalmente dominante n per righe n


per colonne (vedasi la seconda riga e la terza colonna). Non
possiamo usare il criterio di matrice diagonalmente dominante per
provare la convergenza dei due metodi. La matrice A biciclica e
coerentemente ordinata!(si veda lo schema a croce che individua
5 0
D1 = (8) e D2 = ):
0 5

8 2 6
7 5 0
1 0 5

Quindi se proviamo che lo schema di Jacobi converge, cio che


lautovalore di massimo modulo della matrice di Jacobi reale
e in modulo minore di 1, allora, poich per matrici bicicliche e
coerentemente ordinate vale ( E J )2 = ( ES ), allora anche il metodo
di Gauss-Seidel converger alla soluzione (da ( E J ) < 1 segue
( ES ) < 1). La matrice di Jacobi E J = I D 1 A cio

0 2/8 6/8 0 1/4 3/4
E J = 7/5 0 0 = 7/5 0 0

1/5 0 0 1/5 0 0

Troviamo gli autovalori della matrice E J imponendo det ( E J I ) =


0.


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

(a) dire per quali valori di il metodo di Jacobi converge.

(b) trovare il valore di in corrispondenza del quale il metodo SOR ha


un valore di omega ottimo opt = 3/2. Per tale valore trovare la
velocit asintotica di convergenza del metodo SOR.

Svolgimento

(a) La matrice dipende dal parametro quindi a priori non possiamo


dire se Jacobi converge o meno.
Scriviamo la matrice di iterazione del metodo di Jacobi come

1/5 0 0 0 0 10 0 0 2
E J = D 1 ( L + U ) = 0 1/3 0 0 0 15 = 0 0 5

0 0 1/ 2 1 0 2/ 1/ 0

Gli autovalori si calcolano imponendo det ( E J I ) = 0, vale a


dire

0 2
9
0 5 = 0 vale a dire 3 + =0


2/ 1/

3
Ricaviamo gli autovalori = 0 e = .

3
Perch ci sia convergenza deve dunque essere < 1 ovvero

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

(a) Dallesame della matrice, dire se il metodo di GaussSeidel


converge.

(b) Partendo dal vettore iniziale x (0) = (0, 0, 0)T , calcolare


x (1) , x (2) , x (3) con il metodo di GaussSeidel.

1. Stimare la costante asintotica dellerrore M e quindi la velocit di


convergenza R.

Svolgimento

(a) La matrice diagonalmente dominante in senso stretto (per righe


e per colonne), quindi il metodo di Gauss-Seidel converge.

(b) Lo schema di Seidel :



( k +1) 1 (k) (k)

x1 = (9 x2 3x3 )
6








1

( k +1) ( k +1) ( k +1)
x2 = (3 x1 2x3 )


8




x (k+1) = 1 (14 4x (k+1) 3x (k+1) )



3 10 1 2

Partendo dal vettore iniziale assegnato abbiamo:



1.50000000000000
k=1 x1 = 0.187500000000000

0.743750000000000

1.09687500000000
k=2 x2 = 5.195312499999999E 002

0.945664062500000

1.01850911458333
k=3 x3 = 1.127034505208335E 002

0.989215250651042

Per stimare M (che la costante asintotica dellerrore e, in questo


caso, il raggio spettrale della matrice di iterazione) basta fare il
rapporto tra le norme dei vettori degli scarti d3 e d2 .
Ora:
156 annamaria mazzia


0.403125000000000 7.836588541666667E 002
d2 = x2 x1 = 0.135546875000000 e d3 = x3 x2 = 4.068277994791664E 002

0.201914062500000 4.355118815104175E 002

La scelta della norma vettoriale da utilizzare indifferente (abbia-


mo studiato norme vettoriali equivalenti e quindi il risultato che
otterremo andr bene qualunque sia la norma vettoriale che appli-
cheremo). Se scegliamo, ad esempio, di usare la norma euclidea
dei vettori, abbiamo M = 0.209119. Se invece usiamo la norma
infinito abbiamo M = 0.194396.
La velocit di convergenza R pu essere quindi stimanta appli-
cando la formula R = log10 ( M ) e abbiamo il valore 0.679607
o 0.711313 a seconda che consideriamo la stima di M ottenuta
mediante la norma euclidea o la norma infinito.

9.8 Domande di riepilogo

1. Quale la definizione di norma di vettori?

2. Quali sono le prinicipali norme che abbiamo studiato?

3. Come si definiscono le norme su matrici?

4. Cosa significa che una norma su matrici compatibile con una


norma su vettori?

5. Cosa significa che una norma su matrici indotta da una norma


su vettori?

6. Definire le norme 1 e infinito.

7. Dare la definizione di norma di Frobenius.

8. Cosa la traccia di una matrice?

9. Come si definiscono gli autovalori e autovettori di una matrice?

10. Una matrice di dimensione n, quanti autovalori possiede?

11. Che relazione c tra gli autovalori di una matrice e la sua traccia
e determinante?

12. Cosa il raggio spettrale di una matrice?

13. Come si definisce la norma 2 su vettori?

14. Che relazione esiste tra il raggio spettrale di una matrice e una
norma naturale su matrice?

15. Come si possono definire i metodi iterativi classici per risolvere


sistemi lineari? In quale forma possono essere scritti?
appunti di calcolo numerico 157

16. Che differenza c tra un metodo diretto e un metodo iterativo


per la soluzione di sistemi lineari?

17. Che cosa significa che una matrice sparsa?

18. Definire il residuo.

19. Mettere in relazione un metodo iterativo con lo schema di punto


fisso.

20. Qual il teorema generale di convergenza per i metodi iterativi


classici? Quale caso particolare abbiamo dimostrato?

21. Come si definisce la velocit asintotica di convergenza e a cosa


serve?

22. In un grafico di convergenza in scala semilogaritmica sullasse


delle ordinate, in cui sullasse delle ascisse si pone il numero
delle iterazioni effettuate e sullasse delle ordinate i logaritmi della
norma del vettore degli scarti ad ogni iterazione, cosa rappresenta
la pendenza della retta del profilo di convergenza?

23. Che ordine di convergenza hanno i metodi iterativi classici?

24. Come si definisce la costante asintotica di convergenza e in quale


modo pu essere stimata?

25. Descrivere il metodo di Jacobi, partendo dal sistema da risolvere


e scomponendo la matrice del sistema nelle tre matrici L, D, U.
(Queste tre matrici sono le stesse della fattorizzazione LDU?)

26. Come si scrive la matrice di iterazione del metodo di Jacobi?

27. Descrivere il metodo di Gauss-Seidel, partendo dal sistema da


risolvere e scomponendo la matrice del sistema nelle tre matrici L,
D, U.

28. Come si scrive la matrice di iterazione del metodo di Gauss-


Seidel?

29. Cosa significa effettuare un rilassamento tramite un fattore ?


Quale dei due metodi che abbiamo studiato viene rilassato? Come
diventa lo schema iterativo? Quale la matrice di iterazione che si
ricava?

30. Quali sono i teoremi di convergenza per i metodi di Jacobi e di


Gauss-Seidel che abbiamo enunciato?

31. Per quali valori di certo che il metodo di rilassamento non


pu convergere? Per quale motivo?

32. Quale la condizione necessaria (ma non sufficiente) di conver-


genza per il metodo di rilassamento? Per quale motivo?

33. Quali teoremi abbiamo visto che assicurano la convergenza del


metodo di rilassamento?
158 annamaria mazzia

34. Cosa significa che una matrice biciclica o con propriet A?

35. Cosa significa che una matrice coerentemente ordinata?

36. Abbiamo studiato alcune matrici che sono sia bicicliche sia coe-
rentemente ordinate: quali sono?

37. Cosa assicura il teorema di Young e sotto quali ipotesi?


10 Problemi non lineari in pi va-
riabili

Ho affermato che le matematiche sono mol-


10.1 Due problemi da due diversi ambiti dellingegne- to utili per abituare la mente a un raziocinio
esatto e ordinato; con ci non che io creda
ria necessario che tutti gli uomini diventino dei
matematici, ma quando con questo studio
hanno acquisito il buon metodo di ragionare,
essi lo possono usare in tutte le altri parti del-
le nostre conoscenze.
Diversi problemi che si incontrano nei pi svariati campi dellin- John Locke

gegneria vanno risolti con tecniche numeriche molto pi complicate


rispetto a quelle viste fino ad ora. In questo capitolo cercheremo di
utlizzare le conoscenze gi fatte e di ampliarle proprio per risolvere
problemi realistici che richiedono maggiori attenzioni.

G In ingegneria chimica, lanalisi dei processi chimici di separazione,


di miscelazione e dei reattori chimici (un esempio: la cattura di
anidride carbonica con lutilizzo di sorbenti solidi in un reattore
di assorbimento) si basa sulle equazioni di bilancio di materia e
di energia totale, cio la somma dellenergia interna e dellenergia
meccanica. Da un punto di vista matematico, questi bilanci sono
rappresentati da un sistema di equazioni alle derivate ordinarie, in
cui la variabile indipendente data dal tempo. In condizioni di
stazionariet (eliminando quindi la dipendenza dal tempo), queste
equazioni diventano un sistema algebrico di equazioni non lineari
in pi variabili. Come risolverlo? Una strada utilizzare il metodo
di Newton per sistemi di pi variabili. Ed quello che faremo noi!

G In ingegneria aerospaziale, un problema molto attuale legato


alla misura della posizione di un punto rispetto a un sistema di
riferimento implicitamente definito dalle coordinate di un certo
numero n di punti noti (pensiamo al sistema GPS, basato su un
certo numero di satelliti, per poter determinare la posizione di
un punto). Una tecnica utilizzata in questo ambiti data dallin-
tersezione inversa e dai minimi quadrati, che vengono applicati
mediante una linearizzazione, come vedremo nel seguito.

Vediamo, dunque, che si tratta di allargare il campo delle cono-


scenze gi fatte:

G come usare il metodo di Newton-Raphson studiato per trovare


gli zeri di una funzione se ora abbiamo pi funzioni e queste
dipendono da pi variabili?
160 annamaria mazzia

G come applicare la tecnica di approssimazione ai minimi quadrati


su un problema pi complicato della retta di approssimazione, che
abbiamo gi visto?

In questo capitolo, cercheremo di rispondere a queste due domande.

10.2 Metodo di Newton per sistemi di equazioni in pi


variabili

Consideriamo, per semplicit, un sistema di due equazioni in due


incognite

f (x , x ) = 0
1 1 2
f 2 ( x1 , x2 ) = 0

Questo stesso sistema si pu scrivere in forma vettoriale come f(x) =


0 dove x = ( x1 , x2 ) T e f(x) = ( f 1 (x), f 2 (x)) T .

Esempio Consideriamo il sistema di equazioni in cui f 1 ( x1 , x2 ) =


9x12 + 4x22 36 e f 2 ( x1 , x2 ) = x12 x2 1. Lequazione f 1 ( x1 , x2 ) = 0
rappresenta lequazione di unellisse, mentre lequazione f 2 ( x1 , x2 ) =
0 descrive la parabola x2 = x12 1
Dalla figura 10.1, si vede come la parabola e lellisse si intersecano
in due punti, 1 e 2 di coordinate date, in maniera approssimata,
dai valori 1 (1.65, 1.71) e 2 (1.65, 1.71). Daltra parte, non
difficile trovare in maniera analitica le radici del sistema proposto Figura 10.1: Lintersezione di unellisse e di
una parabola.
9x2 + 4x2 36 = 0
1 2
x 2 x2 1 =0
1

Basta scrivere x2 in funzione di x1 nella seconda equazione e sostituire


nella prima.
sSi ricava facilmente che le soluzioni reali per x1 sono date

1 + 513
da x1 = = 1.64504951695277, da cui x2 = x12 1 =
8
1.70618791322653. Le radici del sistema corrispondono ai punti di Ricordiamo che, data una funzione di due
variabili f ( x1 , x2 ) la derivata parziale di f ri-
intersezione delle due curve. Non sempre, per, si riesce a trovare
spetto alla variabile x1 in un punto ( x1 , x2 ),
una soluzione analitica! Ed per questo che ci serve un metodo per f ( x1 , x2 )
che denotiamo come , altro non
trovarle numericamente. x1
che la derivata della funzione g( x1 ) =
_ f ( x1 , x2 ) nel punto x1 (consideriamo fissata
Vediamo, quindi, come possiamo generalizzare il metodo di Newton- la variabile x2 = x2 e facciamo variare solo
la x1 ). Allo stesso modo la derivata parzia-
Raphson. Nel seguito assumiamo che la funzione vettoriale f ammetta le della f rispetto alla variabile x2 nel punto
derivate parziali e che siano limitate almeno fino allordine due. f ( x1 , x2 )
( x1 , x2 ), che chiamiamo , la
Seguendo una strada del tutto analoga a quella percorsa per il x2
derivata della funzione h( x2 ) = f ( x1 , x2 )
metodo di Newton-Raphson per trovare le radici di unequazione nel punto x2 . Nel caso di una funzione vet-
(in una sola variabile), e come abbiamo fatto per i metodi iterativi toriale come f = ( f 1 , f 2 ) lipotesi che chie-
diamo sia soddisfatta che ciascuna delle
per sistemi lineari, cercheremo di costruire un metodo iterativo che, funzioni di cui composta, f 1 e f 2 , ammetta
partendo da un vettore iniziale x(0) generi una successione di vettori derivate parziali prime e seconde e queste
x(k) che converga alla soluzione esatta x del problema, per cui vale derivate siano continue e limitate.

la relazione f(x ) = 0. Il caso che stiamo studiando, per semplicit,


appunti di calcolo numerico 161

ha dimensione 2 (la funzione vettoriale e i vettori sono di dimensione


2), ma il discorso vale anche per problemi non lineari di dimensione
maggiore.
Quando abbiamo ricavato lo schema di Newton-Raphson per fun-
zioni scalari, abbiamo utilizzato la formula di Taylor. Ci serve, allora,
lanaloga formula per funzioni vettoriali (ci limitiamo a considerare
la formula per il caso particolare che stiamo esaminando).
Sia data, quindi, una funzione vettoriale f = ( f 1 , f 2 ) T , dove f 1 e
f 2 sono funzioni che dipendono dalle variabili ( x1 , x2 ), che possiamo
scrivere come vettore x = ( x1 , x2 ). Assumiamo che la funzione f
abbia le derivate continue e limitate almeno fino allordine 2. Allora,
(0) (0)
dati i vettori x(0) = ( x1 , x2 ) e x = x(0) + p, dove p = ( p1 , p2 ) un
vettore di direzione, la formula di Taylor di centro x(0) in x si pu
scrivere come

f(x(0) + p) = f(x(0) ) + J (x(0) )p + termini che dipendono dakpk2 .

dove k k una norma su vettori mentre J (x(0) ) la cosiddetta


matrice Jacobiana della funzione f in x(0) , i cui elementi sono dati
dalle derivate parziali prime delle componenti di f in x(0) :
(0) (0) (0) (0)

f 1 ( x1 , x2 ) f 1 ( x1 , x2 )

J ( x (0) ) = x1 x2

f 2 ( x (0) , x (0) ) f 2 ( x (0) , x (0) )

1 2 1 2
x1 x2
Componente per componente, la formula di Taylor diventa
(0) (0) (0) (0)
(0) (0) (0) (0) f 1 ( x1 , x2 ) f 1 ( x1 , x2 )
f 1 ( x1 + p1 , x2 + p2 ) = f 1 ( x1 , x2 ) + p1 + p2 + termini di ordine superiore
x1 x2
(0) (0) (0) (0)
(0) (0) (0) (0) f 2 ( x1 , x2 ) f 2 ( x1 , x2 )
f 2 ( x1 + p1 , x2 + p2 ) = f 2 ( x1 , x2 ) + p1 + p2 + termini di ordine superiore
x1 x2

Per capire la formula di Taylor in due dimensioni e, successivamen-


te, il metodo di Newton, conviene pensare al vettore x(0) come ad un
2
punto dello spazio R e a p come ad un vettore di direzione. Quando
ci muoviamo dal punto x(0) nella direzione data da p, arriviamo al
punto x(0) + p (si veda figura 10.2).
A questo punto, possiamo ricavare il metodo di Newton. Come
2
nel caso scalare, partiamo da un punto iniziale (questa volta in R )
x(0) e generiamo una successione di punti x(1) , x(2) , . . ., x(k) , . . . dove
il valore x(k+1) si ottiene applicando la formula di Taylor di centro
x(k) e secondo una direzione p scelta in questo modo: se da x(k)
volessimo arrivare in un solo passo alla soluzione esatta x , (dove vale
f(x ) = 0), basterebbe scegliere come direzione p la differenza tra x
e x(k) : p = x x(k) . In tal caso 0 = f(x ) = f(x(k) + p). Applicando
la formula di Taylor, avremmo

0 = f(x(k) + p) = f(x(k) ) + J (x(k) )p + termini di ordine superiore

Tuttavia, noi non conosciamo la soluzione esatta e quindi neanche


sappiamo la direzione p da considerare. Usiamo, per, la relazione
162 annamaria mazzia

Figura 10.2: Il vettore x(0) , visto come punto,


la direzione data da p e il vettore x(0) + p,
visto come punto.

precedente per definire una direzione p(k) che ci permetta di costruire


la nuova approssimazione x(k+1) . Trascurando i termini di ordine
superiore e richiedendo

f ( x(k) ) + J ( x(k) ) p(k) = 0

possiamo trovare la direzione p(k) in modo tale che la nuova appros-


simazione sia il vettore dato da x(k+1) = x(k) + p(k) .
Il ragionamento che abbiamo fatto stato molto simile a quello
per il metodo di Newton-Raphson per funzioni scalari. Solo che
ora stiamo lavorando con vettori e per trovare la nuova direzione
p(k) dobbiamo risolvere un sistema (questa volta lineare perch i
coefficienti della matrice J sono valutati in un vettore assegnato)

J ( x(k) ) p(k) = f ( x(k) )

Osserviamo subito che non assicurato che la matrice Jacobiana sia


sempre non singolare, per qualunque scelta di x(k) (e quindi non
detto che possiamo sempre risolvere il sistema precedente). Tuttavia,
nei vettori soluzione del sistema da risolvere e in un intorno di essi, il
determinante della matrice Jacobiana diverso da zero: ci assicura
che possiamo utilizzare questo metodo localmente.
Lalgoritmo di Newton per trovare le radici di sistemi non lineari
diventa quindi

G Partire da unapprossimazione iniziale x(0)

G Per k = 0, 1, 2, . . . fino a convergenza

Risolvere il sistema J (x(k) )p(k) = f(x(k) )


Porre la nuova approssimazione x(k+1) = x(k) + p(k)

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

Esempio Riprendiamo lesempio di pag. 160. La matrice


jacobiana data da
!
18x1 8x2
J (x) =
2x1 1

Se consideriamo x(0) = (0, 0) T , la matrice jacobiana ha determinante


uguale a zero, quindi non possiamo applicare il metodo partendo da
questo punto.
Partiamo invece da x(0) = (1, 1) T : il metodo converge alla soluzio-
ne 1 . Ecco i valori che troviamo, per ogni iterazione, della norma
euclidea di p(k) e di f(x(k) ) e delle componenti del vettore x(k) .

(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

Se, invece, partiamo da x(0) = (0.5, 1) T , il metodo converge a 2 ,


come possiamo vedere dalla tabella:

(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

in un intorno di x , quindi per kx x(k) k sufficientemente piccoli.


Nellesempio precedente, si pu vedere convergenza quadratica
utilizzando gli scarti al posto degli errori:

k x ( k +1) x ( k ) k M k x ( k ) x ( k 1) k 2
164 annamaria mazzia

10.3 Minimi quadrati non lineari

Il problema dellapprossimazione ai minimi quadrati, che abbiamo


visto brevemente al Capitolo 7, molto vasto e richiederebbe un
approfondimento che non pu essere fatto in un semplice corso di
Calcolo Numerico. Proprio per questo, ora affronteremo solo un
aspetto dei minimi quadrati non lineari, applicandolo direttamente al
problema che vogliamo affrontare.
Il sistema GPS (Global Positioning System) permette di determinare
la posizione di un ricevitore utilizzando le distanze misurate rispetto
a punti dalle coordinate note. Questi punti dalle coordinate note sono
i satelliti, che trasmettono un segnale in direzione della terra.
Un ricevitore GPS misura il tempo richiesto da un segnale per
propagarsi da un satellite GPS fino al ricevitore stesso. Poich il
segnale viaggia alla velocit della luce, lintervallo di tempo pu essere
convertito in distanza moltiplicandolo per la velocit della luce stessa.
In assenza di errori (quindi sincronizzazione perfetta tra lorologio
presente nel ricevitore e quello nel satellite, mancanza di ionosfera e
troposfera, che, invece, rallentano larrivo del segnale, ...), una misura
di questo tipo ci permette di avere informazioni sulla posizione del
ricevitore: esso deve trovarsi in qualche punto della superficie della
sfera centrata nel satellite e con raggio uguale alla distanza misurata.
Chiamiamo questa distanza d1 . Se, contemporaneamente, un secondo
satellite invia un segnale allo stesso ricevitore, allora il ricevitore deve
trovarsi anche da qualche parte sulla superficie sferica con centro
nel secondo satellite e raggio dato dalla distanza misurata, d2 . Le
due superfici sferiche, quindi, si intersecano e sulla circonferenza
generata dalla loro intersezione si trover il nostro ricevitore. Un
terza e simultanea misura, d3 , data da un terzo satellite, d una terza
superficie sferica che interseca le altre due in soli due punti: uno di
questi punti pu essere eliminato subito perch non si trova sulla
terra e rimane quindi un solo punto, che permette di identificare la
posizione del ricevitore. Quanto abbiamo appena detto vale in linea
teorica, in condizioni ideali. Infatti, in genere, lorologio atomico
presente nel ricevitore GPS e gli orologi presenti nei satelliti non
sono sincronizzati perfettamente. Gli stessi orologi nei satelliti sono
sincronizzati luno con laltro con un certo errore che, per quanto
piccolo (un millisecondo) esiste. Gli intervalli di misura del ricevitore
sono affetti, quindi, da errori e, per questo motivo, sono chiamati
pseudoranges. Un errore di tempo in termini di millisecondi pu dare
un errore nella posizione di circa 300 chilometri e questo, chiaramente,
un errore troppo grande!
Le misure osservate, inoltre, sono affette da errori anche di altra
natura, come gli effetti della ionosfera e troposfera, lerrore di misura
del ricevitore stesso, errori di orbita ... Nella pratica, dunque non
bastano le distanze prese rispetto a tre satelliti, ma ne occorrono molte
di pi, per cercare di individuare le coordinate del ricevitore, tenendo
in conto il fatto che le misure sono affette da errore. Semplifichiamo
appunti di calcolo numerico 165

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

Abbiamo n equazioni non lineari in due incognite ( x0 , y0 ). Per ri-


solvere questo problema si minimizza la somma dei quadrati delle
differenze tra il valore della distanza misurata e il valore della distanza
esatta, vale a dire
n  q 2 n
S ( x0 , y0 ) = di ( x i x0 )2 + ( y i y0 )2 (= ei2 )
i =1 i =1

Questa funzione assomiglia alla funzione S( a0 , a1 ) che avevamo co-


struito per ottenere la retta di regressione lineare ai minimi quadrati.
Una differenza fondamentale, tuttavia, che S( x0 , y0 ) non lineare.
p
Andiamo allora a considerare la funzione i ( x, y) = ( xi x )2 + (yi y)2 ,
p
per i = 1, 2, . . . , n. Osserviamo che i ( x0 , y0 ) = ( xi x0 )2 + (yi y0 )2 :
la distanza esatta tra il punto P0 e il punto Pi , da cui di = i ( x0 , y0 ) +
ei .
Consideriamo un valore provvisorio noto di coordinate ( x, y) vicino
a ( x0 , y0 ) in modo da poter linearizzare la funzione i ( x, y), appli-
cando la formula di Taylor di centro ( x, y) e trascurando i termini di
ordine superiore. Si ha Abbiamo la formula di Taylor applicata ad
ununica funzione che dipende da due
i ( x, y) ( x, y) variabili.
i ( x, y) = i ( x, y) + (x x) + i (y y)
x y

Allora
i ( x, y) ( x, y)
i ( x0 , y0 ) = i ( x, y) + ( x0 x ) + i ( y0 y )
x y

Per i = 1, . . . , n, la differenza bi = di i ( x, y) data da

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)

Le derivate parziali sono, per i = 1, . . . , n:


p
i ( x, y) ( xi x )2 + (yi y)2 ( xi x ) (x x)
= ( x,y)=( x,y) = p = i
x x 2
( xi x ) + ( yi y ) 2 i ( x, y)
p
i ( x, y) ( xi x )2 + (yi y)2 ( yi y ) (y y)
= ( x,y)=( x,y) = p = i
y y 2
( xi x ) + ( yi y ) 2 i ( x, y)
166 annamaria mazzia

Consideriamo, ora, il vettore b = (b1 , b2 , . . . , bn ) T , il vettore e =


(e1 , e2 , . . . , en )T e la matrice A di n righe e 2 colonne data da
1 ( x, y) 1 ( x, y)

x y
2 ( x, y) 2 ( x, y)


A= x y

...

n ( x, y) n ( x, y)
x y

Dalla relazione (10.1), introducendo il vettore = ( x0 x, y0 y) T


abbiamo

A + e = b o, quivalentemente, e = b A

Se andiamo a riprendere la funzione S( x0 , y0 ) da minimizzare,


abbiamo S( x0 , y0 ) = in=1 ei2 . In termini vettoriali, S si pu anche
scrivere come S = e T e, e, dal momento che e dipende da , risulta
Per ricavare le derivate di una funzione vet-
che S funzione del vettore : toriale, consideriamo un vettore y di dimen-
sione m, che funzione di un vettore che
S( ) = (b A ) T (b A ) chiamiamo x, di dimensione n, tramite la re-
lazione y = (x). Per definizione, la deri-
Sviluppando abbiamo vata
y
data dalla matrice che ha come
x
elemento di posto (i, j) la derivata parziale
S( ) = b T b b T A T A T b + T A T A yi
(i = 1, . . . , m, j = 1, . . . , n).
x j
La quantit b T A scalare e, quindi, coincide con la sua trasposta, Data una matrice A, di dimensione m
n
da cui b T A = (b T A ) T = T A T b. Perci
G se y = Ax si ha
y
x
=A
S( ) = b T b 2 T A T b + T A T A Si prova questo risultato considerando
yi
che yi = nj=1 aij x j da cui = aij ,
Per trovare il minimo di S dobbiamo imporre uguale a zero la sua x j
per i = 1, . . . , m e j = 1, . . . , n da cui
derivata rispetto al vettore , vale a dire rispetto a ciascuna sua otteniamo la matrice A.
componente. Poich b T b uno scalare che non dipende da , la sua
derivata vale zero; quando deriviamo T A T b, si ha A T b, mentre la
G se = y T Ax si ha

x
= yT A
Infatti, se poniamo w = y T A, w T pu
T
derivata di T A T A vale 2 T A T A = 2( T A T A) T = 2A T A, da cui essere visto come una matrice di dimen-
sione 1 n, da cui = w T x e, per il
S( )
= 2A T b + 2A T A caso precendente, si ha

= wT =
x
y T A.
Poniamo questa derivata uguale a zero G se = x T Ax, con A matrice n n,

allora = x T ( A + A T ) Infatti =
S( ) x
= 0 2A T A = 2A T b A T A = A T b n n
i=1 j=1 aij xi x j Quindi

n n

Per ricavare il vettore che minimizza S, dobbiamo dunque risolvere = aki xi + a jk x j
xk i =1 j =1
questo sistema dove la matrice A T A una matrice 2 2. Dal vettore
per k = 1, 2, . . . , n.
possiamo ricavare i valori x0 e y0 (le coordinate del ricevitore GPS). In forma compatta, ci significa
Perch il sistema abbia soluzione, la matrice deve essere non singolare:

questa condizione assicurata se le distanze prese sono linearmente = xT AT + xT A = xT ( AT + A)
x
indipendenti, cio i punti ( xi , yi ), i = 1, . . . , n non si trovano lungo
G se A simmetrica, la derivata di =
una stessa retta passante per il punto ( x0 , y0 ). x T Ax diventa, di conseguenza,

=
x
2x T A
Esempio In Figura 10.3 sono evidenziati in blu n = 6 punti noti
(che corrispondono alle coordinate dei satelliti, in due dimensioni).
appunti di calcolo numerico 167

Il puntino rosso rappresenta il punto provvisorio ( x, y), grazie al


quale possiamo calcolare le distanze effettive rispetto agli n punti
precedenti.
Gli n punti hanno coordinate (espresse in chilometri) date, rispetti-
vamente, da

(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)

5, 2.83, 3.16, 11.66, 9.48, 31.24

Con questi dati a disposizione, siamo in grado di calcolare le distanze


i ( x, y) e successivamente la matrice A. Applicando il metodo ai
minimi quadrati linearizzato, si ottiene come matrice A T A la matrice
data da
!
T 3.50953 0.89221
A A=
0.89221 2.49047

Il vettore A T b ha componenti (0.111826, 0.065088) T , da cui, risol-


vendo il sistema, si ricava = (0.042366, 0.041313) T . Le coordinate
( x0 , y0 ) sono dunque date da ( 1 + x, 2 + y) cio da (3.997634, 5.001312).

_
11 Integrazione numerica

Dio non si preoccupa delle nostre difficolt


11.1 Integrazione numerica e giri di pista... matematiche. Lui integra empiricamente.
Albert Einstein

Unautomobile effettua il giro di una pista in 84 secondi. La velocit


dellauto viene misurata ogni 6 secondi usando unapparecchiatura t v
0 38
radar per il controllo della velocit, ricavando i valori che si trovano
6 41
in Tabella 11.1. 12 45
In base ai dati in possesso, quanto lunga la pista? 18 48
ds 24 45
Sapendo che la velocit v data da v(t) = (dove s rappresenta 30 41
dt 36 37
lo spostamento e t il tempo), per calcolare la lunghezza della pista
42 33
(data dallo spostamento effettuato dallauto), dobbiamo integrare la 48 30
velocit tra il tempo iniziale e quello finale. 54 26
60 24
Z 84 Z s(84) Z s(84)
ds 66 27
v(t)dt = dt = ds 72 32
0 s (0) dt s (0)
78 35
Essendo s(0) = 0 e s(84) = L la lunghezza della pista, si ha 84 37
Tabella 11.1: Dati della velocit misurati ogni
Z 84 Z s(84)
6 secondi. Il tempo (t) espresso in secondi
v(t)dt = ds = L e la velocit (v) data in metri al secondo.
0 s (0)

Quindi, se riusciamo a risolvere lintegrale in cui la funzione inte-


granda la velocit, per le uguaglianze date, sapremo dire quanto
vale L.
Sfruttando i dati della velocit misurati ogni 6 secondi, dobbiamo
essere in grado di poter risolvere numericamente questo integrale.
In questo Capitolo studieremo come fare. Ci occuperemo, infatti,
di approssimare lintegrale definito
Z b
I= f ( x )dx
a
dove f una funzione definita nellintervallo [ a, b] (e f pu essere nota
oppure data su determinati punti dellintervallo, come nellesempio
appena visto).
Una formula di integrazione numerica (detta anche formula di
Rb
quadratura numerica) approssima lintegrale esatto I = a f ( x )dx
mediante la sommatoria data da nj=0 a j f ( x j ):
Z b n
I=
a
f ( x )dx aj f (xj )
j =0

dove x j , j = 0, . . . , n sono le ascisse o punti di appoggio della formula


di quadratura e a j sono i pesi della formula.
170 annamaria mazzia

11.2 Formula dei trapezi

Consideriamo la retta che interpola la f negli estremi dellintervallo di


integrazione. Per semplicit, seguiamo costruiamo la retta partendo
dalla tabella delle differenze divise di Newton:
a f ( a)
f (b) f ( a)
b f (b)
ba
Il polinomio di interpolazione (retta) che interpola la f in a e in b (gli
estremi dellintervallo di integrazione) dato da

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

Poich il prodotto ( x a)( x b) ha segno costante in [ a, b], per il


teorema del Valor Medio del calcolo integrale (si veda il Teorema 3.6.6)
si ha
( b a )3
Z b Z b
1 1 00 1
( x a)( x b) f 00 ( x ))dx = f ( ) ( x a)( x b)dx = f 00 ( )
2 a 2 a 2 3!
dove un punto interno allintervallo [ a, b], incognito ma che non
dipende pi da x!
Possiamo dunque scrivere,

( 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

La formula dei trapezi approssima lintegrale di f in [ a, b] me- Se la funzione f ( x ) 0 si pu vedere fa-


diante lintegrale della retta passante passante per i punti ( a, f ( a)) cilmente che lintegrale della retta che passa
per i punti ( a, f ( a)) e (b, f (b)), altro non
e (b, f (b)): che larea del trapezio sottesa alla corda pas-
Z b sante per f ( a) e f (b). Da qui il nome della
ba formula come formula dei trapezi.
I= f ( x )dx Itrap = [ f ( a) + f (b)]
a 2

Figura 11.1: Formula dei trapezi: lintegrale


della funzione f (zona tratteggiata in blu) vie-
ne approssimata mediante larea del trapezio
sotteso alla retta di interpolazione per f ( a) e
f (b) (zona verde).

11.3 Formule di Newton-Cotes

Se, al posto di una retta, prendiamo come funzione interpolante


la f un polinomio di grado pi elevato, otterremo altre formule di
quadrature.
Supponiamo di poter valutare la f in n + 1 punti x0 , x1 , . . . , xn
e costruiamo il polinomio interpolatore di grado n utilizzando la
formula di Lagrange.
172 annamaria mazzia

Avremo pn ( x ) = in=0 f ( xi ) Li ( x ), dove i polinomi di Lagrange


sono dati dalla nota formula
n x xj
Li ( x ) = xi x j
j =0
j 6 =i

x j = x0 + jh, con j = 0, 1, . . . , n e per un generico punto x compreso


tra x0 e xn vale x = x0 + sh con 0 s n, s numero reale.
Quindi x x j = x0 + sh ( x0 + jh) = (s j)h e xi x j = (i j)h,
da cui il polinomio di Lagrange si pu scrivere come
n
sj
Li ( x ) = ij = Li ( s )
j =0
j 6 =i

Scrivere il polinomio di Lagrange in funzione di s e non di x ci libera


dallintervallo [ a, b] in cui dobbiamo integrare e tiene conto soltanto
del grado del polinomio che viene considerato.
Infatti, tenendo conto che, f ( x ) = pn ( x ) + E( x ) dove E( x ) lerrore
della formula di interpolazione, passando allintegrale, abbiamo
Z b Z b Z b
f ( x )dx = pn ( x )dx + E( x )dx
a a a

Il primo integrale a secondo membro rappresenta la formula che


approssima lintegrale della f mentre il secondo integrale rappresenta
lerrore della formula di quadratura.
La formula di quadratura quindi data dal valore dellintegrale di
pn :
Z b Z b n n Z b
I=
a
f ( x )dx
a i =0
f ( xi ) Li ( x )dx = f ( xi )
a
Li ( x )dx
i =0

La formula di quadratura ha dunque come nodi i punti xi e come


Rb
pesi gli integrali a Li ( x )dx.
Gli estremi a e b variano al variare dellintegrale da approssimare,
ma se vogliamo utilizzare un polinomio di grado n, allora, ponendo,
x0 = a e xn = b e tenendo presente che Li ( x ) = Li (s) con x = x0 + sh,
Rb
possiamo fare un cambiamento di variabile negli integrali a Li ( x )dx.
Dal momento che dx = hds abbiamo
Z b Z xn Z n Z n
Li ( x )dx = Li ( x )dx = Li (s)hds = h Li (s)ds
a x0 0 0

La traccia dellintervallo di integrazione in h, mentre lintegrale


da fare non dipende ora dallintervallo [ a, b]. Questo permette di
calcolare una volta per sempre questi integrali e dare una formula di
integrazione numerica.
Infatti Roger Cotes (1682-1716) fu un matematico
inglese che lavor molto con Isaac Newton,
Z b n Z n
in particolare per la correzione del suo fa-
I= f ( x )dx h f ( xi ) Li (s)ds moso libro Principia. Egli invent le formule
a i =0 0
di quadratura che prendono il suo nome e
per primo introdussse quella che oggi cono-
Definiamo coefficienti di Newton-Cotes le espressioni sciamo come formula di Eulero, per cui e x =
cos ( x ) + i sin ( x ) nel campo complesso.
appunti di calcolo numerico 173

Z n
(n) 1
Ci = Li (s)ds i = 0, 1, . . . , n
n 0

La formula precedente si scrive, quindi, come


Z b n n
f ( x )dx nh f ( xi )Ci = ( xn x0 ) f ( xi )Ci
(n) (n)
I= (11.1)
a i =0 i =0

Lerrore della formula di quadratura dato da


Z b Z b ( n +1)
f ( x )
Eint = E( x )dx = ( x x0 )( x x1 ) ( x xn )dx
a a ( n + 1) !

Dato un polinomio di interpolazione di grado n mediante il pro-


cedimento di Lagrange dunque possibile ricavare una formula di
quadratura numerica che prende il nome di formula di Newton-Cotes.
Per quanto riguarda lerrore si pu osservare che le formule ottenute
con un valore n dispari (cui corrisponde un numero n + 1 pari di
punti di appoggio) solo leggermente inferiore alle formule di ordine
pari che le precedono immediatamente (cui corrisponde un numero
dispari di punti di appoggio).
Per questo motivo le formule di ordine pari sono le pi usate.
Osserviamo che per f ( x ) 1, qualunque sia il grado del polinomio
utilizzato nelle formule di Newton-Cotes, lerrore di integrazione sar
zero. Applicando lequazione (11.1) nellintervallo [ a, b] [0, 1] si ha
Z 1 n
Ci
(n)
1= dx =
0 i =0

Troviamo che la somma dei coefficienti di Newton-Cotes vale 1.

Formula di Newton-Cotes con n = 1. Per n = 1 (ci sono due punti di


appoggio, x0 e x1 ) i coefficienti di Cotes sono quelli gi ricavati nella
formula dei trapezi

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

e la formula di integrazione diventa, appunto, la formula dei


trapezi
Z b 1
f ( x0 ) + f ( x1 )
f ( x )dx h f ( xi )Ci
(1)
I= = ( x1 x0 )
a i =0
2

11.3.1 Formula di Cavalieri-Simpson

Considerando n = 2 (quindi 3 punti di appoggio nellintervallo [ a, b],


a+b
x0 = a, x1 = e x2 = b, i due estremi dellintervallo e il punto
2
174 annamaria mazzia

centrale) la formula di quadratura prende il nome di formula di


Cavalieri-Simpson Bonaventura Francesco Cavalieri (1598-
1647) fu un matematico italiano. Studi teolo-
gia e geometria. Lavor su problemi di ottica
1 2
Z
1 2
Z
(s 1)(s 2) 1 e di cinematica. famoso soprattutto per il
(2)
C0 = L0 (s)ds = ds = cosiddetto principio di Cavalieri.
2 0 2 0 (1)(2) 6 Thomas Simpson (1710-1761) fu un ma-
1 2 1 2 (s)(s 2) 4 tematico britannico, inventore della formula
Z Z
(2)
C1 = L1 (s)ds = ds = di quadratura per il calcolo di integrali defi-
2 0 2 0 (1)(1) 6 niti, sebbene questa formula fosse stata gi
1 2 1 2 (s)(s 1) 1
Z Z
(2) scoperta 200 anni prima da Keplero e pare
C2 = L2 (s)ds = ds = fosse usata anche da Cavalieri nel 1639 e
2 0 2 0 (2)(1) 6
poi riscoperta da James Gregory. I suoi studi
riguardano anche lastrologia.

La formula di Cavalieri-Simpson approssima lintegrale della f con-


a+b
siderando come nodi x0 = a, x1 = c = e x2 = b e come pesi i
2
(2) 1 (2) 4 (2) 1
coefficienti di Cotes C0 = , C1 = , C2 = , ottenendo:
6 6 6
Z b 2
f ( a) 4 f (c) f (b)
f ( x )dx ICS = ( x2 x0 ) f ( xi )Ci
(2)
I= = (b a)( + + )
a i =0
6 6 6
ba
= ( f ( a) + 4 f (c) + f (b))
6
Osserviamo che i valori dei coefficienti di
Newton-Cotes sia per n = 1 che per n = 2
Con la formula di Cavalieri-Simpson, dunque, lintegrale della f
sono simmetrici. Questo risultato va genera-
viene approssimato con lintegrale della parabola passante per i due lizzato a qualunque scelta di n: i coefficienti
estremi a e b e per il punto centrale dellintervallo. di Newton-Cotes sono simmetrici.

Figura 11.2: Formula di Cavalieri-Simpson:


lintegrale della funzione f (zona tratteggiata
in blu) viene approssimata mediante larea
della regione sottesa alla parabola passante
per f ( a), f (c) e f (b) (zona verde).

Per quanto riguarda lerrore che si commette approssimando lin-


tegrale della f con la formula di Cavalieri-Simpson, consideriamo,
seguendo lapproccio visto per la formula dei trapezi, lintegrale
dellerrore del polinomio di interpolazione di Lagrange.
Per il polinomio di secondo grado p2 che interpola la f , lerrore
f 000 ( x )
dato da E( x ) = ( x a)( x c)( x b).
3!
appunti di calcolo numerico 175

Quando facciamo lintegrale, lerrore nellapprossimare lintegrale


esatto con la formula di Cavalieri-Simpson dunque dato da
Z b 000
f ( x )
Eint = ( x a)( x c)( x b)dx
a 3!
Questa volta, la funzione ( x a)( x c)( x b) cambia segno allinter-
no dellintervallo [ a, b] e non possiamo pi applicare il teorema del
Valor Medio come nella formula dei trapezi. In maniera pi laboriosa,
tuttavia, si ricava per lerrore la seguente formula:
f IV (u) b a 5 f IV (u)
 
Eint = = ( b a )5
90 2 2880
dove u un opportuno punto dellintervallo ] a, b[.

11.3.2 Sullerrore della formula di Cavalieri-Simpson

Per capire lerrore che si ha nella formula di Cavalieri-Simpson,


deduciamo la stessa formula seguendo unaltra strada.
Per semplificare il discorso, scegliamo lintervallo [ a, b] simmetrico
rispetto allorigine, quindi del tipo [t, t] con t R, sapendo che,
se non fosse cos, basta applicare una traslazione dellasse x per
ricondursi a questo caso. Scriviamo il polinomio di interpolazione
che passa per i punti t, 0 e t e che interpola anche la derivata prima
della f in 0.
Mediante la tabella delle differenza divise, il punto 0 va contato
due volte e si ha:
t f (t)
f (0) f (t)
0 f (0)
t
f (0) f (t)
f 0 (0) t f 0 (0) f (0) + f (t)
0 f (0) 0
f (0) t =
t t2
f ( t ) f (0)
f ( t ) f (0) f 0 (0) f ( t ) f (0) t f 0 (0) f (t) 2t f 0 (0) f (t)
t f (t) t =
t t t2 2t3
Il polinomio di interpolazione , dunque
f (0) f (t) t f 0 (0) f (0) + f (t) f (t) 2t f 0 (0) f (t)
p( x ) = f (t) + ( x + t) + ( x + t ) x + ( x + t) x2
t t2 2t3
Lerrore di interpolazione per questo polinomio di grado 3 vale
f ( IV ) ( x )
E( x ) = ( x + t) x2 ( x t)
4!
Quindi da f ( x ) = p( x ) + E( x ), andando a integrare tra t e t si
ha:
Z t Z t Z t
f ( x )dx = p( x )dx + E( x )dx
t t t
Nellintegrazione del polinomio p( x ) facile vedere che i termini
che dipendono da f 0 (0) portano un contributo nullo. Infatti
Z t  0
f 0 (0)
Z t 0
x3
  
f (0) f (0)
( x + t) x 2 ( x + t) x2 dx = x2 + tx x2 dx
t t t t t t
t
f 0 (0) x 2 x4
 
= t =0
t 2 4t t
176 annamaria mazzia

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.

11.4 Formule composte

Le formule di Newton-Cotes non vanno bene su intervalli molto ampi


perch per avere risultati pi accurati dovremmo utilizzare formule
di grado elevato (in modo da utilizzare un numero elevato di punti
di appoggio). Ci sono vari motivi che sconsigliano questa procedura:

G i valori dei coefficienti in formule di grado elevato sono difficili


da ottenere;

G le formule di Newton-Cotes, essendo basate su polinomi di in-


terpolazione con nodi equidistanti, danno risultati inaccurati su
intervalli ampi a causa della natura oscillatoria dei polinomi di
grado elevato.
Conviene dunque utilizzare formule di grado basso ma scompo-
nendo lintervallo di integrazione in pi sottointervalli e, in ciascuno
di essi, applicare la stessa formula.
Sfruttiamo il fatto che se lintervallo [ a, b] viene diviso in n sottoin-
tervalli in modo che [ a, b] = [ a, x1 ] [ x1 , x2 ] [ x2 , x3 ] . . . [ xn1 , b],
allora
Z b Z x Z x2 Z x3 Z b
1
f ( x )dx = f ( x )dx + f ( x )dx + f ( x )dx + . . . + f ( x )dx
a a x1 x2 x n 1
appunti di calcolo numerico 177

Su ciascuno intervallo [ xi1 , xi ] per i = 1, 2, . . . , n, approssimiamo


lintegrale della f mediante una formula di quadratura pi semplice,
utilizzando pochi punti.

11.4.1 Formula composta dei trapezi

Suddividiamo lintervallo [ a, b] in n sottointervalli definiti dai punti


dappoggio x0 , x1 , . . . , xn (per semplicit supponiamo i punti equidi-
ba
stanti con passo h = , in modo che x0 = a e xn = b, xi = x0 + ih,
n
i = 0, . . . , n).
Lintegrale su [ a, b] si pu dunque ottenere come somma degli
integrali su tali sottointervalli:
Z b n Z xi

a
f ( x )dx = f ( x )dx
i =1 x i 1

Ciascuno degli integrali su [ xi1 , xi ] viene approssimato utilizzan-


do la formula dei trapezi:

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

In forma estesa abbiamo

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

Figura 11.3: Formula composta dei trapezi,


utilizzando 3 sottointervalli (4 punti).
178 annamaria mazzia

11.4.2 Errore nella formula composta dei trapezi

Lerrore che si commette nella formula composta dei trapezi dato


dalla somma degli errori commessi sui singoli sottointervalli
n n
h3 h3
Eint = f 00 ( i ) 12 = f 00 ( i ) 12
i =1 i =1

Supponendo che la derivata seconda della f sia continua e limi-


tata in [ a, b] e chiamando con m e M rispettivamente il minimo e il
massimo di f 00 in [ a, b], si ha:

m f 00 ( i ) M i = 1, . . . , n

Considerando la somma di queste diseguaglianze, per i = 1, . . . , n si


ricava
n
in=1 f 00 ( i )
nm f 00 ( i ) nM = m
n
M
i =1

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

Sostituendo la relazione appena trovata nella formula dellerrore e


ba
ricordando che h = , si ricava
n
n
h3 h3 f 00 ( ) f 00 ( ) (b a)3
Eint = f 00 ( i ) = n f 00 ( ) = ( b a ) h2 =
i =1
12 12 12 12 n2
Da nh3 si ha n(b a)/nh2 = (b a) h2
o, in alternativa, nh3 = n(b a)3 /n3 =
Quindi per n lerrore tende a zero come h2 o, equivalente-
(b a)3 /n2 .
1
mente, come 2 .
n

11.4.3 Formula composta di Cavalieri-Simpson

Suddividiamo lintervallo [ a, b] in n sottointervalli di ampiezza co-


stante uguale a h e su ciascuno di questi sottointervalli applichiamo la
formula di Cavalieri-Simpson. Abbiamo, in questo modo, la formula
composta di Cavalieri-Simpson.
Su ogni intervallino, quindi, dobbiamo considerare gli estremi
dellintervallino e il punto centrale di esso.
a + bi
Siano ai e bi gli estremi di ciascuna suddivisione e sia ci = i
2
il punto medio di ciascuna suddivisione (per i = 1, . . . , n). In tal Lestremo superiore bi di ciascun interval-
lino, con i = 1, n 1 coincide con le-
modo, seguendo lo stesso ragionamento fatto per i trapezi si ha:
stremo inferiore dellintervallino successivo:
Z b Z b
1
Z b2 Z bn bi = a i + 1 .
f ( x )dx = f ( x )dx + f ( x )dx + . . . + f ( x )dx
a a1 a2 an
appunti di calcolo numerico 179

Applicando la formula di Cavalieri-Simpson su ciascun intervallino


risulta:
Z b
i bi a i h
f ( x )dx ( f ( ai ) + 4 f (ci ) + f (bi )) = ( f ( ai ) + 4 f (ci ) + f (bi ))
ai 6 6
In tal modo
Z b n
h Se gli intervallini non sono uniformi, la for-

a
f ( x )dx 6 ( f (ai ) + 4 f (ci ) + f (bi )) mula va scritta considerando il valore hi per
i =1 ciascun intervallino.

Si ha la formula composta di Cavalieri-Simpson.

Figura 11.4: Formula composta di Cavalieri-


Simpson, utilizzando 3 sottointervalli (7
punti).

Formula composta di Cavalieri-Simpson in forma compatta. Possiamo ve-


dere la formula composta di Cavalieri-Simpson anche in una forma
compatta. Considerando che, su ogni sottointervallo, dobbiamo pren-
dere il punto medio, facciamo una numerazione progressiva dei punti
di integrazione nel modo seguente:

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

11.4.4 Errore nella formula composta di Cavalieri-Simpson

Per quanto riguarda lerrore nella formula composta di Cavalieri-


Simpson, sar dato dall somma degli errori di integrazione sugli
n sottointervalli. Nellipotesi che la derivata quarta sia continua e
limitata, si ha: Ricordiamo che stiamo considerando sot-
tointervalli della stessa ampiezza h =
1 h 5 IV
 
ba
Eint = ( f ( 1 ) + f IV ( 2 ) + . . . + f IV ( n )) n
.
90 2
h5 n1 IV ( b a )5 n 1
=
2880 i=0
f ( i ) =
2880n5 f IV ( i )
i =0

Per arrivare a questi risultati, il ragionamen-


Si considera quindi il punto tale che to del tutto analogo a quanto stato fatto
n sulla derivata seconda nella formula compo-
1
f IV ( ) =
n f IV ( i ) sta dei trapezi. Questa volta, per, si deve
i =1 considerare la derivata quarta. Per eserci-
zio, si consiglia di ripetere tutti i passaggi per
Allora arrivare al risultato.
(b a)5 IV (b a)h4 IV
Eint = f ( ) = f ( )
2880n4 2880
1
Quindi per n lerrore tende a zero come 4 o, equivalentemente,
n
1
come h4 . Nella formula dei trapezi lerrore invece decresce come 2 .
n
Ci aspettiamo quindi che il maggiore sforzo computazionale dia una
maggiore accuratezza nei risultati quando si applica la formula di
Cavalieri-Simpson rispetto alla formula dei trapezi.

11.4.5 Confronti tra la formula dei trapezi e di Cavalieri-


Simpson

Esempio Consideriamo f ( x ) = e x . Sia a = 0 e b = 1.


Allora, per lintegrale esatto e per le formule dei trapezi e di
Cavalieri-Simpson, si ha, rispettivamente:
Z 1
I= e x dx = [e x ]10 = e 1 = 1.718281828
0
1
Itrap =(1 + e) = 1.859140914
2
1 1
ICS = (1 + 4e1/2 + e) = (1 + 6.594885083 + 2.718281828) = 1.718861152
6 6
La formula di Cavalieri-Simpson d il risultato migliore.
Sia ancora f ( x ) = e x ma gli estremi di integrazione siano a = 0.9 e
b = 1. Allora
Z 1
I= e x dx = e e0.9 = 0.2586787173
0.9
0.1 0.9
I Itrap = I (e + e) = 2.2 104
2
0.1 0.9
I ICS = I (e + 4e0.95 + e) = 9.0 109
6
appunti di calcolo numerico 181

Ora la formula di Cavalieri-Simpson si rivela particolarmente accurata.


Ci non deve sorprendere se si va a vedere la formula dellerrore, con
lampiezza dellintervallo che da 1 si ridotta a 0.1, per cui (b a)5
da 1 vale ora 105 . Considerato che f 00 = f e f IV = f , queste derivate
possono essere maggiorate dal valore assunto nellestremo superiore
dellintervallo, cio e. Quindi gli errori delle formule dei trapezi e di
Cavalieri-Simpson sono maggiorate da
e
| Etrap | (b a)3 = 2.265 101 (b a)3
12
e
| ECS | (b a)5 = 9.438 104 (b a)5
2880

Perci per a = 0 e b = 1 gli errori sono maggiorati da

| Etrap | 2.265 101


| ECS | 9.438 104

Invece per a = 0.9 e b = 1, poich b a = 0.1 = 101 , abbiamo

| Etrap | 2.265 101 103 = 2.265 104


| ECS | 9.438 104 105 = 9.438 109

Esempio Si voglia approssimare lintegrale un integrale che non pu essere risolto


analiticamente. Se si vuole calcolare
Z 1 una sua approssimazione senza fare
2
e x dx 0.746824. uso di formule di quadrature, possiamo,
0
ad esempio, pensare di applicare la
Rb
Suddividiamo lintervallo [0, 1] in 4 sottointervalli. Sia h = 1/4 = definizione di integrale a f ( x ) dx =
limn in=0
f ( a + ih(n)) h(n), con
0.25. Per la formula composta dei trapezi abbiamo h(n) = (b a)/n, e considerare come
approssimazione dellintegrale la somma
h 2 2 2 2 parziale in=0 f ( a + ih(n)) h(n) con
Itrap = [e0 + 2eh + 2e(2h) + 2e(3h) + e(4h) ]
2 un valore di n molto grande. Per esem-
2 2 2 pio, con n = 107 otteniamo il valore
= 0.125[1 + 2e0.125 + 2e0.5 + 2e0.75 + e1 ] 0.74682420125254.
= 0.742984

Applichiamo ora la formula di Cavalieri-Simpson su soli 2 sottointer-


valli, in modo da valutare la funzione negli stessi punti precedenti.
Lampiezza di ciascun sottointervallo dunque h = 0.5.

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

A parit di punti (e non di sottointervalli) la formula di Cavalieri-


Simpson pi accurata di quella dei trapezi.
182 annamaria mazzia

Invece considerando 4 sottointervalli nella formula di Cavalieri-


Simpson dobbiamo considerare anche i punti interni di ascisse 0.125, 0.375, 0.625, 0.875
e il risultato che otteniamo 0.746826, evidentemente maggiormente
accurato.
_

Esempio Riprendiamo lesempio visto allinizio del Capitolo,


in cui misurata la velocit di unautomobile ogni 6 secondi e si vuole
calcolare la lunghezza percorsa dalla macchina.
In base ai dati in possesso, possiamo applicare la formula composta
dei trapezi su 14 intervalli di ampiezza h = 6 secondi. Abbiamo
(ponendo v1 = v(0), v2 = v(6), . . . , v13 = v(78), v14 = v(84)):
 
v1 + v14
L=6 + v2 + v3 + . . . + v13 = 3009 metri
2

Possiamo anche applicare la formula di Cavalieri-Simpson, con-


siderando ora 7 intervalli di ampiezza pari a h = 12 secondi. In tal
caso, otteniamo:

L = 2 (v1 + 4v2 + 2v3 + 4v4 + 2v5 + . . . + 2v12 + 4v13 + v14 ) = 3010 metri

In questo caso entrambi i risultati sono accettabili.


_
Se la funzione integranda ha le derivate che sono facili da deter-
minare e da maggiorare, la formula dellerrore pu essere utile per
determinare il numero di sottointervalli su cui applicare una formula
composta di quadratura in modo da ottenere unapprossimazione con
un errore minore di una tolleranza prefissata.
R1 2
Esempio Consideriamo 0 e x dx. In quanti sottointervalli
bisogna suddividere lintervallo di integrazione per applicare la for-
mula dei trapezi e di Cavalieri-Simpson e ottenere un errore che sia
minore di una tolleranza e = 105 ?
Per i trapezi, lerrore maggiorato da

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

Si trova che il massimo di | f 00 | e | f IV | in [0, 1] dato dal loro valore


in x = 0, quindi abbiamo:
2 1 12 1
| Etrap | 2
= 2 | ECS | 4
=
12n 6n 2880n 240n4

La richiesta dellaccuratezza per lerrore diventa:

| Etrap | 105 | ECS | 105

vale a dire, rispettivamente,

1 1
105 105
6n2 240n4

Per i trapezi, il primo intero n che verifica la disuguaglianza n = 130,


per Cavalieri-Simpson si ha, invece, n = 5.
Applicando le formule su 130 intervalli per i trapezi e su 5 intervalli
per Cavalieri-Simpson, otteniamo i risultati:

Itrap = 0.74682050480289 ICS = 0.7468249482544

11.5 Estrapolazione di Richardson

Applichiamo la formula di Cavalieri-Simpson sullintero intervallo


[ a, b]. Lerrore che si commette, come sappiamo, vale

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

Si pu ricavare e dalle due relazioni ottenendo

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

(a) Approssimare il valore dellintegrale applicando la formula dei tra-


pezi con n = 5 suddivisioni in parti uguali dellintervallo di
integrazione.

(b) Trovare una maggiorazione dellerrore commesso e, dopo aver cal-


colato analiticamente lintegrale esatto, confrontare tale stima con
lerrore esatto.

Svolgimento

(a) Applichiamo la formula dei trapezi con n = 5 suddivisioni del-


lintervallo dato. Vale, dunque, h = 0.4. I punti da considerare e il
valore della f ( x ) = e x ( x + 1), sono:

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

La formula dei trapezi

f ( x0 ) + f ( x5 )
Itrap = h( + f ( x1 ) + f ( x2 ) + f ( x3 ) + f ( x4 )) = 2.19606715
2

(b) Per calcolare una maggiorazione dellerrore commesso, dobbiamo


calcolare la derivata seconda della f .
appunti di calcolo numerico 185

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

Quindi lerrore esatto, in valore assoluto, : | I Itrap | = 0.196067154,


un valore minore della maggiorazione trovata prima.

Esercizio 11.6.2 Sia dato lintegrale


Z 2
2
dx
0 x4

(a) Dare una sua approssimazione con la formula dei trapezi e n = 4


suddivisioni in parti uguali dellintervallo di integrazione.

(b) Trovare una maggiorazione dellerrore commesso.

(c) Confrontare lerrore esatto con la stima precedentemente trovata.

(d) Dire in quanti sottointervalli occorre suddividere lintervallo di in-


tegrazione per ottenere una maggiorazione dellerrore minore della
tolleranza e = 105 .

Svolgimento

(a) Suddividendo lintervallo di integrazione [0, 2] in n = 4 parti si


trova un passo h = 2/4 = 1/2 = 0.5.
La formula dei trapezi :

b a f ( a) + f (b)
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

Per maggiorare lerrore dobbiamo considerare che vale


max0 x2 | f 00 ( x )| (b a)3
| E| , da cui dobbiamo calcolare M =
12 n2
00
max0 x2 | f ( x )|.
La funzione ( x 4)3 continua, crescente e sempre negativa nel-
4 4
lintervallo [0, 2]. Quindi | 3
| = : osserviamo il
( x 4) (4 x )3
4
cambiamento al denominatore. Poniamo g( x ) = . Ri-
(4 x )3
12
sulta g0 ( x ) = > in [0, 2], quindi la g crescente e ha
(4 x )4
valore massimo per x = 2. Perci M = max0 x2 | f 00 ( x )| =
4
| f 00 (2)| = 3 = 1/2 = 0.5. Si ha allora la maggiorazione dellerrore
2
M 23 1
| E| = = 0.0208333333
12 42 48
(c) Lintegrale esatto si calcola facilmente:

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

(d) Perch la maggiorazione dellerrore sia minore della tolleranza


M 23 M 3 5
e = 105 deve essere | E| 105 cio n2 2 10 =
12 n2 12
10 5
= 33333.333333. Quindi n > 182.574186, vale a dire n = 183.
3

Esercizio 11.6.3 Dato lintegrale


Z 0.5
1
I= dx
0 1 x2
(a) si approssimi I con i valori Q1 e Q2 ottenuti applicando il metodo
di Cavalieri-Simpson prima a tutto lintervallo e poi suddividendo
lintervallo in due parti uguali;

(b) si approssimi I usando la formula di estrapolazione di Richardson;

(c) dopo aver calcolato analiticamente il valore esatto di I, determinare


lerrore esatto commesso con lestrapolazione di Richardson.

Svolgimento

(a) Applichiamo la formula di Cavalieri-Simpson su tutto lintervallo,


considerando che lampiezza dellintervallo b a = 0.5

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

Suddividendo lintervallo in due parti uguali, abbiamo h = 0.25,


da cui i punti: x0 = a = 0, x1 = 0.125, x2 = 0.25, x3 = 0.375, e
x4 = b = 0.5.

h
Q2 = ( f ( x0 ) + 4( f ( x1 ) + 4 f ( x3 )) + 2 f ( x2 ) + f ( x4 )) = 0.523616326
6

dove f (0.125) = 1.00790526, f (0.375) = 1.07871978 (essendo gi


in possesso degli altri valori, calcolati per Q1 )

Q2 Q1
(b) La formula di estrapolazione di Richardson : IR = Q2 +
15
da cui ricaviamo IR = 0.5236025101

(c) Analiticamente lintegrale esatto :

Z 0.5
1
I= dx = arcsin ( x )|0.5
0 = /6 0 = 0.523598775
0 1 x2

Lerrore esatto commesso con lestrapolazione di Richardson, in


valore assoluto, : | I IR | = 3.7351 106 .

Esercizio 11.6.4 data la seguente tabella di dati sperimentali

xi 1 2 3 4 5 6 7
yi 3.1 5 6.2 8.6 9.8 11.4 12.9

dove i valori yi approssimano il valore di una certa funzione f nei punti


R7
xi . Calcolare il valore approssimato di I = 1 f ( x )dx impiegando la
formula di Cavalieri-Simpson composta applicata su tutti i valori della
tabella (vale a dire considerando le n = 3 suddivisioni dellintervallo
[1, 7] individuate dalla tabella).

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

Esercizio 11.6.5 Sia da calcolare il seguente integrale:


Z 2
I= 1 + 6x2 10x4 dx
1

(a) si approssimi I con la formula di Cavalieri-Simpson applicata su


n = 1 e n = 2 suddivisioni in parti uguali dellintervallo di
integrazione;

(b) dare una maggiorazione dellerrore commesso nei due casi


confrontandolo poi con lerrore esatto;

(c) applicare il metodo di estrapolazione di Richardson e spiegare


lerrore che si ottiene.

Svolgimento

(a) Per n = 1 suddivisione dellintervallo di integrazione, la formula


di Cavalieri-Simpson quella semplice: i punti da considerare
sono gli estremi 1 e 2 e il punto centrale 1.5. Si ricava il valore
In1 = 47.083333333333329.
Per n = 2 suddivisioni dellintervallo, si hanno i sottointervalli
[1, 1.5] e [1.5, 2] che hanno rispettivamente, come punti centrali,
i valori 1.25 e 1.75. Lampiezza della singola suddivisione vale
0.5. Applicando la formula di Cavalieri-Simpson composta di ha
In2 = 47.005208333333329.

(b) Per avere una maggiorazione dellerrore commesso, abbiamo


bisogno della derivata quarta. Si ha f 0 ( x ) = 12x 40x3 , f 00 ( x ) =
12 120x2 , f 000 ( x ) = 240x e f (iv) ( x ) = 240. La derivata quarta
costante. Il massimo di | f (iv) ( x )| vale 240. In questo caso la
maggiorazione dellerrore, in valore assoluto, coincide esattamente
con lerrore vero (proprio perch la derivata quarta costante!).
Quindi | En1 | = 240/2880 = 8.3333333E 002 e | En2 | = 240/(2880
24 ) = 5.2083333E 003.
Quindi, nel calcolare lerrore vero come | I In | ci aspettiamo
di trovare gli stessi risultati. Infatti, lintegrale esatto vale I =
R2 2 4 3 5 2
1 1 + 6x 10x dx = | x + 2x 2x |1 = 47.

Se calcoliamo, ora, | I In1 | e | I In2 | ritroviamo gli stessi valori


trovati prima.

(c) Se applichiamo la formula di estrapolazione di Richardson ottenia-


mo IRich = In2 + ( In2 In1 )/15 = 47. Con Richardson otteniamo
il valore esatto dellintegrale, dal momento che la relazione che
ora lega il rapporto tra gli errori (tra n = 1 e n = 2 suddivisioni)
e che porta alla formula di Richardson una eguaglianza esatta,
| En1 | = 4| En2 |!
appunti di calcolo numerico 189

11.7 Domande di riepilogo

1. Come si ricava la formula dei trapezi e quale significato geometrico


ha?

2. Come si ricava lerrore nella formula dei trapezi?

3. Come sono legate le formule della famiglia di Newton-Cotes al-


linterpolazione secondo Lagrange? Come si ricavano le formu-
le della famiglia di Newton-Cotes? Cosa sono i coefficienti di
Newton-Cotes?

4. Spiegare la formula di Cavalieri-Simpson e il suo errore.

5. Cosa significa formula composta? Quali formule composte


abbiamo studiato?

6. Spiegare la formula dei trapezi composta.

7. Ricavare la formula dellerrore quando si applica la formula dei


trapezi composta. Quali ipotesi occorre fare?

8. Spiegare la formula di Cavalieri-Simpson composta.

9. Ricavare la formula dellerrore quando si applica la formula di


Cavalieri-Simpson composta. Quali ipotesi occorre fare?

10. Cosa succede se si fa il rapporto tra gli errori passando da una


formula composta con n suddivisioni in parti uguali dellintervallo
di integrazione ad una formula con 2n suddivisioni in parti uguali?
Quali ipotesi devono essere verificate? Esaminare il caso in cui la
formula composta data dai trapezi e poi quello in cui si applica
la formula composta di Cavalieri-Simpson.

11. Spiegare lestrapolazione di Richardson.

12. Quando lestrapolazione di Richardson d il valore esatto dellin-


tegrale?

13. Mostrare che il procedimento di estrapolazione di Richardson se


applicato alla formula dei trapezi produce la formula di Cavalieri-
Simpson.
12 Differenziazione numerica ed
equazioni alle derivate ordi-
narie

Luniverso unequazione differenziale.


12.1 Un esempio Jules Henri Poincar

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.

Come si risolve numericamente un sistema di equazioni differen-


ziali come quello appena scritto? In questo Capitolo, daremo una
piccola introduzione ad alcune tecniche di differenziazione numerica
e ad alcuni metodi numerici che permettono di risolvere equazioni
differenziali del primo ordine.

12.2 Differenziazione numerica

Dallanalisi matematica, sappiamo come si calcolano le derivate di una


funzione. Tuttavia utile conoscere anche delle tecniche numeriche
di differenziazione, sia perch, molte volte, la funzione non nota in
maniera esplicita ma solo per punti, sia perch, a volte, la funzione
troppo complicata!
192 annamaria mazzia

Dallanalisi, sappiamo che, assegnata una funzione y = f ( x ) e dato


un punto x0 nel suo insieme di definizione, la derivata f 0 ( x0 data
da
f ( x0 + h ) f ( x0 )
f 0 ( x0 ) = lim
h 0 h
Per ottenere una formula che approssima la derivata prima di
f 0 ( x0 ), useremo nodi equidistanti in un intorno di x0 : x0 h, x0 , x0 +
h, . . . con h una quantit positiva sufficientemente piccola.
Consideriamo la f sufficientemente regolare per applicare la for-
mula di Taylor ( f continua e limitata insieme alle sue derivate, fino
ad un ordine sufficientemente elevato). La formula di Taylor della
funzione f di centro x0 , se ci fermiamo alla derivata seconda, data
da
( x x0 )2 00
f ( x ) = f ( x0 ) + f 0 ( x0 )( x x0 ) + f ( )
2
dove un punto, che non conosciamo, nellintervallo di estremi x e
x0 ..
Prendiamo come x il valore x = x0 h: la formula di Taylor si
legge come

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).

La backward difference formula data da


f ( x0 ) f ( x0 h )
f 0 ( x0 ) =
h

Questa formula richiede la conoscenza del valore della f in due punti


x0 e x0 h ed del primo ordine (trascuriamo, infatti, un termine che
h
dipende da h: f 00 ( )).
2
Se, invece, applichiamo la formula di Taylor a x = x0 + h abbiamo
la forward difference formula, formula delle differenze in avanti:

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

Lerrore sempre del primo ordine.


Una formula di grado pi elevato si ottiene considerando tre punti
x0 h, x0 , x0 + h. Prendiamo le formule di Taylor di centro x0 h e
x0 + h scritte fino alla derivata terza di f ,

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

Sottraendo membro a membro abbiamo


h3 000
f ( x0 + h) f ( x0 h) = 2h f 0 ( x0 ) + ( f ( 1 ) + f 000 ( 2 ))
6
Ora le due derivate terze nei due punti 1 e 2 (che non conosciamo)
sono comprese tra un valore minimo e un valore massimo, da cui
f 000 ( 1 ) + f 000 ( 2 )
anche il loro valore medio compreso tra il minimo
2
000
e il massimo della funzione f stessa (si veda il Teorema del Valore
Intermedio), cio esiste (compreso tra 1 e 2 e, quindi, tra x0 h e
f 000 ( 1 ) + f 000 ( 2 )
x0 + h) per cui f 000 ( ) = . Sostituendo abbiamo
2
h3 000
f ( x0 + h) f ( x0 h) = 2h f 0 ( x0 ) + 2 f ( )
6
Risolviamo ora per f 0 ( x0 ), ottenendo

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

Il termine che trascuriamo per ottenere le formule di differenzia-


zione numerica, cio lerrore di discretizzazione, prende il nome di
errore di troncamento.
La formula centrata valuta il valore della f in soli due punti, come
stato fatto per le formule backward e forward ma ha un ordine di
accuratezza pi elevato.
Formule pi accurate si possono ottenere usando pi punti nel-
lintorno di x0 e considerando espansioni di Taylor che coinvolgono
derivate di ordine pi elevato. Ad esempio, prendendo i punti x0 2h,
x0 h, x0 + h e x0 + 2h si pu ricavare

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

La formula a 5 punti data da

1
f 0 ( x0 ) ( f ( x0 2h) 8 f ( x0 h) + 8 f ( x0 + h) f ( x0 + 2h))
12h

Lerrore di troncamento dipende da h4 . Altre tecniche di differenziazione numerica


sono basate sullinterpolazione polinomiale
Nellapplicare queste formule, dobbiamo ricordarci che, oltre aller-
di Lagrange (se p( x ) approssima f ( x ) al-
rore di troncamento dovuto al tipo di approssimazione fatto, c anche lora p0 ( x ) approssima f 0 ( x )) o su un pro-
lerrore di arrotondamento. Nellesempio di pag. 39, avevamo visto cedimento di estrapolazione di Richardson
(simile a quello che abbiamo visto per le for-
come, per piccoli valori di h, il fenomeno di cancellazione numerica mule di integrazione numerica). Il discorso si
portava a crescite degli errori. estende, inoltre, per approssimare derivate
di ordine superiore.
La scelta di h dovrebbe, perci, dipendere, dallordine dellerrore
di troncamento (che conosciamo) e da una maggiorazione sul termine
derrore darrotondamento (valore che in genere non conosciamo).
Per evitare che domini lerrore di arrotondamento (che pu portare al
fenomeno di cancellazione numerica) importante non prendere h
troppo vicino alla precisione di macchina.

Esempio Riprendiamo lesempio di pag. 39 per confrontare le


diverse formule che abbiamo introdotto.
Dobbiamo derivare f ( x ) = sin ( x ) in x0 = 1.2. Per confrontare le
diverse formule, partiamo da h = 1 e lo riduciamo fino ad arrivare a
h = 1012 . In Figura 12.1, in un grafico semilogaritmico, confrontiamo Figura 12.1: Grafico semilogaritmico che
mette a confronto lerrore esatto al varia-
gli errori assoluti ottenuti dalle varie formule: da un certo punto in re di h [1012 , 1] delle formule forward,
poi, prevale lerrore di arrotondamento. backward, centrata e a 5 punti.

12.3 Sulle equazioni differenziali ordinarie

Passiamo ora a studiare le equazioni differenziali ordinarie.


Vogliamo trovare una funzione y(t) che soddisfi la seguente equa-
zione differenziale ordinaria del primo ordine: Una abbreviazione per indicare unequazione
differenziale ordinaria data dalla sigla ODE:
dy Ordinary Differential Equation.
= f (t, y), atb
dt
La funzione f (t, y) assegnata. Ci riferiamo a t come alla variabile
indipendente. Dobbiamo trovare quella funzione y = y(t) tale che la
dy(t)
sua derivata prima y0 = y0 (t) = coincida con f (t, y(t)).
dt

Esempio Sia f (t, y) = y + t definita per t 0 e per qualun-


que y reale. Si ha

y0 = y + t, t0

Si verifica che, per qualunque scalare la funzione y(t) = t 1 +


et soddisfa la ODE.
Se, inoltre, assegnato un valore iniziale, per esempio y(0) = 1,
allora, dovendo essere 1 + = y(0) = 1, risulta = 2. Assegnare
appunti di calcolo numerico 195

un valore iniziale determina ununica soluzione allODE. Si parla di


problema a valori iniziali (IVP).
Nel caso in cui y(0) = 1 si ricava lunica soluzione y(t) = t 1 +

2e t .
_
Problemi in cui abbiamo equazioni alle derivate ordinarie di or-
dine pi elevato possono essere trasformati in sistemi equivalenti di
equazioni del primo ordine.

Esempio La seconda legge del moto di Newton dice che la


forza F uguale al prodotto della massa m per laccelerazione a:
F = ma. Questa equazione una ODE del secondo ordine in quanto
laccelerazione a data da a = y00 , dove y la coordinata della
F
posizione. LODE pu essere riscritta come: y00 = . Definendo
m
u1 = y e u2 = y0 si ha il sistema (equivalente allequazione di prima)
di due equazioni del primo ordine di ODE:
! !
u10 u2
=
u20 F/m

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

y0 = f (t, y(t)) atb

con valore iniziale

y( a) = y a .

Per risolvere questa ODE discretizziamo lintervallo [ a, b] in n + 1


punti, equidistanti per semplicit: ti = a + ih, h = 0, 1, . . . , n, con
h = (b a)/n.
Il passo di discretizzazione (temporale se t assume il significato
della variabile temporale) dunque h. Nelle applicazioni pratiche,
196 annamaria mazzia

il passo h variabile (cio i punti non sono equidistanti), tuttavia,


per capire meglio come funzionano i metodi, noi useremo sempre un
passo h costante.
Sia y(t) la soluzione esatta del nostro problema a valori iniziali.
Allora y(ti ) il valore esatto della soluzione calcolata nel punto ti .
Indichiamo invece con yi il valore approssimato al tempo ti che
ricaviamo applicando un metodo numerico che risolve il problema
proposto.

12.4 Metodo di Eulero esplicito

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 ).

La formula di tipo esplicito perch per passare dal livello i al


livello i + 1 sfruttiamo i dati che gi conosciamo del livello i.
Si parte infatti da y0 = y(t0 ) = y( a) = y a e si ricava:

y1 = y0 + f ( t0 , y0 )
y2 = y1 + f ( t1 , y1 )
.. ..
.= .
appunti di calcolo numerico 197

Si arriva alla stessa formula integrando lODE e approssimando


lintegrale della f mediante il valore in f (t0 , y(t0 )): da y0 = f (t, y(t))
integrando ambo i membri da t0 a t, otteniamo
Z t Z t Z y(t) Z t
dy
dt = f (t, y(t)) dt = dy = f (t, y(t)) dt
t0 dt t0 y0 t0

Rt
Al secondo membro, approssiamo t f (t, y(t)) dt mediante il valore
0
(t t0 ) f (t0 , y(t0 )) (approssimiamo la f mediante la retta f (t0 , y(t0 ))).
Abbiamo:

y(t) = y0 + (t t0 ) f (t0 , y0 )) + errore della formula di quadratura.

Per t = t1 , numericamente: y1 = y0 + h f (t0 , y0 )).


Ai passi successivi: yi+1 = yi + h f (ti , yi ))

Esempio Supponiamo di applicare il metodo di Eulero esplici-


to alla ODE y0 = y con passo h a partire dal punto iniziale t0 = 0 e
avanziamo al tempo t1 = t0 + h

y1 = y0 + h f (t0 , y0 ) = y0 hy0 = (1 h)y0

Il valore y1 che otteniamo affetto da errore: y1 6= y(t1 ) Per esempio,


se per t0 si ha y0 = 1, la soluzione esatta y(t) = et . Per h = 0.5, si
ha y1 = 0.5 mentre y(0.5) = e0.5 0.60653
_

Figura 12.2: Interpretazione geometrica del


metodo di Eulero esplicito. Si considerato il
problema y0 = y con y(0) = 1 la cui solu-
zione esatta y(t) = et . I valori numerici
ottenuti dal metodo di Eulero esplicito sono
cerchiati e si trovano sulla linea spezzata che
li interpola. La linea spezzata tangente, al-
linizio di ogni passo, alla traiettoria che pas-
sa per il corrispondente punto, soluzione del
problema y0 = y con y(ti ) = yi .

Da un punto di vista geometrico (si veda la Figura 12.2), il valore


in ti+1 approssimato utilizzando il valore della retta la cui pendenza
data da f (ti , yi ): come se ad ogni passo cercassimo di risolvere il
198 annamaria mazzia

problema a valori iniziali:

y0 (t) = f (t, y(t))


y ( ti ) = yi

per cui il valore che otteniamo per il tempo ti+1 tangente alla
traiettoria della soluzione di questo IVP.

12.5 Metodo di Eulero implicito

Se applichiamo la formula di Taylor di punto iniziale ti+1 , abbiamo

(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

La formula di Eulero implicito vale yi+1 = yi + h f (ti+1 , yi+1 )).

La differenza rispetto alla formula esplicita che la f valutata non


pi al tempo ti ma al tempo ti+1 Quindi il calcolo di yi+1 dipende
implicitamente da yi+1 stesso! La valutazione di yi+1 diventa quindi
pi laboriosa e complicata (se si ha unequazione non lineare in yi+1 ,
la si risolve tramite un metodo di punto fisso o di Newton-Raphson).
In termini di accuratezza si hanno risultati migliori.

Esempio Consideriamo sempre y0 = y con y(0) = 1 (solu-


zione esatta y(t) = et ).
Il metodo di Eulero implicito diventa: yi+1 = yi hyi+1 ovvero
(1 + h ) y i +1 = y i
yi
La soluzione numerica yi+1 = .
(1 + h )
Per h = 0.5 ricaviamo y1 = 0.66667 contro un valore esatto y(1)
0.60653.
_
appunti di calcolo numerico 199

Esempio Si abbia lequazione y0 = y3 con condizione iniziale


y(0) = 1. Usando il metodo di Eulero implicito con passo h = 0.5,
per ricavare y1 otteniamo lequazione implicita

y1 = y0 + h f (t1 , y1 ) = 1 0.5y31

Questa equazione non lineare in y1 pu essere risolta mediante me-


todo di punto fisso (x = g( x ) = 1 0.5x3 ) oppure utilizzando il
metodo di Newton-Raphson per F ( x ) = 0 con F ( x ) = x 1 + 0.5x3 ) .
Lapprossimazione iniziale per ottenere y1 pu essere o la soluzione
al passo precedente, y0 , oppure usare il metodo di Eulero esplicito,
che d y1 = y0 0.5y30 = 0.5. Otteniamo, come y1 il valore finale
y1 0.7709.
_

Esempio Vogliamo discretizzare il problema a valori iniziali

y 0 = y2
y (0) = 1

con passo h = 0.1 applicando il metodo di Eulero esplicito per ricavare


y1 e y2 .
Il metodo di Eulero esplicito :

yi+1 = yi + h f (ti , yi ) = yi + h(y2i ) = yi hy2i

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

Applichiamo ora il metodo di Eulero implicito con lo stesso passo


h = 0.1.

yi+1 = yi + h f (ti+1 , yi+1 ) = yi hy2i+1

Per ricavare y1 la formula diventa:

y1 = y0 + h f (t1 , y1 ) = 1 0.1(y21 )

Abbiamo unequazione non lineare in y1 . Per trovare y1 , possiamo


pensare di applicare lo schema di punto fisso alla funzione g(y) =
1 0.1(y2 ) partendo da y(0) = y0 = 1, in quanto y1 = g(y1 ) punto
fisso per la funzione g. Applichiamo tre passi dello schema di punto
fisso:

y(1) = g(y(0) ) = 1 0.1(12 ) = 0.9


y(2) = g(y(1) ) = 1 0.1(0.92 ) = 0.919
y(3) = g(y(2) ) = 1 0.1(0.9192 ) = 0.9155439
200 annamaria mazzia

Se prendiamo y(3) come approssimazione di y1 ricaviamo y1 =


0.9155439 (per confronto, il valore esatto 0.90909090).
Calcoliamo ora y2 :

y2 = y1 + h f (t2 , y2 ) = 0.9155439 0.1(y22 )

La funzione di punto fisso diventa g(y) = 0.9155439 0.1(y2 ). Appli-


chiamo lo schema di punto fisso partendo da y(0) = y1 = 0.9155439.

y(1) = g(y(0) ) = 0.9155439 0.1(0.91554392 ) = 0.8317218367


y(2) = g(y(1) ) = 0.9155439 0.1(0.83172183672 ) = 0.8463677786
y(3) = g(y(2) ) = 0.9155439 0.1(0.84636777862 ) = 0.8439100583

Troviamo quindi y2 = 0.8439100583 (valore esatto 0.8333333333).


Vediamo, adesso, cosa accade in Eulero implicito se il punto iniziale
del metodo di punto fisso dato da un passo del metodo di Eulero
esplicito.
Per ricavare y1 , considero come y(0) = y0 + h f (t0 , y0 ) = 1 0.1 =
0.9. In tal caso, lapprossimazione iniziale quella che, nel caso di
prima, era il valore y(1) .
Applichiamo tre volte lo schema di punto fisso:

y(1) = g(y(0) ) = 1 0.1(0.92 ) = 0.919


y(2) = g(y(1) ) = 1 0.1(0.9192 ) = 0.9155439
y(3) = g(y(2) ) = 1 0.1(0.91554392 ) = 0.9161779367

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:

y(1) = g(y(0) ) = 0.9161779367 0.1(0.83223973552 ) = 0.8469156390


y(2) = g(y(1) ) = 0.9161779367 0.1(0.84691563902 ) = 0.8444513267
y(3) = g(y(2) ) = 0.9161779367 0.1(0.84445132672) = 0.8448681324

Ricaviamo y2 = 0.8448681324. John Crank (1916-2006) stato un matema-


_ tico inglese che si dedicato soprattutto allo
studio di soluzioni numeriche di equazioni al-
le derivate parziali, in particolare di problemi
di conduzione del calore. noto soprattutto
12.6 Metodo di Crank-Nicolson per il lavoro svolto con Phyllis Nicolson.
Phyllis Nicolson (1917-1968) stata una
matematica inglese. Negli anni della seconda
guerra mondiale lavor sulla teoria del ma-
Partiamo dallODE y0 = f (t, y(t)). Integriamo ambo i membri gnetron. nota, appunto, per il metodo di
dellequazione sullintervallo [ti , ti+1 ]: Crank-Nicolson.
Z y(t ) Z t Z t
i +1 i +1 i +1
dy = f (t, y(t)) dt = y(ti+1 ) y(ti ) = f (t, y(t)) dt
y ( ti ) ti ti

A secondo membro, applichiamo la formula dei trapezi trascuran-


do lerrore di integrazione:
h
y i +1 y i = [ f (ti , yi ) + f (ti+1 , yi+1 )]
2
appunti di calcolo numerico 201

h
Si ha la formula di Crank-Nicolson: yi+1 = yi + [ f (ti , yi ) + f (ti+1 , yi+1 )]
2

La stessa formula la si pu ricavare prendendo la media aritmetica


delle formule di Eulero esplicito e implicito:

y i +1 y i = h f ( t i , y i )
y i +1 y i = h f ( t i +1 , y i +1 )

sommando e dividendo per 2:

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

Esempio Lo stesso esempio di prima (y0 = y con y(0) = 1)


h
risolto con Crank-Nicolson d yi+1 = yi + [yi yi+1 )] da cui
2
ricaviamo
2h
 
h h
(1 + )yi+1 = (1 )yi = (2 + h)yi+1 = (2 h)yi = yi+1 = yi
2 2 2+h
Per h = 0.5, confrontiamo i valori ottenuti dai metodi di Eulero
esplicito, implicito e Crank-Nicolson, con la soluzione esatta:
ti y ( ti ) yi Eul. Espl. yi Eul. Impl. yi C-N
0.0 1.000000 1.0000000 1.000000 1.000000
0.5 0.606531 0.5000000 0.666667 0.600000
1.0 0.367879 0.2500000 0.444444 0.360000
1.5 0.223130 0.1250000 0.296296 0.216000
2.0 0.135335 0.0625000 0.197531 0.129600
2.5 0.082085 0.0312500 0.131687 0.077760
3.0 0.049787 0.0156250 0.087791 0.046656
3.5 0.030197 0.0078125 0.058528 0.027994
4.0 0.018316 0.0039062 0.039018 0.016796
_

12.7 Studio dellerrore

Nel costruire i metodi (di Eulero esplicito, implicito, Crank-Nicolson)


abbiamo trascurato un termine (il resto della formula di Taylor o
lerrore della formula dei trapezi): questo termine che abbiamo trascu-
rato rappresenta lerrore di troncamento locale. Nel caso di Eulero
esplicito avevamo (usando la formula di Taylor):
y(ti+1 ) y(ti ) h 00
y 0 ( t i +1 ) = y ( i ) = f (ti , y(ti ))
h 2
Per costruire il metodo, abbiamo trascurato il termine del resto, vale
a dire la quantit
y ( t i +1 ) y ( t i ) h
di = f (ti , y(ti )) = y00 ( i ) = O(h)
h 2
202 annamaria mazzia

Questa quantit ci dice di quanto la soluzione esatta fallisce nel


soddisfare la relazione della formula di Eulero esplicito e rappresenta
lerrore di troncamento locale.

Definizione 12.7.1 Si definisce errore totale di troncamento i la quantit:

i = y ( ti ) yi .

Ci aspettiamo che sia dello stesso ordine di grandezza dellerrore


di troncamento locale.

Definizione 12.7.2 Per effetto dellarrotondamento, al tempo ti al posto di


yi otteniamo il valore arrotondato yi . Si definisce errore totale di arrotonda-
mento la quantit:
i = yi 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

Gli errori di arrotondamento nellapprossimare la derivata prima


1
di una funzione si comportano come O( ) (si veda lesempio fatto
h
sulla propagazione degli errori a pag. 39). Tuttavia questo aspetto
diventa secondario nella risoluzione delle ODE sia perch il passo
h nelle applicazioni non mai troppo (esageratamente) piccolo per
ragioni di efficienza sia perch la y e non la y0 la funzione che
dobbiamo approssimare. Inoltre, nelleseguire i calcoli in doppia
precisione (come si fa nei moderni linguaggi di programmazione),
laspetto dovuto allarrotondamento si vede poco rispetto ad altri
fenomeni che influenzano la propagazione degli errori.

12.8 Errori di troncamento locale

G Nel metodo di Eulero esplicito:

y ( t i +1 ) y ( t i ) h
di = f (ti , y(ti )) = y00 ( i ) = O(h)
h 2

G Nel metodo di Eulero implicito:

y ( t i +1 ) y ( t i ) h
di = f (ti+1 , y(ti+1 )) = y00 ( i ) = O(h)
h 2

G Nel metodo di Crank-Nicolson (derivando la formula dai trapezi


e includendo il termine dellerrore):

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

12.9 Convergenza e stabilit

Definizione 12.9.1 Un metodo si dice convergente se lim h 0 ei = 0


i +
cio se lerrore va a zero al tendere del passo h a zero e di i allinfinito in
modo che il prodotto ih si mantenga costante (cos t0 + ih tende ad un valore
di t fissato: studiamo lerrore fissato t).

Esempio Vediamo come, fissato un certo istante t, possiamo


fare tendere h a zero e far crescere i allinfinito in modo che t0 + ih
sia sempre uguale a t. Sia t0 = 0 e t = 0.5:
h i ih
0.5 1 0.5
0.25 2 0.5
0.125 4 0.5
0.0625 8 0.5
.. .. ..
. . .
2.4414e-4 2048 0.5
_

Definizione 12.9.2 Un metodo si dice stabile se lerrore iniziale si mantie-


ne limitato al crescere di i (per i ):

| e i | M | e0 |

con M costante positiva.

Studieremo la convergenza e la stabilit dei metodi di Eulero esplicito,


implicito e Crank-Nicolson applicati allequazione test

y0 = y

prendendo > 0 (in modo che < 0) con condizione iniziale


y (0) = y0 .
La soluzione esatta di questo IVP y(t) = y0 et : tende a zero per
valori di t crescenti. Ci aspettiamo che anche la soluzione numerica si
comporti in maniera simile.
204 annamaria mazzia

12.9.1 Convergenza di Eulero esplicito

Per semplicit, applichiamo la formula del metodo di Eulero esplicito


allequazione test con = 1.

y1 = y0 + h f (t0 , y0 ) = y0 hy0 = (1 h)y0


y2 = y1 + h f (t1 , y1 ) = y1 hy1 = (1 h)y1
..
.
yi = yi1 + h f (ti1 , yi1 ) = yi1 hyi1 = (1 h)yi1

Andando a ritroso troviamo una formula che lega yi direttamente a


y0 .

y1 = (1 h ) y0
y2 = (1 h ) y1 = (1 h )2 y0
..
.
y i = (1 h ) y i 1 = (1 h ) i y 0

La soluzione numerica al tempo ti data da yi = (1 h)i y0 . Fissato


un tempo t = ih, vediamo se lim ei = 0 cio se lim yi = y(t).
h 0 h 0
i + i +
ih 1 t

Osserviamo che: (1 h)i = (1 h) h = (1 h) h


Ricordiamo la propriet per la quale
)
1 ln (1 h) x = eln ( x= e ln (x) .
ln ( 1 h ) (1/h)
Perci: (1 h) h = e =e h
Quando facciamo il limite per h 0 e per i + consideriamo
che, per il teorema dell Hpital, facendo la derivata rispetto alla
variabile , vale
ln (1 h) 1
lim = lim = 1
h 0 h h 0 1 h

ln (1 h)
Di conseguenza limh0 e h = e 1
Allora
1 t

lim yi = lim y0 (1 h)i = lim y0 (1 h) h = y0 et = y(t)


h 0 h 0 h 0
i + i + i +

In questo modo abbiamo provato che il metodo converge. Il


discorso si ripete in maniera del tutto simile, per 6= 1.

12.9.2 Stabilit di Eulero esplicito

Per quanto riguarda la stabilit, dobbiamo provare che lerrore si


mantiene limitato. Sia > 0.
Abbiamo yi+1 = yi hyi = (1 h)yi , vale a dire yi+1 = y0 (1
h)i+1 . La soluzione esatta di questo problema y(t) = y0 et e
appunti di calcolo numerico 205

tende a zero per valori di t crescenti. Vogliamo che tenda a zero


anche la soluzione numerica (in modo da mantenere limitato lerrore).
La soluzione numerica (fissato h e per i grande, cio per valori di t
crescente) tende a zero se |1 h| < 1 cio per 1 < 1 h < 1
2
0 < h < 2 h < .

Il metodo di Eulero esplicito stabile sotto condizione.

12.9.3 Convergenza di Eulero implicito

Il metodo di Eulero implicito applicato allequazione test diventa:


yi
y i +1 =
(1 + h)

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.

12.9.4 Stabilit di Eulero implicito

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.

12.9.5 Convergenza di Crank-Nicolson

Il metodo di Crank-Nicolson applicato allequazione test diventa:


h
y i +1 = y i + [yi yi+1 ] da cui
2
2 h
 
y i +1 = yi
2 + h
206 annamaria mazzia

Andando a ritroso si ricava


 i +1
2 h

y i +1 = y 0
2 + h

Per verificare che il metodo converge studiamo il limite lim yi .


h 0
i +
Partiamo dalla relazione
ih t
1 1

i
2 h 2 h h 2 h h
  
= =
2 + h 2 + h 2 + h

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.

12.9.6 Stabilit di Crank-Nicolson

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.

12.9.7 Sulla stabilit

La stabilit di questi metodi la si pu verificare anche considerando


direttamente lerrore ei , dimostrando che gli errori al passo i e al passo
i + 1 verificano la stessa relazione che hanno yi e yi+1 e mostrando che
lerrore rimane limitato sotto condizione per Eulero esplicito mentre
incondizionatamente stabile per gli altri metodi. In Figura 12.3 si
appunti di calcolo numerico 207

vede come il metodo di Eulero esplicito sia stabile sotto condizione


mentre i metodi di Eulero implicito e Crank-Nicolson sono stabili
qualunque passo di discretizzazione venga utilizzato.

Esempio Consideriamo il metodo di Eulero esplicito e appli-


chiamolo allequazione test. Sappiamo che yi+1 = yi + hyi .
Per la soluzione esatta, sappiamo che vale y(ti+1 ) = y(ti ) + hy(ti ) +
hdi (con di lerrore di troncamento locale).
Sottraendo la prima equazione dalla seconda abbiamo

ei+1 = ei + hei + hdi


h 00
Considerato che di = y ( i ) e che, per studiare la stabilit, h fis-
2
sato mentre i tende a +, il termine hdi non influisce sullandamento
dellerrore e possiamo trascurarlo. Si ha allora la relazione:

ei+1 = ei + hei

Ricaviamo ei = e0 (1 + h)i .
Il ragionamento da fare lo stesso che abbiamo fatto in precedenza
e troviamo gli stessi risultati. Dobbiamo infatti verificare quando ei
tende a zero per i che tende a +. . .
_

Figura 12.3: Confronto dei metodi di Eule-


ro esplicito, implicito e Crank-Nicolson sulle-
quazione test y0 = y, prendendo come h il
valore h = 2 (a sinistra) e h = 0.5 (a destra).

12.10 Esercizi

Esercizio 12.10.1 Studiare la stabilit del metodo di Eulero esplici-


to applicato allequazione differenziale y0 = 2y + 1, con y(0) = 1
e2t + 1
(soluzione esatta y(t) = )
2

Svolgimento
Per provare la stabilit del metodo dobbiamo verificare che lerrore
iniziale si mantiene limitato per valori crescenti del tempo.
Il metodo di Eulero esplicito applicato allODE del problema
diventa

yi+1 = yi + h(2yi + 1) = (1 2h)yi + h


208 annamaria mazzia

La soluzione esatta soddisfa unequazione del tipo

y(ti+1 ) = y(ti ) + h(2y(ti ) + 1) + hdi = (1 2h)y(ti ) + h + hdi

Nel calcolare lerrore ei+1 = y(ti+1 ) yi+1 abbiamo

ei+1 = (1 2h)ei + hdi

Il termine hdi (di errore locale di troncamento) si pu trascurare.


Abbiamo allora ei+1 = (1 2h)ei .
Possiamo trovare con facilit che ei+1 = (1 2h)i+1 e0 o, ancora,
ei = (1 2h)i e0 .
Se vogliamo che lerrore rimanga limitato per i la quantit
(1 2h)i non deve crescere.
Quindi deve essere |1 2h| < 1, vale a dire 1 < 1 2h < 1 cio
2h < 2, quindi h < 1: stabilit sotto condizione.

12.11 Domande di riepilogo

1. A cosa servono le formule di differenziazione numerica?

2. Ricavare la formula delle differenze allindietro e il corrispondente


errore di discretizzazione.

3. Ricavare la formula delle differenze in avanti e il corrispondente


errore di discretizzazione.

4. Ricavare la formula delle differenze centrali e il corrispondente


errore di discretizzazione.

5. Ricavare il metodo di Eulero esplicito per la soluzione di un


problema a valori iniziali.

6. Ricavare il metodo di Eulero implicito per la soluzione di un


problema a valori iniziali.

7. Scrivere la formula del metodo di Crank-Nicolson.

8. Quali errori vanno considerati nelle formule numeriche per risol-


vere equazioni alle derivate ordinarie?

9. Cosa significa che un metodo per risolvere equazioni alle derivate


ordinarie un metodo convergente?

10. Cosa significa che un metodo per risolvere equazioni alle derivate
ordinarie un metodo stabile?

11. Per studiare convergenza e stabilit di un metodo numerico per


risolvere equazioni alle derivate ordinarie, si prende in esame la
cosiddetta equazione test: di che cosa si tratta?

12. Dimostrare la convergenza del metodo di Eulero esplicito.


appunti di calcolo numerico 209

13. Per quale motivo il metodo di Eulero esplicito stabile sotto


condizione? Dimostrare.

14. I metodi di Eulero implicito e di Crank-Nicolson sono stabili sotto


condizione oppure no?
Bibliografia

Uri M. Ascher and Chen Greif. A First Course on Numerical Methods.


SIAM, Philadelphia, 2011.

Ake Bjrk and Germund Dahlquist. Numerical Methods in Scientific


Computing, Volume II. Siam, 2008.

Richard L. Burden and J. Douglas Faires. Numerical Analysis. Brooks-


Cole Publishing, 2004.

Germund Dahlquist and Ake Bjrk. Numerical Methods in Scientific


Computing, Volume I. Siam, 2006.

G. Gambolati. Lezioni di Metodi Numerici. Cortina, Padova, 1994.

Walter Gautschi. Numerical Analysis: An Introduction. Birkuser,


Boston, 1997.

Paolo Giangrandi. Dispense del corso di Storia dellInformatica.


Universit degli Studi di Udine, Italia, 2010.

Paolo Giangrandi. Museo on line - Breve storia degli Strumenti di


Calcolo. Tecnoteca, http://www.tecnoteca.it/museo/, ultima visita:
febbraio 2015.

Michael T. Heath. Scientific Computing, An Introductory Survey.


McGraw-Hill, 2002.

Autar K. Kaw, Egwu E. Kalu, and Duc Nguyen. Numerical Methods


With Applications. Dedicated Website for book, http://http://nm.
mathforcollege.com/topics/textbook_index.html, ultima visita:
febbraio 2015.

H. Jerome Keisler. Elementary Calculus, An Infinitesimal Ap-


proach. Creative Commons Attribution Non-Commercial-ShareAlike
License, http://www.math.wisc.edu/~keisler/calc.html, 2009.

Richard B. Langley. The mathematics of gps. GPS World, 2(8):5559,


1991.

J. OConnor and E. F. Robertson. The MacTutor History of Mathematics


archive. University of St Andrews Scotland, http://www-history.
mcs.st-and.ac.uk/, ultima visita: febbraio 2015.

Gilbert Strang. Calculus. Wellesley-Cambridge Press, 1991.


212 annamaria mazzia

Doron Swade. The Babbage Engine. Computer History Museum,


Mountain View, CA, http://www.computerhistory.org/babbage,
ultima visita: febbraio 2015.

Vous aimerez peut-être aussi