Sei sulla pagina 1di 245

Errori ed aritmetica

finita
a.a. 2017/2018
Prof. Maria Lucia Sampoli
Analisi Numerica

Obbiettivo: dare una risposta numerica ad un problema


matematico mediante un calcolatore digitale

1. Problema reale
2. Costruire un modello
3. Formulare un problema matematico che descrive il modello
4. Risolvere il problema matematico
5. Interpretare la soluzione
Non è detto che sia direttamente disponibile la soluzione del
problema matematico metodi numerici di approssimazione
Esempio
1. Problema reale: calcolare il periodo di oscillazione di un
pendolo note le caratteristiche fisiche.
2. Costruzione modello: dalla dinamica classica si fanno le
seguenti ipotesi
1. Sfera puntiforme
2. Filo flessibile ed inestendibile
3. Attriti trascurabili
3. Formulazione matematica: radialmente la risultante delle
forze è 0, tangenzialmente (componente forza peso)

F = mg sin θ
spostamento tangenziale
x = lθ
g
xm + mg sin θ = 0 → θ&& + sin θ
&&
l
l  1 θ 2 9 θ 4 
⇒ T = 2π  1 + (sin m ) + (sin m ) + ...  ( 3.1)
g  4 2 64 2 
Formula troppo complessa ipotesi piccole oscillazioni
x
s in θ ≅ θ =
l
l
⇒ T = 2π ( 3 .2 )
g

4. Risolvere il problema matematico: dobbiamo calcolare (3.1) o


(3.2). In entrambi i casi si commettono errori. In (3.1) occorre
necessariamente troncare lo sviluppo in serie, ma anche in (3.2)
l’espressione contenendo una radice non può essere calcolata
esattamente bisogna trovare una strategia per il suo calcolo
approssimato. Inoltre i dati (l,g) sono affetti da errore quindi
T ( l , g ) → Tˆ ( l + ∂ l , g + ∂ g )
5. Interpretazione della soluzione: gli errori introdotti rendono la
soluzione accettabile?
Fonti di errore
Nel passaggio tra problema reale e formulazione del metodo
numerico si introducono degli errori.
1. Ipotesi semplificative nella costruzione del modello
2. Errori di misura nei dati, errori di rappresentazione nei dati
3. Errori di troncamento (approx di un processo infinito con uno finito che
si possa effettivamente calcolare)
4. Errori di arrotondamento nei calcoli (esecuzione effettiva dell’algoritmo)

è importante che gli errori introdotti nei vari stadi siano dello stesso
ordine: è inutile calcolare accuratamente la soluzione di un problema
matematico derivante da una modellizzazione non accurata.

L’Analisi numerica si occupa essenzialmente della fase 4.


Fonti di errore
Errori di discretizzazione o troncamento: errori legati alla definizione
del metodo numerico (approssimazione derivata prima con rapporto
incrementale). A
Errori di convergenza: un metodo numerico definisce la soluzione
come limite di una successione. Dopo un numero finito di iterazioni
bisogna fermarsi con un opportuno criterio di arresto. B
Errori di round-off (o di arrotondamento): errori dovuti all’aritmetica
finita di un elaboratore (errori di rappresentazione e loro
propagazione). C

g ( x) − f ( x) gˆ ( x ) − g ( x ) gˆ ( x + ∂x ) − gˆ ( x )
f ( x) g ( x) gˆ ( x )
A B C
Rappresentazione dei numeri
Il sistema di numerazione decimale è basato sull’alfabeto
decimale {0,1,2,3,4,5,6,7,8,9} ed ogni numero è rappresentato
come una sequenza di simboli di tale alfabeto. Ad ogni simbolo è
associato un peso a seconda della posizione.
Es:
2863=2 x 103 + 8 x 102 + 6 x 101 + 3 x 100

La base più usata nei calcolatori elettronici è la base 2. Questo è


dovuto al fatto che l’elemento base di un calcolatore elettronico è
un dispositivo (BIT) che può assumere due stati (on/off 0/1).

Es: 11002= 1 x 23+1 x 22+0 x 21+0 x 20

0.112 =0 x 20+1 x 2-1+1 x 2-2


Numeri di macchina
Poiché si hanno a disposizione un numero finito di bits, solo un
sottoinsieme dei numeri reali è rappresentabile in un computer. Tale
sottoinsieme è detto insieme dei numeri di macchina.
Nello standard IEEE i numeri reali sono rappresentati con il sistema
posizionale a “virgola mobile normalizzata”
x = ±(d1.d2d3...) ⋅ β e
dove la prima cifra d1 DEVE essere sempre diversa da zero.
In generale l’insieme dei numeri rappresentabili in un calcolatore è dato da

F(β,t,L,U)

– β è la base
– t sono le cifre di mantissa
– L e U sono i valori minimo e massimo dell’esponente e

x% = fl(x ) = ±(d1.d2...dt ) ⋅ β e
Errori di rappresentazione
x = ±(d1.d2d3...) ⋅ β e
fl(x ) = ±(d1.d2d3...dt ) ⋅ β e L≤e≤U

Errori di arrotondamento: il numero di cifre è maggiore di t


Errori di underflow: l’esponente e è minore di L
Errori di overflow: l’esponente e è maggiore di U (Inf nello standard
IEEE 754)
Il limite sulla mantissa caratterizza la precisione
Precisione
Il numero di cifre che l’elaboratore riserva alla mantissa dei numeri
reali (t) determina la precisione con la quale l’elaboratore lavora
Sia x≠0 un numero reale tale che la sua rappresentazione in virgola
mobile normalizzata richiede più di t cifre di mantissa dobbiamo
fare un’approssimazione (errore di arrotondamento) e sostituire x con
il numero reale di macchina più vicino (floating di x fl(x))
La determinazione di fl(x) può avvenire in due modi: troncamento o
arrotondamento

 ±d1 .d2d3 Kdt β b dt +1 < β / 2


arrotondamento ⇒ fl( x) = 
± d .
 1 2 3d d K ( dt + 1) β b
dt +1 ≥ β / 2
troncamento ⇒ fl( x) = ±d1 .d2d3 Kdt β b
Errori
Si possono definire l’errore assoluto e relativo
x − fl ( x )
eA = x − fl ( x ) eR =
x
L’errore assoluto è influenzato dall’ordine di grandezza del dato, mentre
l’errore relativo non è influenzato dall’ordine di grandezza del dato.
L’errore relativo dà indicazioni sull’approssimazione operata sulla
mantissa del dato ovvero sull’accuratezza (o precisione) con cui il dato
è approssimato
L’errore relativo non dipende dalla caratteristica ma dalla mantissa
Se vogliamo una misura della precisione con cui l’elaboratore
approssima un qualunque numero reale dobbiamo svincolarci da
questa dipendenza
COME?
Considerando una limitazione superiore degli errori di arrotondamento
relativi
Precisione di macchina
Limitazione superiore degli errori relativi

x − fl ( x ) 1 1−t
con arrotondamento → ≤ β = εm ∀x ≠ 0
x 2
x − fl ( x )
con troncamento → ≤ β 1−t = ε m ∀x ≠ 0
x

La quantità εm è detta precisione di macchina.


La conoscenza di εm è fondamentale per valutare i risultati e scegliere le
tolleranze (nei programmi che traducono algoritmi)
Può essere calcolata operativamente come la più piccola quantità che
sommata ad 1 dà un risultato diverso da 1

fl ( x ) = x(1 + e) e < εm
Aritmetica finita
Dati e risultati sono memorizzati con un numero finito di cifre (t)
di mantissa e qualunque operazione viene effettuata con un
numero finito di cifre (t) di mantissa
! Risultati temporanei delle operazioni sono memorizzati in
apposite locazioni con più cifre di mantissa (precisione estesa),
ma in ogni caso il numero è finito (si effettua un tronc./arr.)
Le 4 operazioni effettuate su numeri di macchina non producono
necessariamente un numero di macchina
Il risultato deve essere trasformato nel suo floating

x + y si scrive x ⊕ y = fl ( fl ( x ) + fl ( y ))
x − y si scrive x Θ y = fl ( fl ( x ) − fl ( y ))
x × y si scrive x ⊗ y = fl ( fl ( x ) × fl ( y ))
x ÷ y si scrive x ∅ y = fl ( fl ( x ) ÷ fl ( y ))
Operazioni macchina
Somma algebrica di 2 numeri reali:
1. Si trasforma il numero con caratteristica minore in modo che i 2 numeri
abbiano la stessa caratteristica (uno dei due perde la forma v.m.n.)
2. Si sommano le mantisse (lasciando invariate le caratteristiche)
3. Si ricava il floating del risultato (si rinormalizza il numero troncando o
arrotondando se necessario)
Prodotto/divisione di 2 numeri reali
1. Si esegue il prodotto/divisione delle mantisse e si
sommano/sottraggono le caratteristiche
2. Si ricava il floating del risultato (si rinormalizza il numero troncando o
arrotondando se necessario)
Esempio
F (10, 4, −4, 4), x = 10 ⋅10−1 , y = −0.0054
fl ( x ) = 1.000 100 , fl ( y ) = −5.400 10−3
x ⊕ y = fl (1.000 100 − 0.005100 ) = 0.995100 = 9.950 10−1
x ⊗ y = fl (1.000 100 × ( −5.400) 10−3 ) = −5.400 10−3
Osservazioni sulla precisione finita
Per le operazioni di macchina non valgono più tutte le proprietà delle
quattro operazioni:
Vale la proprietà commutativa
Non vale la proprietà associativa
Non vale la proprietà distributiva

Formule o algoritmi matematicamente equivalenti (che portano allo


stesso risultato se applicati in precisione infinita) possono produrre
risultati diversi in aritmetica finita.
Lo studio degli errori di arrotondamento e della loro propagazione
attraverso gli algoritmi è di fondamentale importanza per poter
interpretare e valutare i risultati di un qualunque algoritmo che operi con
numeri reali
Esempio 1
β = 10, t = 4 fl per troncamento: ε m = β 1−t = 10−3
a = 2000 b = 2.5 c = 7.8
( a ⊕ b ) ⊕ c = ( 2.000103 ⊕ 2.500100 ) ⊕ 7.800100 =
= ( 2.000103 ⊕ 0.002(5)103 ) ⊕ 7.800100 =
= 2.002103 ⊕ 7.800100 = 2.002103 ⊕ 0.007(8)103 = 2.009103
a ⊕ (b ⊕ c ) = 2.000103 ⊕ ( 2.500100 ⊕ 7.800100 ) =
= 2.000103 ⊕ 1.030101 =
= 2.000103 ⊕ 0.010(3)103 = 2.010 103

( a + b ) + c = a + (b + c ) = 2010.3
( a ⊕ b ) ⊕ c ≠ a ⊕ (b ⊕ c )
L’ errore relativo nel primo caso: 1.3/2010.3≈10-3, mentre nel secondo
0.3/2010.3 ≈10-4. Pur essendo diversi gli errori sono accettabili in
entrambi i casi rispetto alla precisione usata
Esempio 2
β = 10, t = 3 fl per troncamento: ε m = β 1−t = 10−2
a = 9.0 b = 2.0 c = 2.01
a  b = fl ((1.8) = 1.8
a  c = fl (1.809) = 1.8

→ a  b = a  c ⇒ b = c falso!!
Esempio 3

β = 10, t = 3 fl per troncamento: ε m = β 1−t = 10−2


a = 6.51 b = 6.53
a+b
c= = fl (( 6.51100 ⊕ 6.53100 ) ÷ 2) = fl (13.0 101 / 2) = 6.50 100 ∉[a , b]!
2
b−a
c =a+ = 6.51100 ⊕ fl (6.53100 ⊕ ( −6.51100 )) / 2) = 6.51100 ⊕ 1.00 10−1 = 6.52 100
2

Formule matematicamente equivalenti non lo sono più quando


si opera in precisione finita
Algoritmo per determinare εm
Si osserva che fl (1 + β − p ) ≠ fl (1)
⇒ εm = β − p
fl (1 + β − p − 1) = fl (1)

La precisione di macchina è il più piccolo numero floating point che


sommato ad 1 da’ un numero più grande di 1.

1. Poni εm=1
2. Poni εm=β-1* εm
3. Poni a=1+ εm
4. Se a>1 vai a 2.
altrimenti vai a 5.
5. Poni εm=β* εm
6. Stampa εm
Importante
Il concetto di uguaglianza va modificato quando si lavora sui numeri reali
in precisione finita
Risultati diversi possono essere considerati uguali nei limiti della
precisione usata
Due numeri sono uguali quando hanno uguale caratteristica ed uguale
mantissa MA due numeri sono da considerarsi uguali quando la loro
differenza è piccola rispetto alla precisione di macchina |a-b|<ε
ε è la tolleranza ed il suo valore dipende dalla precisione di macchina
Complessità di calcolo
Un algoritmo è una successione finita di istruzioni, assegnate in
modo non ambiguo, la cui esecuzione consenta di passare da una
situazione iniziale (dati) ad una situazione finale (risultati), in un
tempo finito.
I requisiti fondamentali di un algoritmo sono la generalità (adatto a
risolvere una classe di problemi) e l’ottimalità (rispetto al tempo, al
numero di operazioni, alla stabilità, …)

Due algoritmi si possono confrontare anche rispetto al numero di


operazioni. Maggior numero di operazioni corrisponde a maggior
tempo di esecuzione, ma non sempre a peggior accuratezza (es.
aumentando # cifre per rappresentare un numero aumenta il tempo
di esecuzione delle operazioni…)
Esempio: algoritmo di Horner
Calcolo del valore di un polinomio in un punto
n
Pn ( x ) = ∑ ai xi = a0 + a1 x + a2 x 2 + L + an x n = a0 + x ( a1 + x ( a2 + L x ( an −1 + xan ))...)
i =0

Algoritmo 1 Algoritmo 2
1. Dati a0,….an,x 1. Dati a0,….an,x
2. Poni s=a0, xp=1; 2. Poni s=an
3. Per i=1…n 3. Per i=n-1,n-2,….,0
1. xp=xp*x 1. s=s*x+ai
2. s=s+ai*xp 4. Stampa s
4. Stampa s 5. Stop
5. Stop n Molt. +n Add.
2n Molt. +n Add. OTTIMALE!
Condizionamento e stabilità

Def. Un problema è bencondizionato se a piccole variazioni sui dati


corrispondono piccole variazioni sui risultati

f ( x + ∂x ) − f ( x ) ∂x
≈ = εx
f ( x) x

Def. Un algoritmo è stabile se amplifica poco (relativamente alla


caratteristiche del calcolatore) gli errori di arrotondamento introdotti
nelle singole operazioni
Esempi
Malcondizionamento :
( x − 1)4 = 0 → xi = 1
( x − 1)4 = 10−8 → xi = 1 + 10−2
x
Instabilità: calcolo e per x=-9
x 2 x3 xk
e = 1+ x + + +L+
x

2 3! k!
−1
81 729  81 729 
e −9 = 1 − 9 + − + L = 1 + 9 + + + L
2 3!  2 3! 
sommando fino al 23-esimo termine, con la seconda
espressione O.K. , mentre con la prima si ottiene un risultato
negativo!
Osservazioni

Un problema può essere malcondizionato per certi dati e per


altri no.
Anche un problema bencondizionato può dare risultati non
sufficientemente corretti se risolto con un algoritmo instabile.
La stabilità di un algoritmo è data dal bencondizionamento della
successione delle trasformazioni elementari che lo
compongono.
Stabilità
Propagazione degli errori sui dati

Conclusione:
si commettono errori nel rappresentare i numeri reali
si commettono errori nell'esecuzione delle operazioni
aritmetiche
Idea tranquillizzante e sbagliata: poiché gli errori sono molto
piccoli anche i risultati sono affetti da errori molto piccoli

Occorre studiare come si propagano gli errori delle


operazioni dell'algoritmo.

DEF: Un algoritmo si dice stabile se rimane limitato


l'influsso degli errori
Stabilità-2
Propagazione degli errori sui dati

Ad esempio nella SOMMA si ha una grande amplificazione degli errori


sui dati sommando numeri quasi uguali in modulo ma opposti di
segno (cancellazione numerica)

L'analisi della propagazione degli errori in un algoritmo è


estremamente complessa. Dato un problema P

Analisi in avanti (forward analysis): si valuta la differenza tra la soluzione


esatta y e quella calcolata y~
Analisi all’ indietro (backward analysis): si interpreta la soluzione
calcolata y~ come soluzione esatta di un problema perturbato Q e si
valuta P-Q
Propagazione errori somma algebrica
x+ y → fl ( x ) ⊕ fl ( y )

fl ( x ) = x (1 + ε x ) fl ( y ) = y (1 + ε y ) εx , ε y < εm

→ fl ( x ) ⊕ fl ( y ) = ( fl ( x ) + fl ( y ))(1 + ε s )

fl ( x ) ⊕ fl ( y ) − ( x + y ) ( fl ( x ) + fl ( y ))(1 + ε s ) − ( x + y )  x (1 + ε x ) + y (1 + ε y )  (1 + ε s ) − ( x + y )
= =
x+ y x+ y x+ y
 x + y + xε x + y ε y  (1 + ε s ) − ( x + y ) xε x + y ε y + ( x + y )ε s
≈ ≈ =
x+ y x+ y
x y
= εs + εx + εy
x+ y x+ y

• Se x ≈ -y CANCELLAZIONE NUMERICA
Propagazione errori moltiplicazione
x⋅ y → fl ( x ) ⊗ fl ( y )

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

→ fl ( x ) ⊗ fl ( y ) = ( fl ( x ) ⋅ fl ( y ))(1 + ε p )

