Esercizi su polinomio di Taylor, metodi numerici per il calcolo di zeri

Download Report

Transcript Esercizi su polinomio di Taylor, metodi numerici per il calcolo di zeri

Esercizi su polinomio di Taylor, metodi numerici per il calcolo di
zeri di funzione e iterazioni di punto fisso
21 marzo 2014
Nota: gli esercizi pi`
u impegnativi sono contrassegnati dal simbolo (?).
Richiami di Analisi Matematica:
Teorema 1 (di Taylor). Siano f : [a, b] → R derivabile n + 1 volte in (a, b) e x0 ∈ (a, b). Allora
si ha:
f (x) = Tn (x) + Rn (x), ∀ x ∈ (a, b),
dove:
Tn (x) := f (x0 ) + f 0 (x0 )(x − x0 ) + · · · +
Rn (x) :=
f (n) (x0 )
(x − x0 )n ,
n!
f (n+1) (ξx )
(x − x0 )n+1 , ξx appartenente all’intervallo di estremi x e x0 .
(n + 1)!
Tn (x) `e detto “polinomio di Taylor di grado n centrato in x0 ”; Rn (x) `e detto “resto di Lagrange”.
Segue una tabella con i polinomi di Taylor, rispetto a x0 = 0, di alcune funzioni fondamentali:
f (x)
ex
Tn (x)
x2
2! + . . .
5
+ x5! − . . .
4
+ x4! − . . .
3
+ x3 − . . .
1+x+
sin(x)
x−
cos(x)
1−
log(1 + x)
x−
x3
3!
x2
2!
x2
2
Esercizio 1. Sperimentare con la function MATLAB taylortool, verificando il contenuto della
tabella che segue il teorema 1.
Esempio 1. Una tipica applicazione del teorema 1 `e l’approssimazione di funzioni trascendenti
(come la funzione esponenziale o le funzioni trigonometriche) con funzioni facilmente valutabili
dal calcolatore (polinomi), stimando al tempo stesso l’errore commesso. Ad esempio, supponiamo di dover approssimare sin(0.1) a meno di un errore assoluto non pi`
u grande di 10−5 . Per
fare ci`o, possiamo utilizzare il polinomio di Taylor di sin(x) centrato in x0 = 0. Per il teorema
di Taylor, possiamo scrivere:
sin(x) = Tn (x) + Rn (x),
dove
Rn (x) =
sin(n+1) (ξx ) n+1
x
.
(n + 1)!
Approssimando sin(0.1) con Tn (0.1), compiamo un errore assoluto pari a:
| sin(0.1) − Tn (0.1)| = |Rn (0.1)|.
Per ottenere l’approssimazione desiderata `e, quindi, sufficiente scegliere n abbastanza grande,
tale che:
|Rn (0.1)| ≤ 10−5 .
Le derivate di sin(x) sono funzioni trigonometriche della forma ± sin(x) o ± cos(x), tutte limitate
in valore assoluto da 1. Dunque, si ha:
|Rn (0.1)| ≤
(0.1)n+1
,
(n + 1)!
per ogni n ed indipendentemente dal punto ξx (che, ricordiamo, `e sconosciuto). Non ci resta che
cercare il pi`
u piccolo intero naturale n per cui si ha:
(0.1)n+1
≤ 10−5 .
(n + 1)!
La tabella:
n
(0.1)n+1 /(n + 1)!
1
1/200 = 5.0 × 10−3
2
1/6000 ≈ 1.6 × 10−4
3
1/240000 ≈ 4.6 × 10−6
mostra che il valore cercato `e n = 3. Essendo:
T3 (x) = x −
x3
,
6
concludiamo che:
1
1
−
≈ 0.09983
10 6000
approssima sin(0.1) con un errore assoluto inferiore a 10−5 .
Seguendo il ragionamento appena esposto, approssimare:
T3 (0.1) =
1. sin(0.5) e sin(1.5) con un errore assoluto non pi`
u grande di 10−5 ,
2. cos(0.1) con un errore assoluto non pi`
u grande di 10−15 ,
√
3. (?) e con un errore assoluto non pi`
u grande di 10−6 .
Esempio 2. In modo simile a quanto visto nell’esempio 1, il polinomio di Taylor pu`o essere
usato per approssimare numericamente il valore di un integrale definito. Supponiamo di dover
calcolare:
Z 1
sin(x)
dx ,
x
0
a meno di un errore assoluto non piu’ grande di 10−4 . Per il teorema di Taylor:
sin(x) = Tn (x) + Rn (x) .
Dividendo per x si ha:
Tn (x) Rn (x)
sin(x)
=
+
.
x
x
x
Integrando ambo i membri fra 0 ed 1:
Z 1
Z 1
Z 1
sin(x)
Tn (x)
Rn (x)
dx =
dx +
dx .
x
x
x
0
0
0
Dunque, l’errore assoluto che compiamo nell’approssimare
Z
0
1
sin(x)
dx −
x
1
Z
0
R1
0
sin(x)
x
dx con
R1
0
Tn (x)
x
dx `e pari a:
Z
Tn (x) 1 Rn (x) dx = dx .
x
x
0
Dobbiamo stimare questo errore assoluto. Prima osserviamo che:
Z 1
Z 1
Rn (x) R
(x)
n
dx ≤
x dx .
x
0
0
Poi, essendo:
Rn (x) =
sin(n+1) (ξx ) n+1
x
, ∀ x ∈ (0, 1) ,
(n + 1)!
con | sin(n+1) (ξx )| ≤ 1 (vedi esempio 1), abbiamo che:
Rn (x) xn xn
≤
=
x (n + 1)! (n + 1)! .
Dunque, la nostra stima dell’errore assoluto `e:
Z
0
1
Z 1
1
Rn (x) xn
xn+1
1
dx ≤
dx =
=
x
(n + 1) (n + 1)! 0 (n + 1) (n + 1)!
0 (n + 1)!
La tabella:
n
1/((n + 1) (n + 1)!)
1
1/4 = 2.5 × 10−1
2
1/18 ≈ 5.5 × 10−2
3
1/96 ≈ 1.0 × 10−2
4
1/600 ≈ 1.6 × 10−3
5
1/4320 ≈ 2.3 × 10−4
6
1/35280 ≈ 2.8 × 10−5
mostra che `e sufficiente prendere n = 6 per ottenere l’approssimazione richiesta. Essendo:
T6 (x) = x −
x5
x3
+
,
6
120
concludiamo che:
Z
0
1
T6 (x)
dx =
x
1
Z
1−
0
x2
x4
1
1
+
dx = 1 −
+
≈ 0.9461
6
120
18 600
approssima:
1
Z
0
sin(x)
x
10−4 .
con un errore assoluto inferiore a
Seguendo il ragionamento appena esposto:
1. (?) approssimare:
Z
0
1
1 − cos(x)
dx ,
x2
con un errore assoluto non pi`
u grande di 10−5 ,
2. (?) approssimare:
Z
1
2
e−x dx ,
0
con un errore assoluto non pi`
u grande di 10−5 .
Esercizio 2. Utilizzando la definizione di ordine di convergenza, dimostrare che il metodo di
Newton applicato alla funzione:
f (x) = x2 − 2x + 1
converge alla radice α = 1 con ordine di convergenza 1, per ogni x(0) ∈ R. A cosa `e dovuta la
lentezza nella convergenza?
Esercizio 3. Facendo uso dei risultati sull’ordine di convergenza delle iterazioni di punto fisso,
dimostrare che il metodo di Newton applicato alla funzione:
f (x) = sin(x)
converge alla radice α = 0 con ordine di convergenza 3, per x(0) sufficientemente vicino ad α.
[Suggerimento: si ricordi che il metodo di Newton si pu`o interpretare come metodo di punto
fisso per un’opportuna funzione iteratrice φ.]
Esercizio 4. (?) Sia sign(x) la funzione segno, cos`ı definita:


se x > 0
 1

sign(x) =
0
se x = 0 .



−1 se x < 0
Studiare il comportamento delle iterate del metodo di Newton, partendo da un valori di x(0) ≈ 0,
per ognuna delle seguenti funzioni:
p
(i) f (x) = sign(x) |x| ,
√
3
(ii) f (x) = sign(x) x2 ,
p
(iii) f (x) = sign(x) 3 |x| .
Giustificare i comportamenti osservati.
Esercizio 5. Implementare, sotto forma di function MATLAB, i seguenti metodi:
(i) metodo delle successive bisezioni,
(ii) metodo della falsa posizione,
(iii) metodo di Newton,
(iv) metodo delle corde (o della direzione costante):
x(k+1) = x(k) −
f (x(k) )
(con m fissato) ,
m
(v) metodo delle secanti:
x(k+1) = x(k) − f (x(k) )
x(k) − x(k−1)
,
f (x(k) ) − f (x(k−1) )
(vi) metodo Quasi-Newton:
d(k) =
f (x(k) + h) − f (x(k) )
(con h fissato) ,
h
x(k+1) = x(k) −
f (x(k) )
.
d(k)
Esercizio 6. Applicare i metodi dell’esercizio 5 alle seguenti equazioni:
1. x3 − 2x − 5 = 0 (l’equazione sulla quale Newton illustr`o il suo metodo),
2. x − e−x = 0 .
Per ciascuna equazione, confrontare le performance dei vari metodi a parit`a di qualit`a della
stima iniziale e valutare sperimentalmente l’ordine di convergenza.
Esercizio 7. Il metodo di Newton pu`o richiedere che il punto iniziale sia molto vicino alla
soluzione affinch`e si abbia convergenza. Verificarlo mediante il seguente esercizio. Sia
f (x) = arctan(c(x − 1)) +
sin(c2 x)
,
c
con c = 1/10. Questa funzione possiede un unico zero α in R. Utilizzando il metodo di
Newton, calcolare le prime 10 cifre significative di α. Inoltre, stimare sperimentalmente gli
estremi del pi`
u grande intorno [a, b] di α per cui si ha che le iterazioni x(k) convergono ad α
ogniqualvolta x(0) ∈ [a, b]. Spiegare il motivo di una tale sensibilit`a alla scelta del punto iniziale.
[Suggerimento: aiutarsi mediante un grafico di f nell’intervallo [0, 2].]
Esercizio 8. Per ciascuno dei metodi dell’esercizio 5, valutare l’efficienza E come rapporto tra
l’ordine p ed il numero k di nuove valutazioni di funzioni richiesto ad ogni iterazione:
E=
p
.
k
Quale metodo risulta pi`
u efficiente?
Esercizio 9. Si considerino il metodo di Newton e la seguente sua variante (metodo di Newton
modificato):
f (x(k) )
x(k+1) = x(k) − 2 0 (k) .
f (x )
Per entrambi i metodi, determinare l’ordine di convergenza alla radice α = 1 dell’equazione
x3 − x2 − x + 1 = 0. Verificare il risultato ottenuto mediante esperimenti al calcolatore.
Esercizio 10. Approssimare i primi tre zeri strettamente positivi della funzione:
f (x) = tan(x) − x
mediante i metodi di Newton e delle successive bisezioni. Si trovano, rispettivamente, negli
intervalli [4, 5], [7, 8] e [10.5, 11.5].
3
Esercizio 11. Si considerino le iterazioni x(k+1) = 2 − (1 + c)x(k) + c x(k) .
1. per quali valori di c le iterazioni convergono a α = 1 se x(0) `e sufficientemente vicino a α?
2. c’`e qualche valore di c per cui la convergenza `e quadratica?
Esercizio 12. Per ognuna delle seguenti iterazioni, stabilire se si ha convergenza al punto fisso
α indicato (per x(0) sufficientemente vicino a α). Nel caso si ha convergenza, stabilire l’ordine
di convergenza; se la convergenza e’ lineare, trovare la costante asintotica dell’errore.
1. x(k+1) = −16 + 6x(k) +
12
, α = 2.
x(k)
2
1
2. x(k+1) = x(k) +
2 , α = 31/3 .
(k)
3
x
3. x(k+1) =
12
, α = 3.
1 + x(k)
Esercizio 13. Sperimentare con le function MATLAB fzero e roots, utilizzando le equazioni
dell’esercizio 6. Consultare la documentazione html di MATLAB mediante il comando:
>> doc fzero
per scoprire l’algoritmo utilizzato dalla function fzero (vedere alla voce Algorithm). Per una
descrizione dell’algoritmo di inverse quadratic interpolation, consultare Wikipedia o il testo di
Cleve Moler (http://www.mathworks.com/moler/chapters.html).
Esercizio 14. Risolvere gli esercizi 2.1, 2.5, 2.6, 2.7, 2.10, 2.11, 2.15, 2.16, 2.17, 2.18 (pagine
77-79) dal testo “Calcolo Scientifico” di A. Quarteroni, F. Saleri e P. Gervasio. [Suggerimento
per l’esercizio 2.15: Se α `e zero di f di molteplicit`a m, allora f (x) = g(x)(x−α)m , con g(α) 6= 0.]