• Non ci sono risultati.

Calcolo numerico: generalità

N/A
N/A
Protected

Academic year: 2022

Condividi "Calcolo numerico: generalità"

Copied!
22
0
0

Testo completo

(1)

Libri di Testo:

• L. Gori: Calcolo Numerico, (IV Ed.) Ed. Kappa, 1999

• L. Gori, M.L. Lo Cascio: Esercizi di Calcolo Numerico, (II Ed.) Ed. Kappa, 1999

• A. Quarteroni, F. Saleri: Introduzione al Calcolo Scientifico, IIIa edizione Springer, 2006

• M.L. Lo Cascio: Fondamenti di Analisi Numerica, McGraw-Hill, 2008

Sito internet:

• Dipartimento MeMoMa: http://www.dmmm.uniroma1.it (corsi, laurea triennale,….)

( , , )

• Home page: http://www.dmmm.uniroma1.it/~broglia

Contatti:

Contatti:

Riccardo Broglia Tel: 06.50299297 r broglia@insean it r.broglia@insean.it

(2)

Libri di Testo:

• L. Gori: Calcolo Numerico, (IV Ed.) Ed. Kappa, 1999

• L. Gori, M.L. Lo Cascio: Esercizi di Calcolo Numerico, (II Ed.) Ed. Kappa, 1999

• A. Quarteroni, F. Saleri: Introduzione al Calcolo Scientifico, IIIa edizione Springer, 2006

• M.L. Lo Cascio: Fondamenti di Analisi Numerica, McGraw-Hill, 2008

Sito internet:

• Dipartimento MeMoMa: http://www.dmmm.uniroma1.it (corsi, laurea triennale,….)

( , , )

• Home page: http://www.dmmm.uniroma1.it/~broglia

Contatti:

Contatti:

Claudio TESTA Tel: 06.50299251 c testa@insean it c.testa@insean.it

(3)

Calcolo numerico: generalità

Cosa si intende per calcolo numerico?

Per calcolo numerico si intende quella branca della matematica che studia e sviluppa modelli e metodi al fine di risolvere tramite algoritmi numerici imple-

mentati in un calcolatore, problemi matematici.

(4)

Calcolo numerico: modellizzazione ed errori

Problema Fisico

Astrazione ed ipotesi semplificative

( i i ti)

(errori inerenti)

Modello Matematico

Know How, fantasia e arte (errori di troncamento)

Modello Matematico

⇓⇓

Modello Numerico

Algoritmo (stabilità) e computer Algoritmo (stabilità) e computer

(errori di arrotondamento)

Soluzione Numerica

(errore computazionale)

La soluzione numerica può essere accettata se e solo se si ha una stima degli errori di cui è certamente affetta degli errori di cui è certamente affetta

(5)

Errore computazionale: definizioni

• Errore troncamento: è dovuto alla discretizzazione di un di un problema matematico (passaggio dal continuo al

discreto).

• Errore arrotondamento: è dovuto alla precisione finita dei

l l i ì l i

calcolatori, così come la sua propagazione.

• Errore computazionale: è la somma degli errori di

troncamento e di arrotondamento argomenti di interesse troncamento e di arrotondamento, argomenti di interesse fondamentale dell’analisi numerica.

Detta x la soluzione approssimata e x* quella esatta:

Detta x la soluzione approssimata e x quella esatta:

x

*

x

ε = x x Errore assoluto

ε ( )

⎬ ⎫

=

= /

* *

/

*

r

ε x x x x

ε

Errore assoluto Errore relativo

⎭ ⎬

=

⋅ 100

r

%

r

ε

ε Errore relativo

(6)

Errore di arrotondamento: propagazione

Calcolo di una funzione: Y = f ( x

1

, x

2

, ... , x

n

) Nel caso di funzione di una variabile:

*

*

( ) (

*

)

*

f x f x

Y

Y − = −

S il d i i l f(

*

) ll’i t di

(

*

)

2 *

*

) ( ) ( ) ( )

( x f x f x x x O x x x

f ≈ + − + Δ ε = −

Sviluppando in serie la f(x

*

) nell’intorno di x:

( ) ( )

) ( )

( )

