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


CALCOLO NUMERICO SIS LIN, Appunti di Calcolo Numerico

CALCOLO NUMERICO SISTEMI LINEARI

Tipologia: Appunti

2018/2019

Caricato il 25/03/2019

Smon
Smon 🇮🇹

4

(1)

5 documenti

1 / 44

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
Metodi di calcolo numerico per la soluzione di sistemi
di equazioni lineari
Equazione lineare:
a1X1+ a2X2+ ...+aNXN= b
incognite: X1, ..., XN
coefficienti: a1, a2, ..., aN, b
Soluzione dell’equazione: tupla (X1,...XN) che la verifica
Esempio:
La terna (1,1,5) è una soluzione dell'equazione lineare:
X1-2X2+ X3 = 4
SOLUZIONE
SOLUZIONE DI
DI SISTEMI LINEARI
SISTEMI LINEARI
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c

Anteprima parziale del testo

Scarica CALCOLO NUMERICO SIS LIN e più Appunti in PDF di Calcolo Numerico solo su Docsity!

Metodi di calcolo numerico

per la soluzione di

sistemi

di equazioni lineari

Equazione lineare:

a^1

X

+ a 1

X 2

+ ...+a 2

XN

N^

= b

ƒ^

incognite:

X

, ..., X 1

N

ƒ^

coefficienti:

a

, a 1

, ..., a 2

, N

b

Soluzione dell’equazione: tupla (X

,...X 1

) che la verificaN

Esempio:

ƒ^

La terna (1,1,5) è una soluzione dell'equazione lineare:

X

1

-2X

+ X 2

SOLUZIONE DI^ SOLUZIONE

DI SISTEMI LINEARI

SISTEMI LINEARI

SISTEMI LINEARI^ SISTEMI LINEARI

Si trovano in

molti campi dell'ingegneria

(es: circuiti elettrici), nella

soluzione di equazioni differenziali, … ‰

Un

“sistema lineare di m equazioni in n incognite”

è un sistema di

m

equazioni nelle n incognite

X

, X 1

,...,X 2

N

a^11

X 1

+ a

X 12

+ ...+a 2

1N

X N

= b

1

a^21

X 1

+ a

X 22

+ ...+a 2

2N

X N

= b

2

aM

X 1

+ a

M

X^2

+ ...+a

MN

X N

= b

M

Risolvere un sistema di questo tipo,

significa trovare un

insieme di valori per le variabili che soddisfisimultaneamente tutte le equazioni

Rappresentazione compatta (tramite matrici):

A * X = B

dove

A

(matrice dei coefficienti):

B

vettore dei termini noti e

X

quello delle soluzioni:

Queste equazioni hanno

soluzione unica se det(A) è

diverso da zero (matrice non singolare)

SISTEMI LINEARI^ SISTEMI LINEARI

A^

a^11

a^12

.^ .^

a^1

N

a^21

a^22

.^ .^

a^2

N

.. a N^1 .^ .^ .^

a^ NN

⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

B^

b ⎡^1 ⎢ b^2 ⎢ ⎢. ⎢ ⎢ b^ ⎣ N

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

X^

=

X ⎡^1 ⎢ X^2 ⎢ ⎢. ⎢ ⎢ X^ ⎣ N

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

RISOLUZIONE DI^ RISOLUZIONE

DI SISTEMI LINEARI

SISTEMI LINEARI

Si possono applicare due metodi:

ƒ^

metodi diretti

,^ basati su trasformazioni in sistemi di

equazioni equivalenti;

forniscono sempre la soluzione

esatta

ƒ^

metodi indiretti o iterativi

, basati su successive

approssimazioni.

Forniscono soluzioni non esatte

(approssimate):

grado di precisione specificato dall’utente e

influenza tempo di esecuzione

Criteri di Scelta:^ Criteri di Scelta:

ƒ^

metodi

diretti

hanno numero di operazioni da eseguire

finito e prefissato, che dipende dalle dimensioni dellamatrice; quelli

iterativi

non è detto che convergano

ƒ^

Se

matrice sparsa

convengono in genere quelli

iterativi

poiché tempo di calcolo è proporzionale a numero deglielementi diversi da zero

Esempio:

2X + Y - Z = 53X - 2Y + 2Z = -3X - 3Y -3Z = -

Dividiamo ogni equazione per il coefficiente di X:

X + Y/2 -Z/2 = 5/2X -2Y/3 + 2Z/3 = -1X - 3Y -3Z = -

Sottraiamo la prima equazione dalla seconda e dalla terza:

X + Y/2 -Z/2 = 5/2-7Y/6 + 7Z/6 = -7/2-7Y/2 - 5Z/2 = 9/

Dividiamo per il coeff. del primo termine:

X + Y/2 -Z/2 = 5/2Y -

Z = 3

EQUIVALENZA DI^ EQUIVALENZA Y + 5Z/7 = 9/

DI SISTEMI LINEARI

SISTEMI LINEARI

ƒ^

Sottraendo la seconda equazione dalla terza:

X +Y/

-Z/

Y^

-Z

12Z/7 = -12/

ƒ^

Il sistema diventa in forma

triangolare superiore

Ora si può calcolare direttamente il valore delle incognite:

Z = -1Y = 3 -1 =2X=5/2-1/2-2/2= 1

1

1 2

(^1) − 2

0 1

1

0 0

(^12) 7

⎡ ⎢ ⎢ ⎢ ⎣

