68
Analisi numerica 3 F. Pasquarelli

Analisi numerica 3 - Dipartimento di Matematica e Fisicapasqui/an3.pdf · Analisi numerica 3 F. Pasquarelli. Indice I Risoluzione di sistemi lineari 4 1 Metodo del gradiente 6

Embed Size (px)

Citation preview

Analisi numerica 3

F. Pasquarelli

Indice

I Risoluzione di sistemi lineari 4

1 Metodo del gradiente 61.1 Metodo iterativo . . . . . . . . . . . . . . . . . . . . . . . . . 81.2 Errore e convergenza . . . . . . . . . . . . . . . . . . . . . . . 9

2 Metodo del gradiente coniugato 122.1 Generare le direzioni di discesa . . . . . . . . . . . . . . . . . 132.2 Metodo iterativo. . . . . . . . . . . . . . . . . . . . . . . . . . 152.3 Errore e convergenza . . . . . . . . . . . . . . . . . . . . . . . 162.4 Metodo del gradiente coniugato precondizionato . . . . . . . . 21

2.4.1 Matrici di precondizionamento algebriche. . . . . . . . 24

3 Schemi tipo gradiente coniugato per matrici generiche 26

II Approssimazione di funzioni 32

4 Interpolazione di Hermite 33

5 Splines 355.1 Splines cubiche . . . . . . . . . . . . . . . . . . . . . . . . . . 365.2 B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5.2.1 Base sull’intero intervallo . . . . . . . . . . . . . . . . . 385.2.2 Base locale . . . . . . . . . . . . . . . . . . . . . . . . 38

5.3 Funzioni di Brezier . . . . . . . . . . . . . . . . . . . . . . . . 43

6 Miglior approssimazione 45

7 Approssimazione di funzioni periodiche 48

8 Interpolazione in piu dimensioni 54

2

III Ottimizzazione 55

9 Ricerca del minimo di una funzione 569.1 Metodo di Newton . . . . . . . . . . . . . . . . . . . . . . . . 569.2 Approssimazione parabolica . . . . . . . . . . . . . . . . . . . 579.3 Metodo della sezione aurea . . . . . . . . . . . . . . . . . . . . 57

IV Integrazione 62

637.1 Estrapolazione di Richardson . . . . . . . . . . . . . . . . . . 637.2 Integrazione di Romberg . . . . . . . . . . . . . . . . . . . . . 647.3 Integrazione automatica . . . . . . . . . . . . . . . . . . . . . 66

3

Parte I

Risoluzione di sistemi lineari

4

Consideriamo il sistema lineare Ax = b con A ∈ Rn×n non singolare, simme-trica e definita positiva, cioe tale che:

• A = AT

• ∀x ∈ Rn \ {0} : xTAx = (Ax, x) > 0

Definizione 1. Sia x ∈ Rn , chiamiamo norma energia di x rispetto allamatrice A:

‖x‖A := (Ax, x)12 =√xTAx

Teorema 1. ∀x ∈ Rn, ‖x‖A =√xTAx e una norma.

Dimostrazione. Sia x ∈ Rn, e evidente che ‖x‖A e ben definita perche

xTAx > 0 e xTAx = 0 ⇔ x = 0.

Inoltre ∀α ∈ R si ha:

‖αx‖A = (A(αx), αx)12 = (αAx, αx)

12 =

=[α2(Ax, x)

] 12 = |α| (Ax, x)

12 = |α|‖x‖A.

Resta da dimostrare la disuguaglianza triangolare:

‖x+ y‖2A = (A(x+ y), x+ y) = (Ax, x) + (Ay, y) + (Ax, y) + (Ay, x) =

= ‖x‖2A + ‖y‖2

A + 2 (Ax, y) , infatti:

(Ay, x) = (Ay, x)T =(xTAy

)T= yTAx = (Ax, y) .

Poiche la matrice A e simmetrica e definita positiva, per la disuguaglianzadi Cauchy-Schwartz:

|(Ax, y)| =(A

12x,A

12y)≤

≤(A

12x,A

12x)(

A12y, A

12y)

= ‖x‖A‖y‖A.

Quindi

‖x+ y‖2A ≤ ‖x‖2

A + ‖y‖2A + 2‖x‖A‖y‖A = (‖x‖A + ‖y‖A)2 ,

da cui‖x+ y‖A ≤ ‖x‖A + ‖y‖A

5

Capitolo 1

Metodo del gradiente

Risolvere il sistema Ax = b equivale a minimizzare il funzionale dell’energia:

Φ(y) =1

2yTAy − yT b =

1

2(Ay, y)− (b, y) .

Infatti, sia y ∈ Rn e x la soluzione di Ax = b allora:

Φ(y)− Φ(x) =1

2(Ay, y)− (b, y)− 1

2(Ax, x) + (b, x)

=1

2(Ay, y)− (Ax, y)− 1

2(Ax, x) + (Ax, x)

=1

2(Ay, y)− 1

2(Ax, y)− 1

2(Ax, y) +

1

2(Ax, x)

=1

2(A(y − x), y)− 1

2(Ax, y − x)

=1

2

[(A(y − x), y)−

(x,AT (y − x)

)]=

1

2(A(y − x), y − x) ≥ 0.

Quindi∀y ∈ Rn Φ(y) ≥ Φ(x) e Φ(x) = Φ(y)⇔ x = y

Per cercare il minimo di Φ dobbiamo anzitutto imporre ∇Φ = 0. Scriviamoallora Φ(y) in componenti, considerando che A = AT .

Φ(y) =1

2

n∑i=1

n∑k=1

aikykyi −n∑i=1

biyi,

6

dove le aik per i, k = 1, ..., n sono le entrate della matrice A, e deriviamo:

∂Φ

∂yj=

1

2

[n∑k=1

ajkyk +n∑i=1

aijyi

]− bj =

=n∑k=1

ajkyk − bj = (Ay)j − bj,

che in forma compatta e ∇Φ = Ay − b.Definizione 2. Chiamiamo allora residuo la quantita r := b− AyAllora risulta ∇Φ = −r.

Vogliamo ora definire un metodo iterativo per il calcolo del minimo di Φ(y).Partendo da un dato x0, vogliamo trovare delle approssimazioni xk+1 delminimo assoluto in modo che xk+1 sia il minimo di Φ lungo una direzione pkche passa per xk. Sia quindi xk+1 = xk + αkpk, dove αk e tale che Φ(xk+1)sia minimo nella direzione pk. Calcoliamo αk:

Φ(xk+1) = Φ(xk + αkpk) =1

2(xk + αkpk)

T A (xk + αkpk)− (xk + αkpk)T b

=1

2α2kpTkApk +

1

2αkp

TkAxk +

1

2xTkAxk +

1

2αkx

TkApk − xTk b− αkpTk b

=1

2α2kpTkApk +

1

2αk(pTkAxk + xTkApk

)+

1

2xTkAxk − xTk b− αkpTk b

=1

2α2kpTkApk + αkp

TkAxk +

1

2xTkAxk − xTk b− αkpTk b.

e quindi

dαk= αkp

TkApk + pTkAxk − pTk b.

Imponendo Φ′= 0, si ha:

αk =pTk b− pTkAxk

pTkApk

poiche Φ′′> 0 =⇒ αk e minimo relativo. Ponendo rk = b− Axk si ha:

αk =pTk rkpTkApk

Il metodo del gradiente si ottiene scegliendo come direzioni di discesa

pk = rk,

che risultano essere le direzioni locali di massima pendenza.

7

1.1 Metodo iterativo

Dato x0

r0 = b− Ax0

α0 =r0T r0

r0TAr0

x(1) = x0 + α0r0

Al passo k, per k = 1, 2, . . . :

rk = b− Axk

αk =rkT rk

rkTArkxk+1 = xk + αkrk

dove il maggior peso computazionale e dovuto ai 2 prodotti matrice*vettoreche devono essere eseguiti ad ogni passo.Poiche xk = xk−1 + αk−1rk−1, allora

rk = b− Axk = b− Axk−1 − Aαk−1rk−1 = rk−1 − αk−1Ark−1.

Se riscriviamo il metodo utilizzando quest’ultima relazione il costo compu-tazionale si riduce di un prodotto matrice*vettore per iterazione; otteniamocosı il sequente algoritmo avendo eliminato gli indici per evidenziare il realeutilizzo di risorse di memoria:

Dato x, calcolo

r = b− Ax

α =rT r

rTArx = x+ αr.

al passo generico:

w = Ar

r = r − αw

α =rT r

rTwx = x+ αr

Eliminare gli indici permette comunque di valutare la norma di xk+1 − xknecessaria per il test d’arresto perche uguale a ‖αr‖.

8

1.2 Errore e convergenza

Per dimostrare il risultato sulla convergenza del metodo del gradiente, ab-biamo bisogno di vedere prima alcuni lemmi.Consideriamo una matriceA generica non singolare, con autovalori |λ1| < . . . < |λn|.Ricordiamo che il raggio spettrale di A e ρ(A) := max

i=1,...,n|λi|, allora si ha che:

Lemma 1. Sia A ∈ Rn×n, allora ‖A‖2 =√ρ(ATA)

Dimostrazione. essendo ATA simmetrica e definita positiva, allora e diago-nalizzabile, e dunque

∃ U , unitaria : UTATAU = diag{λ1, . . . , λn},

quindi: ‖Ax‖22 = xTATAx = xTUUTATAUUTx = yTUTATAUy =

n∑i=1

λiy2i

dove y = UTx verifica ‖y‖2 = ‖x‖2 perche U e unitaria. Abbiamo dunque:

‖A‖2 = supx 6=0

‖Ax‖2

‖x‖2

= supy 6=0

√∑λiy2

i∑y2i

≤√ρ(ATA).

inoltre se prendiamo y = ek k-esimo versore di Rn dove k e l’indice di λk =ρ(ATA), nella disuguaglianza precedente vale proprio l’uguaglianza; da cuila tesi.

Come conseguenza immediata, si ha che se A e simmetrica, allora ‖A‖2 =ρ(A2) e quindi, se A e anche definita positiva, il condizionamento in norma2 di A si puo calcolare come K2(A) = ‖A‖2‖A−1‖2 = λn

λ1.

Lemma 2. Sia A simmetrica e definita positiva. Consideriamo il metododi Richardson: xk+1 = xk + αottrk con parametro ottimale (cioe quello chemassimizza la velocita di convergenza), allora si ha:

‖ek+1‖2 ≤λn − λ1

λn + λ1

‖ek‖2.

Dimostrazione. Cerchiamo la matrice B di iterazione del metodo di Richard-son:

xk+1 = xk + α [b− Axk] = (I − αA) xk + αb

quindi B = I − αA, ha autovalori dati da 1− αλi e quindi il valore ottimaledi α sara tale che:

−1 + αλn = 1− αλ1, da cui α =2

λ1 + λn.

9

Figura 1.1: Andamento degli autovalori di B al variare di α, la linea spessaevidenzia il raggio spettrale.

Quindi

ρ(Bott) =

∣∣∣∣1− 2

λ1 + λnλn

∣∣∣∣ =

∣∣∣∣λ1 − λnλ1 + λn

∣∣∣∣ =λn − λ1

λn + λ1

< 1.

Percio il metodo e convergente e la formula dell’errore sara data da:

ek+1 = Bottek, da cui:

‖ek+1‖2 ≤ ‖Bott‖2‖ek‖2.

Per il lemma 1: ‖Bott‖2 =√ρ(BT

ottBott) = ρ(Bott), da cui la tesi.

Teorema 2. Se A e simmetrica e definita positiva il metodo del gradienteconverge ∀x(0) ∈ Rn e

‖ek+1‖A ≤k2(A)− 1

k2(A) + 1‖ek‖A.

Dimostrazione. Indicando con e(k+1) l’errore della soluzione ottenuta con unpasso del metodo di Richardson partendo dalla soluzione k-esima del metododel gradiente, dalla definizione di Bott otteniamo

A12 ek+1 = A

12Bottek = A

12 (I−αottA

12A

12 )ek = (I−αottA

12A

12 )A

12 ek = BottA

12 ek

e quindi, passando alle norme, e sfruttando il lemma precedente:

‖ek+1‖A ≤ ‖Bott‖2‖ek‖A =k2(A)− 1

k2(A) + 1‖ek‖A

10

Poiche l’iterata xk+1 del metodo del gradiente minimizza l’errore sulla dire-zione xk + αrk allora minimizza anche la sua norma A e dunque:

‖ek+1‖A ≤ ‖ek+1‖A ≤k2(A)− 1

k2(A) + 1‖ek‖A,

in particolare essendok2(A)− 1

k2(A) + 1< 1 il metodo del gradiente e convergente.

Osserviamo che si avra una buona velocita di convergenza se λnλ1

e piccola,quindi se gli autovalori sono vicini. Sperimentalmente si osserva anche cheil numero di iterazioni dipende dal dato iniziale. Questo fatto puo esserevisualizzato facilmente nel caso di un sistema lineare 2 × 2. In questo caso,infatti, le linee di livello di Φ(y) sono delle ellissi concentriche la cui eccen-tricita e legata al rapporto tra i due autovalori della matrice (e quindi al suoindice di condizionamento). Nel caso di matrice mal condizionata, le lineedi livello sono molto allungate e quindi per alcune scelte di x0 la successionedelle soluzioni avanza a zig-zag e quindi la convergenza e lenta (vedere figuraseguente), per altre scelte del dato iniziale (per esempio se x0 e vicino alsemiasse minore delle ellissi) la convergenza risulta invece essere veloce.