fl ( x ) ⊗ fl ( y ) − x y ( fl ( x ) + fl ( y ))(1 + ε p ) − x y  x (1 + ε x ) ⋅ y (1 + ε y )  (1 + ε p ) − x y
= =
xy xy xy
x y + xyε x + xy ε y + xy ε p − x y x y (ε y + ε x + ε p )
≈ ≈ = ε p +εx +εy
xy xy
Esempi
Vengono qui presentati alcuni esempi nei quali l'insorgere di piccoli errori di arrotondamento
ha comportato un risultato disastroso nel comportamento di un sistema. Queste pagine sono
state riadattate a partire dalle pagine originali dovute al Prof. Douglas N. Arnold della Penn State University
ed al Prof. Kees Vuik della University of Technology di Delft (NL).

MISSILE PATRIOT
Il 25.02.1991, durante la guerra del Golfo, un missile Patriot di una batteria di
Dhahran, in Arabia Saudita, ha mancato l'intercettazione di un missile iracheno
SCUD. Lo SCUD ha distrutto una caserma americana. Altri missili SCUD sono
riusciti a colpire il territorio israeliano a causa di analoghi errori di intercettazione.

• Un report del General Accounting office spiega che l'errore è stato


dovuto essenzialmente al calcolo inaccurato del tempo a causa di errori
di arrotondamento. In particolare, il tempo, calcolato in decimi di
secondo nel computer della batteria dei PATRIOT, veniva poi moltiplicato
per 10 per ottenere un tempo in secondi. Questi calcoli furono eseguiti
con un formato a virgola fissa con registri a 24 bit. Sfortunatamente, il
numero 0.1 non ha una rappresentazione finita in rappresentazione 2 e,
di conseguenza, se troncato e poi moltiplicato per 10, finisce con il
comportare l'insorgere di significativi errori. Il semplice troncamento
produce in effetti un errore pari a circa 0.000000095.
Esempio 2
MISSILE ARIANE
Il 04.06.1996 un missile della classe Ariane V (un progetto costato,
durante una decina d'anni di sviluppo, circa 7 bilioni di dollari) della
European Space Agency (ESA) precipitó 37 secondi dopo il lancio dal
poligono di Kourou nella Guiana francese. La distruzione del missile e
del suo carico provocó una perdita di circa 500 milioni di dollari.

Il guasto alla base del fallimento, accertato dopo


due settimane di indagini, fu dovuto ad una erronea
conversione di un numero floating-point a 64 bit
(correlato alla velocitá orizzontale del razzo rispetto
alla piattaforma) in un intero a 16 bit: il numero
risultante, maggiore del massimo intero
rappresentabile pari a 32768, provocó un overflow
nella misura della velocitá orizzontale con il
conseguente spegnimento dei razzi ed esplosione del
missile.
Efficienza di un metodo numerico
Accuratezza: la soluzione numerica deve essere “vicina” alla
soluzione del problema matematico

Facilità di implementazione: la formulazione del metodo numerico


deve essere tale che la sua traduzione in un algoritmo
corrispondente sia semplice e che l’algoritmo sia facile da
implementare in un codice di programmazione
Metodi numerici per
sistemi lineari quadrati

a.a. 2017/2018
Prof. Maria Lucia Sampoli
Richiami sulle matrici
Norme di vettori e di matrici
Il concetto di norma è una generalizzazione del concetto di lunghezza di
n× n
un vettore x ∈ R n o di una matrice A ∈ R

DEFINIZIONE: Una funzione da Rn in R: x ||x||, tale che

è detta norma vettoriale


Esempi
Norme matriciali indotte
DEFINIZIONE: Una funzione da RnXn in R: A ||A||, tale che

e’ detta norma matriciale.


In generale si considerano norme matriciali indotte
Sistemi lineari quadrati


Condizionamento
Condizionamento
Condizionamento: proprietà
Condizionamento: proprietà
Dato Ax=b, come calcolare x?
det( Ai )
xi = per i = 1,K, n
det( A)
Sistemi triangolari
Sistemi triangolari
Metodi diretti: fattorizzazione LR
Metodi diretti: fattorizzazione LR
Metodo di eliminazione di Gauss
Metodo di eliminazione di Gauss
Metodo di eliminazione di Gauss
Metodo di eliminazione di Gauss
Metodo di eliminazione di Gauss

NON
Metodo di eliminazione di Gauss
Metodo di eliminazione di Gauss
Algoritmo di Gauss

n-1 n -1
(n - 1)n(2n - 1) (n - 1)n n 3
∑ (n - k) + ∑ (n - k) =
2
+ ≈
k =1 k=1 6 2 3
Algoritmo di Gauss
Metodo di Gauss: pivoting e scaling
Metodo di Gauss: pivot totale
Metodo di Gauss: pivot parziale
Metodo di Gauss: pivot parziale
Metodo di Gauss: pivot parziale
Metodo di fattorizzazione diretta
Metodo di fattorizzazione diretta
Fattorizzazione di Choleski
Fattorizzazione di Choleski
Fattorizzazione di Choleski
Metodi iterativi per sistemi lineari
Nei metodi diretti la presenza di eventuali elementi nulli nella matrice
non può essere sfruttata ai fini di ridurre il costo computazionale e
l'occupazione di memoria ( aspetti signicativi per sistemi di grandi
dimensioni)
Infatti la trasformazione di A può introdurre un numero diverso da zero
laddove prima c'era uno zero (fill-in)
I metodi iterativi sono utili per la risoluzione di sistemi lineari di grandi
dimensioni con matrici A sparse (il numero degli elementi non nulli è
dell'ordine di n)
Costruzione di un metodo iterativo
Consideriamo il sistema lineare Ax = b con det(A) ≠ 0. Introduciamo
la seguente decomposizione della matrice A = P − N. Allora si ha

Ax = b ⇒ (P - N )x = b ⇒ Px = Nx + b ⇒ x = P -1Nx + P -1b

Il sistema è ricondotto ad un problema di punto fisso. Applichiamo il


procedimento delle approssimazioni successive

dove B è matrice di iterazione


DEF. Il metodo iterativo è chiamato consistente se e solo se g e B sono
tali che x=Bx+g
Convergenza di un metodo iterativo
Matrici sparse
Il costo di un metodo iterativo è dato dal
numero delle iterazioni x costo del prodotto di B per un vettore
Quindi l’uso dei metodi iterativi è consigliato nel caso di matrici sparse
e di grandi dimensioni.
Il formato sparse è utilizzato in Matlab per ridurre i costi di
memorizzazione della matrice.
Formulazione generale

x (0) = f 0 ( A, b)
x ( n +1) = f n +1 ( x ( n ) , x ( n −1) ,..., x ( n − m ) , A, b) for n ≥ m

Il numero di passi da cui dipende la generica iterazione da’ l’ordine


del metodo.
Quando fi sono indipendenti dall’ i-esimo passo il metodo è
chiamato stazionario, non-stazionario altrimenti.
Quando fi dipendono linearmente da x(0), …x(m) , il metodo è detto
lineare
Metodi lineari

P è non singolare

Tale relazione può essere riscritta in termini del residuo r(k) = b - Ax(k)
x( k +1) = x(k ) + P −1r ( k )
x( k +1) = x(k ) − P −1 Ax(k ) + P −1b

La matrice di iterazione è B= I – P-1A pertanto P deve essere tale


che la sua inversa sia facile da calcolare
Metodi lineari classici
Sono basati sulla decomposizione

dove
Jacobi
Se gli elementi diagonali di A sono diversi da zero, in ogni
equazione possiamo mettere in evidenza l’incognita corrispondente:

Questo è equivalente a scegliere la decomposizione con P=D


Gauss-Seidel
Al (k+1)-esimo passo si utilizzano i valori we già calcolati

Questo e’ equivalente alla scelta P=D-E:


Successive over relaxation (SOR)
Si introduce un parametro reale (diverso da zero) per aumentare la
velocità di convergenza

B(ω ) = ( I − ω D −1E)−1[(1 − ω )I + ω D −1F ]

1
Questo è equivalente a scegliere P= D−E
ω
Il metodo è consistente per ωǂ0 e per ω=1 coincide con GS
Risultati di convergenza per J-GS-
SOR
Se A è a diagonale dominante in senso stretto rispetto alle righe
allora Jacobi e Gauss-Seidel sono convergenti
Se A è simmetrica e definita positiva allora GS converge
monotonicamente
Se A è tridiagonale ρ ( BGS ) = ρ 2
( BJ )

Se A è simmetrica e definita positiva allora SOR converge se e solo


se 0<ω<2
SOR diverge se ω ≤ 0 or ω ≥ 2
Criteri di arresto
Incremento
Residuo
Il metodo di Richardson stazionario
Come abbiamo già visto, ogni metodo iterativo finora considerato
(basato sulla decomposizione A=P-N, e quindi N=P-A) può essere
riscritto:

La convergenza del metodo è garantita quando ρ(I-P-1A)<1


Quando questo non succede, seguendo l’approccio usato in SOR,
si può modificare il metodo introducendo un opportuno parametro α
tale che

Il metodo così ottenuto è detto Metodo di Richardson Stazionario


Convergenza Richardson stazionario
Teorema: se P è invertibile, il metodo di Richardson stazionario
converge se e solo se
2 Re λi
>1 ∀ i = 1,..., n
α λi
2

dove λi sono gli autovalori di P-1A

Teorema: Se P è non singolare e P-1A ha autovalori reali positivi allora


il metodo di Richardson stazionario converge se e solo se

0 < α < 2/λn,

Se P-1A è simmetrica definita positiva, la convergenza del metodo è


monotona rispetto alle norme. Inoltre in questo caso
−1
K 2 ( P A) − 1 2 A−1P
ρopt = α opt = 2

K2 ( P − 1 A ) + 1 K2 (P −1 A) + 1
Precondizionatori

La matrice P che compare nell’espressione del metodo di Richardson si


chiama matrice di precondizionamento.
P, oltre a non essere singolare, deve essere invertibile con un basso
costo computazionale altrimenti il costo complessivo dello schema
aumenta eccessivamente.
La scelta di P deve essere guidata dalla seguente condizione:

L’ideale sarebbe avere e quindi P-1 rappresenta


un’approssimazione dell’inversa di A.
Precondizionatori di uso comune
Il metodo di Richardson non stazionario
Possiamo supporre che il parametro di accelerazione α dipenda
dall’indice di iterazione → metodi di Richardson non stazionari

x ( k +1) = x ( k ) + α k P −1r ( k )
La matrice di iterazione al passo k-esimo è data da

Bα k = I − α k P A −1

Possiamo riscrivere il metodo in una forma molto conveniente dal


punto di vista computazionale.
−1 ( k )
Posto z = P r
(k )
residuo precondizionato

x ( k +1) = x ( k ) + αk z( k ) → r ( k +1) = b − A x ( k +1) = r ( k ) − αk Az( k )


Il metodo di Richardson non stazionario -2
Il metodo del gradiente
Il metodo del gradiente -2
Il metodo del gradiente o di massima discesa
Gradiente precondizionato

Se K2(A)= λ1/ λn è molto grande, la convergenza è molto lenta e non


si raggiunge mai il minimo.
Un risultato analogo a quello visto sopra vale utilizzando in
precondizionatore. In questo caso si sostituisce K2 ( A) con K2 (P −1 A)
Si deve fare l’ipotesi che P sia simmetrica e definita positiva

Un’alternativa ancora più efficace consiste nell’utilizzare come


direzioni di discesa, non più coincidenti con quelle del residuo
(direzioni A-ortogonali) → gradiente coniugato.
Il metodo del gradiente coniugato
Confronto tra MG e MGC
Metodi a terminazione finita per matrici
qualunque
Equazioni e sistemi
non lineari

Prof. M. Lucia Sampoli

1
Equazioni non lineari
 Data una funzione f :    consideriamo il problema di determinare i valori x
tali che
f (x)  0
Tali valori sono solitamente chiamati zeri o radici della funzione f.

Esempi: n
Equazioni algebriche: Pn ( x )  a x
k 0
k
k
0

x  4 sin(x )  0, ex  x2, x  log(x )  3


 In generale non sono disponibili formule esplicite per la determinazione delle
radici di una funzione (per esempio equazioni algebriche)

metodi iterativi

2
Metodi iterativi
 Tecniche che consentono di approssimare le soluzioni con un prestabilito
grado di precisione
(0)
 A partire da una approssimazione iniziale x si costruisce una successione x (1) , x (2) , 
tale che, sotto opportune ipotesi, risulta convergere alla radice cercata.
 E’ importante tener presente tre questioni fondamentali

1. Velocità di convergenza
x (1) , x (2) , 
Definizione: data una successione convergente ad un limite α, si
ponga e  x   se esistono due numeri reali p  1 e C  0 tali che sia
( n) ( n)

e(n 1)
lim p
C
n  ( n)
e
si dice che la successione ha ordine di convergenza p e fattore di
convergenza C.
 Per p=1 e p=2 la convergenza si dice anche lineare e quadratica. Nel caso p=1
si ha necessariamente C<1.

3
Metodi iterativi 2
2. Scelta del valore di innesco. x (0)
Un metodo converge localmente ad α se la (0 )
convergenza della successione
dipende in modo critico dalla vicinanza dix ad α. Il procedimento è (0)
globalmente convergente quando la convergenza non dipende da quanto x è
vicino ad α.
• Per i metodi a convergenza locale la scelta del punto di innesco è cruciale.

3. Criteri di arresto. Chiaramente non è possibile generare infinite iterate della


successione x(k) . Il procedimento dovrebbe arrestarsi quando
x (k )  
erel   toll

 Non disponendo della soluzione è necessario procurarsi una stima di e(k ) . Una
possibile strategia è quella di approssimare e(k ) con x (k 1)  x (k ) . Si ottiene
il criterio relativo ( k 1) (k )
x x
 toll
x (k 1)
Quando x (k 1) è molto piccolo tale criterio risulta troppo stringente ed è più
opportuno usare un criterio di arresto assoluto dato da
x (k 1)  x (k )  toll 4
Metodi iterativi 3
 Fondendo i due criteri si ottiene il seguente Criterio di arresto misto

x(k 1)  x(k )  tollR x(k 1)  toll A

Dove tollR e toll A sono rispettivamente la tolleranza relativa ed assoluta.


 Automaticamente il criterio sarà di tipo assoluto quando x (k ) è molto piccolo
e di tipo relativo nei restanti casi.
(k )
 Si può vedere che x (k 1)  x (k ) è asintoticamente una buona stima di e
nel caso di convergenza quadratica o superlineare, mentre nel caso di
convergenza lineare l’approssimazione sarà tanto migliore quanto la
costante C è vicina a zero.

5
Metodi iterativi 4
 Per equazioni non lineari si può anche utilizzare il controllo del
residuo
f (x (k 1) )  toll

(k )
 Se f '( )  1 : e’ inaffidabile ( e potrebbe essere molto grande)

 Se f '( )  1 : troppo restrittivo

 Se f '( )  1 produce un’indicazione soddisfacente

 Quando non si ha la certezza sulla bontà dei test (su x ed f)


conviene includerli entrambi
 In pratica se il criterio di arresto funziona non si ha la soluzione
esatta ma solo una sua approssimazione

6
Metodo di bisezione
 Il metodo di bisezione è il metodo iterativo più semplice per approssimare gli zeri
reali di una funzione.
 Ipotesi: 1) f(x) continua nell’intervallo [a,b]
2) f(a) f(b)<0
per il teorema degli zeri ammette almeno una soluzione α di f(x)=0, in (a,b).

 Si procede suddividendo ad ogni passo l’intervallo [a,b] a metà e determinando in


quale dei due sottointervalli si trova la soluzione, dimezzando così l’ampiezza
dell’intervallo che contiene α.
ALGORITMO:
1. Si pone a1  a, b1  b
2. Per i=1,2,….,nmax si calcolano ci  ai  bi e f(ci )
2
1. Se f (ci )  f (ai )  0 si pone ai 1  ci ; bi 1  bi
2. Altrimenti se f (ci )  f (ai )  0 si pone ai 1  ai ; bi 1  ci
3. altrimenti f (ci )  0, si ha   ci
3. Il procedimento viene arrestato se per un indice i risulta f (ci )  toll e/o
bi  ai   7
Ampiezza dell’intervallo ed errore
 Per costruzione ad ogni passo l’ampiezza dell’intervallo è dimezzata, dopo n passi
arriviamo all’intervallo an , bn  di ampiezza
b  an 1 bn  2  an  2 b0  a0
bn  an  n 1   ... 
2 22 2n
a  bn
 Se come stima di α prendiamo cn  n abbiamo
2
b0  a0
en    cn  en 
2n  1
b0  a0
 Se poniamo   otteniamo n da
2n  1
b0  a0  b  a0 
2n  1   n  log2  0  1
   
 Il metodo di bisezione converge sempre alla soluzione con la sola ipotesi che f sia
continua nell’intervallo [a,b]
 La convergenza è però lenta e questo costituisce il limite del metodo. Una spiegazione
