Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Appunti di Analisi Numerica: Algoritmi e Rappresentazione Floating Point - Prof. Borio, Appunti di Calcolo Numerico

Panoramica dettagliata dei concetti fondamentali dell'analisi numerica, con focus sulla rappresentazione dei numeri in virgola mobile e sugli algoritmi per la risoluzione di problemi numerici. Si esaminano problema e algoritmo, costo computazionale, floating point e operazioni di macchina, inclusa la cancellazione numerica. Esempi pratici e spiegazioni chiare facilitano la comprensione. Trattati condizionamento dei problemi, soluzione di sistemi diagonali e triangolari, e fattorizzazione LU e di Cholesky, fornendo un quadro completo delle tecniche. L'obiettivo è fornire una guida per studenti e professionisti interessati all'analisi numerica e alle sue applicazioni pratiche.

Tipologia: Appunti

2024/2025

Caricato il 21/06/2025

nicole-di-filippo-1
nicole-di-filippo-1 🇮🇹

1 documento

1 / 19

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Anteprima parziale del testo

Scarica Appunti di Analisi Numerica: Algoritmi e Rappresentazione Floating Point - Prof. Borio e più Appunti in PDF di Calcolo Numerico solo su Docsity!

DEFINIRE ALGORITMI PER RISOLVERE

PROBLEMI

DI

ALLEBRA LINEARE

DEFINIZIONE

di PROBLEMA

= una relazione funzionale

tra dei dati (imput)

e dei

risultati

(output)

=>

può

essere

formulato

im modo

·

ESPLICITO--y

=

f(x)

con

fi

problema , X

=

imput , y-output

·

implicito-f(x

, y)

= 0 (mom

ho la strada

per

trovare la soluzione)

ESEMPI

:

· Dati Xz e X

trova

y

tale che

y

= Xe

xc (problema esplicito

:

è chiara la rela-

ziome tra output

a imputt)

· Dati La. Ca , Ca , Ca trova

Ja

, ya

tali che

S