Figura 1.2: Grafici di convergenza del metodo del gradiente, caso a zig-zag(primo grafico) e convergenza veloce (secondo grafico)

11

Capitolo 2

Metodo del gradiente coniugato

Definizione 3. Una direzione q ∈ Rn si dice ottimale rispetto alla direzionep se ∀λ ∈ R: Φ(q) ≤ Φ(q + λp). Se q e ottimale rispetto a tutte le direzionidi uno spazio vettoriale V allora q e ottimale rispetto a V .

Dalla definizione si deduce che Φ ristretta a q + λp al variare di λ, ammetteminimo per λ = 0, quindi la derivata parziale ∂Φ

∂λdeve annullarsi per λ = 0.

∂Φ

∂λ(q + λp) =

∂λ

[1

2(q + λp)TA(q + λp)− (q + λp)T b

]=

∂λ

[1

2qTAq +

1

2qTAλp+

1

2λpTAq +

1

2λ2pTAp− qT b− λpT b

]=qTAp

2+pTAq

2+

2λpTAp

2− pT b = pTAq + λpTAp− pT b.

Imponendo∂Φ

∂λ(q + λp)|λ=0 = 0, risulta:

pTAq − pT b = 0 ⇔ pT (Aq − b) = 0 ⇔ pT rq = 0 ⇔ p ⊥ rq.

Ora l’iterata xk+1 = xk +αkrk del metodo del gradiente e tale che Φ(xk+1) ≤Φ(xk+1 + λrk) e dunque rk ⊥ rk+1. Verifichiamo che cio e vero:

rk+1 = b− Axk+1 = b− A (xk + αkrk) = b− Axk − αkArk = rk − αkArk.

=⇒ (rk+1, rk) = (rk, rk)− αk(Ark, rk) == rkT rk −

rkT rk

rkTArkrkTArk = 0.

Quindi rk ⊥ rk+1.Al passo successivo, si avra rk+1 ⊥ rk+2, ma rk 6⊥ r(k+2) e dunque la soluzionenon mantiene l’ottimalita rispetto alle direzioni precedenti.

12

Ci chiediamo allora se e possibile scegliere le direzioni pk in modo da mante-nere la condizione di ottimalita , e quindi si dovra garantire che:

rk ⊥ r(i) ∀i = 0, ..., k − 1.

Consideriamo dunque il nostro schema iterativo:

xk+1 = xk + αkpk con αk =pkT rk

pkTApkT

cosı che xk+1 sia ottimale rispetto a pk, e quindi rk+1 ⊥ pk ∀k (in particolarevarra che rk ⊥ pk−1).Imponiamo ora che xk+1 rimanga ottimale rispetto a pk−1, e quindi rk+1 ⊥pk−1:

rk+1 ⊥ pk−1 ⇐⇒ rk+1Tpk−1 = 0;

e quindi

rTk+1pk−1 = rTk pk−1 − α(Apk)Tpk−1 = −α(Apk)

Tpk−1 = 0⇐⇒ pTkApk−1 = 0

deve quindi valere questa specie di ”ortogonalita”, diremo allora che pk deveessere A-coniugato a pk−1.Scegliendo le direzioni pk tutte A-coniugate, si ottiene il metodo del gradienteconiugato.

2.1 Generare le direzioni di discesa

Usiamo il processo di ortogonalizzazione di Gram-Schmidt. Bisogna che pisia tale che pi

TApj = 0 con j = 0, ..., i − 1. Allora poniamo p0 = r0 e ingenerale

pk = rk +k−1∑i=0

γipi,

dove i γi devono garantire la condizione A-coniugio con le direzioni prece-denti. Per i = 1 si ha:

p1TAp0 = 0 = r1

TAp0 + γp0TAp0

=⇒ γ = −r1TAp0

p0TAp0

,

e, in generale, ne deduciamo:

pk = rk −k−1∑i=0

rkTApi

piTApipi,

13

Poiche rk+1 = rk − αkApk, allora possiamo scrivere Apk = −rk+1 − rkαk

e

dunque

rkTApi = rk

T ri+1 − riαi

Vediamo ora che con questa scelta i residui sono tra loro ortogonali per tuttii passi. Infatti:

per k = 1 si ha r1T r0 = r0

T r0 −r1T r0

r0TAr0

r0TAr0 = 0

allora facciamo l’ipotesi induttiva che rk ⊥ rj ∀j < k e dimostriamo l’orto-gonalita per il residuo rk+1:

• rk+1T rk = rk

T rk −rkTpk

pkTApkpkTArk = rk

T rk − rkTpk = rkT rk − rkT (rk −∑

i<k−1

γipi) = rkT rk − rkT rk = 0

avendo sfruttato la condizione di A-coniugio e pTkArk = pTkA(pk −∑i<k−1

γipi) = pTkApk.

• rTk+1rj = rTk rj − αkrTj Apk = 0

avendo sfruttato l’ipotesi induttiva e rTj Apk = (pj−∑i<j−1

γipi)TApk = 0

per l’A-coniugio.

Tornando quindi alla definizione dei γi, sfruttando l’ortogonalita dei residui,otteniamo che sono tutti nulli tranne il k-esimo. Risulta quindi:

pk = rk −rTkApk−1

pTk−1Apk−1

pk−1.

dunque una formula ricorsiva molto efficiente che non mi costringe a memo-rizzare tutte le direzioni pj j ≤ k per poter calcolare pk+1.

14

2.2 Metodo iterativo.

Dato x0

p0 = r0 = b− Ax0

z0 = Ap0

α0 =p0T r0

p0T z0

x1 = x0 + α0p0

r1 = r0 − α0z0

γ1 =r1T z0

p0T z0

p1 = r1 − γ1p0

Al passo k, togliendo gli indici:

z = Ap

α =rTp

pT z

x = x+ αp

r = r − αz

γ =zT r

pT z

p = r − γp

Ogni iterata costa come un’iterata del metodo del gradiente, piu un prodottoscalare, (cioe n operazioni in piu). Possiamo, pero, modificare il calcolo di αe γ.

αk =rTk pkpTkApk

=rTk rk − rTk γkpk−1

pTkApk=‖rk‖2

2

pTkApk.

γk+1 =rTk+1Apk

pTkApk=

rTk+1

[rk − rk+1

αk

]pTkApk

=− 1

αk‖rk+1‖2

2

pTkApk=−‖rk+1‖2

2

‖rk‖22

.

In questo modo ho solo bisogno del calcolo della ‖rk+1‖, che pero e comunquenecessaria per il test d’arresto, risparmio quindi un prodotto scalare per ogniiterazione.

15

2.3 Errore e convergenza

Verifichiamo che il metodo non si arresta se non perche ha calcolato la solu-zione esatta. Il procedimento termina se xk+1 = xk e questo puo succederese:

• αk = 0 ma allora:

αk = 0⇐⇒ (rk, rk) = 0⇐⇒ rk = 0

e dunque al passo k abbiamo ottenuto la soluzione esatta.

• pk+1 = 0 ma allora

pk+1 = 0⇒ pk =1

βk+1

rk+1 ⇒ pk//rk+1

ma pk ⊥ rk+1 e quindi rk+1 = 0, cioe xk+1 e la soluzione esatta.

In generale il metodo del gradiente coniugato converge al piu dopo n passi;infatti se il metodo non si interrompe prima il residuo (n + 1)-esimo saranullo perche deve essere ortogonale a tutti gli n residui precedenti. A causadegli errori di arrotondamento puo pero succedere che servano in piu di npassi perche le direzioni calcolate non sono esattamente A-coniugate tra loro.Riassumiamo le proprieta del metodo del gradiente coniugato.

Teorema 3. Se A e simmetrica e definita positiva e xk 6= x∗ soluzione esattadel sistema lineare, allora vale che:

1. rk ⊥ r(j) ∀j < k

2. pkTApj = 0 ∀j < k e pk 6= 0 a meno che xk = x∗

3. {r0, r1, ..., rk} = {r0, Ar0, A2r0, ..., A

kr0} = Kk(r0, A)

4. {p0, p1, ..., pk} = {r0, Ar0, A2r0, ..., A

kr0} = Kk(r0, A)

5. r(i) ∈ {p0, p1, ..., pk} i = 0, · · · , k, Api ∈ {p0, p1, ..., pk} i = 0, · · · , k−1

dove Kk(r0, A) prende il nome di spazio di Krylov di ordine k generato da r0

e A.

16

Dimostrazione. I punti 1 e 2 sono gia stati dimostrati nelle pagine precedenti,il punto 5 e facilmente deducibile dai punti 3 e 4.I punti 3 e 4 li dimostriamo per induzione. Per k = 0 le uguaglianze sonobanalmente vere. Supponiamo quindi che valgano per k e le dimostriamo perk + 1:sia x ∈ {r0, r1, ..., rk+1} allora x =

∑i≤k νir(i) + νk+1rk+1 =

∑i≤k ηipi +

νk+1(pk+1 − γkpk) ∈ {p0, p1, ..., pk+1}viceversa, sia y ∈ {p0, p1, ..., pk+1} allora y =

∑i≤k δipi+δi+1pi+1 =

∑i≤k βir(i)+

δi+1(r(i+1) + γkpk) ∈ {r0, r1, ..., rk+1}.Quindi

{p0, p1, ..., pk+1} = {r0, r1, ..., rk+1}

Sia ora x ∈ {p0, p1, ..., pk+1} allora x =∑

i≤k ηipi + ηi+1pi+1 =∑

i≤k ςiAir0 +

ηi+1(rk − αkApk + γkpk) ∈ Kk+1(r0, A)Viceversa, se x ∈ Kk+1(r0, A) allora x =

∑i≤k σiA

ir0+σi+1Ai+1r0 =

∑i≤k εipi+

σi+1A∑

i≤k ρipi ∈ {p0, p1, ..., pk+1} in quantoApi =r(i)−r(i+1)

αi∈ {p0, p1, ..., pk+1}

e dunque

{p0, p1, ..., pk+1} = Kk+1(r0, A)

Lo spazio di Krylov Kk(r0, A) ha al piu dimensione s se la matrice A ha sautovalori distinti e di conseguenza la convergenza alla soluzione esatta si haal piu in s passi perche la (s+1)-esima direzione coniugata non puo che esserenulla dovendo essere A-coniugata alle precedenti e quindi siamo arrivati allasoluzione esatta per la dimostrazione precedente.

Dimostrazione. Sia mi la molteplicita algebrica dell’autovalore λi (dunque∑si=1mi = n) , allora possiamo scrivere

A = UΛUT = U

λ1Im1

λ2Im2

...λsIms

UT

dove le colonne di U sono gli autovettori di A ortonormali.Possiamo allora riscrivere lo spazio di Krylov come:

Ks(r0, A) = {r0, Ar0, ..., Asr0} = {UUT r0, UΛUT r0, ..., (UΛUT )sr0} =

17

U{z,Λz, ...,Λsz}