può essere ricercata nel fatto che non si tiene conto dei valori della funzione ma
soltanto dei segni. Geometricamente il metodo costruisce ad ogni passo
l’approssimazione della radice calcolando l’intersezione con le ascisse della retta
passante per i punti
(ai , sgn(f (ai )), (bi , sgn(f (bi ))
8
Metodo della regula falsi
 Un modo naturale per migliorare il metodo di bisezione è quello di considerare
anche i valori che la funzione assume negli estremi dell’intervallo e prendere come
nuova approssimazione della soluzione l’intersezione delle ascisse con la retta
passante per
(ak , f (ak )), (bk , f (bk ))
 Il metodo metodo risultante è noto come metodo regula falsi o della falsa posizione
1. Dato [a0 , b0 ] tale che f (a0 )  f (b0 )  0
2. Finchè non sia verificato un criterio di arresto, poni wk  (f (bk ) ak  f (ak )bk ) /(f (bk )  f (ak ))
1. Se f (ak )  f (wk )  0, allora ak 1  ak , bk 1  wk
2. Altrimenti ak 1  wk , bk 1  bk
3. k=k+1
3.  w
 k

 Il metodo genera una successione di intervalli decrescenti in cui è


contenuta la radice
 è più veloce rispetto al metodi di bisezione, anche se in generale
[ak , bk ]  0, per k  
pertanto il criterio di arresto basato sull’ampiezza dell’intervallo non
è applicabile.
 La scelta dell’intervallo comporta una convergenza globale
 Si può dimostrare che la velocità di convergenza è lineare:
9
Metodo delle secanti
 Una variante della regula falsi è il metodo delle secanti in cui sono richieste due
approssimazioni iniziali senza alcun’ altra condizione e senza la necessità di
controllare il segno di f(x)
( 1) (0)
 Assegnati due valori iniziali x , x si costruisce la successione
( k 1) (k ) x (k )  x (k 1)
x x  (k ) ( k 1)
f (x (k ) ) k 0
f (x )  f (x )

 La convergenza del metodo è garantita se le approssimazioni iniziali sono


abbastanza vicine alla radice α: convergenza locale.
Vale il seguente risultato:

Teorema: Sia f (x) C2() , essendo  un intorno


opportuno della radice, e si assuma f ''( )  0
( 1) (0)
Allora se i dati iniziali x , x sono scelti in 
sufficientemente vicini ad α, la successione converge
ad α in modo superlineare, con ordine
(1 5)
p  1.63
2 10
Metodo di Newton
 Se si vuole migliorare ancora di più la velocità di convergenza è necessario
utilizzare più informazioni della funzione. Nel caso in cui essa sia derivabile si
può considerare anche la sua derivata f’(x).
 Sviluppando f in serie di Taylor in un intorno di α ed arrestando lo sviluppo al
prim’ordine si ottiene una versione linearizzata del problema f(x)=0.

f ( )  0  f ( x )  (  x ) f '( )   ( , x )
 Assumendo quindi f’(α)≠0 (radice semplice) ed assegnato un valore iniziale x (0) si
ottiene il metodo di Newton
( k 1) (k ) f ( x (k ) )
x x  k 0
f '(x (k ) )

 Geometicamente si prende come nuova


approssimazione l’intersezione delle ascisse con la retta
tangente in (x (k ) , f (x (k ) ))
 Alla k-esima iterazione questo metodo richiede due
(k ) (k )
valutazioni funzionali f ( x ) e f '(x ). L’aumento del
costo computazionale è compensato dal fatto che la
convergenza (locale) è di ordine superiore al primo. In
generale è quadratica 11
Metodi di iterazione funzionale
 La ricerca degli zeri di una funzione f è ricondotta allo studio dei punti fissi di
un’opportuna funzione g f ( )  0    g( )

 La successione delle approssimazioni sarà definita come x (k 1)  g( x (k ) )

 La funzione di iterazione g non è unica e può essere costruita nei modi più
diversi, ma non tutti daranno luogo a strumenti efficienti.

12
Metodi di iterazione funzionale

g(x)

x3 x2 x1
1
x00

Convergenza monotona

13
Metodi di iterazione funzionale

x x x x2 x
1 3 4 0

Convergenza alternata

14
Convergenza
 Bisogna studiare sotto quali condizioni la successione delle iterate appartenga
sempre al dominio di f e sia convergente ad α.

( k 1)
Teorema: Data la successione x  g(x (k ) ) per k  0 e x (0) assegnato.
Supponiamo che la funzione g soddisfi le seguenti condizioni
(i) g: [a,b] →[a,b]
1
(ii) g  C [a, b]
(iii)  k  1 : g '(x )  k  x  [a, b]
Allora g ha un unico punto fisso α in [a,b] e la successione delle iterate da essa generate
converge ad α, per ogni scelta del punto iniziale in [a,b]. Inoltre
x (k 1)  
lim (k )  g '( )
k  x 
dim. L’ipotesi (i) e la continuità di g (implicita in (ii)) garantiscono che g abbia almeno un
punto fisso in [a,b]. L’hp (iii) assicura che g è una contrazione per cui il punto fisso è unico
(si dimostra per assurdo).

 Risultato importante teoricamente, ma nella pratica è difficile stabilire a priori l’intervallo


[a,b] in cui sono soddisfatte le ipotesi.
15
Convergenza 2
Per dimostrare che la successione converge si considera

x (k 1)    g( x (k ) )  g( ) applicando il teorema della media

 g
 '(
 (k )
 ) ( x (k )
 ) dove  (k )  ( , x (k ) )
 k 1 per ( iii )

 x (k 1)    k x (k )    k k 1 x (0)  
per cui lim x (k 1)    0
k 

Inoltre dalla continuità di g’ si ha

x (k 1)  
lim  lim g '( (k ) )  g '( )
k  x (k )  

16
Convergenza 3
Teorema (Otrowski): Sia α un punto fisso di g  C 1 [   ,    ].
Se  x [  ,  ],
(0)
g '(x )  1,  x  [   ,    ], allora la successione delle
iterate generata da g è tale che
(a) x  
(k)
(unico punto fisso)
(b) x  [   ,    ]
(k )

 La convergenza può esserci in insiemi molto più grandi di quelli in cui g '( )  1
(condizione sufficiente, convergenza locale)

α
g(x)

x1 x x4 x2 x0 x3 x2 x
1
x0
3

1  g '( )  0 0  g '( )  1
convergenza alternata 17
convergenza monotona
Convergenza 4

18
Ordine di convergenza
 Per i metodi di iterazione funzionale è possibile anche dare una relazione
tra ordine del metodo e molteplicità di α rispetto a g’

Teorema: Sia    (opportuno intervallo) punto fisso di g  C p [ ], con p  2


Se per un punto x   la successione x
(0) (k )
 
è convergente e se g ( )  0
(i )

per i=1,....p-1 e g( p)( )  0 allora il metodo ha ordine di convergenza p e


risulta
x (k 1)   g( p)( )
lim
k  x (k )

p

p!

 A parità di ordine di convergenza p, quanto più piccola risulterà la


quantità g ( ) / p ! tanto più veloce sarà la convergenza delle iterate ad
( p)

19
Ordine di convergenza
DIM: Dallo sviluppo di Taylor si ha in generale
( k 1) (k )
(tenuto conto che x  g( x ) )

( x (k )   )2
x    g( x )  g( )  g '( )( x   )  g ''( )
( k 1) (k ) (k )

2!
( x (k )
  )p 1
( x (k )
  )p
  g( p 1)( )  g( p)( )
( p  1)! p!

Dove   (x (k ) ,  ) . Quindi se valgono le ipotesi del teorema si ha la tesi.

20
Convergenza metodo di Newton
 Il metodo di Newton può essere visto come un metodo di iterazione funzionale
con la funzione g data da g( x )  x  f ( x )
f '( x )
f ''( x ) f ( x )
 Osservando che se f  C e f '( )  0 : g '( x )   g '( )  0
2

(f '( x ))2
il metodo è localmente sempre convergente
 La convergenza è quadratica per radici semplici e si riduce a lineare per radici
multiple.
 Risultati di convergenza globale:
Teorema: Sia f  C 2[     ] tale che
(i) f ( x ) f ''( x )  0 in (     ]
(ii) f '( x )  0 in (     )

  x0  (     ] la successione originata dal metodo di Newton DECRESCE


monotonicamente ad α.
 Per gli intorni sinistri [α+ρ, α) si ottiene una successione che converge in modo monotono
CRESCENTE ad α.
21
Esercizio 1

22
Esercizio 1 (segue…)

23
Esercizio 1 (segue…)

24
Esercizio 2

25
Esercizio 3

26
Esercizio 3 (segue…)

27
Esercizio 4

28
Esercizio 4 (segue…)

29
Condizionamento (caso scalare)
 Non è facile quantificare cosa si intenda per perturbazione di un’equazione
non lineare. Conviene considerare l’equazione riscritta come
f (x)  0   (x)  d
 Se α radice semplice di f ⇒ φ(α)=d ⇒ α=φ-1(d) ⇒ α=G(d)
G esprime il legame funzionale tra la radice ed il dato iniziale d
    G(d   d )  G(d )  G '(d )  d  o( d 2 )
   G '(d )  d
 Supponendo f ∈ C1 studiamo la sensibilità del calcolo delle radici di f
rispetto a variazioni sul dato d.

 d 
kf  
d  d
d

 Applicando le regole di derivazione per funzioni inverse


1 d
  d  kf 
 '( )  f '( ) 30
Sistemi non lineari
 La maggior parte dei metodi considerati per il caso monodimensionale
possono venire generalizzati con successo al caso di sistemi. Tra essi non ci
possono essere quei metodi che considerano, ad ogni iterazione, una scelta
opportuna di un intervallo in cui era compresa la radice (bisezione, regula
falsi).
n n * n *
Problema: data F :    , trovare x   tale che F(x )  0
 Tra i metodi il più usato è l’estensione vettoriale del metodo di Newton
1
x ( k 1)
x (k )
  JF (x(k ) ) F(x(k ) )
 Fi 
dove JF (x) indica la matrice Jacobiana  JF (x)i , j 
 x
(x) 

 j 
 Dal punto di vista implementativo il metodo può essere riscritto considerando,
ad ogni iterazione, due sottopassi
Risolvere JF (x(k ) ) δx(k )  F(x(k ) )
Calcolare x(k 1)  x(k )  δx(k )
(k )
J
 Ad ogni passo k si deve risolvere un sistema lineare con matrice F ( x )
31
 Per quanto riguarda la convergenza si può dimostrare (risultato dovuto a
Kantorovich) che se la matrice Jacobiana è non singolare, partendo da
una approssimazione iniziale x(0) sufficientemente buona, il processo
*
iterativo genera una successione convergente alla radice x
 L’ordine di convergenza è quadratico

 La sensibilità del metodo alla scelta del punto iniziale è molto più
marcata che nel caso scalare
 Il costo richiesto ad ogni passo per la risoluzione del sistema lineare è
molto elevato per n grande
 La matrice Jacobiana può essere malcondizionata dando luogo a
soluzioni non necessariamente accurate.

VARIANTI METODO DI NEWTON

32
Varianti metodo di Newton
 Valutazione ciclica della matrice Jacobiana: si mantiene la stessa
matrice Jacobiana per un certo numero p>1 di iterazioni: metodo di
Newton modificato. L’aumento di efficienza è pagato da una velocità di
convergenza più bassa.
 Risoluzione inesatta dei sistemi lineari: si risolvono i sistemi lineari con
un metodo iterativo (facendone solo alcuni passi); per esempio Jacobi,
Gauss-Siedel o Gauss-Siedel con rilassamento: metodi di Newton
inesatti.
 Approssimazione Jacobiana con rapporti incrementali: ad ogni passo si
considera al posto della matrice Jacobiana una sua approssimazione
mediante rapporti incrementali n-dimensionali (come vantaggio non si
deve calcolare le n2 derivate parziali costituenti J(x)

(k ) F(x(k )  h(j k )e j )  F(x(k ) )


( Jh ) j  (k )
, k  0
h j

33
Metodi di iterazione funzionale
 Come nel caso monodimensionale il problema può essere riformulato in
modo da trovale la soluzione come punto fisso di una opportuna funzione
di iterazione
Data G :  n   n , trovare x*   n tale che G(x* )  x*
( k 1) (k )
 Si considerano metodi iterativi della forma x  G(x )

Teorema: Se x* è punto fisso di G, condizione sufficiente per la convergenza alla


radice , del metodo iterativo è che esistano due numeri positivi K e ρ, con K<1, tali
che si abbia
G(x)  K , 
 x  D  x : x  x *
 
(0) *
purché x sia scelto in D ; in tal caso x è l’unico punto fisso di G in D

34
 Per quanto riguarda l’ordine di convergenza, il teorema
monodimensionale non può essere esteso direttamente, tuttavia se
esistono continue le derivate seconde delle componenti di G, si può
dimostrare che condizione sufficiente perché il metodo (se converge al
punto fisso) converga linearmente è che sia
G(x* )  0
 Se G(x* )  0 la convergenza è almeno quadratica ed è esattamente
quadratica se risulta non nulla almeno una delle matrici hessiane

 2Gi 2Gi 2Gi 


 2
 
 x 1 x1 x2 x1 xn 
Hi (x* )      
 2 
  Gi 2Gi 2
 Gi 
 x x 
 n 1 xnx2 xn2  x  x*

35
INTERPOLAZIONE
Nella pratica si presentano spesso i seguenti problemi:

(i) da misure sperimentali sono state ricavate le coppie di valori


(xi , fi ), i = 0, 1, . . . , n che esprimono un campionamento di un fenomeno
fisico. Supponendo tali valori esatti si vuole conoscere il valore ȳ = f (x̄) per
x̄ = xi e quindi ottenere una funzione che rappresenti il fenomeno.

Es: si può misurare la temperatura corporea di un malato in vari periodi della


giornata e desiderare una stima della temperatura in funzione del tempo T (t).

 
x 1+ 0t sinh(1+|x|)...
(ii) Si ha una funzione estremamente complicata (f (x) = e ), il
cui calcolo richiede un elevato tempo macchina ⇒ si tabula la funzione in un
prefissato numero di punti ed si approssima mediante interpolazione

⇒ In entrambi i casi, si suppone che i dati appartengano ad una funzione che


non presenta difficoltà di calcolo (polinomiale o razionale) e la si utilizza per
determinare i valori cercati

INTERPOLAZIONE – p.2/38
INTERPOLAZIONE
In generale, date le coppie di valori (x0 , f0 ), . . . , (xn , fn ) con xi ∈ [a, b]
(xi punti fondamentali) e S uno spazio di funzioni definite su [a, b];
si cerca una funzione g ∈ S che soddisfi le condizioni di interpolazione:
15

10

g(xi ) = fi , i = 0, 1, . . . , n 5

fi
0

−5

Vogliamo valutare g in x̄ = xi , i = 1, . . . , n, sia


−10
−1.5 −1 −0.5 0 0.5 1 1.5
xi
ξ1 = min{x0 , x1 , . . . , xn }, ξ2 = max{x0 , x1 , . . . , xn }

parleremo di
interpolazione se x̄ ∈ [ξ1 , ξ2 ]
estrapolazione se x̄ ∈
/ [ξ1 , ξ2 ]

INTERPOLAZIONE – p.3/38
INTERPOLAZIONE
La scelta dello spazio di funzioni S cade su spazi lineari a dimensione finita (n + 1)
⇒ si può fissare una base {φj (x), j = 0, 1, . . . , n} ed esprimere g(x) ∈ S come
n
g(x) = aj φj (x)
j=0

trovare la funzione interpolante g ∈ S equivale a trovare a0 , a1 , . . . , an tali che



g(xi ) = n j=0 aj φj (xi ) = fi , i = 0, 1, . . . , n ⇒

⎧ ⎡ ⎤

⎪ a0 φ0 (x0 ) + a1 φ1 (x0 ) + · · · + an φn (x0 ) = f0 φ0 (x0 ) φ1 (x0 ) ··· φn (x0 )

⎪ ⎢ ⎥

⎪ ⎢ φ0 (x1 )
⎨ a0 φ0 (x1 ) + a1 φ1 (x1 ) + · · · + an φn (x1 ) = f1 ⎢ φ1 (x1 ) · · · φn (x1 ) ⎥

. G=⎢
⎢ .. .. ..



⎪ . ⎢ ⎥

⎪ . ⎣ . . . ⎦



a0 φ0 (xn ) + a1 φ1 (xn ) + · · · + an φn (xn ) = fn φ0 (xn ) φ1 (xn ) · · · φn (xn )
Matrice di Gram

La scelta dello spazio di funzioni S dipende dalle applicazioni ed è molto importante:



interpolazione polinomiale: g(x) = n k=0 ak x
k

interpolazione trigonometrica: g(x) = a0 + a1 cos x + b1 sin x + ...


interpolazione spline
INTERPOLAZIONE – p.4/38
INTERPOLAZIONE POLINOMIALE
S = IPn ⇒
φj (x) = xj , j = 0, 1, . . . , n
g(x) = p(x) = a0 + a1 x + · · · + an xn ,

si vuol determinare un polinomio di grado minore o uguale a n, p(x) ∈ IP n tale che

n

p(xi ) = aj xji = fi , i = 0, 1, . . . , n
j=0

ovvero ⎧

⎪ a0 + a1 x0 + a2 x20 + · · · + an xn
0 = f0




⎨ a0 + a1 x1 + a2 x21 + · · · + an xn
1 = f1
⎪ ..

⎪ .




a0 + a1 xn + a2 x2n + · · · + an xn
n = fn

Il problema consiste nel risolvere un sistema lineare nelle incognite a0 , a1 , . . . , an

INTERPOLAZIONE – p.5/38
Esistenza e unicità del polinomio interpolante
La matrice dei coefficienti
⎡ ⎤
1 x0 x20 ··· xn
0
⎢ ⎥
⎢ 1 x1 x21 ··· xn ⎥
⎢ 1 ⎥ Matrice di
G=⎢
⎢ .. .. .. ..

⎥ Cauchy-Vandermonde
⎢ . . . . ⎥
⎣ ⎦
1 xn x2n ··· xn
n

det(G) = 0 ⇔ x0 , x1 , . . . , xn sono distinti


essendo det(G) = i>j (xi − xj ). Possiamo affermare:

TEOREMA
Esiste un unico polinomio di grado massimo n che assume valori f i ; i = 0, . . . , n
in corrispondenza di (n + 1) punti distinti x i ; i = 0, . . . , n.

La matrice di Gram G ottenuta con la base dei monomi è fortemente


malcodizionata ⇒ si può cambiare la base per IPn

INTERPOLAZIONE – p.6/38
INTERPOLAZIONE POLINOMIALE
La situazione ottimale si ha per G = I :
⎡ ⎤⎡ ⎤ ⎡ ⎤ ⎧
1 0 0 a0 f0 ⎪
⎪ a0 = f0
⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎪

⎢ . . . 0 ⎥ ⎢ .. ⎥
⎥ ⎢ . ⎢ . ⎥ ..
⎢ 0 ⎥ = ⎢ .. ⎥ ⇒ .
⎣ ⎦⎣ ⎦ ⎣ ⎦ ⎪



0 0 1 an fn an = fn
(n) (n) (n)
Ovvero, occorrono n + 1 funzioni 0 (x), 1 (x), . . . , n (x) tali che:
(n)
1) j (x) ∈ IPn , lineramente indipendenti

⎨ 0, i = j
(n)
2) j (xi ) = δij =
⎩ 1, i = j
(2) (2) (2)
ESEMPIO: n = 2, si devono costruire 3 funzioni lin. indip. 0 (x), 1 (x), 2 (x) ∈ IP2 t.c.

(2) (2) (2)


0 (x0 ) = 1 0 (x1 ) = 0 0 (x2 ) = 0
(2) (2) (2)
1 (x0 ) = 0 1 (x1 ) = 1 1 (x2 ) = 0 1

(2) (2) (2)


2 (x0 ) = 0 2 (x1 ) = 0 2 (x2 ) = 1

x x1 x2
0

INTERPOLAZIONE – p.7/38
Polinomio interpolante di LAGRANGE
In generale funzioni di questo tipo assumono la forma:
n
j=0 (x − xj )
(n) j=i funzioni fondamentali
i (x) = n , i = 0, 1, . . . , n
j=0 (xi − xj ) di Lagrange
j=i

(n) (n)
Si verifica facilmente che i polinomi i di grado n soddisfano j (xi ) = δij e il
polinomio di grado n interpolante (xi , fi ), i = 0, 1, . . . , n assume la forma:

(n) (n) (n) polinomio interpolante


Ln (x; f ) = f0 0 (x) + f1 1 (x) + . . . + fn n (x),
di Lagrange

Essendo xi = xj per i = j , tale polinomio esiste sempre ed è univocamente


determinato.
(n)
Le funzioni fondamentali i dipendono esclusivamente dai punti xi (punti
fondamentali), pertanto risultano univocamente determinate una volta fissati i
punti xi .

INTERPOLAZIONE – p.8/38
Polinomio interpolante di LAGRANGE
ESEMPIO: Siano dati i seguenti punti fondamentali:
x0 = −1 x1 = 0 x2 = 1

(2) (x − 0)(x − 1) x2 − x
0 (x) = =
(−1 − 0)(−1 − 1) 2
(2) (x + 1)(x − 1) x2 − 1
1 (x) = = = 1 − x2
(0 + 1)(0 − 1) −1
(2) (x + 1)(x − 0) x2 + x
2 (x) = =
(1 + 1)(1 − 0) 2 3

2.8

2.6

2.4

se in corrispondenza dei punti sopra vengono assegnati i valori 2.2

f0 = 1 f1 = 3 f 2 = 1: 1.8

1.6

x2 − x x2 + x
1.4

2
= 3 − 2x2 ;
1.2

L2 (x; f ) = 1 · + 3 · (1 − x ) + 1 · 1
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

2 2 1

0.8

0.6

0.4

0.2

se f0 = −1 f1 = 0 f 2 = 1: −0.2

−0.4

x2 − x x2 + x
−0.6

2
−0.8

L2 (x; f ) = −1 · + 0 · (1 − x ) + 1 · = x; −1
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

2 2
INTERPOLAZIONE – p.9/38
Polinomio interpolante di LAGRANGE
Il polinomio interpolante di Lagrange presenta difficoltà di applicazione se si
vogliono aumentare le informazioni su f (x) ovvero il numero di coppie (x i , fi ).
(n)
Poichè le funzioni fondamentali i dipendono da tutti i punti xi
⇒ l’inserimento di un nuovo punto obbliga a ricostruire ex-novo tutte le funzioni
fondamentali
ESEMPIO: Se nell’esempio di prima si volesse aggiungere un nuovo punto: (x3 , f3 ) = (2, 3) si ha

(3) (x − 0)(x − 1)(x − 2) x3 − 3x2 + 2x


0 (x) = =
(−1 − 0)(−1 − 1)(−1 − 2) −6
3

(3) (x + 1)(x − 1)(x − 2) x3 − 2x2 −x+3 2.5

1 (x) = =
(0 + 1)(0 − 1)(0 − 2)
2

2 1.5

(x + 1)(x − 0)(x − 2) x3 + 3x2 + 2x


1

(3)
2 (x) = = 0.5

(1 + 1)(1 − 0)(0 − 2) −4 0

−0.5

(3) (x + 1)(x − 0)(x − 1) x3 − x −1

3 (x) = = −1.5

(2 + 1)(2 − 0)(2 − 1)
−1 −0.5 0 0.5 1 1.5 2

6
x3 − 3x2 + 2x x3 − 2x2 − x + 3 x3 + 3x2 + 2x x3 − x
L3 (x; f ) = −1 · +0· +1· +3·
−6 2 −4 6

INTERPOLAZIONE – p.10/38
Polinomio interpolante di LAGRANGE
Conviene esprimere in una forma diversa il polinomio interpolante, in modo da poter
aggiungere dei punti senza modificare i calcoli precedenti.
Sia Ln (x; f ) il polinomio di grado ≤ n interpolante (xi , fi ), i = 0, 1, . . . , n,
supponiamo di voler aggiungere la nuova coppia (xn+1 , fn+1 ), si vuol ottenere
Ln+1 (x; f ) ∈ IPn+1 : Ln+1 (xi ; f ) = fi , i = 0, 1, . . . , n, n + 1
Ln+1 (x; f ) = Ln (x; f ) + qualcosa
qualcosa deve:
essere un polinomio di grado n + 1
assumere valore zero nei vecchi punti di interpolazione:
qualcosa(xi ) = 0, i = 0, 1, . . . , n
⇒ si esprime qualcosa = Cn+1 ωn+1 (x) = Cn+1 (x − x0 )(x − x1 ) · · · (x − xn ), da cui

Ln+1 (x; f ) = Ln (x; f ) + Cn+1 ωn+1 (x)


Da Ln+1 (xn+1 ; f ) = fn+1 si ottiene:
fn+1 − Ln (xn+1 ; f )
Cn+1 =
ωn+1 (xn+1 )

INTERPOLAZIONE – p.11/38
Polinomio interpolante di NEWTON
Cn+1 ωn+1 (x) = Ln+1 (x; f ) − Ln (x; f ): permette di inserire la nuova coppia di valori
(xn+1 , fn+1 ) utilizzando Ln (x; f ). Se si hanno più coppie da inserire:

Ln (x; f ) = L0 (x; f ) − L0 (x; f ) + L1 (x; f ) − L1 (x; f ) + · · ·


+Ln−1 (x; f ) − Ln−1 (x; f ) + Ln (x; f )
= L0 (x; f ) + [L1 (x; f ) − L0 (x; f )] + [L2 (x; f ) − L1 (x; f )] + · · ·
+[Ln (x; f ) − Ln−1 (x; f )]

INTERPOLAZIONE – p.12/38
Polinomio interpolante di NEWTON
Cn+1 ωn+1 (x) = Ln+1 (x; f ) − Ln (x; f ): permette di inserire la nuova coppia di valori
(xn+1 , fn+1 ) utilizzando Ln (x; f ). Se si hanno più coppie da inserire:

Ln (x; f ) = L0 (x; f ) − L0 (x; f ) + L1 (x; f ) − L1 (x; f ) + · · ·


+Ln−1 (x; f ) − Ln−1 (x; f ) + Ln (x; f )
= L0 (x; f ) + [L1 (x; f ) − L0 (x; f )] + [L2 (x; f ) − L1 (x; f )] + · · ·
+[Ln (x; f ) − Ln−1 (x; f )]
f0 C1 ω1 Cn ωn C2 ω2

INTERPOLAZIONE – p.12/38
Polinomio interpolante di NEWTON
Cn+1 ωn+1 (x) = Ln+1 (x; f ) − Ln (x; f ): permette di inserire la nuova coppia di valori
(xn+1 , fn+1 ) utilizzando Ln (x; f ). Se si hanno più coppie da inserire:

Ln (x; f ) = L0 (x; f ) − L0 (x; f ) + L1 (x; f ) − L1 (x; f ) + · · ·


+Ln−1 (x; f ) − Ln−1 (x; f ) + Ln (x; f )
= L0 (x; f ) + [L1 (x; f ) − L0 (x; f )] + [L2 (x; f ) − L1 (x; f )] + · · ·
+[Ln (x; f ) − Ln−1 (x; f )]
f0 C1 ω1 Cn ωn C2 ω2

n Polinomio interpolante
= f0 + k=1 Ck ωk (x)
di Newton Nn (x; f )

Il polinomio nella forma di Newton permette di aggiungere più coppie di valori


sfruttando i calcoli fatti in precedenza.
Se ad esempio si vogliono aggiungere 5 coppie di valori
(xn+1 , fn+1 ), . . . , (xn+5 , fn+5 ) si ha
n+5
 n+5

Ln+5 (x; f ) = f0 + Ck ωk (x) = Ln (x; f ) + Ck ωk (x)
k=1 k=n+1

INTERPOLAZIONE – p.12/38
Polinomio interpolante di NEWTON
Assegnata una funzione f (x) definita (almeno) sui punti x 0 , x1 , . . . , xn si definiscono
differenze divise del primo ordine relativamente agli xi le quantità:
f (xi+1 ) − f (xi )
f [xi , xi+1 ] :=
xi+1 − xi
e ricorsivamente differenze divise di ordine k
f [xi+1 , . . . , xi+k ] − f [xi , . . . , xi+k−1 ]
f [xi , xi+1 , . . . , xi+k ] :=
xi+k − xi
e per definizione differenza divisa di ordine 0:
f [xi ] := f (xi )
I calcoli possono essere organizzati in tabelle:

xi f (xi ) f [xi , xi+1 ] f [xi , xi+1 , xi+2 ] f [xi , xi+1 , xi+2 , xi+3 ]
x0 f (x0 )
x1 f (x1 ) f [x0 , x1 ]
x2 f (x2 ) f [x1 , x2 ] f [x0 , x1 , x2 ]
x3 f (x3 ) f [x2 , x3 ] f [x1 , x2 , x3 ] f [x0 , x1 , x2 , x3 ]

INTERPOLAZIONE – p.13/38
Polinomio interpolante di NEWTON
Assegnata una funzione f (x) definita (almeno) sui punti x 0 , x1 , . . . , xn si definiscono
differenze divise del primo ordine relativamente agli xi le quantità:
f (xi+1 ) − f (xi )
f [xi , xi+1 ] :=
xi+1 − xi
e ricorsivamente differenze divise di ordine k
f [xi+1 , . . . , xi+k ] − f [xi , . . . , xi+k−1 ]
f [xi , xi+1 , . . . , xi+k ] :=
xi+k − xi
e per definizione differenza divisa di ordine 0:
f [xi ] := f (xi )
I calcoli possono essere organizzati in tabelle:
xi f (xi ) f [xi , xi+1 ] f [xi , xi+1 , xi+2 ] f [xi , xi+1 , xi+2 , xi+3 ]
x0 f (x0 )
f (x1 )−f (x0 )
x1 f (x1 ) f [x0 , x1 ] = x1 −x0
f (x2 )−f (x1 ) f [x1 ,x2 ]−f [x0 ,x1 ]
x2 f (x2 ) f [x1 , x2 ] = x2 −x1
f [x0 , x1 , x2 ] = x2 −x0
f (x3 )−f (x2 ) f [x2 ,x3 ]−f [x1 ,x2 ]
x3 f (x3 ) f [x2 , x3 ] = x3 −x2
f [x1 , x2 , x3 ] = x3 −x1
f [x0 , x1 , x2 , x3 ] =
f [x1 ,x2 ,x3 ]−f [x0 ,x1 ,x2 ]
x3 −x0

INTERPOLAZIONE – p.13/38
Polinomio interpolante di NEWTON
ESEMPIO: Date le coppie (−2, 2), (−1, 3), (0, 1)

xi f (xi ) f [xi , xi+1 ] f [xi , xi+1 , xi+2 ]

−2 2
3−2
−1 3 −1+2
=1
1−3 −2−1
0 1 0+1
= −2 0+2
= − 32

Per costruzione le differenze divise sono funzioni simmetriche degli argomenti:


f [x1 , x2 , x3 ] = f [x2 , x1 , x3 ]

Si dimostra

f [x0 , x1 , . . . , xk ] = Ck ⇒

n
Nn (x; f ) = f0 + k=1 f [x0 , x1 , . . . , xk ]ωk (x)

INTERPOLAZIONE – p.14/38
Polinomio interpolante di NEWTON
ESEMPIO: Date le coppie (0, 0), (1, 1), (2, 0), (3, 1):
Tavola differenze divise

xi f (xi ) f [x0 , x1 ] f [x0 , x1 , x2 ] f [x0 , . . . , x3 ]


0 0
1−0
1 1 1−0
= 1
0−1 −1−1
2 0 2−1
= −1 2−0
= −1

1−0 1+1 1+1 2


3 1 3−2
=1 3−1
=1 3−0
= 3

Polinomio interpolante: 3

N3 (x; f ) = f0 + f [x0 , x1 , . . . , xk ]ωk (x)
k=1

= f0 + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) +