(1yz

Cyz

= 5

(3y)

(nyz

=

  • 3

limplicito

(mom

si può

risolvere sempre) (

DEFINIZIONE

di

ALGORITMO

=

Sequenza finita

di operazioni per risolvere un problema

ESEMPIO

PROBLEMA

:

Dato N

,

calcolare la somma dei primi

Ninteri

ALLORITMO 1

: li sommo

  • devo

fare

N

operazioni

(il costo computazionale

cresce

com i dati)

N(N

ALGORITMO MIGLIORE

:

S

=

2

  • > devo fare

3 operazioni

perché

è

più

veloce (ogni algoritmo

richiede un certo numero

di operazioni

DEFINIZIONE di

Costo

COMPUTAZIONALE di un

algoritmo

numero di operazioni

richieste

=> il numero più piccolo

è m

10 ,

. N

DEF : si

chiama

Regione Di UNDERFLOW : (-m , m)

Im un

algoritmo

, voglio

evitare ad

ogni passaggio

di dover rappresentare numeri in

underflow

·

Dati

t

Le U , qual

è il Più GRANDE numero rappresentabile

=> il numero più grande

e M

= 0 , IN-1)(N-1) (N-1) ... (N-1)

. Nu

DEF

: si chiama REGIONE DI OVERFLOW

: (- ,

  • M) u (M ,

=> tutti i numeri più grandi

di M sono rappresentati come infinito

, tutti quelli più

piccoli

di

M

sono rappresentati

come zero

ARROTONDAMENTO

"TO EVEN

Un numero reale com

più

di t cifre

di mantissa viene arrotondato al numero di macchina più

vicino .

Se

un numero è esattamente a metà tra due numeri di macchina ,

lo arrotondo al numero

di macchina

com ultima

cifra pari

esempi

com

N

= 10 ,

t

4 ,

L = - 10 ,

U

10

· d = 0 .

37451 . 10

°

non è un numero di macchina

=> i= 0 .

0 . 3745 d b 0 . 3746

p p p 8

O · b = 0 . 37455

. 10 è il

punto

medio tra 0 . 3745 e 0 . 3746

=> b = 0 .

3746

. 100

· c = 0 . 37445

. 10

%

=> i = 0 , 3744

. 709

ERRORI

Def : La Differenza Assoluta tra due numeri a e l

e la-bl.

Se considero uno dei due

"esatto" allora la chiamo Errore Assoluto (differenza

im valore assoluto tra um numero

che considero

giusto

e una

che

considero sbagliato)

DEF : LaDifferenza tra a e l RELATIVA ad a è la-b)//al

. Se considero a "esatto"

L'ERRORE RELATIVO è la-bl/lal (differenza

relativizzata

per

la quantità esatta)

=> indicazione

più

realistica

esempi

:

·

Devo produrre

un

ago

di 2 cm ,

lo produco

di 1 .

02 m

=> errore assoluto = 1 m ( ,

02

  • 0 . 02)

=> errore relativo =

1m/0.

02 m

= 50 (senza

unità di misura

  1. 000 % di errore)

· Devo produrre

un'autostrada di 20 km ,

la

faccio

di 20001m

=> errore assoluto : 1m (

  • 20000

= errore relativo

=

1m/

m

= 5 .

. 10-3 % di errore

= 0 . 005 % di errore

Dati Is

e

numeri di macchina com t

cifre

e

base N

, supponiamo

che

siamo

consecutivi

Is

= (

, 21a2 ... at

  • N

.

aadz ... (dt

Na

la loro

differenza

è :

1 1

= 0 , 000 ... 02

·

Na com 11 in

posizione

=

N

  • t

La differenza Assoluta Tra due Numeri di MACCHINA CONSECUTIVI è N9-t

LaDifferenza

RELATIVA

rispetto

ad a e

Nat

Nat com

NN

P

. N

Pa

=>

N

. N = Na = EPSILON Di

MACCHINA

  • massimo differenza

relativa

tra due mumeri di

macchino

Dato un numero a nom di macchina , siano

se

d numeri di macchina che lo circondano

I

·

I

Is Iz

Supponiamo

di arrotondarlo com 21

,

allora l'ERRORE DI ARROTONDAMENTO e

la

  • = = (di - d) =

Na

-t

PRECISIONE

DI MACCHINA

2

Id

= massimo errore di arrotondamento

Lo standard

IEEE754 del 1985

prevede

che

un numero

floating point

(double) occupa

64 bit

:

· 1 bit di

segno

·

52

bit di mantissa

, che

corrispondono

a t

53 (il

primo

è sottinteso

1 perché

deve essere

· 11 bit per l'esponente

(rappresento

: numeri fino

a

=

DEF

:

Que numeri sono Equivalenti in PRECISIONE FINITA se la loro

differenza

relativa

è dell'ordine della

precisione

di macchina

%

)

OPERAZIONI DI

MACCHINA

  • X =

Le operazioni

di macchina

restituiscono

il risultato arrotondato

dell'operazione

Se a

R

,

chiamo

à

il suo

arrotondamento

Allora a

b

(SOMMA DI MACCHINA)

= (

(arrotondamenti a

ogni passaggio)

a

  • b = a -

a

x b

a

5

a b

=

/b

ESEMPIO com

N

= 10 , t = 4

· Sz = S

·

as

=

·

pz pz

·

pa pa

oppure

prp

(almeno uno dei due deve essere

da arrotondare)

ESEMPIO

:

Dati x

,

d , calcolare

y

=#d

VX

=> casi di cancellazione numerica :

·

se deo

=

Io ux =

differenza fra

numeri

quasi

uguali

/mi

chiedo se

posso

riscriverla (

=> si può

eliminare la cancellazione numerica com la razionalizzazione

g

=

no

  • ex .

18 + 1x

= x

0

  • x =

Uf + +red

VX

·

se dx-X

= la cancellazione mon è eliminabile

ESEMPIO :

Calcola

Lime

  • 1

=> la

cancellazione a numeratore si può

risolvere usando la serie di

Taylor

:

e

=

( 1

x

x

=

(

x43!

X"(

! + Xk/k!

o(xk)

=>

posso sempre far

in modo che il resto

sia O se x 10-

~

sex

= 10

  • 3 = e - 2 + x + x = + x3/3!

x ( !

xS/ ! + x6/6!

o(x) -> (

= 20

  • 18

=> il

computer

mon potrebbe

vedere altri contributi

=>

e

1

A

x

  • x

x

/

x45!

  • X =

1

= +

5 X

DEF: Sia

f(x

, y)

= o un problema

da risolvere .

Il

CONDIZIONAMENTO DEL

PROBLEMA

è

un numero

K(f

, x) (com x

= dati di imput

del problema) ,

tale che , se

E

sono i dati

approssimati

e

j

i risultati approssimati

=>

ly-j1k(f

, x)

Ix

  • I

(l'errore

sei dati controlla l'errore sui risultati ma il

1y

/

| x |

fattore

K che gli permette

di controllarlo

può

essere molto

grande)

Se

R(f

. X) è

grande

,

il

problema

è

MAL

CONDIZIONATO

R(f

. x)

ESEMPIO

Calcoliamo il condizionamento

del

problema y

= xa

Xz

Siamo Ea

e n le

approssimazioni

di xa e X2 e sia y

la loro somma

=>

(

= (x

x2-

=

(x)

(E(

1x

xz) (xy

X2) (x

xz)

= (xa

        • (xz - 2) = (xa) . (xa - Fa) +

(x2) . (x

  • E2)

(x

xz)(xy + x2) (xa

  1. (42) (xa

xe) | xz)

(

=> K = maxal

Il

e

CONDIZIONAMENTO DEL PROBLEMA DELLA

SOMMA

(x

X2)

K->

p se Xa-Xz quindi per

CANCELLAZIONE NUMERICA

DEF

: Un

algoritmo

si dice STABILE se l'errore relativo tra il risultato dell'algoritmo

e quello

esatto

è dell'ordine della

precisione

di macchina

misurare la distanza su una

griglia ortogonale

E

pella

misura la

lunghezza

se

potessi

muovermi sole

ad

angolo

retto

DEF

(NORMA

DI

MATRICE)

:

Data Aermim

Il All

=

max IlAx/

"Quanto cambia X se

gli

applico

A?

xE

M

Il X

oss : Dato XER e At Rmim

IIAx/ a

/I

XII*

FATTORE DI AMPLIFICAZIONE

TEOREMA

Data

Atm beRe XeRh T . c . Ax = 3

siamo

ERMim

,

beRe FER" +. c .: = 5

Supponiamo

· det A

0

·

ll A-Alla

= 1

211A

  • > *

piccola perturbazione

allora

det + 0 e

Ilx

El

=

211AllalA

--

11z)

1lb

  • bla +

11A

  • Alla

11x1) I

11b()z

Il Alla

CONDIZIONAMENTO

Allora

K(A

. b)

= 2lIAllalIA-1lla mon dipende

del termine moto

Chiamo Numero Di

CONDIZIONAMENTO

Di AERMIM NON SINGOLARE

Ra(A) = 11 AllallA

=

Si

può

dimostrare che

Il

Alla

= max

Il Axll

xEm II X

-mat

li

se

ll Alla

= ll Alla

= ma

la

Il Alla

dipende dagli

autovalori TBD

Soluzione di Un SISTEMA DIAGIONALE

A

= as b =

by

O

I

:

O

am bu

=> det(A) =

io ai

=> Il

Allo

= max

lai

22 im

=> A 1 = 1/as

O

1/az

O

2/am

=> IIA

=ma

Maili

=> K)

malail

mim

Mail

=> KO(A)

  • > +a se mimlail - O quindi

se

la matrice diventa

quasi singulare

PROBLEMA

A

= ass ,

b = by

azz

amm bm

com air o

(rango

massimo

trova x t

. c . Ax

= b

X

=

ba

Ass

=> Xi

= bi dii Fi = 1 , ...,

m

=> imput

: A .

b

for

i

= 1 , ..., m

Xi

bilaii

=> costo computazionale = me

operazioni

= m

PROBLEMA

A

Rea Gaz ass-- - aam triangolare

b

ba

Q2z Q ... azm

superiore

i

O

amm bm

trova X

:

Ax

= b

= det (A) =

ai odio Vi =

=> Xm = bm amm

se i

m- (pemultima equazione)

: Amm Xm-a Ammin

= bm - 1

elimino a 31

mar

= &31/ 2

  • 11 - 2

O

R

> R

  • M31R1 020 - 1 b

> b3-

m31ba

I

ERs 22 0

elimino

·

I 4

3

a M

= asz/azz

= 3/n

  • 11 - 2

R

"

R3-m32 Rz

020

  • 1

00-5/

I

generalizzando

elimino aij

mij

=

air/ajj

Ri

Ri-Mijkj

Im

generale

(GAUSS)

:

  1. ciclo sulle colomme da simistra verso

destra

per

ogni

colomma ciclo sulle

righe

sotto

la

diagonale

per ogni

elemento sotto la

diagonale

ciclo per modificare

la

riga

=> for

K

= 1

m

  • 1 (1)

for

i

k

1 , ..., m(z)

% elimino l'elemento aik

Mir

Air

ark

for j

= 1

...,

m

aij

=

dij - Mir Akj

% ri

= ri

MirVr

oss

: siccome

gli

zeri sono preservati ,

in realtà il ciclo può partire

com

j

= i

1

for

j

= i + 2 ....,

m

aij

=

aij-mir

air

4

. devo

fare

la stessa

operazione

per

i

termini

moti

=> bi

= bi-Mirbr

PROBLEMA

:

arr potrebbe

essere mullo o molto piccolo

"Overflow

=> si devomo

fare degli

scambi di

righe

,

per

mon mettere zeri sulla

diagonale

:

RIVOTING PARZIALE

:

ad

ogni

nuovo valore di K ,

invece di scorrere subito le

righe

,

scambio

la

riga

K

com la

riga

successiva che ha il

valore più grande possibile (in

valore assoluto)

sulla colomma K

ESEMPIO

supponiamo

K

= 2 e

A

=>

per procedere

com Gauss

scambio seconda e terza

riga

:

A =

356

Quindi

:

for

K

= 1 : m

  • 1

Iindice di

viga

Tale che laIr)

=

max

il

/scambio

rigas

K

com

riga

I

/scambio Termine moto

K

com

Termine moto I

for

i

k + 1 : m

Miss

= dik/avr

Vi

= V:

Mik Un

bi

= bi-Mirbr

com questa strategia

si può

dimostrare

che

avr to ogni

volta che calcolo

mir

FATTORIZZAZIONE LU

Data A

, applichiamo

il metodo di

Gauss

e salviamo i coefficienti

mir in una matrice

Triangolare

inferiore

:

L

=

M2s I

Msa M 1

Mus muz Mus 1

Mis

Inoltre

siaU la matrice

triangolare superiore

che

ottengo applicando fauss

.

Allora

si può

dimostrare

:

LU = A(P) (permutata)

dove ASPI è una permutazione

di A

per

righe

DEF

: una MATRICE Di

PERMUTAZIONE

è una permutazione

dell'identità

ESEMPIO

P

1 0 0

Data

A =

0 10 789

Allora :

Data A .

1 . Calcolo P .

L

,

U

Tale che PA =U

  • 0()

operazioni

Ricordiamo :

Pe

una permutazione

delle

righe

dell'identità

Le

triangolare inferiore

com diagonale

unitaria

U è

triangolare

superiore

2 .

PA

= (U => det (PA)

= det ((u)

=> det(P) det(A)

= Get(1) det (n)

=> det (A)

= det

(1)

det

(U) com det (1)

= 1

det (P)

det(P)

=

  • 2

se durante

lauss

scambio

righe

Svolte

,

det P

=

(-1)s

was

det (4)

=

i

Umm

=>

det

(A)

=

(-1)sii

  • O(m) operazioni

=> il costo totale è 0() e

l'errore in aritmetica

finita dipende

dae

CONDIZIONAMENTO della matrice

Se A è simmetrica

definita positiva

:

1. Calcolo

Cholesky

: A

= RTR

  • O() operazioni

2. det

(A)

=

det

(RT)

det

(R)

[det (R)]

=

(vii)

<

=> costo totale 0() e

l'errore

dipende

dal condizionamento

2. Soluzione di UNO

o

Più

sistemi Lineari con

Stessa

Matrice

del

Coefficienti

Data

A-Rmm e

berm com i = 1 , ..., p

Voglio

trovare XER

. c . Axi =

b)

La

strategia

ottima è :

Fattorizzo

: PA = (U = 0() operazioni

Fi

= 1 , .... p ,

risolvo

Ax(i)

= bli) usando solo

P

, L .

U :

Ax(i) = p(i) PAX(i)

Pbli) (cioè scambio le equazioni

(Ox(i)

= Pbli)

, definisco y(i)

= Ux(i)

=>

(y(i)

= Pb(i) >

y'il

com sostituzione in avanti perché

L

è tr info

S Ux(i) =

g(i)

[

>

x'il

com sost . all'indietro = 0() operazioni

=>

costo totale

: 0 ( E )

pO(m2)

NB : se fossi ripartito

tutte le volte applicando Gauss

a Ax(i)

=

bli)

=> il costo e pO(E)

Esempio p

. 75

ppt

. Sistemi lineari

CASO PARTICOLARE

:

Se A è simm . def

.

pos ,

A

=

RTR a

RTRX(i)

=

bli)

S

RTg(i)

= p(i)

Rx(i)

=

y(i)

3. CALCOLO

DELL'INVERSA

Data At

M. m

,

1. Calcolo

P

.

L U +. c .

PA

=

Lu

< 0()

2

. S

A

  • 1

    0 -

2

sp

=> come calcolo U-1?

So che UU-

=

I colomme di U-

  • > I

[ ... Um]

: I

I I

Uuj

= ei (e)

com l'a in posizione

i (colomme matrice identità)

=> costo

:

ogni

sistema costa /)

perché

è triangolate

=> devo risolvere m sistemi : 0(E)

Per

calcolare - ,

risolvo n sistemi

com matrice Le termine mote :

> 0(m)

=> costo del calcolo dell' inversa e 0 (3)

inoltre l'errore dipende

dal CONDIZIONAMENTO

In

generale

per

risolvere um sistema mon si calcola mai l'inversa

Se A è sim

def positiva ,

A

=

RTR im

0() operazioni

=>

A

  • 1

R

  • =

(RT)

= 1 =

R

3(R

7)T

Calcolo l'inversa di R come per

U

:

(

) operazioni

= o(b

m)

= 0(u3)

TEOREMA

: Data A mim

,

min qualsiasi

. Allora

A

=

QR

com

Q

Rim

ortogonale

(a

triangolare superiore (rij

= 0 sei zj)

m -n :

jom

O

·

man

:T

I

=

11Ay

  • bl

=

(Ay

b)T(Ay

  • b)

Data la

fattorizzazione

A

=

QR

,

mi ricordo che QTQ = I

= QQT

llAy-bl

=

(Ay-b)

QQT(Ay

  • b)

=

(Q

(Ay

b))

(a

(Ay

  • b)

= (lQT (Ay

  • b)Il

=

= IlQ

Ay-

QTb

=>

llAy-

bliz

=

llRy

  • Qbl

Per

minimizzare

IlRy-QTbl , definisco

C

=

QTb

Inoltre

Ry

=

r Ya Ry Innumeri

O

:

= Im-mzeri

i

Siamo Cara ,

=Re

tali

che

C

Cz

Allora

Ry-c

=

Ey-Ca

eRm

C

llRy-CIl

=

ll Ey-call

Il-cell

Posso trovare

of

Tale che lly-call

i

= o?

Lo

posso fare

solo se Ry-Ca

= 0 Es

Ry

=

Si perché rango

(Al

è massimo quindi

R è nom

singolare

=>

Sia X

tale che RX

= Ca

ll Ax-blI

=

Il

Cell

=

MiM

llAy-bl