dove z = UT r0 e notando che (UAUT )s = (UΛUT )(UΛUT )...((UΛUT ) =UΛsUT .Consideriamo ora il polinomio p di grado s definito da:

ps(λ) = (λ− λ1)(λ− λ2)...(λ− λs) = y0 + y1λ+ y2λ2 + ...+ ysλ

s

che si annulla in λi i = 1, ..., s e dove ys = 1 6= 0.Sia y =

∑si=0 yiΛ

iz, allora

y = (s∑i=0

yiΛi)z =

(∑s

i=0 yiλi1)Im1

(∑s

i=0 λi2)Im2

...(∑s

i=0 λis)Ims

z = 0

perche∑s

i=0 yiλik = p(λk) = 0 k = 1, .., s.

Quindi i vettori z,Λz,Λ2z, ...,Λsz non sono linearmente indipendenti e quindilo spazio che generano non puo essere di dimensione s+ 1.Applicando questo risultato al caso z = UT r0, otteniamo la tesi.

Teorema 4. Il metodo del gradiente coniugato converge al piu in n passi.Inoltre:

‖ek‖A ≤2ck

1− c2k‖e0‖A

dove c =

√k2(A)− 1√k2(A) + 1

.

Dimostrazione. Iniziamo con alcuni risultati che riguardano i polinomi diChebyshev.

• Tk(x) = 12

((x+

√x2 − 1)k + (x−

√x2 − 1)k

)Dimostrazione per induzione : verifica banale per k = 0 e k = 1,supponiamo vero per k, allora

18

Tk+1 = 2xTk − Tk−1 = 2x(x+

√x2 − 1)k + (x−

√x2 − 1)k

2

− (x+√x2 − 1)k−1 + (x−

√x2 − 1)k−1

2=

(x+√x2 − 1)k−1(

x2 − 1 + 2x√x2 − 1 + x2

2)+

(x−√x2 − 1)k−1(

x2 − 1− 2x√x2 − 1 + x2

2) =

(x+√x2 − 1)k−1(x+

√x2 − 1)2 + (x−

√x2 − 1)k−1(x−

√x2 − 1)2

2

In particolare notiamo che quest’ultima formula permette di calcolarei polinomi di Chebyshev fuori dall’intervallo [−1, 1].

• il polinomio 12n−1Tn(x) e il polinomio monico con la piu piccola norma

del massimo in [−1, 1] e vale che ‖ 12n−1Tn(x)‖∞ = 1

2n−1 .

Dimostrazione: per assurdo supponiamo esista un polinomio monicoq(x) con norma del massimo piu piccola di 1

2n−1 , allora il polinomioq(x)− 1

2n−1Tn(x) e un polinomio di grado n− 1 (differenza di polinomimonici, quindi il termine xn si semplifica) che sicuramente nei nodixk = cos(kπ

n) k = 0, ..., n continua ad alternare il segno, quindi deve

avere almeno n zeri, ma allora,essendo di grado n − 1, deve essereidenticamente nullo, da cui l’assurdo.

• il polinomioTn

((b+a)−2x

b−a

)Tn(b+ab−a

) e tra tutti i polinomi di grado n tali che

p(0) = 1 quello con la piu piccola norma del massimo sull’intervallo [a, b]

con a e b di segno concorde e vale che ‖Tn

((b+a)−2x

b−a

)Tn(b+ab−a

) ‖∞ = | 1

Tn(b+ab−a

) |perche |Tn(x)| ≤ 1 in [a, b].

Dimostrazione: per assurdo sia q(x) un polinomio tale che q(0) = 1 e

‖q‖∞ < | 1

Tn(b+ab−a

) | allora il polinomio r(x) = q(x) −Tn

((b+a)−2x

b−a

)Tn(b+ab−a

) e

un polinomio che nei nodi xk =(b− a) cos(kπ

n)− (a+ b)

2k = 0, ..., n

continua ad alternare il segno e quindi ammette n radici in [a, b]. Perdefinizione pero r(0) = 0 e 0 6∈ [a, b] se a e b hanno segno concorde.

19

Quindi r(x) sarebbe un polinomio di grado n con n+ 1 radici e quindideve essere il polinomio nullo, da cui l’assurdo.

Passiamo ora alla dimostrazione del teorema di convergenza. Abbiamo vistoin precedenza che il metodo del gradiente rende minimo il funzionale φ(x) nelsottospazio generato dalle direzioni A-coniugate a partire da x(0), quindi xk+1

e il minimo di φ(x) in x0 + {p0, p1, ..., pk} = x0 +{r0, Ar0, A

2r0, ..., Akr0

}.

Quindi xk+1 = x(0) +∑k

i=0 γiAir0 = x(0) +Pk(A)r0 dove Pk(x) e il polinomio

di grado k con coefficienti dati dai γi.Quindi, se x∗ e la soluzione esatta del sistema abbiamo che xk+1 − x∗ =x0−x∗+Pk(A)(b−Ax0) = x0−x∗+Pk(A)A(x∗−x0) = (I−Pk(A)A)(x0−x∗)e dunque

‖xk+1 − x∗‖2A = (xk+1 − x∗)TA(xk+1 − x∗) = ‖(I − Pk(A)A)(x0 − x∗)‖2

A

Supponiamo ora che A sia diagonalizzabile con autovalori λ1 < λ2 < ... < λned autovettori ortonormali u1, u2, ..., un, allora x0− x∗ =

∑ni=1 ciui e dunque

‖x0 − x∗‖2A =

n∑i=1

ciuTi A

n∑j=1

cjuj =n∑i=1

c2iλi

e

(x0 − x∗)T (I − Pk(A)A)TA(I − Pk(A)A)(x0 − x∗)T

=n∑i=1

ci(1− pk(λi)λi)uTin∑j=1

cj(1− pk(λj)λj)λjuj

=n∑i=1

c2i (1− pk(λi)λi)2λi ≤ ‖x0 − x∗‖2

A maxλi

(1− pk(λi)λi)2

In definitiva vale che

‖xk+1 − x∗‖A ≤ ‖x0 − x∗‖A maxλi

(1− pk(λi)λi)

≤ ‖x0 − x∗‖A minp∈Pk+1t.c.p(0)=1

maxλi|p(λi)|

dove l’ultima disuguaglianza e dovuta al fatto che xk+1 minimizza il funzio-nale φ(x) sullo spazio di Krylov e quindi minimizza anche F (x) = Φ(x) −Φ(x∗) = 1

2(x − x∗)TA(x − x∗) = 1

2‖x − x∗‖A. Utilizzando ora i risultati sui

polinomi di Chebyshev otteniamo

20

‖xk+1 − x∗‖A ≤ maxλi|Tk+1

(λ1+λn−2λλn−λ1

)Tk+1

(λ1+λnλn−λ1

) |‖x0 − x∗‖A

=1

|Tk+1

(λ1+λnλn−λ1

)|‖x0 − x∗‖A

Ora vale che

Tk+1

(λ1 + λnλn − λ1

)= Tk+1

(K2(A) + 1

K2(A)− 1

)=

1

2

K2(A) + 1

K2(A)− 1+

√(K2(A) + 1

K2(A)− 1

)2

− 1

k+1

+

K2(A) + 1

K2(A)− 1−

√(K2(A) + 1

K2(A)− 1

)2

− 1

k+1

=1

2

(√K2(A) + 1√K2(A)− 1

)k+1

+

(√K2(A)− 1√K2(A) + 1

)k+1

=1

2

(ck+1 +

1

ck+1

)=c2(k+1) + 1

2ck+1

Sperimentalmente si vede che la velocita di convergenza non e costante, mae bassa nei primi passi, poi soddisfa la stima teorica e quindi accelera negliultimi passi.

2.4 Metodo del gradiente coniugato precon-

dizionato

Precondizionare un sistema lineare Ax = b significa trovare una matrice Ptale che P−1A abbia condizionamento minore di A; in questo modo la conver-genza di uno schema iterativo applicato al sistema equivalente P−1Ax = P−1be piu veloce.La matrice P−1A puo essere meglio condizionata di A, ma non e piu simme-trica, quindi questo metodo di precondizionamento non puo essere scelto se

21

si vuol utilizzare il metodo del gradiente coniugato. Procediamo allora nelmodo seguente: decomponiamo P , anch’essa simmetrica e definita positiva,in P

12P

12 ; il sistema di partenza e equivalente a:{

P−12AP−

12y = P−

12 b

P−12y = x

con k2(P−12AP−

12 ) < k2(A).

Poniamo:A := P−

12AP−

12

b := P−12 b.

Applichiamo il metodo del gradiente coniugato al sistema precondizionato.Otteniamo:

dato y0,

r0 = b− Ay0 = p0

Al passo k:

αk =(pk, rk)(pk, Apk

)yk+1 = yk + αkpk

rk+1 = rk − αkApk

βk+1 =

(rk+1, Apk

)(pk, Apk

)pk+1 = rk+1 − βk+1pk

Questo metodo non e pero molto conveniente, richiede infatti il calcolo diP

12 .

Vogliamo evitare che nello schema iterativo compaia P−12 . Poiche x = P−

12y,

dato y0 risulta x0 = P−12y0, inoltre:

r0 = P−12 b− P−

12AP−

12y0 = P−

12 (b− AP−

12y0) = P−

12 (b− Ax0) = P−

12 r0

Moltiplicando la relazione yk+1 = yk + αkpk per la matrice P−12 si ha xk+1 =

xk + αkP− 1

2 pk.Posto pk := P−

12 pk si ottiene xk+1 = xk + αkpk.

Moltiplicando[rk+1 = rk − αkApk

]per la matrice P

12 si ha rk+1 = rk −

αkAP− 1

2 pk = rk − αkAPk.

22

Infine moltiplicando [pk+1 = rk+1 − βk+1pk] per la matrice P−12 si ha pk+1 =

P−12 rk+1−βk+1pk; ora I = P−

12P

12 e quindi possiamo eliminare rk+1: pk+1 =

P−1rk+1 − βk+1pk.Quindi:

xk+1 = xk + αkpk

rk+1 = rk − αkApkpk+1 = P−1rk+1 − βk+1pk

Restano da convertire αk e βk:

αk =(rk, rk)(pk, Apk

) =

(P−

12 rk, P

− 12 rk

)(P

12pk, P

− 12AP−

12P

12pk

) =(P−1rk, rk)

(pk, Apk)

βk+1 =(rk+1, rk+1)

(rk, rk)=

(P−1rk+1, rk+1)

(P−1rk, rk)

quindi anche αk e βk risultano indipendenti da r, P12 , P−

12 e dipendono solo

dalle direzioni del sistema non precondizionato. Quindi dato x:

r = b− Axz = P−1r

p = z

c = zT r

α =c

p(k)TAp(k)

x = x+ αp

r = r − αApz = P−1r

C = zT r

β =C

cp = z + βp

c = C

Ad ogni passo si deve calcolare in piu z = P−1r, ma la convergenza e piurapida perche vale la formula del fattore di convergenza gia vista, ma lamatrice A e sostituita da P−1A, meglio condizionata.

23

2.4.1 Matrici di precondizionamento algebriche.

Vediamo ora come si possono costruire delle matrici di precondizionamento.In particolare vediamo come ottenerle sfruttando solo le proprieta algebrichedella matrice del sistema, altre tecniche si basano su discretizzazioni diversedel problema matematico associato al sistema da risolvere, ma sono troppospecifiche per poter essere trattate in questo contesto.La caratteristica principale della matrice di precondizionamento e che il si-stema associato deve poter essere risolto con un costo computazionale ridotto(altrimenti tanto varrebbe risolvere direttamente il sistema di partenza conun metodo diretto), quindi tutti i metodi che vedremo puntano a minimizzarequesto aspetto. Il fatto che si introducano svariate tecniche di precondizio-namento (ne verranno riportate solo alcune) e giustificato dal fatto che aseconda del tipo di matrice da precondizionare puo funzionare bene una tec-nica piuttosto che un’altra e quindi a seconda dei casi bisogna provare pertrovare la matrice di precondizionamento che funziona meglio nel caso inesame.

• matrice diagonale: la matrice di precondizionamento puo essere ottenu-ta utilizzando la sola diagonale di A. In questo caso il costo computa-zionale del sistema della matrice di precondizionamento e minimo, manon sempre e molto efficace; in genere si usa per matrici diagonalmentedominanti. Una variante di questa tecnica e di costruire un precondi-zionatore diagonale i cui elementi sono dati dalla norma 2 delle righedi A.

• fattorizzazioni incomplete: si scrive la matrice di precondizionamentocome P = LU dove le matrici L e U sono costruite fattorizzando Aconuna tecnica standard, ma imponendo che gli elementi di L e U sianonulli se l’elemento corrispondente di A e nullo. Ovviamente non hasenso usare questa tecnica se A e piena (caso peraltro in cui i metodiiterativi in genere sono sconsigliati). Il costo computazionale della ri-soluzione del sistema della matrice di precondizionamento e in questocaso equivalente al prodotto di A per un vettore e quindi piuttosto bas-so se A e sparsa. Ovviamente se si vuole utilizzare questa tecnica peril metodo del gradiente o gradiente coniugato si dovra utilizzare unafattorizzazione LLT . Possibili varianti si ottengono imponendo che glielementi di L e U siano nulli se l’elemento corrispondente di A e nullosolo se il loro valore e al di sotto di una certa soglia. In questo modola fattorizzazione non ha piu le stesse caratteristiche di sparsita di A,ma sara piu vicina alla fattorizzazione esatta.

24

• approssimazione dell’inversa: si costruisce P−1 ' A−1 nel seguentemodo; decomponiamo A = D −C dove D e facilmente invertibile (peresempio la diagonale di A), allora A = (I − CD−1)D e quindi A−1 =D−1(I − CD−1)−1 = D−1(I + CD−1 + (CD−1)2 + (CD−1)3 + · · · ).Definiamo allora

P−1 = D−1(I + CD−1 + (CD−1)2 + · · · (CD−1)l)

se la serie converge (quindi se ρ(CD−1) < 1)) piu l e grande e piu P−1

si avvicina a A−1.

25

Capitolo 3

Schemi tipo gradienteconiugato per matrici generiche

Abbiamo visto che nel metodo del gradiente coniugato xk+1 ∈ {x0+Kk(r(0), A)}e che rk+1 ⊥ Kk(r(0), A). Possiamo quindi riscrivere il gradiente coniugatocome un metodo di proiezione nel seguente modo:

dato x0 cerco xk+1 ∈ {x0 +Kk(r(0), A)} tale che rk+1 ⊥ Kk(r(0), A)

dove la condizione di ortogonalita impone i vincoli di proiezione.L’idea puo essere estesa, nel seguente modo:

dato x0 cerco x ∈ x0 + Vk tale che (b− Ax) ⊥ Wk

dove Vk e Wk sono due sottospazi di Rn di dimensione k.Diremo che il problema e di proiezione ortogonale (o Galerkin) se Vk ≡ Wk

e di proiezione obliqua (o Petrov-Galerkin) se Vk 6≡ Wk.Formalmente il problema precedente si puo risolvere nel seguente modo: sianoVk eWk due matrici le cui colonne sono basi rispettivamente di Vk eW , allorax = x0 + Vky dove y ∈ Rk e tale che W T

k (b − Ax) = W Tk (r0 + AVky) = 0

(r0 = b− Ax0 ) da cui:

W Tk r0 = W T

k AVky ⇒ y = −(W Tk AVky

)−1W Tk r0

e quindi

x = x0 − Vk(W Tk AVk)

−1W Tk r0

Ovviamente il tutto funziona se la matrice Ap = W Tk AVk, detta matrice

proiettata, e non singolare e quindi invertibile.

26

Teorema 5. La matrice Ap e non singolare per ogni scelta delle basi per Vke Wk se vale che:

• A e definita positiva e Wk = Vk

• A e non singolare e Wk = AVk

Dimostrazione.

• siccome Wk = Vk allora la base Wk puo essere scritta come combina-zione lineare della base Vk e quindi esiste una matrice G non singolaretale che Wk = VkG. Dunque Ap = GTV T

k AVk e non singolare percheprodotto di due matrice non singolari (V T

k AVk e non singolare percheA e definita positiva).

• siccome Wk = AVk allora la base Wk puo essere scritta come combina-zione lineare di A per moltiplicata per la base Vk e quindi esiste una ma-trice G non singolare tale che Wk = AVkG. Dunque Ap = GT (V T

k A2Vk)

e non singolare perche prodotto di matrici non singolari (A2 e definitapositiva se A e non singolare).

Nel caso di matrice A simmetrica e definita positiva e Wk = Vk, abbia-mo gia caratterizzato la soluzione del problema come minimo del funzionaledell’energia (metodo del gradiente coniugato). Vediamo ora che vale:

Teorema 6. Se A e una matrice quadrata e Wk = AVk allora x e tale che

‖b− Ax‖2 = minx∈x0+Vk

‖b− Ax‖2

Dimostrazione.‖b−Ax‖2

2 = (b−Ax, b−Ax) = (b−Ax±Ax, b−Ax±Ax) = (b−Ax, b−Ax) + (A(x − x), A(x − x)) − (b − Ax,A(x − x)) − (A(x − x), b − Ax) =(b− Ax, b− Ax) + (A(x− x), A(x− x) = ‖b− Ax‖2

2 + ‖A(x− x)‖22

avendo sfruttato l’ortogonalita di b− Ax rispetto a Wk = AVk. Dunque

‖b− Ax‖2 ≥ ‖b− Ax‖2

e l’uguaglianza si ha solo se ‖A(x−x)‖2 e nulla. Quindi se A e non singolareil minimo si raggiunge solo se x ≡ x.

27

Studiamo ora il caso di Vk = Kk(r(0), A) e Wk = AVk. Abbiamo quindibisogno di determinare una base Vk ed in particolare costruiamo una ba-se ortonormale utilizzando una generalizzazione del processo di Gram-Smithnoto come metodo di Arnoldi (notare che non possiamo usare come base i vet-tori {r0, Ar0, . . . , A

kr0} perche tendono ad allinearsi all’autovettore associatoall’autovalore di modulo massimo). Indichiamo con vi la i-esima funzione dibase (i-esima colonna di Vk), allora costruiamo iterativamente le vi a partireda v1 =

r(0)‖r(0)‖2

nel seguente modo

vi = Avi−1 −i−1∑j=1

(vTi−1ATvj)vj vi =

vi‖vi‖2

Si verifica allora facilmente che vi ∈ Ki(r(0), A) e che e ortogonale a vk k < i.Infatti vT2 v1 = vT1 A

Tv1 − vT1 ATv1vT1 v1 = 0, facciamo allora l’ipotesi induttiva

che la condizione di ortogonalita valga fino all’indice i− 2 allora

vTi vk = vTi−1ATvk −

i−1∑j=1

(vi−1ATvj)v

Tj vk =

vTi−1ATvk −

i−1∑j=1

(vi−1ATvj)δj,k = vTi−1A

Tvk − vTi−1ATvk = 0

Se ora indichiamo con hj,i−1 = vTi−1ATvj j < i e hi,i−1 = vi

‖vi‖2 allora dalla

relazione precedente ricaviamo che Avi−1 =∑i

j=1 hj,i−1vj, cioe la colonne idi H fornisce la combinazione lineare delle vj che fornisce Avi−1. Arrivandofino al passo k, in forma matriciale possiamo scrivere

AVk−1 = VkH = Vk−1Hk−1 + hk,k−1vkeTk

dove Hl,m =

{hl,m se l ≤ m+ 10 altrimenti

e una matrice di dimensione k× (k− 1)

in forma di Hessemberg e Hk−1 e il minore principale di H di ordine k−1 (eke il k-esimo versore della base canonica di Rn). Sfruttando ora l’ortogonalitadei vi otteniamo

V Tk−1AVk−1 = Hk−1

quindi la matrice A viene trasformata per similitudine in una matrice diHessemberg superiore.Chiaramente non potremo avere piu di n vettori ortogonali e dunque se ap-plicassimo il procedimento n volte arriveremmo alla soluzione esatta. Seinvece il procedimento si interrompesse ad un certo passo k, allora vorrebbe

28

dire che vk = 0 ovvero hk+1,k = 0, ma allora Avk−1 =∑

i≤k−1 hi,k−1vi =∑i≤k−1 δiA

ir(0) e quindi tenendo conto ancora della formula ricorsiva otter-

remmo Akr(0) ∈ Kk−1(r(0), A). Allora la dimensione massima dello spazio diKrylov generato da A e r(0) sarebbe (k−1) (la dimostrazione e stata vista nelcapitolo relativo al gradiente coniugato) e quindi comunque avremmo trovatola soluzione esatta del sistema.Vediamo ora come si puo calcolare x. Notiamo innanzitutto che Vke1 = v1 =r0‖r0‖ e quindi r(0) = Vke1‖r(0)‖2. Possiamo allora scrivere che x = x0 + Vky ∈x0 + Vk allora

b− Ax = b− A(x0 + Vky) = r0 − AVky = Vk(‖r(0)‖2e1 −Hy)

tenendo allora conto che x minimizza la norma 2 del residuo (vedi teoremaprecedente) e sfruttando l’ortonormalita della base Vk abbiamo che trovarex e quivalente a risolvere il problema:x = x0 + Vky dove y e tale da rendere minima la ‖r(0)‖2e1 −Hy‖2

Possiamo allora scrivere l’algoritmo GMRES nel modo seguente

• dato x0 e scelto k

• calcolo r0 = b− Ax0, β = ‖r0‖2, v1 = r0β

• calcolo Vk con il procedimento di Arnoldi

• trovo il vettore y ∈ Rk che minimizza ‖βe1 −Hy‖2

• calcolo x = x0 + Vky

Resta da chiarire come scegliere k per garantire che il residuo sia sufficiente-mente piccolo e come risolvere il problema di minimo.In effetti questi quesiti si possono facilmente risolvere fattorizzando la matriceH come QR (Q ortogonale e R triangolare superiore) man mano che si avanzacon il metodo di Arnoldi. Al primo passo H e un vettore colonna di dueelementi, quindi Q1 sara una matrice di rotazione 2×2 che manda la secondacomponente del vettore in 0, al secondo passo H e una matrice 3 × 2 chepossiamo fattorizzare in due passi: prima la moltiplichiamo per Q1 orlata conl’ultima riga e colonna della matrice identita di dimensione 3 (cosı la primacolonna ha le ultime due componenti nulle) quindi moltiplico per la matricedi rotazione F3 di dimensione 3 che agisce sulla 2 e terza componente chemanda l’elemento di posizione 2,3 in 0. ChiamoQ2 il prodotto di quest’ultimamatrice per Q1 orlata. In generale, supponiamo di essere arrivati al passo ie di aver fattorizzato H = QiR e di avanzare al passo successivo, allora vale

29

QiH =

...

Qi 0...

. . . 0 . . . 1

H =

∗ ∗ ∗ ∗ . . . ∗ ∗0 ∗ ∗ ∗ . . . ∗ ∗0 0 ∗ ∗ . . . ∗ ∗0 0 0 ∗ . . . ∗ ∗

. . .

0 0 0 . . . 0 ∗ ∗0 0 0 0 . . . 0 r0 0 0 0 . . . 0 h

e quindi definendo

Fi+1 =

1 0 0 0 . . . 0 00 1 0 0 . . . 0 00 0 1 0 . . . 0 0

. . .

0 0 0 0 . . . c −s0 0 0 0 . . . s c

dove c =

r√r2 + h2

e s =h√

r2 + h2abbiamo che QiH = Fi+1QiH = R e

triangolare superiore e quindi ha l’ultima riga di tutti elementi nulli. EssendoQi ortonormale, abbiamo inoltre che

‖βe1 −Hy‖2 = ‖Qi(βe1 −Hy)‖2 = ‖gi −Ry‖2

dove gi = βQie1. Ora il vettore Ry ha l’ultima componente nulla e quindiper minimizzare ‖gi − Ry‖2 basta risolvere il sistema triangolare costituitodalle prime i equazioni. La soluzione trovata yi e tale che gi − Ryi ha leprime i-componenti nulle e l’ultima data dalla (i+1)-esima componente di gi;il modulo di quest’ultima risulta pertanto essere il valore del residuo al passoi.L’algoritmo GMRES puo allora essere modificato non fissando a priori ilvalore di k, ma continuando ad avanzare con la costruzione della base Vifinche |hi+1,i| non e piu piccolo della precisione richiesta, quindi si risolve ilsistema triangolare superiore visto in precedenza e si ottengono i coefficientidello sviluppo della soluzione cercata rispetto alla base Vi.Un aspetto negativo del metodo e che devo memorizzare tutti i vettori dibase (non basta una formula ricorsiva a tre termini come per il metodo delgradiente coniugato) e quindi si ha bisogno di molto spazio di memoria.Un possibile modo per ovviare il problema e quello di definire una speciedi riavvio del metodo. Precisamente, si fissa un numero massimo m � n

30

di funzioni di base che si vogliono costruire, si avvia il metodo GMRESmodificando il test d’arresto richiedendo di interrompere la procedura se ilresiduo e minore della precisione richiesta oppure se ho costruito m funzionidi base. Quindi costruisco la soluzione nel modo usuale. Se ho raggiuntola precisione mi fermo, altrimenti riparto con lo stesso schema usando lasoluzione calcolata come dato iniziale.Quest’ultimo metodo non ha una dimostrazione di convergenza, ma in genere,funziona se m non e troppo piccolo.

31

Parte II

Approssimazione di funzioni

32

Capitolo 4

Interpolazione di Hermite

Supponiamo di conoscere sia i valori yi di una funzione nei nodi xi, i = 0, ..., ni valori y

(l)i ,l = 1, · · · , ki − 1 di alcune derivate negli stessi nodi.

Ci poniamo allora il problema di determinare un polinomio p tale che d(l)pdxl

=

y(l)i con l = 0, ..., ki − 1; i = 0, ..., n.

Per prima cosa dobbiamo individuare il grado di p, che dovra essere sufficien-temente alto da garantire di poter imporre le suscritte condizioni. Quindi pdovra essere almeno di grado m tale che:

m =

(n∑i=0

ki

)− 1 =⇒ p ∈ Pm

Teorema 7. Esiste uno ed un solo p ∈ Pm tale che d(l)pdx(l)

(xi) = y(l)i per

l = 0, ..., ki − 1 e i = 0, ..., n

Dimostrazione. Vediamo l’unicita: supponiamo p, q ∈ Pm, che soddisfino latesi. Sia z = p−q =⇒ d(l)z

dxl(xi) = 0 per l = 0, ..., ki−1; per i = 0, ..., n. Allora

z han∑i=0

ki = m + 1 radici, ma z ∈ Pm quindi per il teorema fondamentale

dell’algebra z e il polinomio nullo.Dimostriamo l’esistenza costruendo sviluppando p in una base che e unageneralizzazione dei polinomi di Lagrange. Precisamente vogliamo costruirem polinomi Li,j(x) i = 0, · · · , n j = 0, ·, ki tali che

d(l)Li,sdxl

(xp) = δipδls per s = 0, ..., ki − 1 e i = 0, ..., n.

33

allora e banale vedere che p e dato da:

p(x) =n∑i=0

ki−1∑s=0

Lis(x)y(s)i

Cominciamo definendo

lij(x) =(x− xi)j

j!

n∏p=0

p 6=i

(x− xpxi − xp

)kpper j = 0, ..., ki − 1 e i = 0, ..., n.

allora lij(x) ∈ Pm ha una radice di molteplicita j in xi (e la derivata j-esimain xi vale 1) e radici con molteplicita kp in xp 6= xi.Definiamo quindi: Li,ki−1(x) := li,ki−1(x); per definire Li,j(x) con j < ki − 1,dobbiamo togliere i contributi delle derivate successive alla j-esima, quindi:

Lij(x) = lij(x)−ki−1∑k=j+1

l(k)ij (xi)Lik(x) per j = ki − 2, · · · , 0

Il polinomio di interpolazione di Hermite puo essere scritto nella forma diNewton generalizzando la definizione delle differenze divise. Poiche abbiamoin x0, · · · , xn le condizioni k0, · · · , kn, definiamo i nodi xi contando ogni xicon la sua molteplicita, allora:

p(x) =m∑i=0

f [x0, ..., xi](x− x0) · · · (x− xi−1),

dove per nodi coincidenti xi, . . . , xi+k = xl, abbiamo:

f [xi, ..., xi+k] =f (k)(xl)

k!.

34

Capitolo 5

Splines

Cerchiamo una funzione di interpolazione che sia un polinomio a tratti e chepresenti una certa regolarita complessiva. Il problema e giustificato dal fattoche con l’interpolazione polinomiale semplice si ottiene un polinomio, quindiuna funzione di classe C∞, ma si verificano problemi di stabilita con nodiequispaziati all’aumentare del numero di nodi.

Definizione 4. Una funzione sk e una spline di ordine k se:

- sk sull’intervallo [xi, xi+1] ∈ Pk

- sk e una funzione di classe Ck−1 su [x0, ..., xn]

Per sapere se il problema dell’interpolazione con spline e ben posto, cerchiamola dimensione dello spazio delle splines.

• sk|[xi,xi+1] ∈ Pk quindi servono n(k + 1) coefficienti.

• sk e di classe Ck−1. I nodi interni sono n− 1, quindi abbiamo k(n− 1)condizioni.

Possiamo concludere che la dimensione dello spazio delle spline e

nk + n− (nk − k) = n+ k.

Dati di valori yi per i = 0, . . . , n, possiamo ora imporre la condizione diinterpolazione sk(xi) = yi, che fornisce (n+ 1) condizioni.Per cui serviranno ancora (k − 1) condizioni (a questo punto il problema eben posto solo per k = 1).

Definizione 5. Una spline sk interpolante f si dice periodica se

sk(l)(x0) = sk

(l)(xn) per l = 1, ..., k − 1;

35

si dice naturale se

sk(l)(x0) = sk

(l)(xn) = 0 per l = m+ 1, · · · , k − 1 con m =k − 1

2.

Vediamo due diverse tecniche di calcolo delle splines; in particolare conside-riamo ora il caso k = 3.

5.1 Splines cubiche

SiaS3 =

{s3 : s3|[xi,xi+1] ∈ P3 e s3 di classe C2 su [x0, xn]

}con s3(xi) = fi per i = 0, ..., n. Allora

s′′

3 |[xi,xi+1] ∈ P1, per i = 0, ..., n− 1

Sia Mi := s′′3(xi) per i = 0, ..., n, allora per x ∈ [xi, xi+1] e hi = xi+1 − xi:

s′′

3(x) = Mixi+1 − xxi+1 − xi

+Mi+1xi − xxi − xi+1

= Mixi+1 − x

hi+Mi+1

x− xihi

Integrando una volta si ottiene:

s′

3(x) = −Mi(xi+1 − x)2

2hi+Mi+1

(xi − x)2

2hi+ ci

e integrando nuovamente:

s3(x) = Mi(xi+1 − x)3

6hi−Mi+1

(xi − x)3

6hi− ci(xi+1 − x) + ci.

Quindi per costruzione s3(x) ∈ P3 e ha la derivata seconda continua.Restano da imporre:

1. la condizione di interpolazione;

2. la condizione di continuita della derivata prima.

1. Imponiamo s3(xi) = yi = fi e s3(xi+1) = fi+1 :{s3(xi) = Mi

h3i6hi− cihi + ci = fi

s3(xi+1) = Mi+1 +h3i6hi

+ ci = fi+1

Si ottiene:

ci = fi+1 −Mi+1h2i

6

36

ci =fi+1 − fi

hi+ (Mi −Mi+1)

hi6.

2. Imponiamo s′3(xi)

+= s

′3(xi)

−:

−Mihi2

+fi+1 − fi

hi+(Mi−Mi+1)

hi6

= −Mihi−1

2+fi − fi−1

hi−1

+(Mi−1−Mi)hi−1

6

−Mi−1hi−1

6−Mi

[hi2− hi

6+hi−1

2− hi−1

6

]−Mi+1

hi6

=

=fi − fi−1

hi−1

− fi+1 − fihi

=: bi

Mi−1hi−1

6+Mi

[hi + hi−1

3

]+hi6Mi+1 = bi.

Moltiplichiamo per 6hi+hi−1

e poniamo di := 6bihi+hi−1

, si ottiene:

Mi−1hi−1

hi + hi−1

+ 2Mi +Mi+1hi

hi + hi−1

= di.

Ponendo inoltre:hi−1

hi + hi−1

= µi ehi

hi + hi−1

= δi,

si ottiene il sistema:µ1 2 δ1 0 · · · · · · 00 µ2 2 δ2 0 · · · 0· · · · · · · · · · · · · · · · · · · · ·0 · · · · · · 0 µn−1 2 δn−1

M1

· · ·· · ·Mn−1

=

d1

· · ·· · ·dn−1

Bisogna orlare la matrice in modo corretto aggiungendo la riga zero:[

2 δ0 0 · · · · · · · · · 0],

e la riga n: [0 · · · · · · · · · 0 µn 2

].

La matrice cosı e fortemente diagonalizzata, infatti: µi + δi = hi+hi−1

hi+hi−1= 1

Per le spline naturali imponiamo le condizioni s′′3(x0) = 0, s

′′3(xn) = 0, quindi

δ0 = 0, µn = 0, b0 = 0, bn = 0.Per spline periodiche imponiamo che i valori agli estremi della derivata secon-da e prima siano coincidenti ottenendo una matrice diagonalmente dominante(stretta se escludiamo l’equazione dei momentiagli estremi) ma non tridiago-nale (cio comporta un piccolo costo comutazionale aggiuntivo).Una volta calcolati gli Mi abbiamo l’espressione della spline su ogni inter-vallo; abbiamo ricondotto il problema alla risoluzione di un sistema linearefacilmente risolvibile.

37

5.2 B-splines

5.2.1 Base sull’intero intervallo

Cerchiamo le n + k funzioni di base definite sull’intero intervallo, la splinesara allora una loro combinazione lineare.Siano ϕi tali che:

ϕi(x) ∈ Sk ; ϕi(xj) = δij ; ϕ(l)i (x0) = 0 ; ϕ

(l)i (xn) = 0,

per l in numero sufficiente a garantire l’unicita di ϕi. Le ϕi serviranno aimporre le condizioni di interpolazione. Cosı abbiamo n+ 1 funzioni di base,mentre ne servono n+ k. Scriviamo allora le altre k − 1: per p = 0 e p = n,

ϕi,p(x) ∈ Sk ; ϕi,p(xj) = 0 per j = 0, ..., n; ϕ(l)i,p(x0) = δil,

per i = 1, ...,k − 1

2e l = 1, ...,

k − 1

2.

La spline sara:

S(x) =n∑i=0

fiϕi(x) +

k−12∑i=1

f(l)0 ϕi,0(x) +

k−12∑i=1

f (l)n ϕi,n(x)

Questo metodo e utile se cerchiamo splines al variare dei dati fi, f(l)0 , f

(l)n , ma

non dei nodi.

5.2.2 Base locale

Scriviamo le basi su ogni [xi, xi+1]. Vediamo due modi:

A) • Se k = 0 le spline sono funzioni costanti su ogni intervallo:

Bi,0(x) =

{1 x ∈ [xi, xi+1]0 altrimenti

• Se k = 1 le spline sono polinomi di primo grado su ogni inter-vallo, con continuita complessiva. Usiamo la base precedente percostruirle:

Bi,1(x) = α(x− xi)Bi,0(x) + β(x− xi+2)Bi+1,0,

Bi,1(x) 6= 0 solo in [xi, xi+2].

38

Calcoliamo α, β in modo che Bi,1(xi+1)− = Bi,1(xi+1)+ = 1

α(xi+1−xi) = β(xi+1−xi+2) = 1 =⇒ α =1

xi+1 − xi, β =

−1

xi+2 − xi+1

Allora: Bi,1(x) = x−xixi+1−xiBi,0(x) + xi+2−x

xi+2−xi+1Bi+1,0(x).

• Se k = 2, come nel caso precedente scriviamo la nuova base apartire da Bi,1(x) generalizzando la formula precedente

Bi,2(xi) =x− xixi+2 − xi

Bi,1(x) +xi+3 − xxi+3 − xi+1

Bi+1,1(x).

Notiamo che la normalizzazione dei due termini viene calcolatamediante l’ampiezza degli intervalli in cui le B-spline di grado ksono non nulle. Con un semplice calcolo si verifica che la funzionecosı ottenuta e di classe C(1) (in particolare il valore della derivataprima in xi+1 vale 2

xi+2−xi mentre in xi+2 vale − 2xi+3−xi+1

).

Quindi, in generale:

Bi,0(x) =

{1 x ∈ [xi, xi+1]0 altrove

Bi,k+1(x) =x− xi

xi+k+1 − xiBi,k(x) +

xi+k+2 − xxi+k+2 − xi+1

Bi+1,k(x) k = 0, 1, · · ·

B) Vediamo un altro modo di costruire le basi. Definiamo:

gx(t) = (t− x)+ =

{(t− x)k t ≥ x0 altrimenti

La funzione g, su R, e di classe Ck−1.Verifichiamo che vale la formula:

Bi,k(x) = (xi+k+1 − xi) gx[xi, . . . , xi+k+1], (5.1)

dove gx[xi, . . . , xi+k+1] il coefficiente direttivo del polinomio Gk+1 cheinterpola gx(t) nei nodi [xi, . . . , xi+k+1].

- Se x > xi+k+1, allora Gk+1 interpola g(x) che sempre nullo, quindiGk+1 il polinomio nullo, percio ha coefficiente direttivo zero, alloraBi,k(x) = 0;

39

- Se x < xi, allora Gk+1 interpola i valori di un polinomio di grado k,ma Gk+1 ha grado k+1. Anche in questo caso Gk+1 ha coefficientedirettivo nullo e quindi Bi,k(x) = 0.

Resta da verificare che Bi,k(x) un polinomio di grado k a tratti, conregolarita globale k−1. Supponiamo di voler effettuare l’interpolazionepolinomiale di una funzione f . Possiamo procedere in due modi:

(a)

p(x) =n∑i=0

f [x0, ..., xi]ωi−1(x),

dove ω−1 = 1 e ωi = (x− x0)...(x− xi)

(b)

p(x) =n∑i=0

f(xi)Li(x),

dove Li(x) =n∏j=0i 6=j

x− xjxi − xj

=ωn(x)

x− xi1∏

j 6=i

(xi − xj)=

=ωn(x)

(x− xi)ω′n(xi).

Per l’unicita del polinomio di interpolazione, i coefficienti direttivi de-vono assumere lo stesso valore, quindi:

f [x0, ..., xn] =n∑i=0

f(xi)1

ω′n(xi)

Scrivendo la relazione per g(x) e sostituendola nella formula generalesi ha:

Bi,k(x) = (xi+k+1 − xi)k+1∑j=0

(xi+j − x)k+k+1∏l=0l6=j

(xi+j − xi+l)

Abbiamo ottenuto che Bi,k(x) e una combinazione lineare di funzioniche sono o nulle o polinomi di grado k, quindi sono polinomi a trattidi grado k. Inoltre sono combinazioni lineari di funzioni con regolaritak − 1 e quindi Bi,k ∈ Ck−1([a, b]). Le due formule portano allora allacostruzione della stessa base.

40

Vediamo se abbiamo abbastanza funzioni. Perche Bi,k sia definita serve che:

xi+k+1 ≤ xn =⇒ i+ k + 1 ≤ n =⇒ i ≤ n− (k + 1).

Mancano percio (n + k) − (n − k) = 2k funzioni di base. Per aggiungere le2k funzioni mancanti introduciamo i nodi:

x−1 = x−2 = . . . = x−k = x0 , xn+1 = xn+2 = . . . = xn+k = xn.

Abbiamo introdotto cosı k nodi coincidenti con il primo e k nodi coinciden-ti con l’ultimo. Ora possiamo facilmente estendere la definizione delle Bi,k

tenendo conto che siamo in grado di calcolare le differenze divise per nodicoincidenti. Evidentemente queste ultime funzioni di base serviranno per im-porre le condizioni sulle derivate agli estremi dell’intervallo di interpolazione.

Vediamo ora come si calcolano le B-spline se e presente un nodo ripetutos+ 1 volte. Per esempio sia xm ≡ xm+1 ≡ · · · ≡ xm+s; per quanto detto pre-cedentemente riguardo alla regolarita delle B-spline potremo calcolare soloB-spline di grado k ≥ s. In caso di maggiore stretto, pero, e facile verificareche puo essere applicata la formula ricorsiva abbassando di fatto il gradodele B-spline da calcolare. Si ha cosı che solo per il calcolo di Bm−1,i(x) e diBm,i(x) dobbiamo ricorrere alla definizione con le differenze divise.Come passo preliminare calcoliamo per l = 0, · · · , s:

gx[xm · · ·xm+l] =

dlgx(t)

dtl|t=xm

l!=

dl(t− x)s+dtl

|t=xml!

=

0 x ≥ xm (*)

s!(xm − x)s−l

l!(s− l)!=

(s

l

)(xm − x)s−l x < xm (**)

Sfruttando i valori calcolati nei casi (*) e (**), otteniamo:

41

Bm,s(x) = (xm+s+1 − xm)gx[xm · · ·xm+s+1]

= (xm+s+1 − xm)gx[xm+1 · · · xm+s+1]− gx[xm · · ·xm+s]

xm+s+1 − xm(∗)=

= gx[xm+1 · · ·xm+s+1] =gx[xm+2 · · ·xm+s+1]− gx[xm+1 · · ·xm+s]

xm+s+1 − xm(∗)=

=gx[xm+2 · · ·xm+s+1]

xm+s+1 − xm= · · · = gx[xm+sxm+s+1]

(xm+s+1 − xm)s−1

=(xm+s+1 − x)s+ − (xm+s − x)s+

(xm+s+1 − xm)s=

(xm+s+1 − xxm+s+1 − xm

)s

Bm−1,s(x) = (xm+s − xm−1)gx[xm−1 · · ·xm+s]

= (xm − xm−1)gx[xm · · ·xm+s]− gx[xm−1 · · · xm+s−1]

xm − xm−1

(∗∗)=

=

(s

s

)(xm − x)0 − gx[xm−2 · · ·xm+s−1]− gx[xm−1 · · ·xm+s−2]

xm − xm−1

(∗∗)=

= 1−(

s

s− 1

)xm − x

xm − xm−1

+gx[xm−2 · · ·xm+s−2]− gx[xm−1 · · · xm+s−3]

(xm − xm−1)2

= · · · =s−1∑l=0

(s

s− l

)(−1)l

(xm − x)l

(xm − xm−1)l+ (−1)s−1 gx[xm−1xm]

(xm − xm−1)s−1=

=s−1∑l=0

(s

s− l

)(−1)l

(xm − x)l

(xm − xm−1)l+ (−1)s

(xm − x)s+ − (xm−1 − x)s+(xm − xm−1)s

=

=s−1∑l=0

(s

l

)(−1)l

(xm − x)l

(xm − xm−1)l+ (−1)s

(xm − x)s

(xm − xm−1)s

=

s∑l=0

(sl

)(−1)l(xm − x)l(xm − xm−1)s−l

(xm − xm−1)s

=

(x− xm−1

xm − xm−1

)s

dove abbiamo sfruttato l’uguaglianza(ss−l

)=(sl

)e lo sviluppo della potenza

n-esima di un binomio: (a− b)n =n∑l=0

(nl

)(−1)la(n−l)bl.

42

L’uso di basi locali permette di aggiungere facilmente nodi di interpolazione;le spline hanno pero uno svantaggio: sono dipendenti dalla posizione dei datiyi (cambiano per rotazioni del sistema di riferimento); per avere indipendenzasi utilizza la forma parametrica:

y = f(x) →{x = x(t)y = y(t)

e si costruiscono le splines che interpolano i valori di x e y al variare di t.

5.3 Funzioni di Brezier

Per approssimazione di Brezier, si intende una serie di tecniche nate nell’am-bito del disegno tramite calcolatore (CAD) in quanto permettono di costruirefacilmente una curva con una determinata forma. La forma delle curve diBrezier dipende da alcuni punti del piano (detti punti di controllo) quindi,spostando questi ultimi, si puo far assumere alla curva la forma desiderata.La costruzione delle curve di Brezier si basa sui polinomi di Bernstain equindi dobbiamo innanzitutto introdurre alcune proprieta di questi ultimi.Dato un intervallo [a, b], i polinomi di Bernstain di grado n sono definiti da

Bni (x) =

(ni

)(b− x)n−i(x− a)i

(b− a)ni = 0, 1, · · · , n

che risultano essere linearmente indipendenti e quindi costituiscono una basedi Pn. Un qualunque polinomio p ∈ Pn puo dunque essere scritto come:p(x) =

∑ni=0 γiB

ni (x), in particolare possiamo scrivere in questa forma il

polinomio di interpolazione nei nodi (xi, yi) con xi ∈ [a, b].Ovviamente i coefficienti γi in generale non saranno uguali ai valori yi comenel caso dello sviluppo nella base di Lagrange. Se pero x0 = a xn = b alloraγ0 = y0 e γn = yn (invece γi 6= yi i = 1, · · ·n− 1).Definiamo allora curva di Brezier un polinomio della forma

p(x) =n∑i=0

γiBni (x) ∀x ∈ [a, b]

esso descrive una traiettoria che parte da (a, γ0) e termina in (b, γn). Inoltrep(x) non passa per i punti (xi, γi), ma questi ultimi ne caratterizzano la forma.In particolare, se si costruisce il poligono di vertici (xi, γi) i = 0, · · · , n si haun’idea di come e fatta la curva di Brezier.

43

Figura 5.1: Esempio di curva di Brezier di terzo grado con i 4 punti dicontrollo.

44

Capitolo 6

Miglior approssimazione

Sia f una funzione continua sull’intervallo [a, b]. Cerchiamo p ∈ V , spa-zio vettoriale di dimensione n < +∞ che approssimi f minimizzandone ladistanza:

‖f − p‖ = minϕ∈V‖f − ϕ‖.

Vogliamo usare la norma del massimo: ‖g‖ = maxa≤x≤b

|g(x)|

Teorema 8. Esiste ed e unica p ∈ V tale che ‖f − p‖ = minϕ∈V‖f − ϕ‖.

Osservazione 1. Dimostriamo l’esistenza nello spazio V e l’unicita se Ve strettamente convesso (cioe se la palla unitaria e strettamente convessa).Opportune condizioni su V garantiscono l’unicita anche in spazi che nonsiano necessariamente strettamente convessi.

Dimostrazione. Esistenza: consideriamo B = B(f, ‖f‖) allora 0 ∈ B, inoltre0 ∈ V perche V spazio vettoriale, quindi H = B ∩ V 6= ∅ e H compatto.Allora esiste min

ϕ∈H‖f − ϕ‖. Inoltre min

ϕ∈V‖f − ϕ‖ = min

ϕ∈H‖f − ϕ‖.

Dimostriamo ora l’unicita negli spazi strettamente convessi.Siano p1, p2 ∈ V tali che ‖f − p1‖ = ‖f − p2‖ = min

ϕ∈V‖f − ϕ‖ = d. Allora:

∥∥∥∥f − p1 + p2

2

∥∥∥∥ ≤ 1

2‖f − p1‖+

1

2‖f − p2‖ = d,

ma d minimo, quindi∥∥f − p1+p2

2

∥∥ ≥ d. Ma allora: ‖2f − p1 − p2‖ = 2d =‖f − p1‖ + ‖f − p2‖ che in uno spazio strettamente convesso implica che∃c > 0 tale che f − p1 = c ∗ (f − p2), ma, avendo la stessa norma, dovraessere c = 1 e quindi p1 = p2.

45

L’unicita di soluzione in spazi non strettamente convessi (come nel caso dispazio della scelta della norma del massimo), ci viene garantita dalla seguenteproprieta di Haar :

sia V di dimensione n allora ∀v ∈ V v su [a, b] ha al piu n− 1 zeri.

Se V = Pn, allora dim(V ) = n + 1; siccome ogni polinomio di grado n haal piu n radici, scegliere lo spazio dei polinomi garantisce unicita di soluzione.

Vogliamo quindi cercare p ∈ Pn tale che

‖f − p‖ = minϕ∈V

{maxa≤x≤b

|f(x)− ϕ(x)|}

:= d(f)

Teorema 9 (di De La Valle-Poussin). Sia p ∈ Pn tale da oscillare n+2 volteattorno ad f , quindi esistono n+2 punti xi e n+2 valori ei tutti dello stessosegno, tali che

f(xi)− p(xi) = (−1)iei per i = 0, ..., n+ 1

Allorad(f) ≥ min

0≤i≤n+1|ei|

Dimostrazione. Supponiamo per assurdo che esista q ∈ Pn tale che

‖f − q‖ ≤ min0≤i≤n+1

|ei|.

Sia z = p−q ∈ Pn, allora z(xi) = q(xi)−p(xi) = q(xi)−f(xi)+f(xi)−p(xi).Poich q(xi)−f(xi) < |ej| ∀j e f(xi)−p(xi) = (−1)iei, z(xi) ha segno (−1)i

in ogni xi, cioe cambia di segno n + 2 volte, quindi ha n + 1 radici. Ma zha grado n e quindi per il teorema fondamentale dell’algebra deve essere ilpolinomio identicamente nullo.

Gli ei indicano il valore dei massimi della distanza tra la funzione f e ilpolinomio p e quindi varra che:

min(ei) ≤ d(f) ≤ max(ei),

quindi se gli ei fossero tutti uguali otterremmo d(f). (Teorema di Cheby-shev). Allora il problema di miglior approssimazione si risolve cercando unpolinomio che oscilla attorno a f n + 2 volte di una stessa quantita (ovvero

46

esistono n+ 1 nodi incogniti in cui il polinomio interpola f).Supponiamo che f ∈ Pn+1; se p ∈ Pn allora:

‖f − p‖ = minϕ∈Pn

{maxa≤x≤b

|f(x)− ϕ(x)|}

con f(x) − ϕ(x) ∈ Pn, dalla formula dell’errore di interpolazione, essendof(ξ)n+1 = cost, la condizione precedente equivale a cercare:

min

∥∥∥∥∥n∏i=0

(x− xi)

∥∥∥∥∥ = minϕ∈Pn

maxa≤x≤b

n∏i=0

(x− xi)

al variare dei nodi xi; quindi si tratta di cercare il polinomio di grado n+ 1con la piu piccola norma del massimo. Sappiamo che i polinomi di Cheby-shev soddisfano la seguente proprieta: Tn+1(x)2−n ha coefficiente direttivouno e ha la piu piccola norma del massimo; allora i nodi di interpolazionesaranno gli zeri di Tn+1. In questo caso quindi si trovano facilmente i punti diinterpolazione. In generale i nodi non sono molto lontani dagli zeri del poli-nomio di Chebyshev che quindi possono essere usati per innescare l’algoritmodi Remes : al primo passo indichiamo con x

(0)i i punti stazionari del polino-

mio di Chebyshev e calcoliamo i coefficienti ai del polinomio p =∑n+1

i=0 aixi

ed il valore e che verificano il sistema lineare ottenuto imponendo le n + 2condizioni p(x

(0)i )− f(x

(0)i ) = ei = 0, · · · , n + 1 (notiamo che si tratta di un

sistema lineare con n+2 incognite). Quindi si impone la condizione di sta-

zionarieta: p′(x

(1)i ) − f ′(x(1)

i ) = 0, che porta a dover risolvere un’equazione

non lineare (ora le incognite soni gli x(1)i ). Se si troviamo n + 2 soluzioni,

abbiamo tutti gli x(1)i necessari per ripetere i passi precedenti; altrimenti e

necessario aggiungere altri nodi, per esempio gli estremi dell’intervallo. Ingenerale, noti x

(k)0 , · · · , x(k)

n+1 si ripete il procedimento fino a convergenza. Ilprocedimento verra interrotto quando∣∣∣∣max(ei)

min(ei)− 1

∣∣∣∣ < ε dove ei =∣∣∣p(x(k+1)

i )− f(x(k+1)i )

∣∣∣dove ε e la precisione richiesta.

47

Capitolo 7

Approssimazione di funzioniperiodiche

Vogliamo ora approssimare una funzione f ∈ L2[0,2π], dove

L2[0,2π] =

{g : [0, 2π]→ C

∣∣∣ ∫ 2π

0

g(t)g(t)dt < +∞}.

Consideriamo le seguenti funzioni in L2[0,2π] (i cosı detti polinomi di Fourier):

ϕj(x) = eijx, con j = 0,±1,±2, ... e dove i e l’unita immaginaria.

allora, se f e continua vale lo sviluppo:

f(x) =+∞∑j=−∞

fjϕj(x)

dove

fj =1

∫ 2π

0

f(t)e−ijtdt =1

2π(f, ϕj),

avendo definito prodotto scalare e norma su L2[0,2π] nel modo seguente:

(f, g) :=

∫ 2π

0

f(t)g(t)dt; ‖f‖ := (f, f)12

Verifichiamo che la base dei polinomi di Fourier e ortogonale.

(ϕk, ϕj) =

∫ 2π

0

eikte−ijtdt =

∫ 2π

0

ei(k−j)tdt

48

che risulta: {2π se j = k

1k−j e

i(k−j)t|2π0 = 0 se j 6= k

quindi la base e ortogonale e in particolare (ϕk, ϕj) = 2πδkj.Vediamo il caso f : [0, 2π] → R di funzioni a valori reali. In questo caso e

facile dimostrare che fk = ¯f−k ∀k, infatti deve essere:

=[f(x)] = =

[+∞∑j=−∞

fjϕj(x)

]= 0

Calcoliamo gli addendi della somma e imponiamo che la somma sia unnumero reale.

fkϕk(x) =(<[fk] + i=[fk]

)(cos(kx) + sin(kx)) =

= <[fk] cos (kx)−=[fk] sin (kx) + i[=[fk] cos (kx) + <[fk] sin (kx)

]f−kϕ−k(x) = <[f−k] cos (kx) + =[f−k] sin (kx)+

+i[=[f−k] cos (kx)−<[f−k] sin (kx)

]Quindi deve essere: =[fk] = −=[f−k] e <[fk] = <[f−k], cioe fk = ¯f−k. Percioe sufficiente calcolare la meta dei coefficienti fj. Il loro calcolo comporta perola risoluzione di integrali dipendenti da f :

fj =1

∫ 2π

0

f(t) cos(jt)dt− i

∫ 2π

0

f(t) sin(jt)dt.

Calcolare i coefficienti fj in questo modo non e sempre possibile, ne semplice.Possiamo comunque accontentarci di alcuni degli fj: considerando che laserie converge si puo avere una buona approssimazione di f eliminando lecode della serie.

Definizione 6. Definiamo la serie troncata di Fourier nel modo seguente:

fN(x) =

N2−1∑

k=−N2

fkϕk(x)

fN e l’approssimazione di f nel senso dei minimi quadrati continui sul sot-tospazio SN := span{ϕk(x) | k = −N

2, ..., N

2− 1}; infatti che fN tale

che:‖f − fN‖L2 = min

ϕ∈SN‖f − ϕ‖L2 .

49

Resta il problema del calcolo degli integrali: possiamo approssimarli attra-verso una formula di quadratura, che permette di ottenere dei coefficienti fj,

approssimazione di fj. Sia fN e l’approssimazione di fN . Sar poi necesssariauna stima dell’errore:

‖f − fN‖L2 = ‖f − fN + fN − fN‖L2 ≤ ‖f − fN‖+ ‖fN − fN‖ ≤

≤ ‖f − fN‖+∑k

|fk − fk|‖ϕk‖ = ‖f − fN‖+∑k

|fk − fk|(2π)12

Quindi si stima l’errore attraverso l’errore di quadratura.

- Trasformata discreta di Fourier.Siano dati N nodi equispaziati in [0, 2π], h = 2π

N, xj = jh per j =

0, ..., N − 1.Definiamo il prodotto scalare discreto

(f, g)N = hN−1∑i=0

f(xi)g(xi).

Definiamo la trasformata discreta di Fourier :

ΠNf(x) =

N2−1∑

k=−N2

fkϕk(x),

dove fk =1

N

N−1∑j=0

f(xj)e−ikxj =

(f, ϕk)N2π

In questo modo ΠNf e facilmente calcolabile.Verifichiamo l’ortogonalita della base rispetto al prodotto scalare di-screto:

(ϕk, ϕk)N = hN−1∑l=0

eikxle−ikxl = hN = 2π

(ϕk, ϕj)N = h

N−1∑l=0

ei(k−j)xl = h

N−1∑l=0

(ei(k−j)h

)l=

= h1− ei(k−j)Nh

1− ei(k−j)h=

1− ei(k−j)2π

1− ei(k−j)h= 0

Si ha quindi che ΠNf e l’approssimazione di f nel senso dei minimiquadrati discreti, analogamente al caso continuo.

50

Dimostriamo ora che ΠNf e il polinomio di interpolazione di f(x) neinodi xi, cioe: ΠNf(xj) = f(xj):

ΠNf(xj) =

N2−1∑

k=−N2

fkϕk(xj) =

N2−1∑

k=−N2

1

N

N−1∑l=0

f(xl)e−iklheikjh =

=1

N

N−1∑l=0

f(xl)

N2−1∑

k=−N2

eik(j−l)h =

=1

N

N−1∑l=0

f(xl)±(ϕj, ϕl)N

h=

1

2πf(xj)2π = f(xj).

Allora abbiamo

N2−1∑

k=−N2

fkϕk(xj) = f(xj) j = 0, ..., N − 1. (7.1)

Per calcolare fk si deve percio risolvere il sistema lineare scritto sopra,oppure e possibile calcolare il valore della funzione nei nodi a partireda fk. In questo caso, il costo e equivalente al costo del prodotto ma-trice*vettore, cioe n2 operazioni.

Riprendiamo ora la formula per il calcolo dei coefficienti dello sviluppodiscreto di Furier, quindi:

fl =1

N

N−1∑j=0

f(xj)e−ilhj l = −N

2, . . . ,

N

2− 1, (7.2)

che con un costo di n2 operazioni permette di calcolare i coefficienti apartire dai valori di f(x) nei nodi.

- Trasformata rapida di Fourier.e possibile modificare il calcolo della trasformata discreta di Fourier inmodo da abbassare il costo computazionale. Sia

W = e±i2πN = cos(

N)± i sin(

N),

51

la radice N -esima dell’unita. Consideriamo i due vettori complessi, lecui componenti sono dette campioni :

h = [h0, ..., hN−1]T , H = [H0, ..., HN−1]T , definiti dalle relazioni:

per calcolare (7.1): hj = fj−N2

; Hk = f(xk)

per calcolare (7.2): hj = f(xj); Hk = Nfk−N2

per j = 0, ..., N − 1 e k = 0, ..., N − 1.In queste ipotesi abbiamo un’unica formula:

Hk =N−1∑j=0

W jkhj k = 0, ..., N − 1

dove W = ei2πN per il calcolo di (7.1), W = e−i

2πN per il calcolo di (7.2).

Valutiamo il costo computazionale dell’algoritmo cosı modificato.Separiamo i termini con indice pari da quelli con indice dispari, si ha:

Hk =

N2−1∑

p=0

W 2pkh2p +

N2−1∑

p=0

W (2p+1)kh2p+1 =

=

N2−1∑

p=0

W 2pkh2p +W k

N2−1∑

p=0

W 2pkh2p+1

Poniamo:

H0k :=

N2−1∑

p=0

W 2pkh2p e

H1k :=

N2−1∑

p=0

W 2pkh2p+1 , allora

Hk = H0k +W kH1

k , per k = 0, ..., N − 1.

In questo modo lavoriamo con vettori di dimensione dimezzata.Osserviamo che H0

k e H1k sono periodici di periodo N

2, infatti:

H0k+N

2=

N2−1∑

p=0

W 2p(k+N2

)h2p =

N2−1∑

p=0

W 2pk(W pN)h2p =

52

=

N2−1∑

p=0

W 2pkh2p = H0k

analogamente si ha: H1k+N

2

= H1k . Quindi:

Hk+N2

= H0k +W k+N

2 H1k = H0

k −W kH1k .

Allora e sufficiente calcolare H0k e H1

k per K = 0, ..., N2− 1 per avere

gli Hk da 0 a N − 1, cio significa che servono N2

moltiplicazioni e Nsomme. e possibile suddividere ulteriormente il calcolo di H0

k e H1k (tra

pari e dispari): {H0k = H00

k + (W 2)kH01k

Hk+N4

= H00k − (W 2)kH01

k{H1k = H10

k + (W 2)kH11k

H1k+N

4

= H10k − (W 2)kH11

k

Il calcolo comporta cosı N4

+ N4

= N2

prodotti e 4 · N4

somme, comeprima ma le matrici con cui si opera hanno dimensione pari alla metadelle precendenti.La suddivisioneN → N

2viene ripetuta finche serve un’unica operazione,

cioe log2N volte. Allora, poiche il costo computazionale e di circa N2

prodotti per ogni passo, in totale sara circa N2

log2N . Il procedimento siapplica bene seN una potenza di due; diversamente si puo generalizzarema sara meno efficiente. Nel caso reale si possono eseguire la meta delleoperazioni che si effettuano nel caso complesso.

53

Capitolo 8

Interpolazione in piudimensioni

54

Parte III

Ottimizzazione

55

Capitolo 9

Ricerca del minimo di unafunzione

9.1 Metodo di Newton

Data la funzione f(x) cerchiamo minxf(x).

Consideriamo lo sviluppo di f(xk + p) centrato in xk:

f(xk + p) = f(xk) + pf′(xk) +

p2

2f′′(xk) + ...

Se xk e vicino al minimo α lo sviluppo d una buona approssimazione di f e

quindi f(α) = minpf(xk + p) ' min

p

{f(xk) + pf

′(xk) +

1

2p2f

′′(xk)

}.

Deriviamo rispetto a p e poniamo mandiamo a zero la derivata:

f′(xk) + pf

′′(xk) = 0; si ottiene p = − f

′(xk)

f ′′(xk).

Il punto di minimo e: xk+1 = xk + p = xk − f′(xk)

f ′′ (xk).

Lo schema iterativo sara, dato x(0):

xk+1 = xk −f′(xk)

f ′′(xk),

analogo al metodo di Newton per la soluzione di equazioni non lineari: xk+1 =xk − f(xk)

f ′ (xk), che si usa cercando f(α) = 0.

Il risultato sulla convergenza e quindi lo stesso nei due casi: se c’e convergenzala velocita e quadratica. Condizioni necessarie a garantire la convergenzasono: x0 sufficientemente vicino al minimo e f

′′> 0.

56

9.2 Approssimazione parabolica

Supponiamo di avere 3 nodi: xk, xk−1, xk−2. Scriviamo la parabola p(x) =ax2 + bx + c, con a > 0, che interpola (xk, fk), (xk−1, fk−1), (xk−2, fk−2) ecalcoliamo il minimo xk+1 = −b

2adella parabola. Questo metodo converge piu

lentamente rispetto al precedente ma non richiede la regolarita di f in quantonon serve calcolare f

′e f

′′.

9.3 Metodo della sezione aurea

Definizione 7. Consideriamo la funzione f : R → R. f si dice unimoda-le nell’intervallo [a, b] se esiste x∗ ∈]a, b[ tale che f(x∗) = min

x∈]a,b[f(x) e se

∀x1, x2 ∈ [a, b] tali che x1 < x2, valgono le seguenti propriet:

- se x∗ > x2 =⇒ f(x1) > f(x2);

- se x∗ < x1 =⇒ f(x2) > f(x1).

Dalla definizione deduciamo che se f unimodale allora e strettamente decre-scente prima del minimo, e strettamente crescente dopo il minimo. Possiamoallora pensare di valutare la funzione in due nodi e restringere opportuna-mente l’intervallo che contiene il minimo. A partire dall’intervallo iniziale[a0, b0], escludendo il caso particolare in cui f(x1) = f(x2), abbiamo duepossibilita che portano a determinare l’intervallo al primo passo [a1, b1]:

- se f(x1) > f(x2) =⇒ x∗ ∈ [x1, b0], allora poniamo a1 = x1 e b1 = b0

- se f(x1) < f(x2) =⇒ x∗ ∈ [a0, x2], allora poniamo a1 = a0 e b1 = x2.

Il metodo che vogliamo scrivere e simile al metodo di bisezione: costruiremouna successione di intervalli che deve convergere a un intorno sempre pipiccolo del punto x∗.Vogliamo che i due intervalli possibili abbiano la stessa ampiezza e vogliamopoter restringere il piu possibile l’intervallo ad ogni passo. Dovremo quindiimporre le condizioni:

- b0 − x1 = x2 − a0;

- x1 = a0+b02− ε , x2 = a0+b0

2+ ε.

Con queste scelte l’intervallo viene quasi dimezzato, come avviene utilizzandoil metodo di bisezione, ma si ha lo svantaggio di dover valutare la funzionedue volte per ogni passo. Il costo computazionale risultera doppio rispetto

57

al metodo di bisezione. Possiamo pero sfruttare ad ogni passo una dellevalutazioni precedenti. Imponiamo allora che uno dei nodi coincida tra unpasso e l’altro. {

x(k)1 = ak + τ(bk − ak)x

(k)2 = ak + η(bk − ak)

(9.1)

Il nuovo intervallo sara:

[ak+1, bk+1] = [x(k)1 , bk] (9.2)

oppure

[ak+1, bk+1] = [ak, x(k)2 ] (9.3)

- (9.2) Il nodo x(k)2 deve diventare x

(k+1)1 quindi

x(k)2 = x

(k+1)1 = ak+1 + τ(bk+1 − ak+1) = x

(k)1 + τ(bk − x(k)

1 ).

- (9.3) x(k)1 = x

(k+1)2 = ak+1 + η(bk+1 − ak+1) = ak + η(x

(k)2 − ak).

Sostituendo x(k)2 e x

(k)1 dal sistema (9.1) in (9.2) e in (9.3) si ha:

- (9.2) ak + η(bk − ak) = ak + τ(bk − ak) + τ(bk − ak − τ(bk − ak)) =⇒η = τ + τ − τ 2 =⇒ η = 2τ − τ 2

- (9.3) ak + τ(bk − ak) = ak + η(ak + η(bk − ak)− ak) =⇒ τ = η2{η = 2τ − τ 2

τ = η2

=⇒ η = 2η2 − η4, quindi η(η3 − 2η + 1) = 0 =⇒ η(η − 1)(η2 + η − 1) = 0

=⇒ η(η − 1)

(η − 1 +

√5

2

)(η − −1 +

√5

2

)= 0

Per η = 0 e η = 1 si ottengono come nodi gli estremi dell’intervallo, e ilvalore −1−

√5

2e negativo, quindi scegliamo:

η =−1 +

√5

2,

allora τ = 32−√

52

= 1− η.Si ha: {

x(k)1 = bk − η(bk − ak)x

(k)2 = ak + η(bk − ak)

58

In questo modo la funzione si valuta una volta per ogni passo e gli x(k)1 e x

(k)2

sono equidistanti dagli estremi. Tale metodo prende il nome di metodo dellasezione aurea.E facile vedere che, indicata con Lk la lunghezza dell’intervallo al passo k,vale che:

Lk = Lk+1 + Lk+2

ak bkxk2 = bk+1xk+1

2 = xk1xk+1

1

Lk

Lk+1Lk+1

Lk+2 Lk+2

Figura 9.1: Rappresentazione di tre passi del metodo della sezione aurea.

Per confrontare il metodo della sezione aurea con il metodo di bisezione inmodo da stabilire quale dei due e piu efficiente, bisogna vedere confronta-re di quanto si riduce l’intervallo di incertezza nei due metodi a parita divalutazioni della funzione, quindi la lunghezza Lk+1 = 1

2Lk dei un passo di

bisezione va confrontata con la lunghezza Lk+2 = η2Lk ' 0.38196601Lk didue passi di sezione aurea che quindi risulta essere piu efficiente.Supponiamo ora che i coefficienti τ e η siano variabili, e siccome la distanzatra xk1 e xk2 tende a diminuire imponiamo che ad un passo N dato si abbiaxN1 ≡ xN2 . In questo caso allora

LN−1 = 2LN

59

aN bNxN1 = xN

2

LN

LN+1LN+1

Figura 9.2: Passo finale del metodo di Fibonacci

sfruttando il legame tra tre segmenti consecutivi, abbiamo allora:

• LN2 = LN−1 + LN = 3LN

• LN3 = LN−2 + LN−2 = 5LN

• LN4 = LN−3 + LN−2 = 8LN

• ...

• LN−k = LN−k+1 + LN−k+2 = FkLN

• ...

• L1 = L2 + L3 = FN−1LN

• L0 = L1 + L2 = FNLN = b− a

dove FN e l’N-esimo termine della successione di Fibonacci, definita da F−1 =1, F0 = 1, . . . , Fk+1 = Fk + Fk−1, . . ..Facendo ora il rapporto tra le ultime due relazioni otteniamo:

L1 =FN−1

FNL0

che ci dice come posizionare i primi due punti x01 e x0

2 perche all’N-esimopasso i punti xN1 e xN2 coincidano. In generale ad ogni passo il fattore diriduzione dell’intervallo e pari al rapporto tra due termini consecutivi dellasuccessione di Fibonacci.Dall’ultima relazione, invece, ricaviamo qual’e l’ampiezza dell’intervallo diincertezza finale che sara dato da:

60

LN =L0

FN

Volendo confrontare il metodo di Fibonacci con sezione aurea, possiamo direche, siccome il limite tra il rapporto di due termini consecutivi della successio-ne di Fibonacci e uguale alla sezione aurea, se scegliamo un valore di N grandeallora i due metodi sono praticamente equivalenti. Per N piccolo,invece, Fi-bonacci risulta essere leggermente piu efficiente (per esempio, dopo 5 passidi Fibonacci l’intervallo si e ridotto di un fattore pari a F1

F6' 0.076, mentre

per sezione aurea il fattore di riduzione e η5 ' 0.090).Possiamo ora scivere l’algoritmo di Fibonacci come:

• dati a, b ed N

- calcolo x01 = b− FN−1

FN(b− a), x0

2 = a+ FN−1

FN(b− a)

• per k = 1, . . . , N − 1

- se f(x1) < f(x2) b = x2

x2 = x1

x1 = a+ (b− x2)

- se f(x1) > f(x2) a = x1

x1 = x2

x2 = b− (x1 − a)

Poiche gli ultimi due nodi sono coincidenti, all’ultimo passo possiamo eseguireun passo del metodo della bisezione:{

x1 = a+b2− ε

x2 = a+b2

+ ε

in questo modo l’ampiezza finale dell’intervallo di incertezza sara b0−a02FN

+ 2ε.E scegliendo N in modo che:

b0 − a0

2FN≤ ε FN ≥

b0 − a0

2ε,

l’ampiezza finale dell’intervallo sara 2ε e, scegliendo infine il punto medio,l’errore massimo sara piu piccolo di ε.

61

Parte IV

Integrazione

62

7.1 Estrapolazione di Richardson

L’estrapolazione di Richardson e una procedura che, mediante opportunecombinazioni lineari di valutazioni approssimate di una quantita α in funzionedi un certo parametro h, fornisce una nuova stima piu accurata di α. Piuprecisamente, supponiamo di avere la seguente relazione:

A(h) = α + γ0h+ γ1h2 + · · ·+ γph

p +Rp+1(h)

dove Rp+1(h) e un infinitesimo in h di ordine maggiore o uguale a p+ 1.Dunque A(h) approssima α con un errore che tende a 0 per h → 0 con unordine di infinitesimo pari a 1. Se γ0 6= 0 e 0 < δ < 1, allora vale che

A1(h) =A(δh)− δA(h)

1− δ= α + γ2h

2 + · · ·+ γphp + Rp+1(h)

dove γi = γi−δ1−δ . Quindi A1(h) approssima ancora α ma ora l’errore tende a

zero con una velocita che dipende da h2.Se ora γ2 6= 0 il procedimento puo essere ripetuto e otteniamo che A2(h) =A1(δh)−δA1(h)

1−δ2 approssima α con un errore che tende a zero con una velocitache dipende da h3. Notiamo, pero, che per poter calcolare A2(h) dobbiamocalcolare A1(δh) che richiede il calcolo di A(δ2h) (oltre a A(δh) e A(h) chegia ci erano serviti).Il procedimento puo quindi essere generalizzato nel modo seguente:

Am,0 = A(δmh) m = 0, · · · , kAm,i =

Am,i−1−δiAm−1,i−1

1−δi i = 1, · · · , k m = i, · · · , k

dove l’elemento Am,i approssima α con un errore che tende a zero come(δmh)i+1.

63

7.2 Integrazione di Romberg

Si ottiene applicando l’estrapolazione di Richardson alla formula di integra-

zione dei Trapezi composita data da In = h

(f(x0) + f(xn)

2+

n−1∑i=1

f(xi)

)dove h = b−a

ne x0 = a, xi+1 = xi + h, xn = b che approssima la quantita

α =∫ baf(x)dx.

Per prima cosa dobbiamo dimostrare che vale la seguente formula dell’errore,nota come formula di Eulero-Maclaurin:

In −∫ b

a

f(x)dx =k∑i=1

γih2i + (b− a)

P2k+2(ξ)

(2k + 2)!h2k+2f (2k+2)(ξ)

dove f ∈ C2k+2 ([a, b]), γi =B2i

(2i)!

(f (2i−1)(b)− f (2i−1)(a)

), Bl sono i numeri

di Bernoulli e ξ ∈ [a, b]. Pm(x) = Bm(x− [x]) dove [x] indica la parte interadi x e Bm(x) e il polinomio di Bernoulli di grado m.Prima di poter dimostrare la formula, dobbiamo richiamare alcune proprietadei polinomi e dei numeri di Bernoulli.I polinomi di Bernoulli Bm(x) m = 0, 1, 2, · · · possono essere definiti dallaseguente formula ricorsiva:

B0(x) = 1

B′m(x) = nBm−1(x) e∫ 1

0Bm(t)dt = 0 perm ≥ 1

(7.4)

Quindi per m ≥ 1 si ha m∫ xaBm−1(t)dt = Bm(x)−Bm(a) e dunque Bm(1) =

Bm(0). Il valore Bm(0) e il numero di Bernoulli di indice m.Vale inoltre questo risultato:

∞∑m=0

Bm(t)xm

m!=

xetx

ex − 1

che, per t = 0, fornisce

∞∑m=0

Bmxm

m!=

x

ex − 1= g(x)

E quindi facile verificare che g(x)− g(−x) = −x e dunque∞∑m=0

Bmxm

m!−∞∑m=0

Bm(−1)mxm

m!= −x⇒ 2

∞∑m=0

B2m+1x2m+1

(2m+ 1)!= −x

64

essendo b1 = −12

ricaviamo∞∑m=1

B2m+1x2m+1

(2m+ 1)!= 0

che, dovendo essere verificata per ogni x implica che B2m+1 = 0 per m =1, 2, 3, · · · . Quindi, tranne B1, i numeri di Bernoulli di indice dispari sononulli.Dimostriamo ora la formula di Eulero-Maclaurin sull’intervallo [0, N ] con Nintero.Vediamo ora alcune proprieta delle funzioni Pm(j). Dalla definizione e evi-dente che si tratta di funzioni periodiche di periodo 1, inoltre dalle proprietadei numeri di Bernoulli segue che Pm(j) = Bm(j− j) = Bm per ogni j interoe m > 1 e quindi si tratta di funzioni continue. Per quanto riguarda P1, in-vece, si tratta di una funzione discontinua perche P1(j+) = B1 = −1

2mentre

P1(j−) = −B1 = 12. Consideriamo ora:∫ N

0

f(t)dt =N−1∑j=0

∫ j+1

j

f(t)dt =N−1∑j=0

[f(x)P1(x)]j+1j −

∫ j+1

j

f ′(t)P1(t)dt =

−B1

N−1∑j=0

(f(j + 1) + f(j))−∫ N

0

f ′(t)P1(t)dt

avendo integrato per parti in quanto P1(t) e una primitiva di 1 in tutti gliintervalli [j, j + 1]. Quindi

IN −∫ N

0

f(t)dt =

∫ N

0

f ′(t)P1(t)dt

Usando la formula ricorsiva e l’integrazione per parti, abbiamo che:∫ N

0

f ′(t)P1(t)dt =N−1∑j=0

∫ j+1

j

f ′(t)P1(t)dt =

N−1∑j=0

([f ′(t)P2(t)

2

]j+1

j

− 1

2

∫ j+1

j

f ′′(t)P2(t)dt

)

=B2

2(f ′(N)− f ′(0))− 1

2

∫ N

0

f ′′(t)P2(t)dt

Applicando iterativamente la stessa tecnica troviamo che:

IN −∫ N

0

f(t)dt =k∑j=2

(−1)jBj

j!

(f (j−1)(N)− f (j−1)(0)

)+

(−1)k∫ N

0

f (k)(t)Pk(t)

k!dt

sfruttando il fatto che i Bj sono nulli per j dispari, operando un cambiodi variabili tali che [0, N ] −→ [a, b] e sfruttando il teorema del valor mediootteniamo la formula 7.4.

65

Osservazione: una immediata conseguenza di 7.4 e che la formula dei trapezicomposita e estremamente accurata se f(x) e una funzione periodica.Il metodo di integrazione di Romberg si ottiene applicando l’estrapolazionedi Richardson con δ = 1

2alla formula dei trapezi composita su 2k k > 0

sottointervalli di [a, b] di ampiezza costante h = b−a2k

. Tenendo conto chenella formula dell’errore non compaiono gli esponenti dispari, avremo allorala formula:

Am,0 = I2m m = 0, · · · , k

Am,i =Am,i−1−( 1

2)2iAm−1,i−1

1−( 12)

2i i = 1, · · · , k m = i, · · · , k

ovvero

Am,0 = I2m m = 0, · · · , kAm,i =

4iAm,i−1−Am−1,i−1

4i−1i = 1, · · · , k m = i, · · · , k

7.3 Integrazione automatica

Per integrazione automatica, si intendono delle procedure che, utilizzando piuvalori calcolati di un certo integrale, consentono di stimare l’errore tra il va-lore approssimato e quello esatto e quindi permettono di calcolare l’integralea meno di una precisione prefissata dall’utente.Si distinguono principalmente due tipi di metodi, quelli non adattivi in cui inodi della formula di quadratura vengono scelti equispaziati su tutto l’inter-vallo di integrazione e quelli adattivi che invece permettono di infittire i nodisolo in quelle zone dell’intervallo di integrazione in cui e maggiore l’erroretra integrale esatto ed approssimato. Questi ultimi metodi sono in generalepiu efficienti dal punto di vista computazionale perche richiedono un minornumero di valutazioni della funzione integranda, ma sono piu complessi daimplementare in modo efficiente.Cominciamo a studiare il caso non adattivo. Si tratta di trovare una formulaper stimare l’errore commesso tra l’integrale approssimato e quello esatto sen-za conoscere il valore di quest’ultimo. Abbiamo visto che che per le formulecomposite vale una stima di convergenza del tipo:

e(h) = Ih − I = Chp

dove h e la distanza (costante) tra due nodi consecutivi, p dipende dall’or-dine del metodo e C dipende dalla derivata p-esima di f e dall’ampiezzadell’intervallo di integrazione. Se ora raddoppiamo i nodi della formula diquadratura, o meglio se dimezziamo h otteniamo la formula:

66

e(h

2) = Ih

2− I ' C

hp

2p

dove varrebbe l’uguaglianza se cambiassimo il valore di C, se la derivata p-esima) e limitata comunque il circa uguale e accettabile. Se ora dividiamomembro a membro le due equazioni otteniamo:

Ih2− I

Ih − I' 1

2p

da cui ricaviamo:

Ih2− I ' Ih − I

2p

e quindi:

I =2pIh

2− Ih

2p − 1

che possiamo riscrivere come:

I − Ih2'Ih

2− Ih

2p − 1

dove ora il secondo membro puo essere calcolato e quindi ci fornisce unastima dell’errore della formula con passo h

2.

Quindi si puo procedere nel seguente modo: sia parte con un numero dato ndi nodi per la formula di quadratura e si continua a raddoppiare il numero dinodi finche il secondo membro dell’ultima equazione non diventa piu piccolodella precisione richiesta moltiplicata per un fattore minore di uno.

Per costruire un metodo adattivo, invece, si procede nel modo seguente. Sisceglie una formula di quadratura semplice (per esempio Simpson) e si applicaprima su tutto l’intervallo di integrazione ottenendo un valore approssimatoI; quindi si suddivide l’intervallo in due parti uguali e si applica la stessaformula su entrambi i sottointervalli, la somma dei due valori ottenuti fornisceun’altra stima dell’integrale su tutto l’intervallo che chiameremo I2.Vale allora che:

I − I = Chpf (p−1)(ξ) I − I2 ' Chp

2pf (p−1)(ξ)

67

facendo l’ipotesi che la derivata (p−1)-esima di f non sia ”troppo variabile”.Quindi, operando come per il caso non adattivo, otteniamo che:

err = |I − I2| '|I − I2|2p − 1

che ci permette di stimare l’errore |I− I2|. Possiamo allora operare nel modoseguente:Fissata una precisione ε

1. calcolo I e I2 e la stima err

2. se err < ε ho finito

3. altrimenti pongo ε = ε2

e ripeto i punti precedenti su entrambi i sot-tointervalli

in questo modo andro ad infittire i nodi solo dove non ho raggiunto unaprecisione sufficiente a garantire che sommando tutti i contributi l’errorefinale sia piu piccolo di ε.

68