Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INGEGNERIA INFORMATICA
13/03/2020
Seconda Lezione
ELISA FRANCOMANO
Dipartimento di INGEGNERIA
CONTATTI
ED. 6 – 3° PIANO – STANZA 2
• elisa.francomano@unipa.it
elisa.francomano@unipa.it
elisa.francomano@unipa.it
RIEPILOGO
• Il dover dare risposte a fenomeni reali comporta che i modelli descriventi siano di
sovente di grandi dimensioni (cioè facenti uso di un numero elevato di variabili,
parametri, ecc..) e che il metodo numerico individuato debba essere implementato e
risolto mediante l’ausilio del calcolatore
• Avvalendosi di un calcolatore si lavora con una aritmetica finita cha dà luogo ad ERRORI
• Si commettono errori rappresentando i dati del problema con un numero finito di cifre
ERRORE INERENTE
• Si commettono errori eseguendo le operazioni aritmetiche richieste dal processo di
calcolo con una aritmetica finita
ERRORE ALGORITMICO
FENOMENO
MODELLO MATEMATICO
METODO NUMERICO
ERRORE INERENTE
PROGRAMMA DI CALCOLO
17
RIEPILOGO
ESEMPIO
La successione
(1) (2)
19
Stabilita’ Numerica RIEPILOGO
n ALG. 1 ALG. 2
%PRIMO ALGORITMO
p1(1)=1; 1 1 1
for n=2:100
2 0.333 0.333
p1(n)=1/3*p1(n-1)
end … … …
18 7.7435 .10-3 8.8555.10-9
% SECONDO ALGORITMO
p2(1)=1;
p2(2)=1/3; … … …
for n=3:100
28 1.3114.10-13 6.56590.10-3
p2(n)=10/3*p2(n-1)-p2(n-2)
end
… … …
INSTABILITA’ NUMERICA DEL 48 3.761.10-23 2.2894.105
SECONDO ALGORITMO
… … …
20
Malcondizionamento
Esistono problemi tali che, l’errore nel risultato è elevato e talvolta tale da
rendere privo di significato il risultato stesso.
22
Malcondizionamento
ESEMPIO 4
Il seguente sistema lineare Ax=b:
Ha soluzione
23
Complessità Computazionale
COMPLESSITA’ COMPUTAZIONALE
Quando per un problema esistono vari metodi per la sua risoluzione la scelta
deve anche tenere in considerazione parametri quali la quantità di memoria
utilizzata ed il tempo di calcolo impiegato per poter procedere alla risoluzione
di problemi di grandi dimensioni.
24
Complessità Computazionale
𝑛!
3
25
𝑛!
Metodo di Cramer (n+1)! Metodo di Gauss
3
Supponendo che per ogni moltiplicazione necessitano 10-6 secondi si può
dare una stima del tempo necessario per risolvere sistemi di varie dimensioni
con entrambe i metodi.
26
Esempio 5
Dato il polinomio di ordine n
ALGORITMO 1
1. p=a0
2. y=x
3. Ripetere per i=1,…,n-1
3.1 p=p+aiy
3.2 y=y x
4. p=p+any
p(x)=(…((anx+an-1)x+an-2) x+…a1)x+a0
ALGORITMO 2
1. p=an
2. Ripetere per i=1,…,n
2.1 p=px+an-i
n moltiplicazioni n addizioni
28
ALCUNI ESEMPI di un uso non adeguato di metodi numerici
www.ima.umn.edu/ ~ arnold/disasters
29
Some disasters attributable to bad numerical computing
30
ARIANE 5
31
Missili PATRIOT
32
FEM
33
SLEIPNER A
34
Teoria dell’ ERRORE
METODI
NUMERICI
• elisa.francomano@unipa.it
elisa.francomano@unipa.it
elisa.francomano@unipa.it • SIMAI
SIMAI
2012
2012
Torino
Torino
25-28
25-28
GIUGN0
GIUGN0
2012
2012
Rappresentazione Floating Point
q}esponente
x = sign(x) 0.a1a2 a3 …at … ⋅ N = ± pN q
!##"##$
mantissa(p)
0 ≤ ai ≤ N −1
Rappresentazione normalizzata a1 ≠ 0
TEORIA DELL’ERRORE 1
Rappresentazione Normalizzata
Esempio
N=10 x=0.534
a1 ≠ 0 x = 0.534 ⋅10 0
-------------------------------------------------------------------------------------
Si consideri
N=2
s q
mantissa p s q
mantissa p
sign(x)
1 8 23 sign(x) 1 11 52
TEORIA DELL’ERRORE 2
ℑ(N,t,m,M ) = x ∈ ℜ x = sign(x)0.a1a2....a.tN pq,a1 ≠ 0, 0 ≤ ai ≤ N -1,m ≤ q ≤ M
{ }
m M
↓ ↓
q ∈ [m, M ] x = ± p⋅ N q ∉ ℑ
si opera un’approssimazione in modo che
x! = ± p! ⋅ N q ∈ ℑ
NOTAZIONE : Si usa di frequente anche la notazione fl(x) alternativa ad 𝑥#
TEORIA DELL’ERRORE 3
TRONCAMENTO ( o chopping)
p = 0.a1a2 a3...at at+1....as
ε A < N −t+q
ε R < N −t+1
TEORIA DELL’ERRORE 4
ARROTONDAMENTO (ROUNDING)
~
x = arr(x) x! = p! N q
1 −t+q
εA ≤ N
2
1 −t+1
εR ≤ N
2
TEORIA DELL’ERRORE 5
eps
" Troncamento
$ N −t+1
eps = # 1 −t+1
$ N
% 2 Arrotondamento
TEORIA DELL’ERRORE 6
Operazioni di macchina
x, y Î Á x op y Î Á ?
Esempio 1
x, y Î Á( 10 ,2,-5,5 )
z = x + y = 0.1111×10 0 Ï Á
x op y Ï Á fl(x op y) Î Á
TEORIA DELL’ERRORE 7
fl(xopy)-xopy ε R < eps
εR =
xopy
Definizione
fl(x op y) = (1 + e R )(x op y)
TEORIA DELL’ERRORE 8
fl(fl(x × y) × z) ¹ fl(x × fl(y × z))
ESEMPIO 2 x, y, z Î Á( 10 ,2,-5,5 )
x × y × z = 8.525
fl(fl(x × y) × z) = fl( ( 0.34 × 101 ) × z) = 0.85 × 101
TEORIA DELL’ERRORE 9
ESEMPIO 3 x1 , x2 , x3 Î Á(10,2,-5,5)
x1 + x2 + x3 = 0.137 × 10 0 Ï Á
TEORIA DELL’ERRORE 10
CASO STUDIO
y = f ( x1 , x2 , x3 ) = x1 + x2 + x3
ALGORITMO 1
TEORIA DELL’ERRORE 11
ERRORE RELATIVO
~
y (1)
- y fl(fl(x1 + x2 ) + x3 ) - (x1 + x2 + x3 )
εR =
(1)
= »
y (x1 + x2 + x3 )
(x1 + x2 + x3 ) + (x1 + x2 + x3 )ε R2 + (x1 + x2 )ε R1 - (x1 + x2 + x3 )
=
x1 + x2 + x3
(x1 + x2 )
ε R1 + ε R2
(x1 + x2 + x3 )
TEORIA DELL’ERRORE 12
y = f ( x1 , x 2 , x 3 ) = x1 + x 2 + x 3
ALGORITMO 2
TEORIA DELL’ERRORE 13
(2)
(2) !
y -y fl(x1 + fl(x2 + x3 ))-(x1 + x2 + x3 )
εR = = ≈
y (x1 + x2 + x3 )
(x1 + x2 + x3 )+(x1 + x2 + x3 )ε R2 +(x2 + x3 )ε R1 -(x1 + x2 + x3 )
=
x1 + x2 + x3
(x2 + x3 )
= ε R1 + ε R2
(x1 + x2 + x3 )
TEORIA DELL’ERRORE 14
(x1 + x2 )
e R( 1 ) » e R1 + e R2
(x1 + x2 + x3 )
(x2 + x3 )
e R( 2 ) » e R1 + e R2
(x1 + x2 + x3 )
TEORIA DELL’ERRORE 15
ALGORITMO 1 ALGORITMO 2
~
y (1) = fl(fl(x1 + x2 ) + x3 ) ~ (2)
y == fl(x
~
y(2) fl(x1 + fl( x2 + x3 ))
1 + fl( x2 + x3 ))
(2)
z1(1) = fl(x1 + x2 ) z1 1 == fl(x
z
(2) fl(x2++xx3 ))
2 3
~y (1) = fl(z (1) + x ) ~
y(2)(2) = fl(x1 + z(2)
(2)
)
1 3 ~
y = fl(x1 + z11 )
(x1 + x2 ) (x2 + x3 )
e R( 1 ) » e R1 + e R2 e (R( 22 )) » (x + x ) e + e
(x1 + x2 + x3 ) eR » (x1 +2 x2 +3 x3 )e RR11 + e RR22
(x1 + x2 + x3 )
(x1 + x 2 ) (x 2 + x 3 )
ε (1)
R ≤! ε R1 + ε R 2 ε R(2) ≤! εR + εR2
(x1 + x 2 + x 3 ) (x1 + x 2 + x 3 ) 1
"$ $#$$ % "$ $#$$ %
q1(1 )( x1 , x2 , x3 ) q1( 2 )( x1 , x2 , x3 )
TEORIA DELL’ERRORE 16
ERRORE ALGORITMICO
QUANTIFICAZIONE
M
e ALG = åqi ( x1 , x2 ,..., xn )g i M numero di
i =1
operazioni
che compongono
l' algoritmo in uso
g i := e R i i=1,2,…,M
TEORIA DELL’ERRORE 17
20
ESEMPIO 4
3
f : Â ¾¾® Â
y = f ( x1 , x2 , x3 ) = x1 + x2 + x3
xi
ci = i = 1,...,3
x1 + x2 + x3
x1 x2 x3
e IN » eR + eR + eR
x1 + x2 + x3 x1 + x2 + x3
1
x1 + x2 + x3 2 3
TEORIA DELL’ERRORE 18
ERRORE ALGORITMICO
ALGORITMO1 ALGORITMO 2
~y (1) = fl(fl(x + x ) + x ) ~
y (2) = fl(x1 + fl( x2 + x3 ))
1 2 3
z1(1) = fl(x1 + x2 )
z1(2) = fl(x2 + x3 )
~y (1) = fl(z (1) + x )
1 3 ~y (2) = fl(x1 + z1(2) )g 1 g 2
g1 g2
(x1 + x2 ) (x2 + x3 )
e R( 1 ) » e R1 + e R2 e R( 2 ) » e R1 + e R2
(x1 + x2 + x3 ) (x1 + x2 + x3 )
(x1 + x 2 ) (x 2 + x 3 )
ε (1)
≤! ε R1 + ε R 2 ε R(2) ≤! εR + εR2
R
(x1 + x 2 + x 3 ) (x1 + x 2 + x 3 ) 1
"$ $#$$ % "$ $#$$ %
q1(1 )( x1 , x2 , x3 ) q1( 2 )( x1 , x2 , x3 )
TEORIA DELL’ERRORE 19
ERRORE INERENTE
FORMALIZZAZIONE
f(~
x1 , ~
x2 ,..., ~
xn ) - f(x1 , x2 ,..., xn )
ε IN =
f(x1 , x2 ,..., xn )
QUANTIFICAZIONE
Si consideri:
~x = (~x ,~x ,...,~x ) x = (x1 , x2 ,..., xn )
1 2 n
TEORIA DELL’ERRORE 20
~ ~ δf(x) ~ δf(x) ~ δf(x)
f(x ) = f(x) + (x1 - x1 ) + (x2 - x2 ) + ! + (xn - xn ) + ...
δx1 δx2 δxn
Allora:
f(~
x ) - f(x) (~ x1 - x1 ) δf(x)
= +
f(x) f(x) δx1
(~
x2 - x2 ) δf(x) (~
xn - xn ) δf(x)
+!+ + ...
f(x) δx2 f(x) δxn
n
(~
xi - xi ) δf(x) xi n
(~
xi - xi ) xi δf(x)
»å =å
i =1 f(x) δxi xi i =1 xi f(x) δxi
x ) - f(x) n (~
f(~ x - xi ) xi δf(x)
e IN = Ȍ i
f(x) i =1 xi f(x) δxi
TEORIA DELL’ERRORE 21
f(~x ) - f(x) n ( ~xi - xi ) xi δf(x)
Ȍ
f(x) i=1 xi f(x) δxi
n
xi δf(x)
εIN » å εRi
i =1 f(x) δxi
xi δf(x)
ci = i = 1,..., n
f(x) δxi
Indici di CONDIZIONAMENTO di
f(x1 , x2 ,..., xn )
n
ε IN » å ci ε Ri
i =1
TEORIA DELL’ERRORE 22
ERRORE TOTALE
x1 x2 x3
e IN » eR + eR + eR
x1 + x2 + x3 x1 + x2 + x3
1
x1 + x2 + x3
2 3
(x1 + x2 ) (x2 + x3 )
= g1 + g 2 ALG =
ε (2) g1 + g 2
(1)
ε ALG
(x1 + x2 + x3 ) (x1 + x2 + x3 )
STABILITA’ STABILITA’
TEORIA DELL’ERRORE 23
Studio dell’errore totale nelle operazioni elementari
Somma Algebrica
y = f ( x1 , x2 ) = x1 ± x2
x1 ± x2
c1 = c2 =
x1 ± x2 x1 ± x 2
TEORIA DELL’ERRORE 24
x1 ± x2
c1 = c2 =
x1 ± x2 x1 ± x 2
WARNING:
CANCELLAZIONE NUMERICA
TEORIA DELL’ERRORE 25
Prodotto
y = f ( x1 , x2 ) = x1 × x2
x1 x2
c1 = x2 = 1 c2 = x1 = 1
x1 × x2 x1 × x2
TEORIA DELL’ERRORE 26
Divisione
y = f ( x1 , x2 ) = x1 / x2
x1 x2 - x1
c1 = 1/ x2 = 1 c2 = × 2 = -1
x1 / x 2 x1 / x2 x2
TEORIA DELL’ERRORE 27
ESEMPIO 6 In riferimento al problema del calcolo delle radici del trinomio
x 2 - 2px + 1 = 0 p>>1
ALGORITMO 1
TEORIA DELL’ERRORE 28
POSSIBILE SOLUZIONE…..
ALGORITMO1 ALGORITMO2
D = 4p -42 D = 4 p2 - 4
x1 = p - 2
p -1 x2 = p + p2 - 1
1
x2 = p + p2 - 1 x1 =
x2
INSTABILE STABILE
ax 2 + bx + c = 0
Ricordando che x 2 - 2px + 1 = 0
c
x1 x2 = x1 x2 = 1
a
TEORIA DELL’ERRORE 29
ESEMPIO 7 La successione precedentemente considerata (Lezione 1)
(1) (2)
TEORIA DELL’ERRORE 30
Stabilita’ Numerica
n ALG1 ALG2
%PRIMO ALGORITMO
p1(1)=1; 1 1 1
for n=2:100
2 0.333 0.333
p1(n)=1/3*p1(n-1)
end … … …
18 7.7435 .10-3 8.8555.10-9
% SECONDO ALGORITMO
p2(1)=1;
p2(2)=1/3; … … …
for n=3:100
28 1.3114.10-13 6.56590.10-5
p2(n)=10/3*p2(n-1)-p2(n-2)
end
… … …
INSTABILITA’ NUMERICA DEL 48 3.761.10-23 2.2894.105
SECONDO ALGORITMO
… … …
TEORIA DELL’ERRORE 31
METODO DI ARCHIMEDE PER IL CALCOLO DI π
Si approssima il valore di π con le aree dei poligoni di 2n lati
(n=2,3,…) inscritti nella circonferenza di raggio unitario.
Si indica con An l’area del poligono regolare di 2n lati
β2 = π / 2 , β3 = π / 4, ..... , βn = βn−1 / 2
TEORIA DELL’ERRORE 32
n−1
A n = 2 sin(βn )
1− 1− sin 2 (βn−1 )
sin(βn ) = βn = βn−1 / 2
2
n=2 A 2 = 2sin(π / 2)
A L SINB
TEORIA DELL’ERRORE 33
METODO DI VIETE PER IL CALCOLO DI
π
Data di nascita: 1540, Fontenay-le-Comte,
Francia Data di morte: 13 febbraio 1603, Parigi,
Francia Studi: Università di Poitiers
2π
AB = l2 AC = l3 CÔB = AÔC =
23
AÔC π AB
CÂB = = 3 AH = = AC cos( CÂB )
2 2 2
l2 π l2
= l3 cos( 3 ) l3=
2 2 π
2 cos( )
23
TEORIA DELL’ERRORE 34
2 2 2 ⋅ l2 2 ⋅ l2 p2
p 3 = 2 ⋅ l3 = = =
π π π
2 ⋅ cos( 3 ) cos( 3 ) cos( 3 )
2 2 2
π
p n−1 p n−1 βn =
In generale si ha: pn =
π
= 2n
cos( n ) cos(β n )
2
1+ cos(2 βn ) 1+ cos(βn−1 )
βn = βn−1 / 2 cos(βn ) = =
2 2
ALGORITMO
---------------------- n=2 2.8284
1. p=2 n=3 3.0615
2. COSB=0 n=6 3.1403
3. RIPETERE per n=2,3,…
n=8 3.1415
3.1 COSB = 1+ COSB n=13 3.1416
2
p …
3.2 p=
COSB ...
TEORIA DELL’ERRORE 35