Beruflich Dokumente
Kultur Dokumente
I. V. Piacentini, R. Ruccia
pN (x) = x +
i=1
ai xN i = xN + a1 xN 1 + a2 xN 2 + . . . + aN 1 x + aN , (1)
e che si vogliano trovare le N radici di questo polinomio. Si conosce solamente un teorema che fornisce unapprossimazione grossolana su dove si trovano le radici di pN (x). Il teorema in questione (Regola di Cauchy) ci dice che tutte le radici di pN (x) sono contenute in un cerchio del piano complesso di centro 0 e raggio 1 + r C = {z C : |z | 1 + r}, dove r = max|ai |, per i = 1, 2, . . . , N .
Nel caso in cui volessimo avere informazioni pi` u dettagliate sulle radici di un polinomio di grado N , possiamo usare tecniche del calcolo numerico. Una di queste consiste nellapplicare lalgoritmo di Horner con il metodo di NewtonRaphson. Osserviamo innanzitutto che per calcolare pN (x) nella forma scritta sopra sono ` N + 1, e 2N 2 moltinecessarie N addizioni in quanto il numero degli addendi e plicazioni. Infatti per calcolare aN sono necessarie 0 moltiplicazioni, per calcolare ` necessaria 1 moltiplicazione, per calcolare aN 2 x2 sono necessarie 2 aN 1 x e moltiplicazioni in quanto aN 2 x2 = aN 2 xx; sfruttando il calcolo di x2 abbiamo che per calcolare aN 3 x3 sono necessarie 2 moltiplicazioni, essendo aN 3 x3 = aN 3 xx2 , ragionando in modo analogo possiamo affermare che sono necessarie 2 moltiplicazioni per calcolare ogni termine aN i xi , per i = 2, 3, . . . , N 1. In` necessaria 1 moltiplicazione. Quindi in totale il ne per calcolare xN = xN 1 x e ` 2 + 2(N 2), ovnumero delle moltiplicazioni necessarie per calcolare pN (x) e vero 2N 2, come gi` a detto. Possiamo ridurre questa quantit` a usando la seguente riscrittura: aN + aN 1 x + aN 2 x2 + . . . + a2 xN 2 + a1 xN 1 + xN aN + x(aN 1 + aN 2 x + . . . + a2 xN 3 + a1 xN 2 + xN 1 ) aN + x(aN 1 + x(aN 2 + . . . + a2 xN 4 + a1 xN 3 + xN 2 )) aN + x(aN 1 + x(aN 2 + x(aN 3 + . . . + x(a1 + x) ))).
pN (x)
= = = =
Come si vede dallultimo passaggio, per calcolare pN (x) bastano N addizioni ed N 1 moltiplicazioni. ` il seguente: Lalgoritmo di Horner e P0 = 1 Pk = Pk1 x + ak , per k = 1, 2, . . . , N. dove Pk = pk (x). Esempio 1. Calcoliamo pN (x) per N = 3: p3 (x) = x3 + a1 x2 + a2 x + a3 = x(x2 + a1 x + a2 ) + a3 = a3 + x(a2 + x(a1 + x)).
P0 = 1 P1 = P0 x + a1 = x + a1 P2 = P1 x + a2 = (x + a1 )x + a2 P3 = P2 x + a3 = (x(a1 + x) + a2 )x + a3 . Abbiamo ritrovato la quantit` a calcolata nellEsempio 1. Per calcolare la derivata prima di pN (x) in un punto ssato introduciamo un polinomio quoziente di grado N 1: pN (x) pN (xi ) , x xi ` un punto generico. Tale polinomio lo possiamo scrivere come: dove xi e qN 1 (x) = qN 1 (x) = b0 xN 1 + b1 xN 2 + b2 xN 3 + . . . + bN 2 x + bN 1 , da cui possiamo ricavare pN (x) come pN (x) = (x xi )qN 1 (x) + pN (xi ) = (x xi )(b0 xN 1 + b1 xN 2 + b2 xN 3 + . . . + bN 2 x + bN 1 ) + pN (xi ) = b0 xN + xN 1 (b1 b0 xi ) + xN 2 (b2 b1 xi ) + . . . + x2 (bN 2 bN 3 xi ) + + x(bN 1 bN 2 xi ) + pN (xi ) bN 1 xi . ` dato dalla (1), otteniamo due polinomi della stessa forma Ricordando che pN (x) e e dello stesso grado, ed essendo il primo membro uguale al secondo membro i loro coefcienti sono uguali, quindi: b0 b1 xi = a1 b1 b2 b1 xi = a2 b2 bN 1 bN 2 xi = aN 1 bN 1 = = = = aN 1 + bN 2 xi . 1 a1 + xi a2 + b1 xi
Quindi in generale possiamo calcolare i coefcienti bi di qN 1 (x) con la seguente formula ricorsiva: b0 = 1 bk = bk1 xi + ak , per k = 1, 2, . . . , N 1. Notare la similitudine con lalgoritmo di Horner. Adesso osserviamo che se facciamo tendere x ad xi allora otteniamo qN 1 (xi ) = lim qN 1 (x) = lim
xxi x xi
e dato che conosciamo i coefcienti bi possiamo calcolare pN (xi ) con lalgoritmo ` dato da di Horner, dove pN (xi ) e
N 1 2 3 pN (xi ) = qN 1 (xi ) = b0 xi + b1 xN + b2 xN + . . . + bN 2 xi + bN 1 . i i
Ricordiamo che pN (xi ) ci serve per poter applicare il metodo di Newton-Raphson. Notiamo che se scegliamo xi come una radice (o unapprossimazione di una ra` che il polinomio quoziente qN 1 (x) avr` dice) di pN (x), allora ci` o che otteniamo e a le stesse radici di pN (x), tranne la radice xi . Possiamo allora utilizzare il seguente algoritmo per trovare (in modo approssimato) gli zeri di un polinomio pN (x), as(0) sumendo di avere delle approssimazioni iniziali xi per le N radici del polinomio pN (x), da usare come punti di innesco per lalgoritmo di Newton-Raphson. 1. Trovare una radice x di pN (x) mediante Newton-Raphson, usando un punto (0) di innesco xi . 2. Costruire il polinomio quoziente qN 1 (x) nel seguente modo qN 1 (x) = pN (x) pN ( x) . xx
Tale polinomio ha le stesse radici di pN (x) tranne x . 3. Porre pN 1 (x) = qN 1 (x) e ripetere la procedura dal punto 1 utilizzando un nuovo punto di innesco. Osservare che il grado del polinomio di partenza ` sceso di uno. e Osserviamo che ad ogni iterazione il grado N del polinomio di partenza scende di 1. Lalgoritmo termina quando N = 2, ovvero quando otteniamo un polinomio di grado 2, le cui radici possono essere trovate facilmente. Esempio 3. Consideriamo un polinomio di grado 4, p4 (x), e supponiamo di aver applicato il metodo di Newton-Raphson e di aver trovato che unapprossimazione `x per una sua radice e = 8. Allora il polinomio quoziente che costruiamo sar` a q3 ( x ) = p4 (x) p4 (8) , x8
esso ha le stesse radici di p4 (x), tranne 8. Poniamo ora p3 (x) = q3 (x) e calcoliamo una sua radice (approssimata) applicando di nuovo il metodo di Newton-Raphson, utilizzando un nuovo punto di innesco. Troviamo unaltra radice del polinomio di partenza, sia essa x . Costruiamo il polinomio quoziente di p3 (x) come q2 ( x ) = p3 (x) p3 (x ) . xx
Poniamo ora p2 (x) = q2 (x). Tale polinomio ha grado due e le sue radici possono essere calcolate facilmente. 4
Purtroppo le radici xi calcolare non sono esatte, ma determinate con una certa tolleranza; inoltre non possiamo ignorare gli errori di arrotondamento commessi nel calcolo dei coefcienti dei successivi polinomi ridotti qN 1 (x), qN 2 (x), . . . ,. Pertanto, esiste il rischio (reale) che questi errori allontanino sempre di pi` u gli zeri dei successivi polinomi ridotti da quelli del polinomio iniziale pN (x). Lanalisi della propagazione degli errori nei polinomi ridotti suggerisce di seguire, quando possibile, la strategia seguente: (i) determinare le radici in ordine crescente (in modulo): |x1 | |x2 | |x3 | . . . ; (ii) calcolare ogni radice con la massima precisione raggiungibile. In ogni caso, dopo aver calcolato le approssimazione delle radici xi con la tecnica dei successivi polinomi ridotti, conviene prendere i valori cos` trovati come approssimazione iniziali e procedere al lor rafnamento applicando il metodo scelto ` sufciente. al polinomio iniziale pN (x); di solito una sola iterazione del metodo e