⎤ ⎥^. X ⎥ ⎥ ⎦

=

(^52312) −^7 ⎡ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎦

EQUIVALENZA DI^ EQUIVALENZA

DI SISTEMI LINEARI

SISTEMI LINEARI

METODO DI^ METODO

DI GAUSS

GAUSS

Ad ogni passo

k

del procedimento (ripetuto

n-

volte) si elimina X

k

con la stessa tecnica:m

ik^

= -a

ik

(k)

/ a

kk

(k)

( i = k+1,..n)

aij

(K+1)

= a

j (K) i

-m

aik^

kj

(k)

( i=K+1,...n)

(j = k+1,..n+1)Si ottiene una

matrice triangolare superiore

a^

a^

..^

a^

(1 ) N

0

a^

..^

a^

N

0

...

0

0

..^

a^

(^ n NN

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

METODO DI^ METODO

DI GAUSS:

GAUSS: Triangolarizzazione

Triangolarizzazione

Numero di calcoli da eseguire è

proporzionale a n

XN

b

( k ) N ( k ) aNN

Xi

( b

( k i

)^ −

( aij

k )

. X

) j

j =

N ∑ i +^1 ( k ) aii

METODO DI^ METODO

DI GAUSS: Eliminazione

GAUSS: Eliminazione

xn

= y

/un

nn

for (i = n-1; i>=0; i--) {

for (j=i+1; j<=n; j++)

x=xi

+ui

*xij

;j

xi^

= (y

- xi

)/ui

;ii

VARIANTE: se al generico passo k-esimo il processo di eliminazionenon viene effettuato solo sulle righe successive alla k-esima maanche sulle precedenti otteniamo dopo n passi un sistema diagonale( metodo di Jordan

ƒ^

In particolare, la formula: aij

(K+1)

= a

(K)ij

-m

*aik

(k)kj

j = k+1, …, n+

si applica per ogni i da 1 a n e diverso da k ‰

Non richiede la propagazione indietro, ma è computazionalmente piùcostoso O(n

preferibile il metodo di Gauss

ESEMPIO^ ESEMPIO

Triangolazione:Triangolazione: 2X

1

-X

2

+X

3

-2X

4

=

2X

2

-X

4

=

X^1

-2X

3

+X

4

=

2X

2

+X

3

+X

4

=

Passo 1:^ Passo 1: 2X

1

-X

2

+X

3

-2X

4

=

2X

2

-X

4

=

1/2X

2

-5/2X

3

+2X

4

=

2X

2

+X

3

+X

4

=

Passo 2:^ Passo 2: 2X

1

-X

2

+X

3

-2X

4

=

2X

2

-X

4

=

-5/2X

3

+9/4X

4

=-1/

+X

3

+2X

4

=

Passo 3:^ Passo 3: 2X

1

-X

2

+X

3

-2X

4

=

2X

2

-X

4

=

-5/2X

3

+9/4X

4

=-1/

+29/10X

4

=29/

PIVOTING^ PIVOTING

Problema:^ Problema:

se

a

kk

,^ processo di triangolarizzazione impossibile:

m

=aik^

/aik^

k k^

divisione per zero!

Soluzione (ovvia)^ Soluzione (ovvia)

Scambio di equazioni

se

a

(k)kk

ed esiste

a

(k)rk

ƒ^

si scambia l’equazione

r-

sima con l’equazione

k-

sima: =>

il nuovo

a

kk^

è diverso da zero

Quindi, per poter eseguire il metodo di costruzione dellamatrice triangolare, ad ogni passo si procede con uneventuale scambio di equazioni

PIVOTING^ PIVOTING

Ulteriore Problema: Ulteriore Problema:

Ad ogni passo k, se il

valore assoluto di a

kk^

è

prossimo allo zero

, la propagazione degli

errori viene

amplificataSoluzione:PivotingSoluzione:

Pivoting

Occorre scambiare l’equazione

k-

sima con una

equazione (r-sima) tale che il valore assoluto diark

risulti: (^) z il più grande tra tutti gli

a^ ik

della sottomatrice

(i=k, ..., N) (ricerca sulla

colonna

della

sottomatrice) =>

pivoting parziale

z^

il più grande tra tutti gli

a^ ij

(i=k,..N; j=k,..N)

(ricerca sulle righe e sulle colonne dellasottomatrice): in questo caso si provvede anchead un eventuale

scambio di incognite

(se j

≠k

)

=>

pivoting completo

k^

k r r^ :^

ark^

=^ max^ k^ ≤ i^ ≤^ N

aik

r , s

:^

a^ rs

= max^ i = k ,..

N j^ = k

,.. N

a^ ij

k^

k r

s

SCALING^ SCALING

Si

normalizzano

gli

elementi

di

ciascuna

riga

della

matrice

assumendo come valore di riferimento, quello del pivot della riga

d

i

( dimensione

Quindi,

al

generico

passo

k

-simo

si

assume

come

equazione

pivotale (fra le n-k rimanenti)

la r-sima

, in modo tale che:

di

= max

a

ij j =

1,..

N

ark d r

=

max^ i =

k ,..

N

aik di

GAUSS:^ GAUSS:

Triangolar. + EliminazioneTriangolar. + Eliminazione

void pivot(matrice A, int k, int dim);void triangolarizza(matrice A, int dim) {

int i, j, k,r; float m;pivot(A,0,dim);for (k=0; k=0; i--) {

**for (X[i]=0, j=i+1; j