Calcolo Numerico Laurea di base in Ingegneria Elettronica, Ingegneria delle Comunicazioni Prof.ssa Laura Pezza (A.A. 2016-2017) IV Lezione del 06.03.2017 http://www.dmmm.uniroma1.it/ laura.pezza 1
Equazioni non lineari Il problema: determinare le soluzioni o radici, dell equazione non lineare f(x) = 0 cioè quei valori ξ tali che f(ξ) = 0 (zeri della funzione ). Idea base dei metodi numerici: costruire una successione {x k } tale che lim x k = ξ k Si assume come approssimazione di ξ il valore x N, per un certo indice N, finito, opportunamente individuato. Generalmente per costruire {x k } si usano tecniche ricorsive. Una possibilità : x k = ϕ(x k 1 ), k 1, x 0 dato cioè il metodo del punto unito. 2
I passi per risolvere numericamente il problema I. Separazione delle radici: per gestire la legge che genera la successione {x n } occorre sapere (in maniera più o meno accurata) la dislocazione degli zeri di f II. Costruzione della successione {x n }: si tratta di scegliere la legge per generare la successione in modo da garantire la convergenza a ξ; in pratica si vorrebbe anche una convergenza veloce III. Scelta dei criteri d arresto: poichè l algoritmo iterativo è infinito, si deve troncarlo, opportunamente. 3
Separazione delle radici Ipotesi di base: l equazione f(x) = 0 ha una (almeno) soluzione ξ separare una radice= determinare un intervallo [a,b] tale che: - f C[a, b] - ξ [a, b] - ξ è l unica radice dell equazione in [a, b] 4
Determinare [a, b] per via grafica a) si individuano gli intervalli in cui il grafico della curva y = f(x) attraversa l asse delle x b) si pone f(x) = 0 nella forma equivalente f 1 (x) = f 2 (x), si individuano i punti di intersezione delle curve y = f 1 (x) e y = f 2 (x) e di conseguenza [a, b]. per tabulazione della funzione: [a, b] è tale che f(a)f(b) < 0 (Teorema degli zeri ) purchè ξ abbia molteplicità dispari MA... in ogni caso è necessaria una analisi qualitativa dell equazione (per decidere in quali intervalli eseguire i grafici o la tabulazione). 5
Separazione delle radici: esempio 1 f(x) = x 2 e x 1 = 0 f 1 (x) = e x = x 2 1 = f 2 (x). Analisi preliminare: e x > 0, x possono esistere radici solo per x > 1 f 1 (1) = e > f 2 (1) = 0, ma l esponenziale tende all infinito più velocemente di ogni potenza l equazione non ha radici positive 6
Per x < 0: f(0) < 0, lim f(x) = + x f (x) = 2x e x < 0 (f monotona) esiste una sola radice negativa 3 2.5 2 y=x 2 1 y=e x 1.5 1 0.5 0 0.5 1 2 1.5 1 0.5 0 0.5 1 7
Separazione delle radici: esempio 2 f(x) = x 3 4 sin x = 0 Analisi preliminare: x = 0 è una radice f( x) = f(x), funzione dispari: se ξ > 0 è uno zero ξ è uno zero basta studiare l equazione per x > 0 sin x 1 f(x) > 0, x > 3 4 1.587 > π/2 1.571 in (0, 3 4] le funzioni x 3 e sin x sono entrambe monotone c è al più una sola radice positiva 8
Se si vuole restringere l intervallo si può procedere per tabulazione f(1.587).55e 3 > 0 (lo zero è molto prossimo a 1.587) f(π/2).12 < 0 ξ [π/2, 3 4] Si osservi che quando si parla di separare gli zeri di f non si richiede che l intervallo sia piccolo ; tuttavia in molte circostanze è opportuno o necessario affinare l intervallo di separazione. 9
Separazione delle radici: esempio 3 f(x) = cos x xe x = 0 g(x) = cos x = xe x = h(x) Analisi preliminare: cos x 1 eventuali radici si hanno per x tale che xe x 1 Per x > 0 h(x) > 0 e crescente; h(x) > 1, x > 1 possono esistere radici positive solo in [0, 1]; se esiste una radice è unica perchè g(x) è decrescente in [0, 1] Per tabulazione: f(0) = 1 > 0, f(1) = 2.18 < 0! ξ [0, 1] 10
Per x < 0 h(x) < 0 e h(x) 0, x (e x è un infinitesimo di ordine superiore alla potenza) esistono infinite radici negative. Le radici devono cadere negli intervalli in cui cos x < 0 ovvero in [ 3π/2, π/2], [ 7π/2, 5π/2], [ 11π/2, 9π/2],... 3 2.5 2 1.5 1 0.5 y=cos x 0 0.5 y=xe x 1 5 4 3 2 1 0 1 11
In particolare si deduce dal grafico (o per tabulazione)che ξ 1 [ π, π/2] ξ 2 [ 3π/2, π] ξ 3 [ 3π, 5π/2] ξ 4 [ 7π/2, 3π] Come si comportano le radici negative ξ j per j? Le radici ξ k per k crescente, che si allontanano dall origine, sono sempre più prossime ai punti di annullamento della funzione cos x. Si poteva prevedere tale comportamento senza eseguire il grafico? 12
Costruzione della successione: il metodo di bisezione Il metodo di bisezione o dicotomico si basa sul Teorema degli zeri. Ipotesi di applicabilità : i 1 E dato un intervallo, I = [a, b], di separazione della radice ξ di f(x) = 0 i 2 f(a)f(b) < 0. i 1 f C[a, b] e ξ è l unica radice in [a, b] i 2 ξ ha molteplicità dispari. 13
Step 1. Calcolare, x = (a + b)/2, (punto medio dell intervallo) Step 2. Se f(x ) 0 ( f(x ) = 0 x = ξ soluzione ), allora [a 1, b 1 ] = [x, b] se f(a)f(x ) > 0 [a, x ] se f(a)f(x ) < 0 I passi precedenti si applicano quindi di nuovo all intervallo [a 1, b 1 ] e poi iterativamente. 14
f(x) x 1 ξ x2 x a a 0 2 =a 1 b 2 b 1 =b 0 b 1 a 1 = b a 2, b 2 a 2 = b 1 a 1 2 = b a 2 2, 15
Il metodo costruisce quindi le successioni Proprietà delle successioni p 1 a k a k 1, b k b k 1, k p 2 p 3 a k ξ b k k b k a k = b a 2 k {a k }, {b k } (monotone, limitate) a 0 = a, b 0 = b {a k }, {b k }, k > 0 a k approssimazioni per difetto b k approssimazioni per eccesso 16
Convergenza del metodo di bisezione Errore di troncamento: e k = x k ξ e k = x k ξ < b k a k = b a 2 k e k+1 = 1 2 e k (asintoticamente) Ordine p = 1, costante asintotica C = 1 2 Ad ogni passo l errore viene dimezzato, = ad ogni passo si guadagna una cifra binaria per guadagnare una cifra decimale servono 3-4 iterazioni. 17
Stima del numero di iterate e k b a 2 k e k ε se (C.S.) b a 2 k ɛ k log(b a) log(ɛ) log 2 Condizione d arresto b k a k < ε, ε tolleranza prefissata. 18
Esempio f(x) = x 3 x 1, [a, b] = [1, 2] Stima delle iterate: ɛ = 10 8 : 2 k 10 8 k 26.6 a 26 = 1.3247179 5380116 < ξ < 1.3247179 6870232 = b 26 x = 1.32471796 125174, e 27 = 0.75e 08, f(x 27 ) = 0.17e 07 19
Esercizio Data l equazione f(x) = x 3/2 2 log(x 2 + 0.6) = 0 I. Separare le radici con un intervallo di ampiezza non superiore a 0.5 II.Stimare quante iterate sono sufficienti per ottenere un approssimazione alla 10 cifra decimale della radice maggiore con il metodo di bisezioni. I. f(x) = 0 f 1 (x) = x 3/2 = 2 log(x 2 + 0.6) = f 2 (x), x 0. f 1, f 2 entrambe crescenti, f 1 > 0, x > 0, f 2 (0) < 0 20
16 6 14 Caso a: la potenza si mantiene sempre aldi sopra del logaritmo 5 Caso b: se la potenza incontra il logaritmo in un punto, allora gli due zeri sono necessariamente due 12 4 10 3 8 2 6 1 4 2 0 0 1 2 0 0.5 1 1.5 2 2.5 3 f 1 è sempre sopra f 2 : non ci sono radici 2 0 0.5 1 1.5 2 2.5 3 f 1 incontra f 2 in un punto: allora ci sono necessariamente 2 radici Per tabulazione si individuano le variazioni di segno: f(0) = 2 log 0.6 > 0, f(1.5) 0.2 < 0, f(3) 0.7 > 0 quindi esiste una radice ξ 1 [0, 1.5] e una radice ξ 2 [1.5, 3] 21
Affinamento dell intervallo (ampiezza 0.5) - Radice ξ 1 : f(0) > 0, f(1) > 0 ξ 1 [1, 1.5] - Radice ξ 2 : applichiamo bisezioni (f(1.5) < 0, f(3) > 0) n a k ( ) b k (+) x f(x ) 0 1.5 3 2.25 -.09 1 2.25 3 2.625 0.23 Segue ξ 2 [2.25, 2.625] = [a 2, b 2 ] e b 2 a 2 = 0.375 < 0.5. II. Stima del numero di iterate b a 2 k 1 2 10 10 k log 2 log ( 2 0.375 10 10 ) k 32.8 22