f [x0 , . . . , x3 ](x − x0 )(x − x1 )(x − x2 )
2
= 0 + 1(x − 0) −1(x − 0)(x − 1) + (x − 0)(x − 1)(x − 2)
3
1
= (2x3 − 9x2 + 10x)
3

INTERPOLAZIONE – p.15/38
Polinomio interpolante di NEWTON
ESEMPIO: Date le coppie (0, 0), (1, 1), (2, 0), (3, 1):
Tavola differenze divise

xi f (xi ) f [x0 , x1 ] f [x0 , x1 , x2 ] f [x0 , . . . , x3 ]


0 0
1−0
1 1 1−0
= 1
0−1 −1−1
2 0 2−1
= −1 2−0
= −1

1−0 1+1 1+1 2


3 1 3−2
=1 3−1
=1 3−0
= 3

Polinomio interpolante: 3
 1.2

N3 (x; f ) = f0 + f [x0 , x1 , . . . , xk ]ωk (x) 1

k=1
0.8

= f0 + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) +


0.6

f [x0 , . . . , x3 ](x − x0 )(x − x1 )(x − x2 )


0.4

0.2 2
= 0 + 1(x − 0) −1(x − 0)(x − 1) + (x − 0)(x − 1)(x − 2)
0 3
1
(2x3 − 9x2 + 10x)
−0.2

= 0 0.5 1 1.5 2 2.5 3

INTERPOLAZIONE – p.15/38
Sia la forma di Lagrange che di Newton permettono la costruzione di semplici
algoritmi
Per la forma di Newton: è facile costruire un algoritmo separando i due passi:
costruzione delle differenze divise
calcolo del valore del polinomio utilizzando (schema di Hörner)
p(x) = a0 + a1 x + · · · + an xn →
p(x) = a0 + x(a1 + x(a2 + · · · + x(an−1 + an x) · · · ))

INTERPOLAZIONE – p.16/38
Errore di interpolazione
Per costruzione e in assenza di errori di arrotondamento, dati (x i , fi ) : i = 0, 1, . . . , n
con xi ∈ [a, b] il polinomio intepolante soddisfa Ln (xi ; f ) = fi ⇒
se si conoscono solo i valori (xi , fi ) non ha senso porsi il problema dello
studio dell’errore
se fi = f (xi ) con f (x) funzione nota in forma esplicita, studiare l’errore
significa esaminare il comportamento del polinomio L n (x; f ) rispetto alla
funzione f (x) in punti x distinti dai punti xi , ovvero studiare la funzione errore:

e(x) = f (x) − Ln (x; f )

Poichè Ln (x; f ) interpola f (x) nei punti xi , si ha

e(xi ) = 0, i = 0, 1, . . . , n, ⇒ e(x) = (x − x0 ) · · · (x − xn )R(x)

e(x) = ωn+1 (x)R(x)

Se f ∈ C n+1 [a, b] si può dare una valutazione di R(x).

INTERPOLAZIONE – p.17/38
Errore di interpolazione
Sia f ∈ C n+1 [a, b] e sia

F (t) = f (t) − Ln (t; f ) − ωn+1 (t)R(x)

e ξ1 = min{x0 , x1 , . . . , xn , x}, ξ2 = max{x0 , x1 , . . . , xn , x}.


F (t) si annulla per t = xi , i = 0, 1, . . . , n e per t = x. (n + 2 zeri)
Per il teorema di Rolle
esistono almeno n + 1 punti in (ξ1 , ξ2 ) in cui si annulla F  (t)
esistono almeno n punti in (ξ1 , ξ2 ) in cui si annulla F  (t)
..
.
esiste almeno 1 punto ξ ∈ (ξ1 , ξ2 ) in cui si annulla F (n+1) (t)

f (n+1) (ξ)
F (n+1) (ξ) = f (n+1) (ξ) − (n + 1)!R(x) = 0 ⇒ R(x) = (n+1)!

Se ∀x ∈ [a, b] si ha |f (n+1) (x)| ≤ M ⇒

M
|R(x)| ≤
(n + 1)!

INTERPOLAZIONE – p.18/38
Errore di interpolazione
Se f ∈/ C n+1 [a, b] si può dare una valutazione di R(x) in altri termini.
Sia (xn+1 , fn+1 ) = (x, f (x)) con x = xi , i = 0, 1, . . . , n:

