• Non ci sono risultati.

Metodo numerico

N/A
N/A
Protected

Academic year: 2021

Condividi "Metodo numerico"

Copied!
25
0
0

Testo completo

(1)

Problema numerico

• Relazione funzionale chiara e non ambigua tra dati iniziali e la soluzione.

• Dati iniziali e soluzione sono due vettori finiti

X F Y

F(X)

(2)

Metodo numerico

• Descrizione matematica dei calcoli che si devono sviluppare per arrivare alla

soluzione

• Attenzione: in un metodo numerico non e’

detto ci sia la finitezza nel tempo!

• Quando abbiamo un metodo numerico

possiamo costruire un algoritmo

(3)

Algoritmo

• Sequenza finita e non ambigua di ordini (istruzioni) che ai dati iniziali ( input )

associano un unico risultato ( output ) in un tempo finito

• Per uno stesso metodo numerico si possono

cosruire piu’ algoritmi

(4)

Aritmetica floating point

• Insieme dei numeri macchina F(B,s,L,U) tutti i numeri della forma

x=±0. d

1

d

2

d

3

... d

s

B

m

dove d

1

0 e L<m<U

(rappresentazione floating point)

(5)

• I calcolatori utilizzano 32 o 64 bit per rappresentare i numeri macchina:

• Singola precisione

segno mantissa esponente

• Doppia precisione

segno mantissa esponente

1 23 8

1 52 11

(6)

Aritmetica di Matlab

• Matlab lavora in base 2 ma visualizza i risultati usando la base 10

• Lavora in doppia precisione:16 cifre in base 10

• L=-308, U=+308 (base 2: L=-1022, U=1024)

• Realmax=2.2251E+308 (massimo numero rappresentabile in valore assoluto)

• Realmin=2.2251E-308 (minimo numero rappresentabile in valore assoluto)

(7)

• Numeri in modulo maggiori di realmax e inferiori a realmin non possono essere rappresentati

• A un numero piu’grande di realmax (overflow) matlab associa il “valore speciale” Inf

>>2*realmax ans=Inf

>>realmin/2 (underflow) ans=1.1125 E-308

In questo caso una parte di bit destinati alla mantissa viene usata per l’esponente (perdita di cifre

significative)

>> realmin/10E+16 ans=0

(8)

ATTENZIONE : per l’underflow non viene dato un segnale di errore

• Eps=2

-52

=2.2E-16 precisione di macchina.

• Per matlab e` il piu’grande numero macchina tale che eps+1=1

• (la definizione e` il piu’ piccolo numero

macchina tale che 1+eps>1)

(9)

Errore propagato

• Nel problema numerico i dati iniziali sono generalmente affetti da un errore:

• X X+δx, δx errore inerente i dati X + δ x F(X+ δx)

δY= -F(X), δY e’ l’errore dovuto alla

propagazione dell’errore inerente δx

(errore propagato)

(10)

• La propagazione dell’errore dipende solo dal problema numerico considerato.

NON dipende dall’algoritmo usato per fare

i calcoli

(11)

• Esempio: calcolare y=exp(ax)

dato iniziale affetto da un errore inerente δx, calcolo =exp(a(x+ δx))=exp(ax)exp(a δx) errore (relativo) propagato

| (y- )|/|y|=|1-exp(aδx)|

• a=100, x=10, δx=0.1

errore inerente (relativo): δx/x= 1/100

• errore (relativo) propagato | (y- )|/|y|=exp(10)-1=

2.2025e+004 (Esercizio 3)

(12)

• L’errore sul risultato e’ molto piu’ grande dell’errore iniziale...

il problema considerato e’ malcondizionato Altro esempio: calcolare y=sqrt(x) (x>0)

Calcolo =sqrt(x+ δx)

= sqrt(x)sqrt(1+ δx/x) sqrt(x)(1+1/2 δx/x) l’errore propagato e` |(y- )|/|y| 1/2 δx/x...

Problema bencondizionato

(13)

Condizionamento di un problema

x+ δx |f(x+ δx)-f(x)|/|f(x)| K | δx /x|

• K (costante) indice di condizionamento

• K grande problema malcondizionato

(errore propagato molto piu`grande dell’errore sui dati)