( x f x f x x x O x x x

f

x

x

+ Δ =

+

= Δ

ε 3

ε

2 1 Sostituendo:

) ( )

( )

( )

(

2

*

xf x O x f x f x

Y

Y − = Δ

x

+ Δ ≤ ε

x

= ε

x

Sostituendo:

(7)

Errore di arrotondamento: propagazione

Formula generale di propagazione degli errori:

) (x f

Y ≤ ε

x

Δ

Nel caso di funzione di più variabili:

) ,

...

, ( )

, ...

,

(

1 1

1

f

x1

x x

n n

f

x

x x

n

Y ≤ ε + + ε

n

Δ L

*

Errore sul dato i-esimo

* i i

i

= xx ε

Esercizio: esprimere l’errore commesso per le operazioni di somma algebrica (cancellazione numerica), prodotto e

rapporto tra due valori rapporto tra due valori.

(8)

Propagazione: esempio

Esempio 1.4.1:

4 4 1

1 = 0.1234

ε

≤ 0.5⋅10 x

4 2

2 = 0.1233

ε

≤ 0.5⋅10 x

0001 .

) ,

(x1 x2 = x1x2 = f

% 100 10 1

10

4 4 2

1

+ = = ⇒ =

Δ ≤

x

r

x Y

Y ε ε ε

2

10

1

− x x

Y

(9)

Propagazione: esempio

Esempio 1.4.2: determinare le radici di x2-2ax+b=0 con a>0

2 ba a 0 a

a x

Se a>>b allora: x2 = aabaa = 0 Se a>>b allora:

Esempio: a=103.25 e b=1.021 eseguendo i calcoli con sette if i ifi i

cifre significative:

005 .

0 021

. 1 ) 25 ( 56 . 10660 25

.

2 =103 − − =

x

Verifica: x22 − 2ax2 +b ≈ −0.115101 Come ovviare?

00494443 021 0

. 1

2 2

1 = = b =

x b

x x

Verifica: x2 − 2ax + b ≈ −0 27104

00494443 .

245 0 . 103 25

. 103

2 2 2

1

= +

= +

=

b a

a x

b x

x

Verifica: x2 − 2ax2 + b ≈ −0.2710

(10)

Propagazione: esempio

Esempio:

( )

1 7

21 35

35 21

7 )

(

1 )

(

2 3

4 5

6 7

7

1 = −

f

x x

f

1 7

21 35

35 21

7 )

( 7 6 5 4 3 2

2 x = xx + xx + xx + x

f

Le due funzioni sono identiche in senso algebrico;

Le due funzioni sono identiche in senso algebrico;

calcolo di f

1

(x) e di f

2

(x) per x ∈ [0.9998,1.0002]:

>>x=linspace(0.9998,1.0002,100)

>> f1=(x-1).^7;

>> f2=x.^7-7*x.^6+21*x.^5-35*x.^4+35*x.^3-21*x.^2+7*x-1;

>> plot(x,f1)

>> l t( f2)

>> plot(x,f2)

(11)

Propagazione: esempio

1.5x 10-26

1.5x 10-14

f

1

(x) f

2

(x)

0.5 1

0.5

1

f

2

( )

0 0

-1 -0.5

-1 -0.5

0.9998 0.9999 1 1.0001 1.0002

-1.5 -1.50.9998 0.9999 1 1.0001 1.0002

( )

7

1

( x ) = x − 1

f

(12)

Propagazione: condizionamento

Consideriamo il calcolo di una funzione y=f(x); e

l i l l ff l i l fi l di

valutiamo quale è l’effetto sul risultato finale di una perturbazione Δ x=x-x

*

del dato di input:

) (

) ) (

( f x

x x f

Y x Y

f x

Y

x

Δ ≤ Δ

x

⇒ Δ

Δ Y f (x )

f

Y Δ Δ

Δ ( )

x C x

x f

x xf

x x Y

Y

p

x

= Δ

≤ Δ Δ

) (

) (

C

pp

: numero di condizionamento del problema p

(13)

Propagazione: condizionamento

C x

Y ≤ Δ

Δ xf ( x )

C

x

C x Y

p

) (

) (

x f C

p

= f

x

Se Cp è “grande” il problema è mal condizionato, ossia a piccole perturbazione dei dati iniziali si hanno grandi varia-

p p g

zioni dei risultati. Viceversa se Cp è “piccolo”, il problema è ben condizionato.

Il condizionamento non dipende dall’algoritmo usato, dipen- de dal problema (f(x)) e dai dati di ingresso (x). Un problema può essere ben condizionato per certi valori di input e mal

condizionato per altri.

(14)

Condizionamento: esempio

Esempio 1.5.1:

⎩ ⎨

⎧ = = −

⎩ ⇒

⎨ ⎧

= +

= +

( ) /( 1 )

) 1

/(

1 )

( 0

1

2 2

) 1

( 2

α α α

α α

α

α

α

z g

f y

z y

z y

⎩ = = − −

⎩ α y + z = 0

(α 1)

z g ( α ) α /( 1 α )

2 2

1 2 )

(

)

( α α

α =

= f

C

y

f

2

2

1 1 )

(

) (

α α α

α

α ′ = +

= g C

z

g

1

2

)

( α − α

y

f

1 )

( α − α

g

Il problema del calcolo di y e z è mal condizionato

per valori di α prossimi ad 1.

(15)

Condizionamento: esempio

α y z |Δα/α| y/y| z/z|

0.5555 1.446299444 -0.803419341 0.5555 1.446299444 0.803419341

1.8 10-4 1.6 10-4 3.4 10-4 0.5554 1.446067105 -0.803145670

0.9998 2500.25 -2499.75

1.0 10-44 1.0 1.0 0.9999 5000.25 -4999.75

Esercizio: stimare il condizionamento del problema del Esercizio: stimare il condizionamento del problema del

calcolo della y e della z nei due casi.

(16)

Algoritmo: definizione

Il problema numerico è risolto tramite un algoritmo: ossia una successione di operazioni logiche e aritmetiche finita e una successione di operazioni logiche e aritmetiche finita e non ambigua, che consente di ottenere il risultato numerico a partire dai dati di input.

partire dai dati di input.

Oltre alla tendenza del problema a propagare gli errori sui dati bisogna tenere conto che l’uso di un algoritmo di calcolo dati, bisogna tenere conto che l’uso di un algoritmo di calcolo comporta un errore di approssimazione (troncamento dei dati numerici), fornendo un dato finale approssimato fa(X):

numerici), fornendo un dato finale approssimato fa(X):

l’errore totale è esprimibile come:

E E

X f X

f X

f X

f X

f X

f

Ef = fa(X) f (X*) = fa(X) f (X) + f (X) f (X*) = Ea + Ed E = ( ) ( ) = ( ) ( ) + ( ) ( ) = +

Errore algoritmico

) ( )

(X f X f

Ea = a

*) Errore di propagazione sui dati

( )

(X f X * f

Ed =

(17)

Stabilità degli algoritmi: definizione

Stabilità numerica: sensibilità di un algoritmo alla

perturbazione dei dati di input. Un algoritmo è detto

stabile se gli errori assoluti sui dati non sono ampli-

ficati durante l’elaborazione. Viceversa, l’algoritmo

è detto instabile.

(18)

Stabilità di un algoritmo: esempio

Esempio 1.6.1:

1 1 d 0, lim 0

0 > =

=

n n n

x n

n x e x I I

I e

e

Integrando per parti:

1 1

0

1 d 1

1 e n x e x nI

In e n x ⎟ = − n =

⎠⎞

⎜⎝

= ⎛ −

In =1 nIn1

1

3 2

! ) 1 ( ) 1 (

) 1 (

) 1 ( 1

) )