Ln+1 (t; f ) = Ln (t; f ) + f [x0 , x1 , . . . , xn , x]ωn+1 (t)


per t=x:
Ln+1 (x; f ) = f (x) = Ln (x; f ) + f [x0 , x1 , . . . , xn , x]ωn+1 (x) ⇒
e(x) = f (x) − Ln (x; f ) = f [x0 , x1 , . . . , xn , x]ωn+1 (x)

n+1 f (n+1) (ξ)


Se f ∈ C [a, b] ⇒ f [x0 , x1 , . . . , xn , x] = , ξ ∈ (ξ1 , ξ2 )
(n + 1)!
In conclusione

⎨ f (n+1) (ξ)
(n+1)!
, se f ∈ C n+1 [a, b]
e(x) = ωn+1 (x) R(x), R(x) =
⎩ f [x , x , . . . , x , x] , / C n+1 [a, b]
sef ∈
0 1 n

−R(x) dipende dai punti e dalla f (x),


−ωn+1 (x) dipende solo dai punti xi ⇒ si possono determinare i punti xi in modo
che risulti minimo |ωn+1 (x)| qualunque sia x e ridurre così l’errore di interpolazione

INTERPOLAZIONE – p.19/38
1
ESEMPIO: f (x) = 1+25x2
costruiamo il polinomio interpolante su 6, 10 e 15 punti equidistanti in [−1, 1]:
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 0.2

0 0 0

−0.2 −0.2 −0.2

−0.4 −0.4 −0.4


−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

Il comportamento del polinomio interpolante peggiora al crescere del grado infatti le derivate di
f crescono rapidamente all’aumentare di n

INTERPOLAZIONE – p.20/38
1
ESEMPIO: f (x) = 1+25x2
costruiamo il polinomio interpolante su 6, 10 e 15 punti equidistanti in [−1, 1]:
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 0.2

0 0 0

−0.2 −0.2 −0.2

−0.4 −0.4 −0.4


−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

Il comportamento del polinomio interpolante peggiora al crescere del grado infatti le derivate di
f crescono rapidamente all’aumentare di n
se i nodi vengono scelti opportunamente il risultato migliora
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 0.2

0 0 0

−0.2 −0.2 −0.2

−0.4 −0.4 −0.4


−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1
INTERPOLAZIONE – p.20/38
Punti fondamentali equidistanti
Nella pratica è abbastanza naturale considerare punti fondamentali equidistanti:
xi = x0 + ih, i = 0, 1, . . . , n
in tal caso il polinomio può essere riscritto in modo opportuno.
Dati x ∈ [a, b], e h ≤ (b − a), si definisce operatore differenza finita in avanti del
primo ordine l’operatore Δ:
Δf (x) := f (x + h) − f (x)
e ricorsivamente operatore differenza finita in avanti di ordine k l’operatore Δk :
Δk f (x) := Δ(Δk−1 f (x))
e per definizione differenza finita di ordine 0:
Δ0 f (x) := f (x)
I calcoli possono essere organizzati in tabelle:

x f (x) Δf (x) Δ2 f (x) Δ3 f (x)


x0 f0
x1 f1 Δf0 = f1 − f0
x2 f2 Δf1 = f2 − f1 Δ2 f0 = Δf1 − Δf0
x3 f3 Δf2 = f3 − f2 Δ2 f1 = Δf2 − Δf1 Δ3 f0 = Δ(Δ2 f0 )

INTERPOLAZIONE – p.21/38
Punti fondamentali equidistanti
Δk f (x0 )
Si dimostra per induzione che per nodi equidistanti: f [x 0 , . . . , xk ] = hk k!
x−x0
Posto t = h
⇒ x − x0 = ht
ht + x0 = x ⇒ x − xi = h(t − i)
hi + x0 = xi
Sostituendo nella forma di Newton:
n
Nn (x; f ) = f0 + f [x0 , x1 , . . . , xk ](x − x0 ) · · · (x − xk−1 )
k=1

n
Δ k f0
Nn (t; f ) = f0 + k k!
· ht · h(t − 1) · h(t − 2) · · · h(t − k + 1)
k=1
h

n
Δ k f0 k
= f0 + k k!
h t(t − 1)(t − 2) · · · (t − k + 1)
k=1
h

n Δk f0 k Polinomio interpolante di
= f0 + k=1 k! h rk−1 (t)
Gregory-Newton in (avanti)

dove rn (t) = t(t − 1)(t − 2) · · · (t − n) polinomio fattoriale (con r0 (t) = t).


Esiste anche il polinomio interpolante di Gregory-Newton all’indietro

INTERPOLAZIONE – p.22/38
Punti fondamentali equidistanti
Sostituendo nella forma di Lagrange:

(n) (n) (n)


Ln (x; f ) = f0 0 (x) + f1 1 (x) + . . . + fn n (x)
n
j=0 (x − xj )
(n) j=i
con i (x) =  n
j=0 (xi − xj )
j=i

n  
r n (t) n fj
Ln (t; f ) = (−1)n f0 + (−1)j
n! j=0
j t−j

INTERPOLAZIONE – p.23/38
Esercizio 1:
Assegnate le coppie di valori {xi , fi }3
i=0 , con x0 = −2, x1 = −1, x2 = 2, x3 = 3 e f0 = −2,
f1 = −1, f2 = 2, f3 = 4, si chiede di costruire:
i) il polinomio p(x) che interpola le coppie di valori assegnati;

ii) il polinomio q(x) che interpola, oltre alle coppie di valori assegnati, anche il punto (0,0).

i) Poichè in ii) si richiede di aggiungere un ulteriore punto ai dati, conviene utilizzare il polinomio
3

interpolante nella forma di Newton:
p(x) = f0 + f [x0 , . . . , xi ]ωi (x).
i=1
Tabella delle differenze divise:
xi fi f [xi , xi+1 ] f [xi , . . . , xi+2 ] f [xi , . . . , xi+3 ]
−2 −2
−1 −1 1
2 2 1 0
1 1
3 4 2 4 20
Polinomio interpolante
1
p(x) = −2 + 1(x + 2) + 0(x + 2)(x + 1) + (x + 2)(x + 1)(x − 2)
20
1 3
p(x) = (x + x2 + 16x − 4)
20
INTERPOLAZIONE – p.24/38
... continua
ii) Tabella delle differenze divise:

xi fi f [xi , xi+1 ] f [xi , . . . , xi+2 ] f [xi , . . . , xi+3 ] f [xi , . . . , xi+4 ]


−2 −2
−1 −1 1
2 2 1 0
1 1
3 4 2 4 20
4 1 1 1
0 0 3 3 12 60
Polinomio interpolante

1
q(x) = p(x) + (x + 2)(x + 1)(x − 2)(x − 3)
60

1 4
q(x) = (x + x3 − 4x2 + 56x)
60

INTERPOLAZIONE – p.25/38
... continua
ii) Tabella delle differenze divise:

xi fi f [xi , xi+1 ] f [xi , . . . , xi+2 ] f [xi , . . . , xi+3 ] f [xi , . . . , xi+4 ]


−2 −2
−1 −1 1
2 2 1 0
1 1
3 4 2 4 20
4 1 1 1
0 0 3 3 12 60
Polinomio interpolante

1
q(x) = p(x) + (x + 2)(x + 1)(x − 2)(x − 3)
60

1 4
q(x) = (x + x3 − 4x2 + 56x)
5

4 60
3

−1

−2

INTERPOLAZIONE – p.25/38
−3
−2 −1 0 1 2 3
Esercizio 2:
Assegnati i punti {(xi , fi )}3
i=0 , con x0 = 0, x1 = −1, x2 = 1, x3 = 3, ed
f0 = 0, f1 = −3, f2 = 0, f3 = 3; si determini:
i) il polinomio interpolante nella forma di Newton;

ii) il polinomio interpolante nella forma di Lagrange;

iii) il valore del polinomio interpolante nel punto x = 2.


3

i) Polinomio interpolante di grado 3 nella forma di Newton: N3 (x) = f0 + f [x0 , . . . , xi ]ωi (x).
i=1
Tabella delle differenze divise:
xi fi f [xi , xi+1 ] f [xi , . . . , xi+2 ] f [xi , . . . , xi+3 ]
0 0
−1 −3 3
1 0 3/2 −3/2
3 3 3/2 0 1/2
Polinomio interpolante
3 1
N3 (x) = 0 + 3(x − 0) − (x − 0)(x + 1) + (x − 0)(x + 1)(x − 1)
2 2
1 3 3
N3 (x) = x − x2 + x
2 2
INTERPOLAZIONE – p.26/38
... continua
ii) Polinomio interpolante di grado 3 nella forma di Lagrange:

3 3
 (3) (3) j=0,j=i (x − xj )
L3 (x) = fi i (x), i (x) :=  3
i=0 j=0,j=i (xi − xj )

(3) (3)
Dato che f0 = f2 = 0, si costruisce solo 1 (x) e 3 (x):

(3) x(x − 1)(x − 3) 1


1 (x) = = − (x3 − 4x2 + 3x)
(−1 − 0)(−1 − 1)(−1 − 3) 8
(3) x(x + 1)(x − 1) 1 3
3 (x) = = (x − x)
(3 − 0)(3 + 1)(3 − 1) 24

Polinomio interpolante

(3) (3) 3 3 3 3
L3 (x) = f1 1 (x) + f3 3 (x) = (x − 4x2 + 3x) + (x − x)
8 24
1 3 3
L3 (x) = x − x2 + x = N3 (x)
2 2

iii) N3 (2) = L3 (2) = 0.


INTERPOLAZIONE – p.27/38
... continua
ii) Polinomio interpolante di grado 3 nella forma di Lagrange:

3 3
 (3) (3) j=0,j=i (x − xj )
L3 (x) = fi i (x), i (x) :=  3
i=0 j=0,j=i (xi − xj )

(3) (3)
Dato che f0 = f2 = 0, si costruisce solo 1 (x) e 3 (x):

(3) x(x − 1)(x − 3) 1


1 (x) = = − (x3 − 4x2 + 3x)
(−1 − 0)(−1 − 1)(−1 − 3) 8
(3) x(x + 1)(x − 1) 1 3
3 (x) = = (x − x)
(3 − 0)(3 + 1)(3 − 1) 24

Polinomio interpolante
3

(3) (3) 3 3 3 3
(x − 4x2 + 3x) +
2

L3 (x) = f1 1 (x) + f3 3 (x) = (x − x)


1 8 24
1 3 3
0
L3 (x) = x − x2 + x = N3 (x)
2 2
−1

iii) N3 (2) = L3 (2) = 0.


−2

−3
−1 0 1 2 3 INTERPOLAZIONE – p.27/38
Esercizio 3:
Assegnati i punti {(xi , fi )}3
i=0 , con x0 = 0, x1 = 1, x2 = 3, x3 = 5, ed f0 = 0, f1 = 3,
f2 = 3 , f 3 = 7 ;
i) si determini il polinomio interpolante nella forma di Newton;

ii) si determini il polinomio interpolante nella forma di Lagrange;

iii) se la coppia (5, 7) diventasse (6, 8) in quale espressione risulterebbe pi ù conveniente scrivere il
nuovo polinomio interpolante? Motivare la risposta.

iv) se nel punto x0 = 0 il valore f0 diventasse −1, e quindi la coppia (0, 0) diventasse (0, −1), in
quale espressione risulterebbe più conveniente scrivere il nuovo polinomio interpolante?

i) Polinomio interpolante nella forma di Newton


3

N3 (x) = f0 + f [x0 , . . . , xi ]ωi (x), ωi (x) = (x−x0 ) · · · (x−xi−1 )
i=1
Tabella delle differenze divise:
xi fi f [xi , xi+1 ] f [xi , . . . , xi+2 ] f [xi , . . . , xi+3 ]
0 0
1 3 3
3 3 0 −1
5 7 2 1/2 3/10

INTERPOLAZIONE – p.28/38
... continua
3
N3 (x) = 0 + 3(x − 0) − 1(x − 0)(x − 1) + (x − 0)(x − 1)(x − 3)
10
1
N3 (x) = (3x3 − 22x2 + 49x)
10
ii) Polinomio interpolante di grado 3 nella forma di Lagrange:

3 3
 (3) (3) j=0,j=i (x − xj )
L3 (x) = fi i (x), i (x) :=  3
i=0 j=0,j=i (xi − xj )

(3)
Dato che f0 = 0, non si costruisce 0 (x).

(3) x(x − 3)(x − 5) 1


1 (x) = = (x3 − 8x2 + 15x)
(1 − 0)(1 − 3)(1 − 5) 8

(3) x(x − 1)(x − 5) 1


2 (x) = = − (x3 − 6x2 + 5x)
(3 − 0)(3 − 1)(3 − 5) 12

(3) x(x − 1)(x − 3) 1 3


3 (x) = = (x − 4x2 + 3x)
(5 − 0)(5 − 1)(5 − 3) 40

INTERPOLAZIONE – p.29/38
... continua
(3) (3) (3)
L3 (x) = f1 1 (x) + f2 2 (x) + f3 3 (x)
3 3 1 7 3
= (x − 8x2 + 15x) − (x3 − 6x2 + 5x) + (x − 4x2 + 3x)
8 4 40
1
= (12x3 − 88x2 + 196x)
40
1
= (3x3 − 22x2 + 49x) = N3 (x)
10

−1

−2
−1 0 1 2 3 4 5 6

INTERPOLAZIONE – p.30/38
... continua
iii) se la coppia (5, 7) diventasse (6, 8) risulta più conveniente scrivere il nuovo polinomio interpolante
nella forma di Newton, in quanto occorre modificare solo l’ultima riga della tabella delle differenze
divise:
xi fi f [xi , xi+1 ] f [xi , . . . , xi+2 ] f [xi , . . . , xi+3 ]
0 0
1 3 3
3 3 0 −1
6 8 5/3 1/3 2/9
2
N 3 (x) = 0 + 3(x − 0) − 1(x − 0)(x − 1) + (x − 0)(x − 1)(x − 3)
9
mentre nella forma di Lagrange si devono ricalcolare tutte le funzioni fondamentali.
9

−1

−2
−1 0 1 2 3 4 5 6

INTERPOLAZIONE – p.31/38
... continua
iv) se nel punto x0 = 0 il valore f0 diventasse −1, risulterebbe più conveniente scrivere il nuovo
polinomio interpolante nella forma Lagrange, in quanto si possono riutilizzare le funzioni fondamentali
(3)
e aggiungere solo il termine f0 0 :

(3)
L3 (x) = L3 (x) + f0 0 (x)

mentre nella forma di Newton occorre ricalcolare l’intera tabella delle differenze divise e tutti i polinomi
ωi (x).
9

−1

−2
−1 0 1 2 3 4 5 6

INTERPOLAZIONE – p.32/38
Esercizio 4:

Per approssimare il valore x con x quadrato non perfetto, si considerando le radici quadrate di 3
numeri x0 , x1 , x2 che siano i quadrati più vicini a x. Si costruisce il polinomio interpolante i valori

(xi , xi ), i = 0, 1, 2 e si valuta in x = 0.6.
Si considerano:
x0 = 0.49 x1 = 0.64 x2 = 0.81
f0 = 0.7 f1 = 0.8 f2 = 0.9.

Si costruisce il polinomio di Lagrange L2 (x) interpolante i punti (xi , fi ), i = 0, 1, 2:


2 2
 (2) (2) j=0,j=i (x − xj )
L2 (x) = fi i (x), i (x) := 2 ;
i=0
(x
j=0,j=i i − x j )

(2) (x − 0.64)(x − 0.81) 1


0 (x) = = (x2 − 1.45x + 0.5184)
(0.49 − 0.64)(0.49 − 0.81) 0.048
(2) (x − 0.49)(x − 0.81) 1
1 (x) = =− (x2 − 1.3x + 0.3969)
(0.64 − 0.49)(0.64 − 0.81) 0.0255
(2) (x − 0.49)(x − 0.64) 1
2 (x) = = (x2 − 1.13x + 0.3136)
(0.81 − 0.49)(0.81 − 0.64) 0.0544

INTERPOLAZIONE – p.33/38
... continua
Polinomio interpolante

(2) (2) (2)


L2 (x) = f0 0 (x) + f1 1 (x) + f2 2 (x)
1 1
= (0.7) (x2 − 1.45x + 0.5184) − (0.8) (x2 − 1.3x + 0.3969)
0.048 0.0255
1
+ (0.9) (x2 − 1.13x + 0.3136)
0.0544

Valutiamo il polinomio in x = 0.6: L2 (0.6) = 0.7744118.


Consideriamo la stima dell’errore di interpolazione per x ∈ [0.49, 0.81]:

f (3) (ξ)
e3 (x) = (x − x0 )(x − x1 )(x − x2 )
3!
1
= (x − 0.49)(x − 0.64)(x − 0.81)f (3) (ξ)
6

con ξ ∈ [0.49, 0.81]. Le derivate di f (x) = x sono

1 1 3
f  (x) = √ , f  (x) = − √ , f (3) (x) = √ ,
2 x 4 x3 8 x5

INTERPOLAZIONE – p.34/38
... continua
da cui

3 3
M3 := max |f (3) (x)| = max √ = √ ,
[0.49,0.81] [0.49,0.81] 8 x5 8 0.495

1
|e3 (x)| ≤ √ |(x − 0.49)(x − 0.64)(x − 0.81)|
16 0.49 5

1
|e3 (0.6)| ≤ √ |(0.6 − 0.49)(0.6 − 0.64)(0.6 − 0.81)|
0.344 10−3
16 0.495

Se calcoliamo l’errore realmente commesso : | 0.6 − L2 (0.6)|
0.185 10−3 , per cui le prime 3
cifre signifcative sono esatte. Un risultato più preciso si ottiene aumentando di 1 il grado del polinomio
interpolante e condiderando i punti:

x0 = 0.36, x1 = 0.49, x2 = 0.64, x3 = 0.81.

Per esercizio, ripetere la costruzione per tali punti.

INTERPOLAZIONE – p.35/38
Esercizio 5:
Data la funzione
1 3 3 1
f (x) = ln(1 + x)(1 + x)2 − x2 − x − ,
2 4 2 4
dare una limitazione dell’errore di interpolazione:

|e(x)| = |f (x) − p2 (x)|, x ∈ [0, 2]


dove p2 ∈ IP2 è il polinomio interpolante f nei valori x0 = 0, x1 = 1, x2 = 2.
La formula dell’errore di interpolazione per n = 2 in [0, 2] per f ∈ C 3 [0, 2] si può scrivere:
 
 f (ξ) 
(3)

|e(x)| = |f (x) − p2 (x)| = ω3 (x)  , ξ ∈ [0, 2]
 3! 

ω3 (x) = (x)(x − 1)(x − 2) = x3 − 3x2 + 2x



3
ω3 (x) = 3x2 − 6x + 2 ⇒ ω3 (x) = 0, per x = 1 ±
3
   √     √  
   
max |ω3 (x)| = max |ω3 (0)| , ω3 1 − 3/3  , ω3 1 + 3/3  , |ω3 (2)|
x∈[0,2]

       √
 √   √  2 3
= max ω3 1 − 3/3  , ω3 1 + 3/3  =
9

INTERPOLAZIONE – p.36/38
... continua
quindi

√ (3)

2 3 |f (ξ)| 3 (3)
|e(x)| ≤ = |f (ξ)|
9 3! 27
1
f  (x) = ln(x + 1)(1 + x) − x − 1, f  (x) = ln(x + 1), f (3) (x) =
1+x
√ √ √
3 3 3
|e(x)| ≤ max |f (3) (x)| = |f (3) (0)| = 1
0.0642
27 [0,2] 27 27

INTERPOLAZIONE – p.37/38
Esercizio 6:
Maggiorare l’errore che si commette interpolando la funzione

f (x) = ex , per x ∈ [0, 1]


nei valori x0 = 0, x1 = 1 2
, x 2 = 1.
La formula dell’errore di interpolazione per n = 2 in [0, 1] per f ∈ C 3 [0, 1] si può scrivere:
 
 f (ξ) 
(3)

|e(x)| = |f (x) − p2 (x)| = ω3 (x)  , ξ ∈ [0, 2]
 3! 
1 3 1
ω3 (x) = (x)(x − )(x − 1) = x3 − x2 + x
2 2 2

1 1 3
ω3 (x) = 3x2 − 3x + ⇒ ω3 (x) = 0, per x = ±
2 2 6
  √       √  √  √  
  
 1 3   1 3 3 1 3 
max |ω3 (x)| = max ω3 ±  = max  ± ± − ± 
x∈[0,1]  2 6   2 6 6 2 6 
√    √
 3
 1 3  3
=  − + =
 6 4 36  36
√ √ √ 1
3 1 31 3e
⇒ |e(x)| ≤ max |f (3) (x)| = max ex =
0.0218
36 3! [0,1] 36 6 [0,1] 36 6

INTERPOLAZIONE – p.38/38
APPROSSIMAZIONE di FUNZIONI:
consiste nella sostituzione di una funzione complicata con una più
semplice scelta all’interno di una classe di funzioni a dimensione
finita
La funzione da approssimare f (x) non è nota, ma si conoscono
alcuni valori yi su un insieme di punti xi , i = 0, 1, . . . , n e si
vogliono indicazioni sul comportamento della funzione in altri
punti (dati sperimentali) → modello rappresentativo
La funzione da approssimare è nota in forma analitica, ma per
il suo calcolo su calcolatore deve essere sostituita con funzioni
più semplici

APPROSSIMAZIONE di FUNZIONI – p.2/30


APPROSSIMAZIONE di FUNZIONI
Tecniche differenti a seconda del problema specifico comportano
utilizzo di distanze diverse
per approssimare dati sperimentali affetti da variabilità statica
si sceglie la distanza di tipo L2 (minimi quadrati)
per pochi dati e accurati una interpolazione risulta più
adeguata
per approssimare f (x) per il suo calcolo su calcolatore è
necessaria una approssimazione di tipo norma infinito

APPROSSIMAZIONE di FUNZIONI – p.3/30


MIGLIORE APPROSSIMAZIONE LINEARE
DEF. Sia S uno spazio lineare normato e
|| · || : S → R un funzionale lineare tale che:
1. ||f || ≥ 0, ∀f ∈ S ;

2. ||f || = 0 ⇒ f ≡ 0;

3. ||αf || = |α| ||f ||, ∀α ∈ R, f ∈ S ;

4. ||f + g|| ≤ ||f || + ||g||, ∀f, g ∈ S ;

V ⊂ S un sottospazio lineare di dimensione finita, dim V = N .


Preso f ∈ S , il problema di migliore approssimazione (m.a.) lineare
consiste nel cercare v ∗ ∈ V tale che:

||f − v ∗ || ≤ ||f − v||, ∀v ∈ V

APPROSSIMAZIONE di FUNZIONI – p.4/30


MIGLIORE APPROSSIMAZIONE LINEARE
Esempio. S = R2 ,f = (1, 1) e V il sottospazio di R2 generato da v1 = (1, 0).
Il problema di determinare la m.a. ad f in V consiste nel determinare sulla retta
individuata da (1, 0) il punto che “dista” meno da f = (1, 1) secondo la norma prescelta.

B(f, r) = {(x, y) ∈ R2 : ||(1, 1) − (x, y)|| ≤ r}

f f f

V V V
(1,0) (1,0) (0,0) (2,0)


||(x, y)||1 = |x|+|y|, ||(x, y)||2 = x2 + y 2 , ||(x, y)||∞ = max{|x|, |y|}

APPROSSIMAZIONE di FUNZIONI – p.5/30


MIGLIORE APPROSSIMAZIONE LINEARE
TEOREMA (ESISTENZA)
Sia f ∈ S . Se V ha dimensione finita, allora esiste almeno un v ∗ ∈ V
tale che:
||f − v ∗ || ≤ ||f − v||, ∀v ∈ V.

Dim: Sia B̄ una sfera centrata in f con raggio ||f ||:

B̄ = {g ∈ S : ||g − f || ≤ ||f ||}.

0 ∈ B̄: g ≡ 0 soddisfa ||g − f || = ||f ||;


0 ∈ V : in quanto V spazio lineare;
⇒ B̄ ∩ V = C = ∅.
Se v ∈ C ⇒ ||v − f || ≤ ||f ||
inoltre 0 ∈ C ovvero ||f − 0|| = ||f ||, per cui

inf v∈V ||f − v|| = inf v∈C ||f − v||

APPROSSIMAZIONE di FUNZIONI – p.6/30


MIGLIORE APPROSSIMAZIONE LINEARE
infatti se w ∈ V con w ∈
/ B̄ si ha:

||f − w|| > ||f || = ||f − 0||

quindi lo 0 è un’approssimazione migliore di w per f .

C è chiuso e limitato in uno spazio a dimensione finita ⇒ C è un compatto,


la norma || · || è un funzionale da S in R,

⇒ nell’insieme C, || · || ammette minimo.

⇒ esiste un valore in cui || · || raggiunge il valore minimo, e questo è per definizione la

migliore approssimazione lineare. 

APPROSSIMAZIONE di FUNZIONI – p.7/30


MIGLIORE APPROSSIMAZIONE LINEARE
DEF. Sia S uno spazio lineare normato.
Una norma || · || : S → R si dice stretta, se indicato con
B(f, r) = {g ∈ S : ||g − f || ≤ r} la sfera centrata in f con raggio r e
comunque presi g1 , g2 ∈ ∂B(f, r), (||g1 − f || = ||g2 − f || = r) si ha

g = αg1 + (1 − α)g2 , α ∈ (0, 1) ⇒ ||g − f || < r.

Esempio. S = R2

la norma infinito, ||(x, y)||∞ = max{|x|, |y|} non è stretta,


la norma 1, ||(x, y)||1 = |x| + |y| non è stretta,

la norma euclidea, ||(x, y)||2 = x2 + y 2 è stretta.

APPROSSIMAZIONE di FUNZIONI – p.8/30


MIGLIORE APPROSSIMAZIONE LINEARE
TEOREMA (UNICITÀ)
Siano S uno spazio lineare strettamente normato e
V un sottospazio S di dimensione finita N ,
⇒ la migliore approssimazione (m.a.) a f ∈ S con f ∈
/ V esiste ed è
unica.

Dim:(Per assurdo) Suppongo che esistano due m.a. v1 , v2 ∈ V ad f ∈ S, chiamo


d∗ = ||f − v1 || = ||f − v2 ||. Considero v = 12 v1 + 12 v2 , la distanza ottimale:
   
1 1 1 
1  1  1 
||f − v|| = 
2 f + f − v 1 − v 2 =  (f − v 1 ) + (f − v )
2 

2 2 2 2 2

1 1
≤ (||f − v1 || + ||f − v2 ||) = 2d∗ = d∗ .
2 2
Poichè v1 , v2 ∈ ∂B(f, d∗ ), per ipotesi di norma stretta ||f − v|| < d∗ .

Assurdo, v risulta essere una approssimazione migliore di v 1 , v2 . 

APPROSSIMAZIONE di FUNZIONI – p.9/30


MIGLIORE APPROSSIMAZIONE LINEARE
ESEMPI

S = L2 [a, b], spazio delle funzioni continue con potenza


seconda integrabile in [a, b], è uno spazio di Hilbert dotato di
prodotto scalare e norma:
 b 
< f, g >= f (x)g(x)dx, ||f || = < f, f >,
a

spazio strettamente normato (norma dei minimi quadrati)


S = Lp2 [a, b] con norma:

 b
||f || = p(x)[f (x)]2 dx
a

è strettamente normato.

APPROSSIMAZIONE di FUNZIONI – p.10/30


MIGLIORE APPROSSIMAZIONE LINEARE
ESEMPI

S = C[a, b] spazio delle funzioni continue in [a, b] con la norma


di Chebichev
||f || = max |f (x)|
a≤x≤b

non è strettamente normato.


⇒ non è garantita l’unicità della m.a.
ma dipende dalla scelta del sottospazio.

Se V = IPn ⇒ la soluzione è unica.

APPROSSIMAZIONE di FUNZIONI – p.11/30


M. A. ai minimi quadrati
Sia S = L2 [a, b] e V sottospazio con dim V = N . Data f ∈ L2 [a, b]
si cerca un v ∗ ∈ V tale che ||f − v ∗ || ≤ ||f − v||, ∀v ∈ V, ovvero
 
 b  b
[f (x) − v ∗ (x)]2 dx ≤ [f (x) − v(x)]2 dx ∀v ∈ V
a a


 b  b
∗ 2
[f (x) − v (x)] dx ≤ [f (x) − v(x)]2 dx (1)
a a

Sia {v1 (x), v2 (x), . . . , vN (x)} base di V , v ∈ V ⇒

v(x) = a1 v1 (x) + · · · + aN vN (x)

APPROSSIMAZIONE di FUNZIONI – p.12/30


M. A. ai minimi quadrati
Trovare v ∗ equivale a trovare la N -upla di coefficienti a∗1 , a∗2 , . . . , a∗N
che rendano minima la ||f − v|| ovvero dalla [1], si cerca

F (a∗1 , a∗2 , . . . , a∗N ) = min F (a1 , a2 , . . . , aN )


a1 ,a2 ,...,aN

 b
F (a1 , a2 , . . . , aN ) = {f (x) − [a1 v1 (x) + · · · + aN vN (x)]}2 dx.
a

F è derivabile rispetto alle variabili a1 , a2 , . . . , aN , non ha massimo,


(è un paraboloide superiormente illimitato)
⇒ i punti critici sono tutti e soli punti di minimo
⇒ si determina il minimo risolvendo il sistema di equazioni normali:

∂F
∂ai (a1 , a2 , . . . , aN ) = 0, i = 1, . . . , N

APPROSSIMAZIONE di FUNZIONI – p.13/30


M. A. ai minimi quadrati

 b N

∂F ∂
(a1 , a2 , . . . , aN ) = [f (x) − aj vj (x)]2 dx
∂ai ∂ai a j=1
 b N

= [f (x) − aj vj (x)]2 dx
a ∂ai j=1
 b N

= 2 [f (x) − aj vj (x)]vi (x)dx
a j=1
⎡ ⎤
 b N
  b
= 2⎣ f (x)vi (x)dx − aj vj (x)vi (x)dx⎦
a j=1 a

APPROSSIMAZIONE di FUNZIONI – p.14/30


M. A. ai minimi quadrati
∂F
∂ai (.) = 0, i = 1, . . . , N ⇒

N
  b  b
aj vj (x)vi (x)dx = f (x)vi (x)dx, i = 1, . . . , N
j=1 a a

N

⇒ < vi , vj > aj =< vi , f >, i = 1, . . . , N
j=1



⎪ < v1 , v1 > a1 + < v1 , v2 > a2 + · · · + < v1 , vN > aN = < v1 , f >




⎨ < v2 , v1 > a1 + < v 2 , v2 > a2 + · · · + < v 2 , vN > aN = < v2 , f >
⎪ .. .. ..

⎪ . . .



⎩ < vN , v1 > a1 + < v N , v2 > a2 + · · · + < v N , vN > aN = < vN , f >

APPROSSIMAZIONE di FUNZIONI – p.15/30


M. A. ai minimi quadrati
Equazioni Normali in forma matriciale

Ma = r

con a = (a1 , a2 , . . . , aN )T , r = (r1 , r2 , . . . , rN )T , dove


 b  b
ri =< vi , f >= vi (x)f (x)dx, mi,j =< vi , vj >= vi (x)vj (x)dx
a a

M ∈ RN ×N risulta
simmetrica per costruzione
 b
mi,j =< vi , vj >=< vj , vi >= mj,i = vj (x)vi (x)dx
a

invertibile e definita positiva

APPROSSIMAZIONE di FUNZIONI – p.16/30


M. A. ai minimi quadrati
Esempio: Sia f (x) = x2 , S = L2 [0, 1], con norma:

1
||f || = [f (x)]2 dx,
0

V = IP1 con base {1, x}. Lo spazio S risulta strettamente normato, dim(V ) = N = 2
⇒ esiste una e una sola soluzione al problema di m.a. nel senso di minimi quadrati.
v1(x) = 1, v2 (x) = x, v(x) = a1 + a2 x,

1
m1,1 = < 1, 1 >= 0 1 · 1dx =1
1 1
m1,2 = < 1, x >= 1 · xdx = x2  = 1
= m2,1
0 2 0 2
1 1
m2,2 = < x, x >= x2 dx = x3  = 1
0 3 0 3

1 1
r1 = < 1, x2 >= x2 dx = x3  = 1
0 3 0 3
1 1
r2 = < x, x2 >= x3 dx = x4  = 1
0 4 0 4

APPROSSIMAZIONE di FUNZIONI – p.17/30


M. A. ai minimi quadrati
⎛ ⎞⎛ ⎞ ⎛ ⎞
1 1
1 a1
⎝ 2 ⎠⎝ ⎠=⎝ 3 ⎠
1 1 1
2 3
a2 4

la soluzione a1 = − 16 , a2 = 1,
la m.a ai minimi quadrati di x2 nello spazio IP1 è la retta

1
v ∗ (x) = − + x.
6
1.2

1
2
f(x)=x
0.8

0.6

0.4 *
v (x)=x−1/6

0.2

−0.2
0 0.2 0.4 0.6 0.8 1

APPROSSIMAZIONE di FUNZIONI – p.18/30


M. A. ai minimi quadrati
la matrice M può essere mal condizionata
se V = IPn , con base {1, x, x2 , . . . , xn } e [a, b] = [0, 1],
 1 1
mi,j = xi+j−2 dx =
0 i+j−1

M è la matrice di Hilbert di ordine n, fortemente malcondizionata

si può cambiare la base di V , la situazione ottimale si ha per


⎛ ⎞
1 0 0 ⎧
⎜ ⎟ ⎨ 1, i = j
⎜ .. ⎟
M =⎜ 0 . 0 ⎟ ⇔ mi,j =< vi , vj >=
⎝ ⎠ ⎩ 0, i =
j
0 0 1

la base v1 (x), . . . , vN (x) si dice ortonormale

APPROSSIMAZIONE di FUNZIONI – p.19/30


M. A. ai minimi quadrati
Il sistema alle equazioni normali diventa
⎛ ⎞⎛ ⎞ ⎛ ⎧⎞
1 0 0 a1 < v1 , f > ⎪
⎪ a1 =< v1 , f >
⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎪

⎜ .. ⎟⎜ .. ⎟ ⎜ .. ⎟ ..
⎜ 0 . 0 ⎟ ⎜ . ⎟=⎜ . ⎟ ⇒ .
⎝ ⎠⎝ ⎠ ⎝ ⎠ ⎪


⎩ a =< v , f >
0 0 1 aN < vN , f > N N

v ∗ (x) =< v1 , f > v1 (x) + · · · + < vN , f > vN (x)

se la base v1 (x), . . . , vN (x) è ortogonale


⎛ ⎞ ⎧
⎧ k1 0 0 ⎪
⎪ a1 = <v1 ,f >
⎨ k = 0, i = j ⎜ ⎟ ⎪
⎨ k1
i ⎜ .. ⎟ ..
mi,j = ⇒M =⎜ 0 . ⎟
0 ⎠ ⇒ .
⎩ 0, i= j ⎝ ⎪


⎩ a = <vN ,f >
0 0 kN N kN

APPROSSIMAZIONE di FUNZIONI – p.20/30


