Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
finita
a.a. 2017/2018
Prof. Maria Lucia Sampoli
Analisi Numerica
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
è 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.
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
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
x − fl ( x ) 1 1−t
con arrotondamento → ≤ β = εm ∀x ≠ 0
x 2
x − fl ( x )
con troncamento → ≤ β 1−t = ε m ∀x ≠ 0
x
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
( 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
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à, …)
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à
f ( x + ∂x ) − f ( x ) ∂x
≈ = εx
f ( x) 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
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
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.
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
‘
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
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
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
dove
Jacobi
Se gli elementi diagonali di A sono diversi da zero, in ogni
equazione possiamo mettere in evidenza l’incognita corrispondente:
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 )
K2 ( P − 1 A ) + 1 K2 (P −1 A) + 1
Precondizionatori
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
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
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.
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)
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).
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 ) )
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).
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
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’
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!
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 ( )
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
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.
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)
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 )
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
35
INTERPOLAZIONE
Nella pratica si presentano spesso i seguenti problemi:
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
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
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
⎧ ⎡ ⎤
⎪
⎪ 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
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
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
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.
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.
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:
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
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
1 (x) = =
(0 + 1)(0 − 1)(0 − 2)
2
2 1.5
(3)
2 (x) = = 0.5
(1 + 1)(1 − 0)(0 − 2) −4 0
−0.5
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
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:
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:
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:
n Polinomio interpolante
= f0 + k=1 Ck ωk (x)
di Newton Nn (x; f )
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)
−2 2
3−2
−1 3 −1+2
=1
1−3 −2−1
0 1 0+1
= −2 0+2
= − 32
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
Polinomio interpolante: 3
N3 (x; f ) = f0 + f [x0 , x1 , . . . , xk ]ωk (x)
k=1
INTERPOLAZIONE – p.15/38
Polinomio interpolante di NEWTON
ESEMPIO: Date le coppie (0, 0), (1, 1), (2, 0), (3, 1):
Tavola differenze divise
Polinomio interpolante: 3
1.2
k=1
0.8
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
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:
INTERPOLAZIONE – p.17/38
Errore di interpolazione
Sia f ∈ C n+1 [a, b] e sia
f (n+1) (ξ)
F (n+1) (ξ) = f (n+1) (ξ) − (n + 1)!R(x) = 0 ⇒ R(x) = (n+1)!
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:
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 0 0
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 0 0
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 0 0
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)
INTERPOLAZIONE – p.22/38
Punti fondamentali equidistanti
Sostituendo nella forma di Lagrange:
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:
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:
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;
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):
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
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):
Polinomio interpolante
3
(3) (3) 3 3 3 3
(x − 4x2 + 3x) +
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;
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?
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).
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.
INTERPOLAZIONE – p.33/38
... continua
Polinomio interpolante
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:
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:
√
√ √ 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
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
2. ||f || = 0 ⇒ f ≡ 0;
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|}
Esempio. S = R2
1 1
≤ (||f − v1 || + ||f − v2 ||) = 2d∗ = d∗ .
2 2
Poichè v1 , v2 ∈ ∂B(f, d∗ ), per ipotesi di norma stretta ||f − v|| < d∗ .
è strettamente normato.
⇔
b b
∗ 2
[f (x) − v (x)] dx ≤ [f (x) − v(x)]2 dx (1)
a a
b
F (a1 , a2 , . . . , aN ) = {f (x) − [a1 v1 (x) + · · · + aN vN (x)]}2 dx.
a
∂F
∂ai (a1 , a2 , . . . , aN ) = 0, i = 1, . . . , N
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
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 >
Ma = r
M ∈ RN ×N risulta
simmetrica per costruzione
b
mi,j =< vi , vj >=< vj , vi >= mj,i = vj (x)vi (x)dx
a
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
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
0
f
i
−2
−4
−6
−8
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
x
i
⎛ ⎞2
k
N
F (a1 , a2 , . . . , aN ) = ⎝ aj vj (xq ) − fq ⎠ .
q=1 j=1
∂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
Ma = r
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,
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
.
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
⇒ F (a1 , a2 , . . . , aN ) = Ga − f 22
k = dim V = N
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
1
data 1
0.8
0.6
0.4
0.2
−0.2
−10 −5 0 5 10
1
data 1
5th degree
0.8
0.6
0.4
0.2
−0.2
−10 −5 0 5 10
1
data 1
5th degree
0.8 6th degree
0.6
0.4
0.2
−0.2
−10 −5 0 5 10
1 data 1
5th degree
6th degree
0.8
8th degree
0.6
0.4
0.2
−0.2
−10 −5 0 5 10
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
1
data 1
spline
0.8
0.6
0.4
0.2
−0.2
−10 −5 0 5 10
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.
FORMULE DI QUADRATURA
2
“quadratura”
3
Supponiamo di conoscere (o di poter valutare) la funzione integranda f(x)
in punti {xi } (scelti o prefissati), distinti in [a,b]
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
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
f (x) dx ≅
a
2
[f (b) + f (a)]
6
Regola dei Trapezi: esempio
Applichiamo la regola dei trapezi al seguente integrale
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
8
Esempio
Applichiamo la regola di Simpson al seguente integrale
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 ] )
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 ]
12
Grado di precisione: esempio
Se consideriamo la formula di Simpson, si verifica che essa è esatta
per
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
Pertanto se otteniamo
15
Tra le formule interpolatorie più usate si possono
mettere in evidenza due classi importanti:
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
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
18
Esempio
Applichiamo la formula N-C con n=3 al seguente integrale
19
Stima errore
Per formule di quadratura interpolatorie
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
dove i=1 per le formule di tipo chiuso, mentre i=0 per quelle
di tipo aperto.
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
23
Grado di precisione (composite)
Il grado di precisione delle formule composite è lo stesso delle
corrispondenti formule “semplici”
2N [a, b] 90
lim EnN+1[f ] = 0
N →∞
InN+11[f ] − InN+21[f ]
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
pi , p j = 0 per i ≠ j
28
pi , q = 0 per i < n
pn ( x )
pn ( x )
pn −1( x ) pn ( x )
pn −1(x )
{pi (x)}i∈N
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
ω
a
n +1 (x) pr −1 dx = 0 ⇔ ωn +1(x ) x s dx = 0 per s = 0,1,...r − 1
a b
f (2 n + 2)(ξ ) 2
b
En +1[f ] =
(2n + 2)! a qn +1( x )dx
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
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)
33
Formule gaussiane pesate
b
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
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