• K e` piccolo problema bencondizionato (errore propagato dello stesso ordine dell’errore sui dati)

• Nella soluzione di sistemi lineari K=||A|| ||A-1||

(14)

Errori nella risoluzione di un problema (numerico)

•Problema y=f(x),

x1=x+ δx e

1

=f(x)-f(x1) errore dovuto al condizionamento

f f

1

e

2

=f(x1)- f

1

(x1) errore di discretizzazione

Applichiamo l’algorimo e otteniamo un valore f

2

(x1) e

3

= f

1

(x1)- f

2

(x1) errore di

calcolo

(15)

Stabilita`numerica

• Riguarda gli algoritmi e precisamente gli

errori di calcolo commessi nella sequenza di istruzioni dell’algorimo stesso: quando

lavoriamo su un calcolatore usiamo un

insieme di numeri macchina e le operazioni macchina si introducono degli errori di calcolo dovuti agli errori di

arrotondamento

(16)

• Per giudicare la bonta` di un algoritmo per il calcolo di f(x), dobbiamo confrontare

l’output dell’algoritmo f

2

(x1) con f(x1) dove x1=fl(x)

• un algoritmo si dice numericamente stabile se

|f(x1)- f

2

(x1) |/|f(x1)|

e` dell’ordine della precisione di macchina

(17)

Amplificazione errori di calcolo (instabilita` numerica)

Cancellazione numerica: perdita di cifre significative nella sottrazione quando i due operandi sono vicini tra loro

• Infatti, sappiamo che se nella somma i dati sono affetti da errore

(a+ a) ±(b+ b) l’errore relativo sul risultato e’

( a± b)/(a±b)

(18)

• La differenza macchina non introduce alcuna perdita di precisione ma puo`

amplificare gli errori di arrotondamento presente negli operandi

• a fl(a), b fl(b)

• a-b fl(fl(a)-fl(b))

(19)

• Esempio: a=0.147554326 b=0.147251742 Calcolare a-b nell’aritmetica a s=6 cifre

>> a=0.147554326; b=0.147251742

>> digits(6)

>> a1=sym(a,'d') a1 =.147554

>> a2=sym(b,'d') a2 =.147252

>> a1-a2

ans =.302e-3

(20)

• La vera differenza e` a-b=.3202584 E-3

• Le ultime cifre della mantissa sono alterate in quanto abbiamo fatto fl(a)-fl(b)

• Adesso prendiamo due numeri piu’ vicini:

• a=0.147554326 b=0.147551742

• calcoliamo a-b nella stessa aritmetica di prima…..

• a1-b1=fl(a)-fl(b)=.2000E-5 mentre a-b=.2584E-5

• (cancellazione numerica esercizi n. 4, 5 )

(21)

Sommare tanti addendi a

1

+ a

2

+ a

3

+…… a

n

• Algoritmo piu’ stabile:

ordinare gli addendi in modo che:

|a

1

| |a

2

| | a

3

| …… |a

n

| e poi sommare

(Esercizio n. 8)

(22)

Valutazione di un polinomio p(x)= a

1

x

n

+ a

2

x

n-1

+…… a

n+1

• P=vettore dei coefficienti, x vettore di punti in cui effettuare la valutazione

• >>y=polyval(P,x)

• Polyval usa l’algoritmo di Horner (n

moltiplicazioni n somme)

(23)

• Scrivere un file di comandi che valuti e disegni il polnomio

p(x)= x

6

- 6 x

5

+ 15x

4

- 20x

3

+15 x

2

- 6x+1 nell’intervallo [0.998, 1.002] con diversi

algoritmi:

1. “valutazione brutale”

2. schema di Horner (polyval)

3. p(x)=(x-1)

6

(24)
(25)

• Altri esempi di instabilita` numerica:

esercizi 6, 7

Riferimenti

Documenti correlati

[r]

Si può notare, sulla base di quanto detto, che gli errori sistematici sono legati al grado di accuratezza con cui viene effettuata la misura, mentre quelli accidentali sono

[r]

La legge (matematica) per la propagazione delle incertezze nelle misure indirette (grandezze derivate) richiede la Varianza... Il teorema di Čebyšëv fornisce la massima

Sia k il numero di eccedenze strette di 0 (peraltro uguale al numero di eccedenze strette di ). Proseguendo, dopo esattamente k passaggi di mano tutti hanno il loro diploma.

Implementare il metodo di sovrarilassamento (SOR) per risolvere il sistema lineare Ax = b dove la matrice A e il vettore b possono essere scaricati nella pagina moodle del corso

Data una matrice quadrata A di ordine n e i vettori colonna x e b, si vuole risolvere il seguente sistema di equazioni lineari:. Ax

This paper explores the degree to which these two phenomena are interlinked: the ways in which European integration has led to the development of European Union (EU)