M. A. ai minimi quadrati: caso discreto
Dati i punti (x1 , f1 ), . . . , (xk , fk ) si cerca una funzione che passi
“vicino”.
8

0
f
i
−2

−4

−6

−8
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
x
i

Si vuol misurare: |v(xq ) − fq |, q = 1, . . . , k

APPROSSIMAZIONE di FUNZIONI – p.21/30


M. A. ai minimi quadrati: caso discreto
Si può pensare come differenza tra componenti di due vettori di
⎛ ⎞ ⎛ ⎞
R k  
 v(x1 ) f1 
⎜ ⎟ ⎜ ⎟
⎜ .. ⎟ ⎜ .. ⎟
⎜ . ⎟ − ⎜ . ⎟
⎝ ⎠ ⎝ ⎠
 
 v(xk ) fk 

APPROSSIMAZIONE di FUNZIONI – p.22/30


M. A. ai minimi quadrati: caso discreto
Si può pensare come differenza tra componenti di due vettori di
⎛ ⎞ ⎛ ⎞
R k  
 v(x1 ) f1 
⎜ ⎟ ⎜ ⎟
⎜ .. ⎟ ⎜ .. ⎟
⎜ . ⎟ − ⎜ . ⎟
⎝ ⎠ ⎝ ⎠
 
 v(xk ) fk 

Teoricamente qualunque norma va bene, la più semplice è


quella euclidea
⎛ ⎞ ⎛ ⎞
  
 v(x1 ) f1   k
⎜ ⎟ ⎜ ⎟ 
⎜ .. ⎟ ⎜ .. ⎟  2
⎜ ⎟ − ⎜
. ⎠ ⎝ . ⎠ ⎟  = (v(x q ) − f q )
⎝
  q=1
 v(xk ) fk 
2

⇒ problema della m.a nel senso dei minimi quadrati

APPROSSIMAZIONE di FUNZIONI – p.22/30


M. A. ai minimi quadrati: caso discreto
Si può pensare come differenza tra componenti di due vettori di
⎛ ⎞ ⎛ ⎞
R k  
 v(x1 ) f1 
⎜ ⎟ ⎜ ⎟
⎜ .. ⎟ ⎜ .. ⎟
⎜ . ⎟ − ⎜ . ⎟
⎝ ⎠ ⎝ ⎠
 
 v(xk ) fk 

Teoricamente qualunque norma va bene, la più semplice è


quella euclidea
⎛ ⎞ ⎛ ⎞
  
 v(x1 ) f1   k
⎜ ⎟ ⎜ ⎟ 
⎜ .. ⎟ ⎜ .. ⎟  2
⎜ ⎟ − ⎜
. ⎠ ⎝ . ⎠ ⎟  = (v(x q ) − f q )
⎝
  q=1
 v(xk ) fk 
2

⇒ problema della m.a nel senso dei minimi quadrati


S = L2 [a, b], la || ||2 è una seminorma,

se V ⊂ S con dim V = N ≤ k ⇒ || ||2 è una norma stretta in V


⇒ esistenza e unicità della soluzione
APPROSSIMAZIONE di FUNZIONI – p.22/30
M. A. ai minimi quadrati: caso discreto
Preso V ⊂ S , dim V = N con base {v1 (x), v2 (x), . . . , vN (x)}
N
⇒ v ∈ V , v(x) = j=1 aj vj (x) il problema di m.a. ai minimi quadrati
consiste nel trovare v ∗ ∈ V tale che:
 
 k  k
 
 (v ∗ (xq ) − fq ) ≤ 
2 2
(v(xq ) − fq ) , ∀v ∈ V
q=1 q=1

equivale a trovare la N -upla di coefficienti a∗1 , a∗2 , . . . , a∗N tale che

F (a∗1 , a∗2 , . . . , a∗N ) = min F (a1 , a2 , . . . , aN )


a1 ,a2 ,...,aN

⎛ ⎞2
k
 N

F (a1 , a2 , . . . , aN ) = ⎝ aj vj (xq ) − fq ⎠ .
q=1 j=1

APPROSSIMAZIONE di FUNZIONI – p.23/30


M. A. ai minimi quadrati: caso discreto
⇒ i punti critici sono tutti e soli punti di minimo
⇒ si determina il minimo risolvendo il sistema di equazioni normali:
∂F
(a1 , a2 , . . . , aN ) = 0, i = 1, . . . , N
∂ai
  
∂F k N
∂ai (a1 , a2 , . . . , aN ) = q=1 2 j=1 aj vj (xq ) − fq vi (xq )
 N k 
k
=2 q=1 j=1 aj vj (xq )vi (xq ) − q=1 fq vi (xq )

∂F
∂a1 (·) = 0, i = 1, . . . , N ⇒
N k k

aj vj (xq )vi (xq ) = fq vi (xq ), i = 1, . . . , N
j=1 q=1 q=1

N

⇒ < vi , vj > aj =< vi , f >, i = 1, . . . , N
j=1

APPROSSIMAZIONE di FUNZIONI – p.24/30


M. A. ai minimi quadrati: caso discreto
Equazioni Normali in forma matriciale

Ma = r

con a = (a1 , a2 , . . . , aN )T , r = (r1 , r2 , . . . , rN )T , dove

k
 k

ri =< vi , f >= vi (xq )fq , mi,j =< vi , vj >= vi (xq )vj (xq )
q=1 q=1

Analogamente M ∈ RN ×N risulta
simmetrica per costruzione
invertibile e definita positiva
può essere mal condizionata
si considereano basi ortogonali/ortonormali rispetto al
prodotto scalare.
APPROSSIMAZIONE di FUNZIONI – p.25/30
M. A. ai minimi quadrati: caso discreto
Esempio: Dati i punti (0, 1), (2, 1), (1, 0), si vuol trovare la m.a. ai minimi quadrati in
V = IP1 . con base {1, x}. Lo spazio S risulta strettamente normato, dim(V ) = N = 2
⇒ esiste una e una sola soluzione al problema di m.a. nel senso di minimi quadrati.
v1(x) = 1, v2 (x) = x, v(x) = a1 + a2 x,

m1,1 = < 1, 1 >= 1+1+1 =3


m1,2 = < 1, x >= 1·0+1·2+1·1 = 3 = m2,1
m2,2 = < x, x >= 0·0+2·2+1·1 =5

r1 = < 1, f >= 1·1+1·1+1·0 =2


r2 = < x, f >= 0·1+2·1+1·0 =2
⎛ ⎞⎛ ⎞ ⎛ ⎞
3 3 a1 2
⎝ ⎠⎝ ⎠=⎝ ⎠
3 5 a2 2

2
la soluzione a1 = 3
, a2 = 0, la m.a ai minimi quadrati dei punti assegnati nello spazio
2
IP1 è la retta costante v ∗ (x) = 3
.

APPROSSIMAZIONE di FUNZIONI – p.26/30


M. A. ai minimi quadrati: caso discreto
Esempio: Dati i punti (0, 1), (2, 1), (1, 0), si vuol trovare la m.a. ai minimi quadrati in
V = IP1 . con base {1, x}. Lo spazio S risulta strettamente normato, dim(V ) = N = 2
⇒ esiste una e una sola soluzione al problema di m.a. nel senso di minimi quadrati.
v1(x) = 1, v2 (x) = x, v(x) = a1 + a2 x,

m1,1 = < 1, 1 >= 1+1+1 =3


m1,2 = < 1, x >= 1·0+1·2+1·1 = 3 = m2,1
m2,2 = < x, x >= 0·0+2·2+1·1 =5

1.5
r1 = < 1, f >= 1·1+1·1+1·0 =2
r2 = < x, f >= 0·1+2·1+1·0 1
=2
⎛ ⎞⎛ ⎞ ⎛ ⎞
3 3 a1 2
⎝ ⎠⎝ ⎠=⎝ ⎠ 0.5

3 5 a2 2
0

2
la soluzione a1 = 3
, a2 = 0, la m.a ai minimi quadrati dei punti assegnati nello spazio
2
IP1 è la retta costante v ∗ (x) =
−0.5

3
. −0.5 0 0.5 1 1.5 2 2.5

APPROSSIMAZIONE di FUNZIONI – p.26/30


M. A. ai minimi quadrati: caso discreto
Se la matrice M risulta mal condizionata:
⎛ ⎞2
k
 N

F (a1 , a2 , . . . , aN ) = ⎝ aj vj (xq ) − fq ⎠
q=1 j=1
⎛ N ⎞ ⎛ ⎞2
 
 aj vj (x1 ) f1 
⎜ j=1
N ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟
⎜ j=1 aj vj (x2 ) ⎟ ⎜ f2 ⎟
= ⎜ ⎟−⎜ ⎟
⎜ .. ⎟ ⎜ .. ⎟
⎜ . ⎟ ⎜ . ⎟
⎝ N ⎠ ⎝ ⎠
 
 j=1 aj vj (xk ) fk 
2
⎛ ⎞ ⎛ ⎞2
 
 a1 v1 (x1 ) + · · · + aN vN (x1 ) f1 
⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟
⎜ a1 v1 (x2 ) + · · · + aN vN (x2 ) ⎟ ⎜ f2 ⎟
= ⎜ ⎟−⎜ ⎟
⎜ .. ⎟ ⎜ .. ⎟
⎜ . ⎟ ⎜ . ⎟
⎝ ⎠ ⎝ ⎠
 
 a1 v1 (xk ) + · · · + aN vN (xk ) fk 
2
APPROSSIMAZIONE di FUNZIONI – p.27/30
M. A. ai minimi quadrati: caso discreto
Posto ⎛ ⎞
v (x ) · · · vN (x1 )
⎜ 1 1 ⎟
⎜ ⎟
⎜ v1 (x2 ) · · · vN (x2 ) ⎟
G=⎜
⎜ .. .. ..
⎟ ∈ Rk×N ,

⎜ . . . ⎟
⎝ ⎠
v1 (xk ) · · · vN (xk )
⎛ ⎞ ⎛ ⎞
f1 a1
⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟
⎜ f2 ⎟ ⎜ a2 ⎟
f =⎜
⎜ ..
⎟ ∈ Rk ,
⎟ a=⎜

⎟ ∈ RN
.. ⎟
⎜ . ⎟ ⎜ . ⎟
⎝ ⎠ ⎝ ⎠
fk aN

⇒ F (a1 , a2 , . . . , aN ) = Ga − f 22

G è la matrice di Gram rettangolare con gi,j = vj (xi )

APPROSSIMAZIONE di FUNZIONI – p.28/30


M. A. ai minimi quadrati: caso discreto
OSSERVAZIONE:

interpolazione è un caso particolare di approssimazione:

k = dim V = N

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0

−0.2 −0.2 −0.2

−0.5 0 0.5 1 1.5 −0.5 0 0.5 1 1.5 −0.5 0 0.5 1 1.5

k=4>N =2 k=3>N =2 k=2=N =2

APPROSSIMAZIONE di FUNZIONI – p.29/30


M. A. ai minimi quadrati: caso discreto
OSSERVAZIONE:

Aumentando il grado del polinomio possono sorgere problemi


di instabilità numerica

APPROSSIMAZIONE di FUNZIONI – p.30/30


M. A. ai minimi quadrati: caso discreto
OSSERVAZIONE:

Aumentando il grado del polinomio possono sorgere problemi


di instabilità numerica
1.2

1
data 1
0.8

0.6

0.4

0.2

−0.2
−10 −5 0 5 10

APPROSSIMAZIONE di FUNZIONI – p.30/30


M. A. ai minimi quadrati: caso discreto
OSSERVAZIONE:

Aumentando il grado del polinomio possono sorgere problemi


di instabilità numerica
1.2

1
data 1
5th degree
0.8

0.6

0.4

0.2

−0.2
−10 −5 0 5 10

APPROSSIMAZIONE di FUNZIONI – p.30/30


M. A. ai minimi quadrati: caso discreto
OSSERVAZIONE:

Aumentando il grado del polinomio possono sorgere problemi


di instabilità numerica
1.2

1
data 1
5th degree
0.8 6th degree

0.6

0.4

0.2

−0.2
−10 −5 0 5 10

APPROSSIMAZIONE di FUNZIONI – p.30/30


M. A. ai minimi quadrati: caso discreto
OSSERVAZIONE:

Aumentando il grado del polinomio possono sorgere problemi


di instabilità numerica
1.2

1 data 1
5th degree
6th degree
0.8
8th degree

0.6

0.4

0.2

−0.2
−10 −5 0 5 10

APPROSSIMAZIONE di FUNZIONI – p.30/30


M. A. ai minimi quadrati: caso discreto
OSSERVAZIONE:

Aumentando il grado del polinomio possono sorgere problemi


di instabilità numerica
1.2

data 1
1
5th degree
6th degree
0.8 8th degree
10th degree
0.6

0.4

0.2

−0.2
−10 −5 0 5 10

APPROSSIMAZIONE di FUNZIONI – p.30/30


M. A. ai minimi quadrati: caso discreto
OSSERVAZIONE:

Aumentando il grado del polinomio possono sorgere problemi


di instabilità numerica
1.2

1
data 1
spline
0.8

0.6

0.4

0.2

−0.2
−10 −5 0 5 10

Si ricorre alle funzioni polinomiali a tratti (spline)


APPROSSIMAZIONE di FUNZIONI – p.30/30
Formule di quadratura

Maria Lucia Sampoli


aa. 2017/18

1
Approssimazione Numerica di un integrale
 Data una funzione f continuab su [a,b] consideriamo l’integrale definito

 f (x) dx = I[f ]
a
e consideriamo il problema di valutare numericamente tale integrale.
Perché?
 Non sempre è possibile esprimere la primitiva della funzione integranda in
termini di funzioni elementari
 Anche se esiste l’integrale in forma chiusa, la sua espressione analitica è
difficile da valutare (molto più che la funzione integranda)
esempio:

 La funzione da integrare può essere data non in forma analitica, ma per punti.

Si cercano metodi numerici in grado di fornire una approssimazione di un


integrale in termini di un numero finito di valori della funzione integranda

FORMULE DI QUADRATURA
2
“quadratura”

 Il nome “quadratura” suggerisce l’approssimazione dell’area


sottesa dalla curva data dal grafico della funzione integranda
con l’area dei quadrilateri sottesi.
 In generale il termine quadratura è usato per distinguere
l’approssimazione numerica di un integrale dalla risoluzione
numerica di un’equazione differenziale ordinaria, spesso
indicata con integrazione numerica.
 L’approssimazione di un integrale doppio è talvolta chiamata
“cubatura”.

3
Supponiamo di conoscere (o di poter valutare) la funzione integranda f(x)
in punti {xi } (scelti o prefissati), distinti in [a,b]

Costruiamo formule del tipo


b n
In +1[f ] ≃  f (x) dx In +1[f ] =  w f (x )
i =0
i i
a

{xi } = nodi della formula di quadratura


{wi } = pesi della formula di quadratura
• Dato che l’operatore integrazione è un funzionale lineare, tale formula ne
preserva, tra l’altro, questa proprietà.

• Definiamo errore di quadratura associato alla formula basato su n+1


punti la quantità
En +1[f ] = I[f ] − In +1[f ]

4
Formule interpolatorie
 IDEA IMMEDIATA: approssimare la funzione f(x) con il polinomio
interpolante gli n+1 punti {xi}i=0…n assegnati (nodi). Tale polinomio è
unico sei nodi sono distinti
b b b b

 f (x) dx =  [L (f ; x) + e (f ; x)] dx =  L (f ; x) dx +  e (f ; x) dx
a a
n n
a
n
a
n

dove Ln è il polinomio interpolante i punti (x0,f(x0)), (x1,f(x1)),… (xn,f(xn)),


formule interpolatorie

 Se esprimiamo Ln nella base di Lagrange:


n
Ln (f ; x ) =  l (x)f (x )
i =0
i i 
b b n b n b b

 f (x) dx =   l (x)f (x ) dx +  e (f ; x) dx = f (x )  l (x) dx +  e (f ; x) dx


a a i =0
i i
a
n
i =0
i
a
i
a
n

wi En +1

5
Formule interpolatorie con nodi assegnati
b b b n n b n

 f (x ) dx
a
≃ L
a
n (f ; x ) d x =   l ( x )f ( x ) d x =  f ( x )  l ( x ) d x
a i =0
i i
i =0
i
a
i =  f (x ) w
i =0
i i

 Caso n=1: Consideriamo i punti (a,f(a)), (b,f(b)) e sostituiamo alla


funzione il polinomio di grado 1 (la retta) interpolante tali punti

x−b 1(a − b)2 b − a


b
l0 ( x ) = → w0 =  l0 ( x ) dx = − =
a−b a
2 a−b 2
x−a b−a
b
l1( x ) = → w1 =  l1( x ) dx =
b−a a
2

REGOLA DEI TRAPEZI


b−a
b

 f (x) dx ≅
a
2
[f (b) + f (a)]

6
Regola dei Trapezi: esempio
 Applichiamo la regola dei trapezi al seguente integrale

 In questo caso a=0,b=1, f(x)=1/(1+x)