2 (

1 )(

1 (

1 )

) 1 (

1 ( 1

I n k

n n

n

I n

n n n

I n

n

n n

k

n n

+ +

+

=

− +

=

=

L

Al it

0 1

! ) 1 ( ) 1 (

) 1 (

) 1 (

1 n n n k n I

k

− + +

− +

=

= L Algoritmo

...

2856 6321205588

. 0 )

1 1 (

1 1 d

0 = − =

= e

e x e e

Io x

Con:

(19)

Stabilità di un algoritmo: esempio

7144 3678794411

1 0

2856 6321205588

.

0 = 0 I I

I 14 cifre significative

5712 2642411176

.

! 0 2 2

1

7144 3678794411

. 1 0

2 0 1 0

= +

= −

− =

= I I I I

2865 2072766470

. 0

! 3 2 3 3

1 0

3 = − + ⋅ − I =

I

M 1

1

25 = 0 I

M

0 6 0.8

x n

n x e

x e

y 1

) ( =

)

!

!

! (!

10 436

.

3 10

26 25

=

I 0.4

0.6

n=0

0 0 25 0 5 0 75 1

0

0.2 n=1 n=2 n=4

n=26

0 0.25 0.5 0.75 1

(20)

Stabilità di un algoritmo: esempio

Propagazione dell’errore iniziale ε0=I0-I0* nel calcolo di In?

l i li i di

L’algoritmo è lineare, quindi:

*

*

* ( ) ( ) ( 1) !( ) ( 1) !

ε

ε

= I I = f (I0) f (I0) = ( 1)nn!(I0 I0) = ( 1)nn!

ε

0

ε

n = InIn = f If I = − n II = − n

[ ]

0

1

0) 1 1 ( 1) ( 1) ( 1) ( 1) !

(I n n n k n I

f n n

k

k − − + + −

− +

=

[

L

]

[ ]

0*

1 1

* 0

1 0 0

! ) 1 ( )

1 (

) 1 (

) 1 ( 1

) (

) ( )

( )

( ) ( )

(

I n k

n n

n I

f f

n n k

k k

− + +

− +

=

=

=

L

Il termine (-1)nn!, rapporto tra l’errore al “passo” n e quello al “passo” 0 è detto coefficiente di amplificazione dell’er- al passo 0, è detto coefficiente di amplificazione dell er- rore iniziale. L’errore cresce con n, l’algoritmo è instabile.

(21)

Stabilità di un algoritmo: esempio

L’algoritmo può essere così modificato:

I 1

n I I

nI

In = − nn = 1 n

1 1 1

Sapendo che: e posto I

lim n = 0 N

=0 per N fissato:

n I

K , 1 1 ,

0 1 = − = −

= k N N

k I I

IN k k

(22)

Stabilità di un algoritmo: esempio

Propagazione dell’errore:

*

* 1

1

*

*

*

* 1 1

1 − = −

− =

− −

=

=

N N

I I

N I N

I I

IN N N N N N N

N

ε ε

) 1 (

1 1

1

* 1 1

2 = −

− −

− =

=

N N N N

I

IN N N N

N

ε ε ε

L’errore si riduce l’algoritmo è stabile.

Esercizio: valutare il valore approssimato di I0 con N=10 e N=15, stimare l’errore commesso; usare tale algoritmo per valutare I7. calcolare I7 a partire da un valore di I0 accurato alla quarta cifra decimale con il metodo instabile.

Riferimenti

Documenti correlati

Prova a completare il percorso ricordando che ogni numero è maggiore di uno rispetto al suo precedente:. Ecco formato il numero cento

Il sistema operativo, quando c’è bisogno di eseguire un nuovo servizio (e quindi di mandare in esecuzione un nuovo processo) decide di mandarlo in esecuzione sul processore che

2 E che, a sua volta, costituisce il cuore pulsante di una concezione (che Brigaglia chiama) pragmatica del potere, che si ritroverebbe, appunto, solo nelle opere anni ’80:

Per fortuna l’informatore decide di aiutare ancora l’ispettore fornendogli indizi proprio attraverso il computer. Il numero

Finalmente arrivano informazioni sul complice della Signora Violet, l’abilissima ladra arrestata da Numerik.. Gli indizi sono contenuti in una busta chiusa: l’ispettore Numerik la

Per convertire un numero decimale reale in binario, si può convertire separatamente la sua parte intera e quella frazionaria. La parte intera viene divisa per 2 tante volte quanto

Supponiamo di essere arrivati a un certo passo della costruzione e di saper costruire tutti i punti del piano che hanno coordinate appartenenti a un certo campo di numeri F..

Più della radio, la televisione, affidandosi quasi esclusivamente alla vista, invita ad una recezione passiva e acritica "Gli Strumenti del comunicare" di McLuhan può