Upload
domien
View
224
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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