7
Regola di Simpson
 Caso n=2. Consideriamo i punti (-h f(-h), (0,f(0)), (h,f(h)) e sostituiamo
alla funzione il polinomio quadratico che interpola tali punti

 Otteniamo la REGOLA DI SIMPSON

• per un intervallo generico [a,b]:

8
Esempio
 Applichiamo la regola di Simpson al seguente integrale

 In questo caso a=0, b=1 f(x)=1/(1+x)

9
Confronto
TRAPEZI SIMPSON

10
Grado di precisione
 La precisione di una formula di quadratura è legata alla bontà con cui In+1[f ]
approssima I[f ] , pertanto in generale è dipendente dalla funzione
integranda.
 Si esamina per quale classe di funzioni è esatta (cioè In +1[f ] = I[f ] )

Definizione: Una formula di quadratura ha grado di precisione k se è


esatta quando la funzione integranda è un polinomio di grado ≤ k, ed
esiste almeno un polinomio di grado k+1 per cui l’errore En +1[f ] risulti
non nullo
 Tale definizione è giustificata dal teorema di Weierstrass
sull’approssimazione polinomiale di funzioni continue

11
Grado di precisione
 Vale il teorema seguente
Teorema: Le formule di quadratura interpolatorie costruite su n+1 nodi,
hanno grado di precisione almeno n .

e n = f ( x ) − pn ( x ) = ω n + 1 ( x ) f [ x 0 , x 1 ,..., x n + 1 , x ]
b b b
 E n + 1 [f ] = I [f ] − I n + 1 [f ] =  f ( x )dx −  p
a a
n ( x )dx = ω
a
n +1 ( x ) f [ x 0 , x1 ,..., x n + 1 , x ]

tenendo presente f [ x 0 , x1 ,..., x n + 1 , x ] ≡ 0 per f ∈ Pn

12
Grado di precisione: esempio
 Se consideriamo la formula di Simpson, si verifica che essa è esatta
per

 Mentre non è esatta per


h 4 2
 h + h 4  = h5
3 3
13
GRADO DI PRECISIONE 3
Convergenza
 Dal teorema di Weierstrass discende anche il seguente

Teorema: Sia {In +1[f ]} una successione di formule di quadratura tali che In+1[f ]
abbia grado di precisione almeno n, e siano equilimitate
(i.e. ∃ c : In +1 < c ∀n ). Allora si ha
lim In +1[f ] = I[f ]
n →∞
Dim.
∀ p ∈ Pn : In +1[p] = I[p] →
En +1[f ] = I[f ] − In +1[f ] = I[f ] − In +1[p] + I[p] − In +1[f ] = I[f − p] − In +1[f − p]
 En +1[f ] ≤ ( I + In +1 ) f − p ≤ ( I + c) f − p

Per Teorema di W. ∃ p convergente a f  En +1[f ] → 0


Teorema: Data una famiglia di formule di quadratura interpolatorie In +1[f ] tali che
n
∃ H : w
i=0
< H Allora si ha
i
lim En +1[f ] = 0
n →∞
14
Convergenza - 2
n
 Osserviamo che per le formule interpolatorie : w
i =0
i =b−a
infatti essendo esatte per f(x)=1, si ha

Pertanto se otteniamo

Convergenza per formule di quadratura interpolatorie con pesi


positivi
lim In +1[f ] = I[f ]
n →∞

15
 Tra le formule interpolatorie più usate si possono
mettere in evidenza due classi importanti:

1. Formule di Newton-Cotes: i nodi x0 , x1 ,..., xn sono prefissati


nell’intervallo [a,b] e sono equispaziati. Queste formule hanno grado
di precisione n o n+1 ed hanno i pesi wi facilmente ricavabili ed
espressi con semplici numeri razionali. Hanno però lo svantaggio che
per n>9 i wi non sono tutti dello stesso segno.

2. Formule gaussiane: i nodi x0 , x1,..., xn non sono prefissati a priori,


ma assieme ai pesi vengono ricavati in modo da massimizzare il
grado di precisione che risulta di 2n+1. Queste formule, rispetto a
quelle di Newton-Cotes, hanno il vantaggio, oltre all’elevato grado di
precisione, di avere i pesi sempre positivi ,al prezzo però che
l’espressione dei nodi e dei pesi è spesso non razionale.

16
Formule di Newton-cotes
 Sono formule di quadratura interpolatorie, costruite su nodi equidistanti.
Sono basate sul metodo di interpolazione di Lagrange con nodi
equispaziati in [a,b]:
xi = x0 + i h , i = 1, ..., n ;
b − a
se x0 = a e xn = b → h = F O R M U L E D I TIP O C H IU S O
n
b − a
se x0 = a + h e xn = b − h → h = F O R M U L E D I T IP O A P E R TO
n +2

 I pesi, che dipendono solo da n e h (per tutte le formule interpolatorie),


non dipendono dall’intervallo di integrazione [a,b] e sono esprimibili
come
xn ( x n + h )
b n x − xj n( n +1) n
t− j
wi =  l dx = ( n)
i  ∏ xi − x j
dx =  ∏ i − j
h dt = (x = a + th, dx = hdt )
a x0 ( x0 − h) j = 0, j ≠ i 0( −1) j = 0, j ≠ i

n( n +1) n
t− j
h  ∏
j = 0, j ≠ i i − j
dt = h α i
0( −1)

αi 17
Formule di Newton-cotes
 Una formula di Newton-Cotes su un generico intervallo [a,b] può
essere scritta come

dove αi sono pesi in [0,n].


 Dato che αi non dipendono da h ma solo da n, essi possono essere
tabulati al variare di n, ponendo . Da osservare anche la
simmetria centrale

18
Esempio
 Applichiamo la formula N-C con n=3 al seguente integrale

 In questo caso a=0, b=1 n=3

19
Stima errore
 Per formule di quadratura interpolatorie

 Per formule di Newton-Cotes con

 Esempio: regola dei trapezi

20
Stima errore per formule di N.-C.
 Teorema: Sia f ∈ C n + 2[a, b] con n pari, allora si ha
n −1 + i
f (n + 2)(ξ ) n + 3 n
En +1[f ] =
(n + 2)!
h  t ∏ (t − j) dt
i −1 j =0

Se invece n e’ dispari, f ∈ C n +1[a, b]


n −1 + i
f (n +1)(ξ ) n + 2 n
En +1[f ] =
(n + 1)!
h  t ∏ (t − j) dt
i −1 j =0

dove i=1 per le formule di tipo chiuso, mentre i=0 per quelle
di tipo aperto.

 A parità di numero di nodi formule aperte e formule chiuse hanno lo stesso


grado di precisione.
 Per n pari (numero dispari di nodi) il grado di precisione è n+1 e non n
(come invece si ha per n dispari)
E’ più conveniente usare formule con n pari.
21
Convergenza formule di N.-C.
 Contrariamente a quanto potrebbe sembrare “a prima vista” non
conviene usare formule di Newton-Cotes di grado di precisione via
via crescente.
 Teorema (Kusmin): Per ogni successione {In +1[f ]} di formule di
quadratura interpolatorie costruite su un intervallo chiuso con nodi
n
equidistanti si ha
lim
n→ ∞

i =0
( n + 1)
wi = +∞

 I pesi tendono a crescere in modulo e ad essere di segno alterno,


dando luogo a rilevanti errori di arrotondamento (per es. errori di
cancellazione)
 Per esempio per n=10:

22
Formule composite (Newton-Cotes)
 Idea: suddividere l’intervallo di integrazione [a,b] in N intervalli uguali
[zk, zk+1], k=0,…N, e su ciascuno di essi applicare una formula di ordine
basso
b N −1 z k + 1 N −1

 f (x)dx =  
k =0 z
f (x )dx ≃  In(k+)1[f ],
k =0
z k : k = 0,..., N; z0 = a, z N = b
a k

 Le formule più usate:


zk +1 − zk
N −1
b−a N −1
I [f ] = 
N
2 (f (zk ) + f ( zk +1 )) = [f (a) +  2f (zk ) + f (b)] TRAPEZI
k =0 2 2N k =1 SIMPSON
zk +1 − zk 1
N −1
4 zk +1 + zk 1 b−a N −1 N −1
z + zk
I [f ] = 
N
3 ( f (zk ) + f ( ) + f ( zk +1 )) = [f (a) + 2 f (zk ) + 4 f ( k +1 ) + f (b)]
k =0 2 3 3 2 3 6N k =1 k =0 2

23
Grado di precisione (composite)
 Il grado di precisione delle formule composite è lo stesso delle
corrispondenti formule “semplici”

 Si può facilmente dimostrare che:


(b − a)3 1
EN
2 ≤ f ''
N2 [a, b]
12
5
 b − a 1
E3N ≤  N f (4)

 2N  [a, b] 90

 Per funzioni sufficientemente regolari si ha:

lim EnN+1[f ] = 0
N →∞

 Pertanto si ha convergenza aumentando il numero di


suddivisioni N 24
Implementazione
 In pratica è importante determinare un valore adeguato del numero
di suddivisioni dell’intervallo che bisogna fare.
 Si parte da un valore piccolo di N e si aumenta iterativamente il
numero di suddivisioni, valutando in modo automatico l’errore:

InN+11[f ] − InN+21[f ]

 Di solito è conveniente considerare N2=2N1 per poter sfruttare le


valutazioni effettuate nel calcolo di IN1[f]
 Nell’ipotesi in cui la derivata s-esima vari lentamente è possibile
dare una stima dell’errore a partire da due formule composite con
valori diversi di N
(b − a)s +1 1 f ( ) (ξ ) δ N
s
I[f ] − I [f ] = kn
N
≃ s
ns +1 Ns s! N
(b − a)s +1 1 f ( ) (ξ ) δ 2N
s
Estrapolazione di Richardson
I[f ] − I [f ] = kn
2N

ns +1 (2N )s s! (2N )s
δ δ I 2N [f ] − I N [f ]
 I [f ] − I [f ] ≃
2N N
(2 − 1)
s
 E [f ] ≃ s s =
2N
s
2 N s
2 N 2s − 1 25
Formule adattive
 Se f è continua, è possibile ottenere una accuratezza alta arbitraria
con le formule composite prendendo h (la spaziatura tra due
valutazioni successive della funzione) sufficientemente piccolo.
 Le formule composite con suddivisione uniforme dell’intervallo di
integrazione sono ormai superate, tranne in casi particolari (funzioni
periodiche, regola dei trapezi)

 Si usano formule di tipo adattivo


 Quando la funzione integranda presenta delle irregolarità c'è la
necessità di addensare i nodi nelle vicinanze delle irregolarità
 L’intervallo viene suddiviso in sottointervalli di ampiezza diversa
 Viene applicata una formula base (non con molti nodi) addensando i
nodi là dove è necessario.

26
Condizionamento
 In generale la quantità  wi da’ una misura di quanto si
amplifichino gli errori sui dati iniziali e quindi può essere messa
anche in relazione con il condizionamento del problema.
 Supponiamo che a causa degli errori di arrotondamento si abbia:
~ ~
f j = f (x j ) = fl (f (x j )) = f ( x j ) + ρ j

~ n n n n
I n +1[f ] − In +1[f ] =  w (f (x ) + ρ ) −  w f (x )
i =0
i i i
i =0
i i = w ρ
i =0
i i ≤ wρ
i =0
i i

n
≤ ρ  wi , ρ = max ρ i
i =0
 L’errore effettivamente commesso è dato da
~ ~ n n n
E n +1 = I[f ] − I n +1[f ] = I[f ] −  wi f (xi ) + ρw i i = En +1[f ] + ρw i i
i =0 i =0 i =0

n n
 Se i pesi sono positivi: w ρ ≤ ρ  wi = ρ (b − a)
i i
i =0 i =0

27
Polinomi ortogonali
 Uno spazio vettoriale G sul campo R dei reali, su cui è definito un prodotto
scalare, è detto spazio di Hilbert se ogni successione di Cauchy di elementi di G
è convergente ( spazio di Banach + prodotto scalare)
 Data una funzione peso w(x) non negativa nell’intervallo (finito o infinito)
(a,b) e non identicamente nulla ed un insieme { pi (x )}i∈N di polinomi, in
cui pi (x) è di grado i, esso è uno spazio di Hilbert rispetto al prodotto
scalare b
pi , p j =  w(x ) pi ( x )p j (x )dx
a

 Un sistema di polinomi è detto ortogonale rispetto ad una funzione peso


w(x) ed al prodotto scalare sopra definito se

pi , p j = 0 per i ≠ j

 L’intervallo (a,b) e la funzione peso w(x) definiscono univocamente i


polinomi pi (x) , a meno di fattori costanti non nulli.

28
pi , q = 0 per i < n
pn ( x )
pn ( x )
pn −1( x ) pn ( x )
pn −1(x )

{pi (x)}i∈N

pi +1(x) = ( Ai x + Bi )pi (x) − Ci pi −1(x)


ai +1 ai +1  bi +1 bi  ai +1ai −1hi
Ai = , Bi =  − , Ci = 2 ,
ai ai  ai +1 ai  ai − hi −1

29
Formule Gaussiane
 Nelle formule gaussiane i nodi non sono determinati a priori, ma sono
scelti in modo da massimizzare il grado di precisione della formula

 Teorema: Una formula di quadratura di tipo interpolatorio costruita su


n+1 punti ha grado di precisione almeno n ed al massimo 2n+1. Il
grado massimo viene raggiunto se e solo se i nodi sono gli zeri dell’
(n+1)-esimo polinomio ortogonale rispetto alla funzione peso w(x)=1
b
Si considera il resto nella forma di Newton En +1[f ] =  ωn +1(x ) f [x0 , x1 ,...xn , x] dx
Per costruzione se f ∈ Pk con k ≤ n  f [x0 , x1 ,...xn ,ax] = 0
Vediamo ora f ∈ Pn + r con r > 0  f [x0 , x1,...xn , x]∈ Pn + r −(n +1) = r −1
b b

ω
a
n +1 (x) pr −1 dx = 0 ⇔  ωn +1(x ) x s dx = 0 per s = 0,1,...r − 1
a b

se e solo se ωn +1e’ ortogonale allo spazio Pr −1 rispetto a f , g =  f ( x)g( x) dx


a
E’ sufficiente prendere come nodi gli zeri dell’(n+1)-esimo polinomio
ortogonale r-1=n r=n+1. Il massimo grado di precisione ottenibile e’
2n+1
30
 Tutti i coefficienti di una formula interpolatoria In +1 di grado di
precisione almeno 2n, sono tutti positivi

 Per quanto riguarda l’errore si ha che, se f ∈ C 2n + 2 (a, b)

f (2 n + 2)(ξ ) 2
b
En +1[f ] =
(2n + 2)! a  qn +1( x )dx

dove q n + 1 e’ l’(n+1)-esimo polinomio ortogonale

 Le formule gaussiane classiche sono quelle associate ai classici


polinomi ortogonali.
 Essi sono in generale definiti in [-1,1]. Se [a, b] ≠ [−1,1]

1
x = [(b + a) + t (b − a)]
2

31
Formule di Gauss-Legendre
 I polinomi di Legendre sono ortogonali nell’intervallo (-1,1) rispetto
alla f unzione peso W(x)=1 e sono definiti per ricorrenza

P0 ( x ) = 1

P1( x ) = x
 2n + 1 n
Pn +1(x ) = x Pn (x ) − Pn −1(x )
 n +1 n +1

 Per queste formule si possono calcolare esplicitamente i nodi ed i


pesi, per ogni n, e tabularli (nell’intervallo di riferimento [-1,1])
 Difficile implementazione per loro utilizzo in modo iterativo
 I nodi sono tutti interni all’intervallo

32
Formule di Gauss-Lobatto
 Si considerano gli zeri del polinomio Ω n +1 = Pn +1(x ) + aPn (x ) + bPn −1(x )
dove a e b sono determinate in modo tale che

Ω n +1(−1) = Ω n +1(1) = 0
 Nei nodi sono inclusi gli estremi
n −1
2
I G −L
n +1 [f ] =
n(n + 1)
(f (−1) + f (1)) +  w f (x )
j =1
j j

'
 I nodi sono gli zeri di Pn +1(x) ed i pesi sono dati da
2
wj = (Pn ( x j ))−2
n(n + 1)

 Le formule di Gauss-Lobatto hanno grado di precisione 2n-1

33
Formule gaussiane pesate
b

 Si studiano formule per approssimare  w(x) f (x) dx


a

 Questi integrali sono utili quando si vuole integrare una funzione g(x)
che presenta delle singolarità o dei punti di discontinuità nell’intervallo
[a,b], ma può essere fattorizzata g(x)=w(x)f(x), in cui w(x) è una
funzione di forma semplice contenente la singolarità di g(x), mentre f(x)
è la parte regolare di g(x).
 Si costruiscono formule interpolatorie generalizzando il procedimento
visto finora (che corrisponde a w(x) ≡ 1)
b b n n
In +1[f ] =  w(x ) pn (x )dx =  w( x ) l ( n)
i (x )f (xi ) dx =  w f (x )
i i
a a i =0 i =0
b
wi =  w( x)li(n)(x )dx
a

 La funzione peso deve essere tale da garantire l’esistenza degli


integrali coinvolti e permettere la costruzione dei pesi
34
 Formule gaussiane pesate in cui i nodi sono scelti coincidenti con gli
zeri dei polinomi ortogonali rispetto al prodotto scalare
b
f,g w
=  w(x )f ( x )g( x )dx
a
 Particolarizzando l’intervallo [a,b] e la funzione peso w(x) si hanno
diverse formule:
T0 (x ) = 1
1 
 Gauss-Chebychev: [-1,1] w(x ) = ; T1( x ) = x
1− x 2
T (x ) = 2 x T (x ) − T (x )
 n +1 n n −1

L0 (x ) = 1
−x 
 Gauss-Laguerre: [0, +∞), w(x) = e L1( x ) = x
(n + 1)L ( x ) = (2n + 1 − x ) L ( x ) − nL ( x )
 n +1 n n −1

H0 ( x ) = 1

w( x ) = e − x
2
(−∞, +∞) H1( x ) = 2 x
 Gauss-Hermite :
H ( x ) = 2 x H ( x ) − 2nH ( x )
 n +1 n n −1

 Tutti i nodi ed i pesi sono ottenibili da opportune tavole, tranne che per
le formule di Gauss-Chebychev:
2j +1 π
x j = cos(π ), j = 0,.., n; wj =
35
2n + 2 n +1

Potrebbero piacerti anche