Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ANALISI NUMERICA
CALCOLO NUMERICO
Anno
1861
1871
1881
1901
1911
1921
1931
1936
Popolazione 21 777 26 801 28 460 32 475 34 671 37 974 41 177 42 994
(in migliaia)
Anno
1951
1961
1971
1981
1991
2001
2011
Popolazione 47 516 50 624 54 137 56 557 56 778 56 996 59 464
(in migliaia)
(A.A. 2012-2013)
6.5
x 10
6
5.5
Popolazione (in migliaia)
Prof. F. Pitolli
4.5
4
3.5
3
2.5
2
1860
1900
1920
1940
Anni
1960
1980
2000
2020
x 10
x 10
1880
2
1
1840
1860
1880
1900
1920 1940
Anni
1960
1980
2000
2020
1
1840
1860
1880
1900
1920 1940
Anni
1960
1980
2000
2020
Esempio 2
Nella tabella sono riportate le misure sperimentali relative alla forza
F (x) necessaria per allungare una molla fino alla lunghezza x.
2
7.0
x
F (x)
3
8.3
4
9.4
5
11.3
6
12.3
8
14.4
10
15.9
18
16
F(x)
14
12
10
8
6
0
10
12
18
16
Soluzione
14
F(x)
La forza F (x) necessaria per allungare una molla fino alla lunghezza x
`
e data da F (x) = k(x l) (Legge di Hooke) dove k `
e la costante
e la lunghezza a riposo della molla.
elastica e l `
12
10
8
Le misure date possono essere approssimate con la retta di regressione r(x) = a1 x + a0.
6
0
10
12
>>
>>
>>
>>
X=[2 , 3 , 4 , 5 , 6 , 8 , 10]
F=[7.0 , 8.3 , 9.4 , 11.3 , 12.3 , 14.4 , 15.9]
X2 = linspace(X(1),X(7))
p = polyfit(X,F,1);y2 = polyval(p,X2)
7
Esempio 3
10
4.25
7.1
5.25
6.0
7.81
5.0
9.20
3.5
10.60
5.0
6
Y
x pollici
y pollici
praticati su una lastra di metallo di dimensione 15 10 viene utilizzato un laser collocato allestremit`
a di un braccio meccanico di un
robot.
6
4
2
10
10
12
>>
>>
>>
>>
>>
10
0
0
0
0
12
Esempio 4
Problema
11
Metodi di approssimazione
ak IR k
M
X
ak cos(k x) + bk sin(k x)
k=0
ak exp(bk x)
k=1
i=0
M (xi) yi
n
X
i=0
ak , bk IR k
wi M (xi) yi
i=0
13
Funzione approssimante:
M (x) dipende linearmente da M parametri:
0, 1, , M
M << n
M (x) = 00(x) + 11(x) + + M M (x)
dove {k (x)}k=0,...,M `
e una base per lo spazio di approssimazione
Metodo di approssimazione: si minimizza lo scarto quadratico
2(0, 1, ..., M ) =
n h
X
i=0
Scarto quadratico
(x ) + 11(xi{z
) + + M M (xi)} yi
|0 0 i
M (xi )
i2
Caso lineare
Problema.
Data la tabella {xi, yi}, i = 0, 1, . . . , n, si vuole trovare una funzione analitica M che approssimi i dati.
n
X
i2
i=0
Scarto quadratico
[M (xi) yi]2
i2
n
X
Condizioni di interpolazione
n h
X
i = 0, 1, . . . , n
ak , bk IR k
M (xi ) = yi
Minimizzazione di
Per minimizzare
n
X
2
=
[M (xi) yi]2 = 0
k
k i=0
n
X
i=0
M (xi ) yi
n h
X
i=0
n
X
(x )
M i
k = 0, 1, ..., M
=0
h
0,1 0 + h1,1 1 + ... + h1,M M = v1
dove
........................................................
h
0,M 0 + h1,M 1 + ... + hM,M M = vM
k = 0, 1, ..., M
i=0
+ M
n
X
n
X
H=B
1(xi)k (xi) +
i=0
M (xi)k (xi) =
i=0
n
X
= [0, 1, ..., M ]T
yi k (xi)
n
X
j (xi)k (xi)
i=0
vk :=
n
X
yi k (xi)
i=0
k = 0, 1, ..., M
0(xi)k (xi) + 1
hj,k :=
k = 0, . . . , M
i=0
16
h0,0
h0,1
H=
h0,M
h0,1
h1,M
h1,1
h0,M h1,M hM,M
17
Unicit`
a della soluzione
Definiamo il vettore Y = [y0, y1, ..., yn]T
B = V TY
M (x0)
H = V TV
M (x1)
M (xn)
IR(n+1)(M +1)
Calcolo dellhessiano
Per verificare che la soluzione del sistema sia un minimo bisogna studiare lhessiano
"
n
X
2 2
= 2
j (xi)k (xi)
j k
i=0
= 2H
j,k=0,...,M
La matrice hessiana 2H `
e definita positiva
la soluzione del sistema delle equazioni normali
corrisponde a un minimo.
19
Definizioni: sk :=
n
X
xki
vk :=
i=0
i = 0, 1, ..., n
n
X
yi xki
k = 0, 1, ..., M
i=0
Funzione approssimante:
PM (x) = a0 + a1x + + aM 1xM 1 + aM xM
s0 a0 + s1 a1 + ... + sM aM = v0
s a + s a + ... + s
1 0
2 1
M +1 aM = v1
........................................................
s a +s
M 0
M +1 a1 + ... + s2M aM = vM
M << n
n
X
2
[a0 + a1xi + + aM 1xiM 1 + aM xM
i yi]
i=0
{z
PM (xi )
Funzioni di base:
0(x) = 1, 1(x) = x, . . . , k (x) = xk , , M (x) = xM
s0
s1
H=
s1
s2
HA = B
sM
sM +1
IR(M +1)(M +1)
sM sM +1 s2M
21
Retta di regressione
Condizionamento
del sistema delle equazioni normali
H = [hjk ]j,k=0,M
hjk =
n
1 X
j+k
x
n + 1 i=0 i
{z
Z x
n
x0
xj+k dx =
somma integrale
La retta di regressione `
e il polinomio di grado 1
P1(x) = a0 + a1x
xn
xj+k+1
j + k + 1 x
a0 s0 + a1s1 = v0
h
i
1
=
H j+k+1
j,k=0,M
1
1/2
1/3
1/2
1/3
1/4
1/3
1/4
1/5
1/M
1/(M + 1)
1/(M + 2)
1/2M
H `
e proporzionale alla matrice di Hilbert H `
e malcondizionata
22
Equazioni normali
dove
a s +a s =v
0 1
1 2
1
s0 = n + 1
s1 =
n
X
xi
n
X
y i xi
i=0
v0 =
n
X
i=0
yi
v1 =
i=0
Soluzione
v s v1s1
a0 = 0 2
s0s2 s2
1
s v s1v0
a1 = 0 1
s0s2 s2
1
s2 =
n
X
x2
i
i=0
23
Esempio 2: soluzione
Esempio 2
La forza F (x) necessaria per allungare una molla fino alla lunghezza x
`
e data da F (x) = k(x l) (Legge di Hooke) dove k `
e la costante
e la lunghezza a riposo della molla.
elastica e l `
Nella tabella sono riportate le misure sperimentali relative alla forza
F (x) necessaria per allungare una molla fino alla lunghezza x.
0
2
7.0
1
3
8.3
2
4
9.4
3
5
11.3
4
6
12.3
5
8
14.4
6
10
15.9
16
15
14
13
2(a0, a1) =
6
X
i=0
12
P (x)
1
11
10
= 1.0071
24
26
25
27
10
Interpretazione probabilistica - 2
Interpretazione probabilistica - 1
Ipotesi:
Siano x una variabile deterministica e y = a0 + a1x la variabile
dipendente, legata a x da una relazione lineare. Per ogni coppia
{xi, yi} valgono le relazioni yi = a0 + a1xi, i = 0, . . . , n.
Supporremo che i dati {xi, yi} siano affetti da rumore con errore
statistico i.
Definizione. A partire dai dati {xi, yi} si definiscono la varianza e
la covarianza rispettivamente come
var(x) =
dove
1 X
(xi x
)2
n+1 i
x
=
cov(x, y) =
1 X
xi
n+1 i
y =
1 X
(xi x
)(yi y)
n+1 i
x`
e una variabile deterministica
E(i ) = 0 (valore atteso)
var(i) costante per ogni i
cov(i, j ) = 0 per ogni i 6= j
a1 =
1 X
yi
n+1 i
Funzione approssimante:
M (x) dipende linearmente da M + 1 = n + 1 parametri:
0, 1, , n
T
|V {zV}
H
n(x1)
n(xn)
Condizioni di interpolazione
i = 0, 1, . . . , n
n(x0)
cov(x, y)
(n + 1)( i xi yi) ( i xi)( i yi)
=
P
P
2
var(x)
x
)
)
(
(n + 1)( i x2
i i
i
29
Interpolazione
( i yi)( i x2
cov(x, y)
i ) ( i xi )( i xi yi ) = y
x
a1x
= y
a0 =
P 2
P
2
var(x)
(n + 1)( i xi ) ( i xi)
28
1)
2)
3)
4)
IR(n+1)(n+1)
TY V = Y
= |V {z
}
V=Y
m
n (x1 )
..
..
..
..
(x
)
+
(x
)
+
(x
)
+
(x
)
=
y
n n n}
n
0 0 n
1 1 n
2 2 n
{z
|
n(xn )
n (x0) = y0,
m
n (x1) = y1,
n (xn) = yn
Interpolazione polinomiale
Tabella: {xi, yi}
Unicit`
a del polinomio interpolatore
i = 0, . . . , n
VA=Y
pn(xi ) = yi
Interpolazione
(i = 0, 1, . . . , n)
Risolvere il problema dellinterpolazione vuol dire individuare il polie i coefficienti reali ak , che soddisfano le condizioni di
nomio pn , cio`
interpolazione. Questo equivale a risolvere il sistema lineare
a0 + a1x0 + a2x20 +
p(x0) =
a + a x + a x2 +
p(x1) =
0
1 1
2 1
...
...
...
...
...
...
...
...
anxn0
+ anxn1
...
...
+ anxnn
= y0
= y1
...
...
= yn
VA=Y
32
Condizionamento della
matrice di Vandermonde
n+1
K1(V )
7
8.1271e+005
8
6.2915e+006
7
1.0200e+003
8
2.6550e+003
9
6.7024e+003
{z
a0
a1
..
an
Matrice di Vandermonde
Y =
y0
y1
..
yn
j>i
(xi xj ) 6= 0
33
xk `
e un monomio di grado k
10
4.0042e+008
6
9.8784e+004
9
4.8184e+007
n
1 x0 x2
0 x0
n
2
1 x1 x1 x1
.. ..
..
..
..
A=
n
1 xn x2
n xn
con V =
6
3.7648e+002
10
1.6514e+004
Nota. Poich
e la matrice di Vandermonde `
e malcondizionata per n elevato e,
o
inoltre, il costo computazionale per la soluzione del sistema lineare V A = Y pu`
essere elevato, si preferisce ricorrere ad altre strategie per costruire l unico polinomio interpolatore pn.
34
n
Y
x xj
x x0 x x1
x xk1 x xk+1
x xn
=
xk xj
xk x0 xk x1
xk xk1 xk xk+1
xk xn
j=0
j 6= k
k (x), k = 0, . . . , n, `
e un polinomio di grado n
k (xi) =
1 se i = k
0 se i 6= k
35
Esempio 1
Data la tabella
Anno
Popolazione
(in migliaia)
V =Y
n(x0)
pn(x) =
n(x1)
=I
n(xn)
n
X
i=0
=Y
3.2
Data la tavola
1
0
4
2
1
2
2010
308 745
x 10
2.8
1
2.6
0.5
0
0.5
2.4
2.2
2
1.8
2
1940
1.4
1950
1960
1970
1980
1990
2000
2010
1.2
1930
1940
1950
1960
Anni
i(x) dipende
solo dai nodi
1970 1980
Anni
1990
2000
2010
2020
Polinomio interpolatore
(il simbolo indica i punti
di interpolazione)
36
37
Soluzione
I dati sono n + 1 = 3 quindi il polinomio interpolatore `
e un polinomio
di grado 2.
n
X
k=0
0 (x) =
(x x1 )(x x2)
x(x 1)
1
=
= x(x 1)
(x0 x1 )(x0 x2 )
(1)(1 1)
2
1.2
l0(x)
l0(x)
0.6
0.4
0.2
(x x0 )(x x1)
(x + 1)x
1
2 (x) =
=
= (x + 1)x
(x2 x0 )(x2 x1 )
(1 + 1)(1)
2
l1(x)
0.8
(x + 1)(x 1)
(x x0 )(x x2)
=
= (x + 1)(x 1)
(x1 x0 )(x1 x2 )
(1)(1)
0.2
1
0.5
0.5
(x1,y1)
3
4
2000
281 421
1.5
Esempio.
0
-1
0
1990
249 633
1.6
1 (x) =
i
xi
yi
1980
226 542
Linterpolazione `
e esatta per i polinomi qm di grado m n.
k = 0, ..., n Ln(x) =
1970
203 302
1.5
Interpolazione di polinomi
{xk , qm(xk )}
1960
179 323
yi i(x) Ln(x) P
In
1950
151 326
Popolazione
0(xn) 1(xn) 2(xn)
1940
132 165
(x ,y )
2
p2(x) =
k=0
(x ,y )
1
(x ,y )
0
2
X
(x ,y )
2 2
1
3x2
+x+4
0
(x ,y )
0
38
p2(x)
39
Aggiungiamo alla tabella la coppia di valori (x3, y3) = (2, 6) e calcoliamo il nuovo polinomio interpolatore.
i
xi
yi
0
-1
0
1
0
4
2
1
2
3
2
-6
il polinomio interpolatore `
e di grado 3
p3(x) =
(x x1 )(x x2 )(x x3)
1
= x(x 1)(x 2)
(x0 x1 )(x0 x2 )(x0 x3 )
3
(x x0 )(x x2 )(x x3)
1
= (x + 1)(x 1)(x 2)
(x1 x0 )(x1 x2 )(x1 x3 )
2
1 (x) =
2 (x) =
3
X
yk k (x) =
k=0
(x ,y )
1
p2(x)
(x ,y )
2
(x ,y )
0
p (x)
k=0
n
X
q| 0(x
) (x) = q0(x) = 1
{z k } k
k=0
1
n
X
n
X
Linterpolazione `
e esatta per i polinomi qm di grado m n.
Se m = 0 Ln(x) =
= 3x2 + x + 4 = p2(x)!!!
0 (x) =
3
4
k (x) = 1
k=0
5
6
(x ,y )
3
40
Polinomio ideale:
i = 0, . . . , n
n
X
f (xk ) k (x)
polinomio ideale
pn (x) =
k=0
Errore totale
41
En (x)
n
Y
i=0
f (n+1) ((x))
(n + 1)!
f (n+1) ((x))
Errore di troncamento: En(x) = n(x)
(n + 1)!
|f (n+1)(x)|
x [a, b]
|n(x)|
|En(x)|
(n + 1)!
(x) [a, b]
n(x) =
m f (n+1)(x) M
n
Y
(i = 0, . . . , n)
i=0
x [a, b]
1500
1000
M n(x)
m n(x)
En(x)
(n + 1)!
(n + 1)!
se n(x) > 0
500
Grafico di 7(x)
m n(x)
M n(x)
En(x)
(n + 1)!
(n + 1)!
se n(x) < 0
500
1000
1
44
Errore di propagazione
Errore sui dati:
i = f (xi ) yi
i = i
n
X
i=0
En (x) =
Se |i| si ottiene la limitazione
Propriet`
a della funzione di Lebesgue
(x) dipende solo dai polinomi fondamentali di Lagrange e, quindi,
dalla distribuzione dei nodi
errore di arrotondamento
errore di misura
f (xi ) i(x)
n
X
n
X
n
X
Poich
e
(f (xi ) + i) i(x)
i=0
i=0
i=0
ba
,
n
2n+1
xi = a + ih
n
X
i=0
i(x) = 1 (x) 1
Nodi di Chebyshev in [a, b]
i i(x)
|En (x)|
45
|i(x)| = (x)
h=
e n log n
i = 0, . . . , n
per n
10
axb
46
7(x)
0
1
2
log n per n
n
9
(x)
2i + 1
b+a
ba
cos
+
, i = 0, . . . , n
2
n+1 2
2
10
rappresenta il coefficienn
X
Funzione di Lebesgue: (x) =
|i(x)| te di amplificazione degli
i=0
errori sui dati
xi =
n = 7 Intervallo: [0, 7]
0
1
n = 7 Intervallo: [0, 47
7]
Esercizio
i
Data la tabella xi
yi
0
0.0
0.00000
1
0.4
0.42839
2
0.8
0.74210
3
1.2
0.91031
0 (x) =
1 (x) =
b) sapendo che 0 < f (4)(x) 5.657, dare una limitazione per eccesso
e una per difetto dellerrore di troncamento nei punti t1 = 0.2,
t2 = 0.6, t3 = 1.0;
2 (x) =
48
(x) (4)
b) Errore di troncamento: E3(x) = 3
f ( )
4!
(0.0, 1.2)
(t ) = (1.0) = 0.024
3 2
3
(t )
(t )
Stima di E3(t0) 0.00566 3 0 M E3(t0) 3 0 m < 0
4!
4!
(t )
(t )
Stima di E3(t1) 0 < 3 1 m E3(t1) 3 1 M 0.00339
4!
4!
1
(x x0 )(x x2 )(x x3 )
=
x(x 0.8)(x 1.2)
(x1 x0 )(x1 x2 )(x1 x3 )
0.128
1
(x x0 )(x x1 )(x x3 )
=
x(x 0.4)(x 1.2)
(x2 x0 )(x2 x1 )(x2 x3 )
0.128
1
(x x0 )(x x1 )(x x2 )
=
x(x 0.4)(x 0.8)
(x3 x0 )(x3 x1 )(x3 x2 )
0.384
yk k (0.2) = 0.226606
p
(t
)
=
p
(0.2)
=
3
0
3
k=0
3
3
X
X
yk k (x)
yk k (0.6) = 0.601508
p3(t1) = p3(0.6) =
p3(x) =
k=0
k=0
p
(t
)
=
p
(1.0)
=
yk k (1.0) = 0.846320
3
2
3
k=0
49
3
X
i=0
|i(x)| = (x)
Poich
e i dati di input hanno 5 decimali lerrore di arrotondamento
sui dati `
e : |i| 0.5 105 = .
(t0) =
3
X
3
X
3
X
i=0
(t1) =
i=0
(t )
(t )
Stima di E3(t2) 0.00566 3 2 M E3(t2) 3 2 m < 0
4!
4!
Nota. Le approssimazioni di t0 e t2 sono per eccesso, mentre
e per difetto.
lapprossimazione di t1 `
Inoltre |E3(t0)| 0.05, |E3(t2)| 0.05 un decimale
esatto, mentre |E3(t1)| 0.005 due decimali esatti.
3 (x) =
(x x1 )(x x2 )(x x3 )
1
=
(x 0.4)(x 0.8)(x 1.2)
(x0 x1 )(x0 x2 )(x0 x3 )
0.384
(t2) =
i=0
`
e
trascurabile
rispetto
51
Polinomio interpolatore
1.5
0.8
0.6
0.5
0.4
0
0.2
0
1.2
l0 (x) =
0.4
0.8
1.2
x
Funzione di Lebesgue
0.02
0.02
0.4
0.8
(x x0 )(x x2)
(x1 x0 )(x1 x2)
l2 (x) =
(x x0 )(x x1 )
(x2 x0 )(x2 x1 )
1.4
l0 (x) =
(x x1)(x x2)(x x3 )
(x0 x1)(x0 x2)(x0 x3 )
l1 (x) =
(x x0)(x x2)(x x3 )
(x1 x0)(x1 x2)(x1 x3)
1.2
l2 (x) =
(x x0)(x x1)(x x3 )
(x2 x0)(x2 x1)(x2 x3 )
l3 (x) =
(x x0)(x x1)(x x2 )
(x3 x0)(x3 x1)(x3 x2)
1.2
0.4
0.8
1.2
52
Differenze divise
i = 0, 1, . . . , n (Nodi distinti)
f [xi ] := fi
f [xi , xj ] =
f [xi] f [xj ]
xi xj
i = 0, 1, . . . , n
i, j = 0, 1, . . . , n
f [xi , xj , xk ] =
l1 (x) =
1.6
(x x1)(x x2)
(x0 x1)(x0 x2)
1.8
0.04
0.5
f [xi , xj ] f [xj , xk ]
xi xk
i, j, k = 0, 1, . . . , n
i 6= j 6= k 6= i
x1 f1
f [x1 , x2 ]
f [x0 , x1 , x2 , x3]
f [x1 , x2 , x3 ]
x2 f2
f [x2 , x3 ]
f [x2 , x3 , x4 ]
x3 f3
f [x3 , x4 ]
x4 f4
54
55
x0 f0
f [x0 , x1 ]
f [x0 , x1 , x2 ]
x1 f1
f [x1 , x2 ]
f [x0 , x1 , x2, x3 ]
f [x1 , x2 , x3 ]
x2 f2
f [x2 , x3 ]
f [x2 , x3 , x4 ]
x3 f3
f [x3 , x4 ]
f [x0 , x1 , x2 , x3 , x4, x5 ]
f [x1, x2, x3 , x4 , x5 ]
f [x2 , x3 , x4, x5 ]
Errore di troncamento
f [x3 , x4 , x5 ]
x4 f4
f [x0, x1, x2 , x3 , x4 ]
f [x1 , x2 , x3, x4 ]
f [x4 , x5 ]
x5 f5
57
f (n+1)((x))
= n(x) f [x, x0, x1, . . . , xn]
(n + 1)!
f (k) (tk )
k!
tk [x0, xk ]
f (n+1) (tn+1)
(n + 1)!
tn+1
f [x3 , x2 ]
f [x1 , x2 , x3 ]
2h2
h2
2h2
2h3
f [x0 , x1 , x2 , x3 , x4 ] +
x3 f3
f [x4 , x3 ]
2h3
x4 f4
f (n+1) ()
f (n+1) (tn+1 )
En (x)n (x) f [x0 , x1 , . . . , xn, xn+1]
n (x)
(n + 1)!
(n + 1)!
= n (x)
f [x0 , x1 , x2 ] +
x2 f2 +
[x0 , xn+1 ]
En(x) = n f [x, x0 , x1 , . . . , xn ] =
f [x0 , x1 ]
x1 f1
f [x2 , x1 ] +
h
58
4h4
function[out1,out2] = poldifdiv(xnodi,fnodi,xeval)
% Polinomio interpolatore alle differenze divise:
%
[pn,tavdif] = poldifdiv(xnodi,fnodi,xeval)
%
% Input:
% xnodi(1:nnodi): coordinate dei nodi
% fnodi(1:nnodi): valori nei nodi della funzione da interpolare
% xeval(i:m): coordinate deipunti in cui calcolare il polinomio interpolatore
%
% Output:
% pn(1:m): valore del polinomio interpolatore calcolato in xeval
% tavdif(1:nnodi,1:nnodi): tavola delle differenza divise
%
% Usa la function difdiv
%
% Calcolo della tavola alle differenze divise
m_difdiv = difdiv(xnodi, fnodi);
% Calcolo del polinomio interpolatore
nnodi = length(fnodi);
pn = m_difdiv(1,1);
pnod = 1;
%polinomi nodali
for i=1:nnodi-1
pnod = pnod.*(xeval-xnodi(i));
pn = pn + pnod*m_difdiv(1,i+1);
end
% Output
out1 = pn;
out2 = m_difdiv;
61
60
63
*
* Calcolo del polinomio interpolatore
*
*
polintx = polhorn( nnodi, xnodi, difdiv, x)
*
write (10,110) x, polintx
110
format (2x,Il polonomio interpolatore in x=,f8.5,
&
vale:,e12.6)
*
* Fine
*
close(10)
stop
end
*
puntidis = .true.
do i = 1, n
do j = i+1, n
if (xn(i).eq.xn(j)) then
puntidis = .false.
return
endif
enddo
enddo
*
end
64
*
*
*
*
*
*
*
*
*
*
*
*
65
Input:
- nnodi: numero di nodi
- xnodi(0:nnodi): coordinate dei nodi
- difdiv(0:nnodi,j=0): valori della funzione nei nodi
- kord: ordine delle differenze a cui arrivare (se kord>nnodi si pone kord=nnodi)
Output:
- difdiv(0:nnodi,0:kord): tavola delle differenze divise (per colonne)
cio`
e se allaumentare del numero dei nodi il polinomio interpolatore
approssima sempre meglio la funzione.
Esempio 1: f (x) = sinh(x)
kord = min(kord,nnodi)
do j = 1, kord
do i = 0, nnodi-j
difdiv(i,j) = (difdiv(i,j-1)-difdiv(i+1,j-1))
&
/(xnodi(i)-xnodi(i+j))
enddo
enddo
*
return
end
x [2, 2]
4
2
1
0
p10(x)
1
2
p2(x)
3
4
2
66
p (x)
1.5
0.5
0.5
x
1.5
67
13
x 10
0
1
Polinomio interpolatore
Errore di troncamento
0.8
E2(x)
0.6
p (x)
2
3
0.4
p2(x)
7
2
E11(x)
E (x)
4
0.2
Esempio 2: f (x) =
p2(x)
0.2
1
1 + x2
0.5
0
x
0.5
1.5
0.8
2
0.5
0.5
1.5
0.6
1.5
1.5
0.4
3
4
2
(x)
100
1.5
0.5
0
x
0.5
1.5
Allaumentare di n il
polinomio interpolatore
oscilla sempre di pi`
u in
prossimit`
a dei bordi (non
dipende dagli errori di
arrotondamento)
50
2.5
1.5
p4(x)
p2(x)
1
0.5
p (x)
f(x)
10
0.5
5
68
Teoremi di convergenza - 1
(x)
69
Polinomi di Chebyshev
(b a)k
max |f (k) (x)| = 0, allora
k
k! axb
lim pn (x) = f (x) uniformemente in [a, b].
Nota. Le funzioni con derivata equilimitata in [a, b] soddisfano le ipotesi del teorema.
Si possono dare delle condizioni di convergenza con ipotesi meno restrittive su f (x) se si scelgono nodi di interpolazione xi particolari.
Ponendo x = cos si definisce
1
ha due singolarit`
a in
1 + z2
i. Per lintervallo [5, 5] si ha d = 1 < b a = 10, quindi non si ha convergenza.
Nota. Per lesempio di Runge, la funzione F (z) =
e in questo caso
Se si considera invece lintervallo [2, 3] si ha convergenza poich
d = 5 > b a = 1.
70
n = 0, 1, . . .
T0(x) = 1
T1(x) = x
T1(x) = x
T2(x) = 2x2 1
T3(x) = 4x3 3x
71
Nodi di Chebyshev
Teoremi di convergenza - 2
Teorema 3. Se f `
e lipschitziana in [a, b], la successione dei polinomi
interpolatori sui nodi di Chebyschev converge a f uniformemente in
[a, b].
Tn+1(x) = 0 (n + 1) = (2 i + 1)
i = 0, 1, ..., n
2
Il polinomio nodale
seguenti propriet`
a :
=
cos
xC
i = 0, 1, . . . , n
i
n+1 2
C (x)| =
max |n
C (x)|
max |n(x)| > max |n
x[a,b]
x[a,b]
Cambiamento di coordinate: x =
ba
xC
i = 2 cos
b+a
2i + 1
+
n+1 2
2
5 (x)
0.02
x[a,b]
a+b
ba
t+
2
2
(b a)n+1
22n+1
0.02
5(x)
0.04
0.06
0.08
1
i = 0, 1, . . . , n
72
0.5
0.5
73
Funzioni splines
Definizione. Si definisce partizione di un intervallo [a, b] un
insieme di punti xi, i = 0, 1, . . . , n tali che
: a = x0 < x1 < x2 < . . . < xn1 < xn = b
Continuit`
a : S1(x+
i ) = S1 (xi )
i = 0, 1, . . . , n
i = 0, 1, . . . , n
fn2
Sm(x) C m1[a, b]
n1
Nota. Sm(x) `
e un polinomio per x (xi1, xi) = Sm(x) C (xi1, xi)
f0
f1
f2
f
(k)
(k)
+
Nota. Sm (x
e
i ) = Sm (xi ) per k = 0, 1, . . . , m 1 = la spline `
liscia
74
x0
x1
x3
.......
n2
n1
75
1
0.9
1 se i = j
0 se i 6= j
S1(x) =
n
X
x [a, b]
yi Bi(x)
i=0
La funzione Bi(x) `
e un polinomio lineare in Ti che soddisfa il problema
1 , . . . , 0)
di interpolazione: Bi (xj ) = ej , j = 0, . . . , n, dove ei = (0, 0, . . . , |{z}
i
x xi1
se
x [xi1 , xi]
hi
xi+1 x
Bi (x) =
i = 1, . . . , n 1
se
x [xi, xi+1 ]
hi+1
0
altrove
x
x xn1
1
se
x [x0, x1 ]
se
x [xn1 , xn ]
h
hn
1
Bn(x) =
B0 (x) =
0
altrove
0
altrove
76
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0.5
1.5
2.5
3.5
4.5
2.5
(k)
(k)
+
Splines cubiche (m = 3): S3 (x
i ) = S3 (xi )
k = 0, 1, 2
i = 0, 1, . . . , n
1.5
0.5
0
0.5
1.5
2.5
3.5
4.5
7
X
yi Bi (x)
S3(x) `
e un polinomio di grado 3
in ogni sottointervallo
Ti = [xi1, xi], i = 1, 2, . . . , n:
s
s
(x)
i+2
(x)
i+1
(x)
i2
(x)
i1
S3(x)|xTi = si(x) P
I3
si(x)
xi3
i2
i1
xi
i+1
xi+2
i=0
77
Poich`
e S3(x) `
e continua si pu`
o integrare due volte per ottenere
S3(x):
hi = xi xi1
S3 (x)|xTi = si(x) =
si (x)dx =
Ti
i = 0, 1, ..., n
S3(x)|xTi = si(x) =
i+1
(x)
i+2
(x)
i+1
Mi3
Mi
Mi2
si1(x)
si2(x)
Mi+2
si(x)
i1
xi2
xi1 T
i
xi+1
Ti
si(x)dx =
i
1 h
(xi x)3Mi1 + (x xi1)3Mi + Ci(x xi1) + Di
6hi
M
xi3
i
1 h
(xi x)2Mi1 + (x xi1)2Mi + Ci
2hi
xi+2
S3 (x
i = 1, . . . , n 1
i ) = S3(xi ) si+1 (xi ) = si (xi )
79
1
1
|
{z
}
|
{z
}
6h
6 i
hi
h3
1
1
yi1 = si(xi1) =
(xi xi1)3 Mi1 + Di = h2
i Mi1 + Di
|
{z
}
6h
6
3
hi
h2
Di = yi1 i Mi1
i = 1, . . . , n 1
1
1
(xi xi1)2 Mi + Ci
(xi+1 xi)2 Mi + Ci+1 =
{z
}
{z
}
2hi+1 |
2hi |
h2
i
h2
i+1
1
hi+1
1
hi
1
1
hi+1Mi +
(yi+1 yi )
(Mi+1 Mi) = hiMi + (yi yi1 ) (Mi Mi1 )
2
hi+1
6
2
hi
6
i = 1, 2, . . . , n
S3(x)|xTi
si+1(xi) = si(xi )
h
1
h
6
La continuit`
a della derivata prima d`
a
i
1 h
= si(x) =
(xi x)3Mi1 + (x xi1)3Mi +
6hi
"
#
h2
1
h
+
(yi yi1) i (Mi Mi1) (x xi1) + yi1 i Mi1
hi
6
6
80
hi + hi+1
h
y
yi yi yi1
hi
Mi1 +
Mi + i+1 Mi+1 = i+1
6
3
6
hi+1
hi
81
Per i = 1, 2, . . . , n 1 le relazioni
M0 = Mn = 0
hi + hi+1
h
y
yi yi yi1
hi
Mi1 +
Mi + i+1 Mi+1 = i+1
6
3
6
hi+1
hi
h1 +h2
3
h2
6
0
|
h2
6
h2 +h3
3
h3
6
h3
6
h3 +h4
3
h4
6
hn1
6
hn1 +hn
3
{z
M1
M2
...
Mn2
Mn1
{z
}|
y2 y1
h2
y3 y2
h3
yn1 yn2
hn1
yn yn1
hn
y1 y0
h1
y2 y1
h2
...
yn2 yn3
hn2
n2
yn1hy
{z n1
Teoremi di convergenza
Esempio
|S3(x)|2dx
Z b
a
83
|v (x)|2dx
Nota. Poich`
e la curvatura di una funzione `
e legata alla sua derivata
seconda, la spline cubica naturale `
e quella che ha minima curvatura globale tra tutte le funzioni interpolanti v C 2[a, b].
Teorema 2. Sia f C 4[a, b], posto h = max hi, risulta
1in
(k)
x[a,b]
k = 0, 1, 2, 3
1
0
10
12
14
10
12
85
14
10
12
14
1
0
10
12
14
0.9
1.3
1.3
1.5
x
f (x)
7.0
2.3
8.0
2.25
1.9
1.85
9.2
1.95
2.1
2.1
2.6
2.6
10.5
1.4
3.0
2.7
11.3
0.9
3.9
2.4
11.6
0.7
4.4
2.15
12.0
0.6
4.7
2.05
12.6
0.5
5.0
2.1
13.0
0.4
6.0
2.25
20
0
13.3
0.25
20
40
60
10
12
14
86
87
Approssimazione trigonometrica
Se la funzione o i dati che si vogliono approssimare hanno un andamento periodico si sceglie come classe di funzioni approssimanti
linsieme TN dei polinomi trigonometrici.
TN :=
T (x) =
N
N
X
k=0
2
, i = 0, 1, ..., n, equispaziati
n+1
Funzione approssimante:
M
a0 X
a cos(k x)+b sin(k x)
TM (x) =
+
k
k
2 k=1
n + 1 >> 2M + 1
Funzioni di base:
0 (x) = 12 , 1 (x) = cos(x), 2 (x) = sin(x), . . . 2M (x) = cos(M x), 2M +1(x) = sin(M x)
2
n
M
X
X
a
0
Risolvere il problema dellapprossimazione trigonometrica ai minimi quadrati equivale a trovare i valori dei 2M + 1 coefficienti ak , bk
che rendono minimo
89
Condizioni di ortogonalit`
a
"
1
2
n
n
n
n
n
X
X
X
X
X
yi ,
yi cos(xi),
yi sin(xi), ...,
yi cos(M xi),
yi sin(M xi)
i=0
i=0
i=0
n
n
X
X
1
1
cos(x
)
sin(xi )
14 (n + 1)
i
2
2
i=0
i=0
n
n
n
X
X
X
1
cos(xi)
cos2 (xi)
cos(xi) sin(xi )
2
i=0
i=0
i=0
X
n
n
n
X
X
1
sin(xi)
sin(xi ) cos(xi )
sin2 (xi)
Ht = 2
i=0
i=0
i=0
n
n
n
X
X
X
1
cos(M
x
)
cos(M
x
)
cos(x
)
cos(M
xi ) sin(xi)
i
i
i
2
i=0
i=0
i=0
n
n
n
X
X
X
1
sin(M xi )
sin(M xi ) cos(xi )
sin(M xi ) sin(xi)
2
i=0
i=0
i=0
i=0
1
2
n
X
cos(M xi )
i=0
cos(xi ) cos(M xi )
i=0
n
X
sin(xi ) cos(M xi )
i=0
cos2 (M xi)
i=0
n
X
sin(M xi ) cos(M xi )
i=0
i=0
1
2
n
X
sin(M xi)
n+1 n+1
n+1
,
, ...,
2
2
2
i=0
2 X
yi sin(k xi)
b
=
n + 1 i=0
n
X
sin(rxi ) sin(sxi) =
n
X
sin(rxi ) cos(sxi) = 0
(n + 1)/2
i=0
i=0
se r 6= s
se r = s 6= 0 oppure
r = s 6= (n + 1)/2 con (n + 1) pari
se r = s = 0 oppure
r = s = (n + 1)/2 con (n + 1) pari
se r 6= s oppure r = s = 0 oppure
r = s = (n + 1)/2 con (n + 1) pari
se r = s 6= 0 oppure
r = s 6= (n + 1)/2 con (n + 1) pari
r, s
91
k = 0, 1, 2, ..., M
con
k = 1, 2, ..., M
2M
ak =
yi cos(k xi) k = 0, 1, 2, ..., M
2M
+
1
i=0
2M
b
=
yi sin(k xi)
2M + 1 i=0
M
X
a
a cos(k x) + b sin(k x)
TM (x) = 0 +
k
k
2
k=1
M
X
a
a cos(k x) + b sin(k x)
TM (x) = 0 +
k
k
2
k=1
2 X
yi cos(k xi)
ak =
n + 1 i=0
X
(n + 1)/2
cos(rxi) cos(sxi) =
i=0
n+1
90
i=0
cos(xi ) sin(M xi )
i=0
n
X
sin(xi ) sin(M xi )
i=0
n
X
cos(M xi ) sin(M xi )
i=0
X
2
sin (M xi )
Ht = diag
#T
92
TM (xi) = yi
i = 0, 1, . . . , 2M
k = 1, 2, ..., M
93
Costo computazionale
I coefficienti ak , bk nellapprossimazione ai minimi quadrati (discreta) o nellinterpolazione costituiscono lAnalisi di Fourier Discreta di una funzione (segnale).
MX
1
a
a
a cos(k x) + b sin(k x) + M cos(M k)
TM (x) = 0 +
k
k
2
2
k=1
con
2 2M
ak =
yi cos(k xi) k = 0, 1, 2, ..., M
2M i=0
2 2M
yi sin(k xi)
b
=
2M i=0
TM (xi) = yi
k = 1, 2, ..., M 1
i = 0, 1, . . . , 2M 1
94
relativo ai nodi
xi = i
(minimi quadrati)
(interpolazione)
Esercizio
f (x) = x
n1 operazioni
i = 0, 1, . . . , 7
con
3
X
a
a4
cos(4 x)
T4(x) = 0 +
(ak cos(k x) + bk sin(k x)) +
2
2
k=1
7
6
1 X
4 i=0
6
5
4
1 X
yi sin(k xi)
bk =
4 i=0
3
2
1
0
10
x
15
20
96
k = 1, ..., 3
T (x)
4
4
3
2
1
0
1
10
x
15
20
Polinomio trigonometrico
interpolante
97
98
Riferimenti bibliografici
100
99