25
Facolt`a di Ingegneria - Laurea Triennale in Ingegneria Meccanica Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Universit` a degli Studi della Basilicata, Potenza Facolt` a di Ingegneria Corso di Laurea in Ingegneria Meccanica Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

  • Upload
    domien

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Corso di Calcolo Numerico

Dott.ssa M.C. De Bonis

Universita degli Studi della Basilicata, Potenza

Facolta di Ingegneria

Corso di Laurea in Ingegneria Meccanica

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 2: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Risoluzione di Equazioni AlgebricheLe equazioni algebriche sono equazioni del tipo

P (x) = 0

dove P e un polinomio di grado n cioe

P (x) = a1xn + a2x

n−1 + . . . + anx + an+1, a1 6= 0, ak ∈ R

Le seguenti proprieta sono ben note:

• Un polinomio di grado n ha esattamente n radici, chepossono essere reali o complesse, ciascuna contata conla sua moltiplicita (Teorema Fondamentaledell’Algebra);

• Se un polinomio P ha una radice complessa α = a + ib

allora la sua coniugata α = a− ib e anche radice di P ;

• Per n ≥ 5 non esiste alcuna forma esplicita per le radicidi P ;

• Le radici di un polinomio dipendono con continuita daicoefficienti, cioe se α e una radice di P alloraα = α(a1, a2, . . . , an+1) e una funzione continua dellevariabili a1, a2, . . . , an+1.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 3: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Per determinare un’approssimazione delle radici reali diun’equazione lineare e possibile utilizzare i metodi visti perle equazioni non lineari, dopo aver individuato per ciascunaradice reale un intervallo che la contenga.

Quando n e molto grande il problema di individuare taliintervalli puo risultare non immediato.

In generale occorre effettuare delle operazioni preliminari:

• localizzazione delle radici: serve a determinare uncerchio del piano coplesso che contenga tutte le radici(sia reali che complesse);

• numerazione delle radici: consiste nel determinare ilnumero delle radici reali;

A tale scopo sono utili i seguenti risultati.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 4: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Teorema di Cauchy Tutti gli zeri di

P (x) = a1xn + a2x

n−1 + . . . + anx + an+1

sono inclusi nel cerchio del piano di centro l’origine e raggio

r = 1 + max2≤k≤n+1

∣∣∣∣ak

a1

∣∣∣∣ .

Dunque, in particolare le radici reali si trovanonell’intervallo [−r, r].

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 5: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Regola dei segni di Cartesio

SiaP (x) = a1x

n + a2xn−1 + . . . + anx + an+1.

Consideriamo l’insieme ordinato dei coefficienti

A = {a1, a2, . . . , an, an+1} .

Se denotiamo con ν il numero di variazioni di segnonell’insieme A (gli eventuali zeri non si contano) si ha che ilnumero k delle radici reali positive di P soddisfa le seguentiproprieta

k ≤ ν e ν − k e un numero pari.

Se applichiamo la regola di Cartesio al polinomio

Q(x) = P (−x)

otteniamo il numero delle radici reali positive di Q e quindiil numero delle radici reali negative di P .

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 6: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Applicando i precedenti risultati e disegnando il grafico diP sull’intervallo [−r, r] si stabilisce con certezza il numerodelle radici reali di P e si determinano tanti intervalliniquante sono le radici di P .

Si puo cosı procedere al calcolo approssimato delle radicireali di P utilizzando i metodi visti per le equazioni nonlineari.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 7: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Esempio 1 Sia

P (x) = x6 − x− 1.

Poiche

max2≤k≤n+1

∣∣∣∣ak

a1

∣∣∣∣ = 1,

applicando il Teorema di Cauchy, tutte le radici reali di P

appartengono all’intervallo [−2, 2].

PoicheA = {1, 0, 0, 0, 0,−1,−1},

applicando la regola di Cartesio si ha ν = 1.

Pertanto k deve essere necessariamente 1, cioe P ha unasola radice positiva.

Infine, posto

Q(x) := P (−x) = x6 + x− 1,

si haA = {1, 0, 0, 0, 0, 1,−1}

e, applicando ancora la regola di Cartesio, otteniamo anchein questo caso ν = 1, cioe il numero delle radici negative diP e k = 1.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 8: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Possiamo concludere che

P (x) = x6 − x− 1

ha due radici reali e due coppie di radici complesseconiugate appartenenti alla circonferenza del pianocomplesso di centro 0 e raggio 2.

In particolare:

• la radice positiva appartiene all’intervallo [0, 2];

• la radice negativa appartiene all’intervallo [−2, 0].

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−10

0

10

20

30

40

50

60

70

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 9: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Esempio 2 Sia

P (x) = x9 + 2x8 − 3x7 + x6 + x4 − 2x2 + x− 1.

Poiche

max2≤k≤n+1

∣∣∣∣ak

a1

∣∣∣∣ = 3,

applicando il Teorema di Cauchy, tutte le radici reali di P

appartengono all’intervallo [−4, 4].

PoicheA = {1, 2,−3, 1, 0, 1, 0,−2, 1,−1},

applicando la regola di Cartesio si ha ν = 5.

Pertanto k puo 1,3 0 5, cioe P ha 1, 3 o 5 radici positive.

Infine, posto

Q(x) := P (−x) = −x9 + 2x8 + 3x7 + x6 + x4 − 2x2 − x− 1,

si haA = {−1, 2, 3, 1, 0, 1, 0,−2,−1,−1}

e, applicando ancora la regola di Cartesio, otteniamo ν = 2,

cioe il numero delle radici negative di P e k = 2.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 10: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Possiamo concludere che tutte le radici di

P (x) = x9 + 2x8 − 3x7 + x6 + x4 − 2x2 + x− 1

appartengono alla circonferenza del piano complesso dicentro 0 e raggio 4.

In particolare, i seguenti casi sono possibili:

• P ha 2 radici negative appartenenti all’intervallo[−4, 0], 5 radici positive appartenenti all’intervallo [0, 4]e una coppia di radici complesse coniugate;

• P ha 2 radici negative appartenenti all’intervallo[−4, 0], 3 radici positive appartenenti all’intervallo [0, 4]e due coppie di radici complesse coniugate;

• P ha 2 radici negative appartenenti all’intervallo[−4, 0], 1 radice positiva appartenenti all’intervallo[0, 4] e tre coppie di radici complesse coniugate.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 11: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

−4 −3 −2 −1 0 1 2 3 4−1

−0.5

0

0.5

1

1.5

2

2.5

3

3.5x 10

5

Zoommando si puo vedere che P ha 3 radici reali di cui:

• 1 radice negativa appartenente all’intervallo[− 7

2 ,−3];

• 1 radice negativa appartenente all’intervallo[−1,− 1

2

];

• 1 radice positiva appartenente all’intervallo[12 , 3

2

];

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 12: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Esercizi

1. x4 − x3 − x2 + x− 1 = 0;

2. x10 − 2x + 1 = 0;

3. 2x4 + 3x2 + x− 1 = 0;

4. x12 − 32x11 + 1

2x10 − 12x4 − 2x3 + x− 1 = 0

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 13: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

I metodi di Bisezione e Newton per il calcolo approssimatodelle radici di una equazione algebrica

P (x) = 0,

richiedono la valutazione del polinomio P e della suaderivata prima P ′ nelle successive approssimazionix0, x1, . . . , xn, . . . della radice x.

Pertanto, descriviamo un algoritmo che consente dieffettuare tali valutazioni in modo efficiente.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 14: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Algoritmo di Horner

Consideriamo il polinomio di grado n a coefficienti reali

P (x) = a1xn + a2x

n−1 + . . . + anx + an+1.

Vogliamo costruire l’algoritmo piu efficiente per valutareil polinomio P in un punto fissato x.

L’algoritmo piu immediato e il seguente

. . .

sum=an+1;

for i=0:n-1

sum=sum+an−ixi+1;

end

. . .

Poiche xi = x · x · · ·x︸ ︷︷ ︸i− 1 volte

an−ixi+1 “costa” i + 1 operazioni e, quindi, il precedente

algoritmo “costa”

1 + 2 + · · ·+ i + · · ·+ n =n(n + 1)

2∼ n2

2operazioni.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 15: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Un immediato miglioramento in termini di costocomputazionale si ottiene “accumulando” la potenza di x,cioe

. . .

sum=an+1;

prod=1;

for i=0:n-1

prod=prod*x;

sum=sum+an−i∗prod;end

. . .

Il precedente algoritmo esegue 2 operazioni moltiplicativead ogni passo e quindi il costo computazionale complessivoe 2n.

Vediamo ora che esiste un algoritmo, detto Algoritmo diHorner, che permette di valutare P in un punto x con uncosto computazionale pari ad n.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 16: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Per semplificare la descrizione dell’algoritmo, supponiamoche P sia un polinomio di grado 3:

P (x) = a1x3 + a2x

2 + a3x + a4.

Mettendo in evidenza la x otteniamo:

P (x) = a4 + x(a3 + a2x + a1x2);

mettendo ancora in evidenza la x otteniamo

P (x) = a4 + x(a3 + x(a2 + a1x)).

Infine, ponendo

b1 := a1

b2 := b1x + a2

b3 := b2x + a3

b4 := b3x + a4

si haP (x) = b4

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 17: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

In generale, per valutare il polinomio

P (x) = a1xn + a2x

n−1 + . . . + anx + an+1

in un punto ξ, ponendo

b1 := a1

bi = bi−1ξ + ai, i = 2, . . . , n + 1,

si haP (ξ) = bn+1.

L’algoritmo e il seguente

. . .

sum=a1;

for i=2:n+1

sum=sum*x+ai;

end

. . .

Esso esegue 1 operazione moltiplicativa ad ogni passo equindi il costo computazionale complessivo e n.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 18: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Vediamo ora che, contestualmente al calcolo di P (ξ) epossibile calcolare anche P ′(ξ).

Si puo dimostrare facilmente che

P (x) = Q(x)(x− ξ) + P (ξ),

dove

Q(x) = b1xn−1 + b2x

n−2 + . . . + bn−1x + bn.

Ricordando la formula di Taylor

P (x) = P (ξ) + P ′(ξ)(x− ξ) +(x− ξ)2

2!P ′′(ξ)

+ · · ·+ (x− ξ)n

n!P (n)(ξ),

possiamo scrivere

Q(x) =P (x)− P (ξ)

x− ξ

= P ′(ξ) +(x− ξ)

2!P ′′(ξ) + · · ·+ (x− ξ)n−1

n!P (n)(ξ)

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 19: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Facendo il limite per x → ξ otteniamo

Q(ξ) = limx→ξ

P (x)− P (ξ)x− ξ

= P ′(ξ)

Dunque per calcolare P ′(ξ) basta calcolare Q(ξ).

Lo possiamo fare utilizzando ancora l’algoritmo di Horner.

Infatti, ricordando la definizione di Q(x)

Q(x) = b1xn−1 + b2x

n−2 + . . . + bn−1x + bn,

e ponendo

c1 := b1

ci = ci−1ξ + bi, i = 2, . . . , n,

si haP ′(ξ) = Q(ξ) = cn.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 20: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

L’algoritmo per calcolare P (ξ) e P ′(ξ) e dunque

. . .

p=a1;

dp=p;

for i=2:n

p=p*x+ai;

dp=dp*x+p;

end

p=p*x+an+1;. . .

Il suo costo computazionale complessivo e 2n.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 21: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Problema del calcolo simultaneo di tutti gli zeri diun polinomio

Esistono diversi approcci:

• Un approccio potrebbe essere la cosiddetta“deflazione”:

Si calcola una radice x1 e quindi si costruisce ilquoziente P1(x) = P (x)

x−x1.

P1 ha tutte le radici di p tranne x1.

Si calcola allora la radice x2 di P1 e si costruisce ilquoziente P2(x) = P1(x)

x−x2e cosı via.

Difetti: Anche ammesso di determinare un criterioper scegliere una particolare radice ad ogni passo (adesempio quella di massimo modulo), la procedurafunziona realisticamente per le prime due radici.Infatti, ad ogni passo, il metodo numerico utilizzatonon calcola esattamente la radice xi ma una suaapprossimazione xi e, quindi, anziche Pi si avra Pi.Ad ogni passo l’errore di arrotondamento si accumulain modo inaccettabile fornendo risultati assolutamentefasulli.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 22: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

• Si puo ridurre il calcolo degli zeri di P al calcolo degliautovalori di una particolare matrice detta matricecompanion di P , che ha P come polinomiocaratteristico.

E quello che fa la function roots del Matlab.

Difetti: Come segnalato anche nella documentazionedella function roots, il metodo e in grado di calcolarecon precisione di macchina gli autovalori della matricecompanion ma cio non implica che tali quantitacorrispondono ad una soddisfacente approssimazionedegli zeri di P . Cio dipende dal fatto che i dueproblemi (calcolo degli autovalori e calcolo degli zeri)hanno un differente condizionamento.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 23: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Metodo dell’Approssimazione simultanea

SiaP (x) = a1x

n + a2xn−1 + . . . + anx + an+1

e siano {x1, x2, . . . , xn} le n radici di P (complesse o reali).

Ovviamente, P puo essere scritto anche nella seguenteforma

P (x) = a1

n∏

i=1

(x− xi).

Possiamo riscrivere la precedente espressione come segue

P (x) = a1(x− xk)n∏

i=1i 6=k

(x− xi)

da cui si deduce l’identita

xk = x− P (x)

a1

n∏i=1i6=k

(x− xi)

, k = 1, 2, . . . , n.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 24: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

La precedente identita ci suggerisce di costruire il seguenteprocedimento iterativo

x(j+1)k = x

(j)k − P (x(j)

k )

a1

n∏i=1i 6=k

(x(j)k − xj

i )

, k = 1, 2, . . . , n.

j = 0, 1, 2, . . .

Tale procedura necessita di n valori iniziali

x(0)1 , x

(0)2 , . . . , x(0)

n

La scelta di tali valori e arbitraria purche

• si scelgano valori tutti distinti

• almeno uno dei valori sia scelto complesso, se e notoche il polinomio ammette radici complesse.

Sotto tali ipotesi si dimostra che il metodo econvergente ed ha ordine 2 se tutte le radici sonodistinte.

Nel caso di radici multiple diventa di ordine 1.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis

Page 25: Corso di Calcolo Numerico - old · I metodi di Bisezione e Newton per il calcolo approssimato delle radici di una equazione algebrica P (x) = 0; ... Vediamo ora che esiste un algoritmo,

Facolta di Ingegneria - Laurea Triennale in Ingegneria Meccanica

Osservazione: In pratica costruiamo n formule iterative(ciascuna equivalente ad un metodo di Newton), ma, percalcolare la j + 1-esima approssimazione della radice xk

utilizziamo le approssimazioni di tutte le radici al passo j.

Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis