+ All Categories
Home > Documents > Metode numerice -notite de curs

Metode numerice -notite de curs

Date post: 06-Feb-2017
Category:
Upload: phungnga
View: 300 times
Download: 5 times
Share this document with a friend
101
METODE NUMERICE IN INGINERIA ELECTRICA Notite de curs: 2014 2015, semestrul 1 S.l. Dr. Ing. Mihai Iulian REBICAN [email protected] Curs: joi, 08:00 - 10:00, EA004 Consultatii: marti 16:00 - 17:00; joi 12-13; EC205 (IE, hol EB, etaj 2) Universitatea Politehnica Bucuresti Facultatea de Inginerie Electrica Bucuresti, 2014 2015
Transcript
Page 1: Metode numerice -notite de curs

METODE NUMERICE

IN INGINERIA ELECTRICA

Notite de curs: 2014 – 2015, semestrul 1

S.l. Dr. Ing. Mihai Iulian REBICAN

[email protected] Curs: joi, 08:00 - 10:00, EA004

Consultatii: marti 16:00 - 17:00; joi 12-13; EC205 (IE, hol EB, etaj 2)

Universitatea Politehnica Bucuresti

Facultatea de Inginerie Electrica

Bucuresti, 2014 – 2015

Page 2: Metode numerice -notite de curs

2

• Curs - 2 ore/sapt. - joi, 8-10, EA004 – S.l. dr. ing. Mihai REBICAN

• Laborator - 2 ore/sapt. - miercuri, 8-18, EB212-213

– S.l. dr. ing. Mihai REBICAN

– As. ing. Mihai POPESCU

– As. ing. Sorin LUP

• Laborator (activitate semestriala) - 50% – Referate (20%)

– Teste aplicatii numerice (20%) – refacere si in sesiune

– Teste implementare in C/Matlab (10%)

• Examen scris in sesiunea de iarna - 50% – subiecte aplicatii numerice (30%)

– subiect pseudocod (20%)

Page 3: Metode numerice -notite de curs

3

Bibliografie

• Pagina web curs MN – reguli de notare, altele http://mn.lmn.pub.ro

• Indrumar de laborator MN:

M. Rebican, G. Ciuprina, D. Ioan

http://mn.lmn.pub.ro/indrumar/IndrumarMN_Printech2

013.pdf/

• D. Ioan - Metode numerice in ingineria electrica, Ed.

Matrix Rom, Bucuresti, 1998

• W.H. Press - Numerical recipes in C

http://www.nrbook.com/a/bookcpdf.php

Page 4: Metode numerice -notite de curs

4

Obiectul cursului - descrierea metodelor prin care se

pot rezolva cu ajutorul calculatorului probleme de

inginerie electrica formulate corect d.p.d.v. matematic

Problema reala

model fizic marimi fizice

model matematic spatii matematice

model numeric (discret) spatii discrete

algoritm (metoda de rezolvare) tipuri abstracte de date

program structuri de date specifice problemei

Solutie

Page 5: Metode numerice -notite de curs

5

Metode numerice

in ingineria electrica

Inginerie electrica

Matematica Stiinta calculatoarelor

Analiza numerica

• Formularea corecta a problemei

d.p.d.v matematic: unicitatea solutiei

• Analiza erorilor

Programare

• Algoritmi numerici

Inginerie electrica asistata de calculator

Computer aided engineering - CAE

Page 6: Metode numerice -notite de curs

6

Tipuri de probleme in ingineria electrica

• Analiza circuitelor electrice rezistive liniare

• Analiza circuitelor electrice rezistive neliniare

• Analiza circuitelor electrice in regim tranzitoriu

• Analiza campului electromagnetic in regim stationar

• Analiza campului electromagnetic in regim cuasistationar

• Analiza campului electromagnetic in regim general

Page 7: Metode numerice -notite de curs

7

Continutul cursului

1. Algoritmi si structuri de date

2. Erori in calcule numerice

3. Metoda directa Gauss de rezolvare a sistemelor de ecuatii liniare

4. Metode iterative de rezolvare a sistemelor de ecuatii liniare

5. Analiza numerica a circuitelor electrice in regim permanent

6. Interpolarea polinomiala a functiilor reale

7. Derivarea numerica a functiilor reale

8. Integrarea numerica a functiilor reale

9. Metode iterative de rezolvare a ecuatiilor neliniare

10. Metoda Euler de rezolvare a ecuatiilor diferentiale de ordin 1

11. Analiza numerica a circuitelor electrice in regim tranzitoriu

Page 8: Metode numerice -notite de curs

8

1. Algoritmi si structuri de date

Algoritm – metoda de rezolvare a unei probleme bazata pe descompunerea sa in etape simple, elementare, susceptibile de a fi implementate pe un calculator.

Pseudolimbajul (pseudocodul) – metoda de descriere si reprezentare a algoritmilor. Sintaxa pseudocodului nu este stricta si cuprinde cuvinte cheie din limba romana.

Liniile pseudolimbajului sunt de doua feluri:

• declaratia, linie care descrie datele;

• instructiunea, linie care descrie actiuni.

Variabila – zona de memorie identificata prin:

• nume – adresa zonei de memorie unde se afla variabila;

• valoare – continutul zonei de memorie;

• tip – in functie de acesta se interpreteaza valoarea.

Page 9: Metode numerice -notite de curs

9

Sintaxa declaratiilor

Tipuri de variabile:

1. Simple (fundamentale): tip nume_var

• logic: logic a, b

• intreg: intreg N

• real: real m

• caracter: caracter c

2. Agregate

• tablou: tablou

• inregistrare: inregistrare

Page 10: Metode numerice -notite de curs

10

• Tablou – multime de date de acelasi tip

• Declaratia tabloului:

tablou tip_simplu nume_tablou [dimensiune]

Ex.: tablou real V [10]; tablou de 10 elemente reale

intreg N

tablou real W [N]; alocare dinamica de memorie

• Referire la tablou – prin indice

Ex.: V(1), V(2), …

V1, V2, …

Page 11: Metode numerice -notite de curs

11

• Inregistrare – multime de date de tipuri diferite

• Declaratia inregistrarii:

inregistrare nume_inregistrare

tip_simplu_1 nume_camp_1

tip_simplu_2 nume_camp_2

Ex.: inregistrare punct

logic cartezian

real x

real y

• Referire la inregistrare: nume_inregistrare.nume_camp

Ex.: punct.x

punct.cartezian

Page 12: Metode numerice -notite de curs

12

Sintaxa instructiunilor

Tipuri de instructiuni:

1. Simple 2. Structurate

• de intrare • secventa

• de iesire • decizia

• de atribuire • ciclul

• rutina

Page 13: Metode numerice -notite de curs

13

Instructiuni simple

Instructiune de intrare: citeste nume_variabila

Ex.: citeste N; numar de noduri

citeste a, b

Instructiune de iesire: scrie nume_variabila

Ex.: scrie N

Instructiune de atribuire: nume_variabila = expresie

Expresia – amestec de operanzi si operatori:

• logica (rezultatul evaluarii este de tip logic), cuprinde:

– operatori logici: si, sau, nu, se aplica operanzilor logici

– operatori de relatie: <, >, , , ==, se aplica operanzilor aritmetici

Page 14: Metode numerice -notite de curs

14

Ex.: logic l, p, q

real a, b

l = p sau q

l = (a < b)

l = (a = b)

• aritmetica (rezultatul evaluarii este de tip aritmetic), cuprinde:

– operatori aritmetici: +, -, /, x, √, sin, cos, se aplica operanzilor aritmetici

Ex.: real a, b, m

m = a + b

m = m +1

m =

m = a / b

m

Page 15: Metode numerice -notite de curs

15

Instructiuni structurate

Secventa: multime de instructiuni scrise indentat una sub alta

Ex.: a = b - 3

m = a + b

Decizia: - fara alternativa

daca conditie [atunci] ; conditie – de tip logic

secventa

- cu alternativa

daca conditie [atunci]

secventa 1

altfel

secventa 2

Page 16: Metode numerice -notite de curs

16

Ex.: modulul unui numar real, |x| = x, daca x 0

-x, daca x < 0

real x, modul

citeste x

daca x 0 atunci

modul = x

altfel

modul = -x

scrie modul

Ciclul: - se foloseste cand avem de repetat actiuni

- cu test initial:

cat timp conditie [repeta]

secventa

Page 17: Metode numerice -notite de curs

17

- cu test final: secventa se executa cel putin o data

repeta

secventa

pana cand conditie; in “C”: cat timp !conditie

- cu contor: secventa se executa de n ori

pentru contor = val_initiala, val_finala[, pas] [repeta]

secventa

Ex.: intreg n, i; dimensiune si contor

real s

tablou real x[n]

s = 0

pentru i = 1, n [repeta]

s = s + xi

n

iixs

1

Page 18: Metode numerice -notite de curs

18

Rutina:

- procedura;

- functia.

Definitia procedurii:

procedura nume_procedura (argumente formale de intrare/iesire)

; comentarii

declaratii

instructiuni

retur

Apelul procedurii:

nume_procedura (argumente actuale de intrare/iesire)

Obs.: numarul, tipul, ordinea argumentelor (parametrilor) actuale trebuie sa fie identice cu cele ale argumentelor formale!

Page 19: Metode numerice -notite de curs

19

Ex.: Determinarea minimului, maximului a 2 numere reale

; definitia procedurii ; programul principal

procedura MinMax (a, b, m, M) real x, y

; m=min(a,b), M=max(a,b) real min, max

real a, b; argumente de intrare citeste x, y

real m, M; argumente de iesire MinMax (x, y, min, max)

daca a < b atunci scrie min, max

m = a stop

M = b

altfel Obs.: “C”: void function

m = b

M = a

retur

Page 20: Metode numerice -notite de curs

20

Definitia functiei:

functie nume_functie (argumente formale de intrare)

; comentarii

declaratii

instructiuni

intoarce valoare

Apelul functiei:

nume_variabila = nume_functie (argumente actuale de intrare)

Obs.: - numarul, tipul, ordinea argumentelor actuale trebuie

sa fie identice cu cele ale argumentelor formale!

- functia intoarce doar un singur parametru de iesire

- functia este asemenea functiei din matematica

Page 21: Metode numerice -notite de curs

21

Ex.: Determinarea modulului a unui numar real

; definitia functiei ; programul principal

functie modul (a) real x, m

real a; argument de intrare citeste x

real rez; argument de iesire m = modul (x)

daca a 0 atunci scrie m

rez = a stop

altfel

rez = -a Obs.: “C”: float function

intoarce rez

Page 22: Metode numerice -notite de curs

22

“C”: #include<stdio.h>

int main()

{

int n,i;

float p,x[10],y[10];

printf("n=");

scanf("%d",&n);

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

{

printf("x[%d]=",i);

scanf("%f",&x[i]);

}

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

{

printf("y[%d]=",i);

scanf("%f",&y[i]);

}

p=0;

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

{

p=p+x[i]*y[i];

}

printf("p=%5.2f\n",p);

}

Ex.: produsul scalar a 2 vectori

Pseudocod:

intreg n, i;

real p

tablou real x[n], y[n]

citeste n

pentru i=1, n

citeste xi, yi

p = 0

pentru i=1, n

p=p+ xi yi

scrie p

stop

n

i

ii yxp1

Page 23: Metode numerice -notite de curs

23

Evaluarea algoritmilor

Algoritmul: sa fie simplu; se analizeaza d.p.d.v. al timpului de calcul, necesarului de memorie, acuratetii solutiei.

Ordinul de complexitate d.p.d.v. al timpului de calcul = relatia dintre timpul de calcul exprimat in numarul de operatii elementare (+, -, *, /, …) si dimensiunea problemei (n).

timp = c*n – algoritm liniar, de ordinul 1: T = O(n), produsul scalar

timp = c*n2 – algoritm patratic, de ordinul 2: T = O(n2), adunarea matricelor

c – constanta, depinde de sistemul de calcul

Algoritm de ordinul 4 – de evitat!!!

Necesarul de memorie = numarul de locatii elementare utilizate (numere reale).

real a; M = O(1)

tablou real v[n]; M = O(n);

tablou real c[n][n]; M = O(n2);

Page 24: Metode numerice -notite de curs

24

s = x ∙ y - T = O(1), ordinul 0

pentru i = 1, n

s = s + xi - T = O(n), ordinul 1

pentru i = 1, n

pentru j = 1, n

cij = xij + yij - T = O(n2), ordinul 2

pentru i = 1, n

pentru j = 1, n

pentru k = 1, n

cik = xij + yjk - T = O(n3), ordinul 3

Ex.: produsul scalar a 2 vectori

T = O(2n)

M = O(2n+1)

Page 25: Metode numerice -notite de curs

25

Ex.: pentru i = 1, n sin, cos – operatii elementare

pentru j = 1, n T = O(2n2), M = O(n2+2)

sij = sin (a*i) + cos (b*j)

optimizare

pentru i = 1, n

xi = sin (a*i)

yi = cos (b*i)

pentru i = 1, n

pentru j = 1, n T = O(2n), M = O(n2+2n+2)

sij = xi + yj

Page 26: Metode numerice -notite de curs

26

2. Erori in calcule numerice

Solutia unui algoritm implementat pe un sistem de calcul este afectata de erori numerice.

Tipuri de erori:

• erori de rotunjire, datorate reprezentarii finite a numerelor reale

pe un sistem de calcul;

• erori inerente, datorate datelor de intrare, cum ar fi date obtinute pe cale experimentala;

• erori de trunchiere, datorate aproximarii finite a unor procese

matematice teoretic infinite.

Page 27: Metode numerice -notite de curs

27

Evaluarea cantitativa a erorilor

x – solutia exacta, – solutia numerica

Eroarea absoluta:

Marginea erorii absolute:

Eroarea relativa:

Marginea erorii relative:

Ex.: Marginea erorii relative pentru numarul π

(2 cifre semnificative)

xxex

x

xxxxx axxaxaxxae ,

x

e

x

xx

x

e xxx

%, xxxxx rxxrxrxxr

...0015.0...1415.314.3xxex

14.3x

...1415.3

...0015.0

x

exx

...;1415.3x

0016.014.30016.0 xa

%06.014.3%06.00006.0 xr

Page 28: Metode numerice -notite de curs

28

Erori de rotunjire

Marginea erorii relative de rotunjire: unde n este numarul de cifre semnificative ale calculatorului

Ex.:

Pseudocod

; calculeaza eroarea relativa de rotunjire: eps

real eps

eps=1

repeta

eps=eps/2

pana cand (1 + eps = 1)

scrie eps

Obs.: eps - zeroul masinii (cel mai mare numar real care adunat la

unitate nu schimba rezultatul).

,10 1 n

xx r

%001.0106 5

xrn

Page 29: Metode numerice -notite de curs

29

Erori inerente

x (date de intrare) → ALGORITM → y (solutia)

Daca , atunci algoritmul este stabil dpdv numeric

Daca , atunci algoritmul prezinta instabilitati numerice.

x foarte mic → y mare

• adunarea: ;

• scaderea: ;

• inmultirea: ;

• impartirea: ;

Operatia de scadere a doua numere foarte apropiate este instabila

numeric datorita fenomenului de anulare prin scadere

Ex.:

yx

yx

21 xxy 21

21

2

21

1xxy r

xx

xr

xx

xr

21 xxy 21

21

2

21

1xxy r

xx

xr

xx

xr

21xxy 21 xxy rrr

21 / xxy 21 xxy rrr

%2.022.2%;2.023.2 21 xx

%8901.0%;2.045.4 2121 xxyxxy

Page 30: Metode numerice -notite de curs

30

Erori de trunchiere

Eroarea de trunchiere este de ordinul primului termen neglijat in procesul matematic.

Dezvoltarea in serie Taylor a functiei y = sin x este:

Seria se trunchiaza dupa termenul de rang n:

Pe un sistem de calcul, prin adunarea unui numar infinit de termeni ai unei serii, eroarea de trunchiere se satureaza la zeroul masinii!

12

1

1753

)!12(

)1(...

!7!5!3

k

k

k

xk

xxxxy

)!12(

12

n

xr

n

y

Page 31: Metode numerice -notite de curs

31

3. Metoda directa Gauss de rezolvare a

sistemelor de ecuatii liniare

Metoda directa: solutia sistemului de ecuatii se obtine dupa un numar finit de pasi.

A – matricea coeficientilor (n×n, det(A) ≠ 0)

b – vectorul termenilor liberi (n×1)

x – vectorul necunoscutelor (n×1)

Metoda Gauss:

- etapa de eliminare: A devine superior triunghiulara;

- etapa de retrosubstitutie (substitutie regresiva): determinarea

propriu-zisa a necunoscutelor.

bAx

nnnnnn

nn

nn

bxaxaxa

bxaxaxa

bxaxaxa

...

............................................

...

...

2211

22222121

11212111

Page 32: Metode numerice -notite de curs

32

Etapa de eliminare (pentru n = 3)

3333232131

2323222121

13132121

3

2

1

)(

)(

)(

bxaxaxa

bxaxaxa

bxaxax

L

L

L 11a

)'( 1

11

2122 L

a

aLL

3333232131

2323222

1313212111

3

2

1

'''

)(

)'(

)(

bxaxaxa

bxaxa

bxaxaxa

L

L

L

)'( 1

11

3133 L

a

aLL

3333232

23232

1313212111

3

2

1

'''

''

)'(

)'(

)(

bxaxa

bxax

bxaxaxa

L

L

L

22a'

)''

''"( 2

22

3233 L

a

aLL

12

11

212222' a

a

aaa 13

11

212323' a

a

aaa 1

11

2122' b

a

abb

12

11

313232' a

a

aaa 13

11

313333' a

a

aaa 1

11

3133' b

a

abb

Page 33: Metode numerice -notite de curs

33

Etapa de retrosubstitutie

33

2323222

1313212111

3

2

1

"

'''

)"(

)'(

)(

bx

bxaxa

bxaxaxa

L

L

L

33a"

23

22

323333 '

'

''" a

a

aaa 2

22

3233 '

'

''" b

a

abb

33

2322

131211

"00

''0A

a

aa

aaa

pivoti",', 332211 aaa

33

33

"

"

a

bx

22

32322

'

''

a

xabx

11

31321211

a

xaxabx

Page 34: Metode numerice -notite de curs

34

Pseudocod procedura Gauss_fp(n, a, b, x)

; declaratii

intreg n, i, j, k

real s, p

tablou real a(n, n), b(n), x(n)

;eliminare

pentru k = 1, n−1 ; etapele eliminarii

pentru i = k+1, n ; parcurge coloana de sub pivot

p = aik / akk

pentru j = k+1, n ; parcurge linia i, la dreapta pivotului

aij = aij − akj ∙p

bi = bi − bk ∙p

; retrosubstitutie

xn = bn / ann

pentru i = n−1, 1,−1

s = bi

pentru j = n, i+1,−1

s = s − aij ∙ xj

xi = s/ aii

retur

Page 35: Metode numerice -notite de curs

35

program principal

; declaratii

intreg n, i, j

tablou real a(n, n), b(n), x(n)

; introducere date intrare

citeste n ; dimensiunea problemei

pentru i = 1, n

pentru j = 1, n

citeste aij ; elementele matricei

citeste bi ; elementele vectorului termenilor liberi

; apelare procedura metoda de rezolvare

Gauss_fp(n, a, b, x)

; afisare date iesire

pentru i = 1, n

scrie xi ; elementele vectorului necunoscutelor

stop

Page 36: Metode numerice -notite de curs

36

• T = O(2n3/3) – algoritm de ordinul 3 dpdv al timpului de calcul

• M = O(n2+2n+2) – algoritm de ordinul 2 dpdv al necesarului de memorie

• nu exista eroare de metoda

• pe un sistem de calcul apar erori de rotunjire

• datele de intrare (A, b) introduc erori inerente

• A - matrice slab conditionata (coeficienti cu valori foarte mici si valori foarte mari) → erori de rotunjire importante

Eroarea solutiei numerice :

• reziduul:

• eroarea absoluta:

• eroarea relativa:

Determinarea valorii erorii se face de fapt prin norma sa:

• norma euclidiana:

• norma Cebisev:

bxAr

xxe

)x(

e/xε

n

k

kee1

2

knk

ee,1

max

Page 37: Metode numerice -notite de curs

37

Strategii de pivotare

• pivot nul → metoda Gauss esueaza!

• pivotare partiala: se permuta liniile, algoritm simplu

• pivotare totala: se permuta liniile si coloanele, algoritm complicat, timp de calcul ridicat

• pivotare diagonala: pentru pastrarea simetriei matricei A

• pentru erori de rotunjire minime, se permuta linia cu pivot si linia cu coeficientul cel mai mare in modul de sub pivotul nul

Page 38: Metode numerice -notite de curs

38

Ex.:

9856

5434

22

)(

)(

)(

3

2

1

zyx

zyx

zyx

L

L

L

1

1

1

z

y

x

)2

4'( 122 LLL

9856

12

22

)(

)'(

)(

3

2

1

zyx

zy

zyx

L

L

L

)

2

6'( 133 LLL

352

12

22

)'(

)'(

)(

3

2

1

zy

zy

zyx

L

L

L

)'1

2'"( 233 LLL

1

12

22

)"(

)'(

)(

3

2

1

z

zy

zyx

L

L

L

12

21

1

211

1

1

zyx

zyz

Page 39: Metode numerice -notite de curs

39

4. Metode iterative de rezolvare a

sistemelor de ecuatii liniare

Metoda iterativa: solutia sistemului de ecuatii se obtine prin generarea unui sir de solutii care tinde catre solutia exacta.

• proprietate de autocorectie a erorii: solutia numerica poate fi mai precisa decat solutia metodei directe Gauss;

• algoritm hibrid: se aplica metoda Gauss si se continua cu o metoda iterativa pentru rafinarea solutiei.

bAx

...x...xxx )()2()1()0( k xxlim )(

k

k

)(xx )1()( kk F - formula de recurenta; F – aplicatie cu punct fix

(x)xbAx F bxC)(BCBA

uMxxbBCxBx 11

atunci

, M – matrice de iteratie

uMxx )1()( kk- formula de recurenta

Page 40: Metode numerice -notite de curs

40

• raza de convergenta: , unde

• procesul iterativ este convergent daca

• pentru orice matrice:

Metode iterative:

• metoda deplasarilor simultane (Jacobi)

• metoda deplasarilor succesive (Gauss-Seidel);

• metoda suprarelaxarilor succesive (Frankel-Young);

• metoda directiilor alternante (Peaceman-Rachford);

• metoda iteratiilor bloc.

nk

kρ,1

max(M)

0λI)det(M

M(M) ρ

1ρ(M)1M metoda iterativa este convergenta!

1(M) ρ

Page 41: Metode numerice -notite de curs

41

Metoda Jacobi

• solutia la pasul curent se determina din solutia de la pasul

anterior

• sunt necesari doi vectori solutie

000

00

0

000

00

00

0

00

000

A 23

1312

22

11

3231

21

333231

232221

131211

a

aa

a

a

aa

a

aaa

aaa

aaa

CBUDLA U)(LCD;B

1)(k11)(k(k) xU)(LbDuMxx - formula de recurenta

bDbBuU);(LDCBM 1111

i

k

nin

k

iii

k

iii

k

iii

k

i

k

ii bxaxaxaxaxaxaL

)1()1(

11

)()1(

11

)1(

22

)1(

11 ......:)(

nia

xab

xii

n

ijj

k

jiji

k

i ,1,,1

)1(

)(

Page 42: Metode numerice -notite de curs

42

Metoda Gauss-Seidel

• solutia la pasul curent se determina din solutia de la pasul

anterior si componentele deja calculate ale solutiei curente;

• principiul Seidel: imediat ce o componenta a fost determinata, ea

este folosita in calculele urmatoare, inlocuind valoarea veche

care se pierde

• este necesar un singur vector solutie

CBUDLA UCD;LB

1)(k11)(k(k) UxbD)(LuMxx - formula de recurenta

bD)(LbBuU;D)(LCBM 1111

i

k

nin

k

iii

k

iii

k

iii

k

i

k

ii bxaxaxaxaxaxaL

)()(

11

)()1(

11

)1(

22

)1(

11 ......:)(

nia

xaxab

xii

n

ij

k

jij

i

j

k

jiji

k

i ,1,1

)1(1

1

)(

)(

Page 43: Metode numerice -notite de curs

43

• la metodele Jacobi si Gauss-Seidel, o conditie suficienta pentru

convergenta lor este ca matricea A sa fie diagonal dominanta

• conditiile de oprire ale procesului iterativ:

– daca norma erorii Cauchy este mai mica decat o valoare

impusa a erorii, ε:

– daca numarul maxim de iteratii este atins (proces divergent)

• eroarea de metoda este eroarea de trunchiere

• metoda Gauss-Seidel este mai rapid convergenta decat metoda

Jacobi

• pentru matrici simetrice si pozitiv definite, metoda Gauss-Seidel

este de aproximativ doua ori mai rapida decat metoda Jacobi.

• metodele iterative nu genereaza umpleri ale matriceri, utile

pentru rezolvarea sistemelor cu matrice rara

niaan

ijj

ijii ,1,,1

)1()( xx kke

Page 44: Metode numerice -notite de curs

44

Pseudocod procedura Jacobi(n, a, b, x, nrit, eps)

; declaratii

intreg n, nrit, i, j, k

real s, err

tablou real a(n, n), b(n), x(n), xn(n)

;initializari

k = 0

pentru i = 1, n

xi=0

; iteratii

repeta

err = 0

pentru i = 1, n

s= bi

pentru j = 1, n

s = s − aij xj

s = s + aii xi

xni = s/aii

s=|xni − xi|

Page 45: Metode numerice -notite de curs

45

daca err < s atunci

err = s

pentru i = 1, n

xi = xni

k = k +1

pana cand (err < eps) sau (k > nrit)

retur

Page 46: Metode numerice -notite de curs

46

procedura Gauss-Seidel (n, a, b, x, nrit, eps)

; declaratii

intreg n, nrit, i, j, k

real s, err

tablou real a(n, n), b(n), x(n)

;initializari

k = 0

pentru i = 1, n

xi=0

; iteratii

repeta

err = 0

pentru i = 1, n

s= bi

pentru j = 1, n

s = s − aij xj

s = (s + aii xi)/aii

err = err + (s − xi)2

xi = s

k = k + 1

err = sqrt(err)

– T = O(mn2), unde m este numarul de iteratii; daca m < n, algoritm de ordinul 2 dpdv al timpului de calcul

– M = O(n2+2n) – algoritm de ordinul 2 dpdv al necesarului de memorie

Page 47: Metode numerice -notite de curs

47

pana cand (err < eps) sau (k > nrit)

retur

program principal

; declaratii

intreg n, i, j, nrit

real eps

tablou real a(n, n), b(n), x(n)

; introducere date intrare

citeste nrit, eps ; numar maxim de iteratii si eroarea impusa

citeste n ; dimensiunea problemei

pentru i = 1, n

pentru j = 1, n

citeste aij ; elementele matricei

citeste bi ; elementele vectorului termenilor liberi

; apelare procedura metoda de rezolvare

Gauss_Seidel(n, a, b, x, nrit, eps)

; afisare date iesire

pentru i = 1, n

scrie xi ; elementele vectorului necunoscutelor

stop

Page 48: Metode numerice -notite de curs

48

Ex.:

metoda Jacobi

542

263

33

zyx

zyx

zyx

0)0()0()0( zyx

214

136

113matricea sistemului este

diagonal dominanta

4

5

4

25

3

1

6

32

13

3

)0()0()1(

)0()0()1(

)0()0()1(

yxz

zxy

zyx

3

4

4

25

24

25

6

32

36

25

3

3

)1()1()2(

)1()1()2(

)1()1()2(

yxz

zxy

zyx

Page 49: Metode numerice -notite de curs

49

metoda Gauss-Seidel

12

13

4

25

6

5

6

32

13

3

)1()1()1(

)0()1()1(

)0()0()1(

yxz

zxy

zyx

144

143

4

25

36

35

6

32

12

11

3

3

)2()2()2(

)1()2()2(

)1()1()2(

yxz

zxy

zyx

Page 50: Metode numerice -notite de curs

50

5. Analiza numerica a circuitelor electrice

in regim permanent

Circuit electric rezistiv liniar cu N noduri si L laturi:

Metoda potentialelor la noduri:

G – matricea conductantelor nodale ((N-1)×(N-1))

Is – vectorul injectiilor de curent ((N-1)×1)

V – vectorul potentialelor nodurilor ((N-1)×1)

Contributiile laturii k a circuitului la matricea G si vectorul Is:

Rk Ek

(nik) (nfk) Ik

Rk ≠ 0; k =1, L

kkkk EIRU

sIVG

Matricea G Vectorul Is

coloana nik coloana nfk

linia nik 1/Rk -1/Rk -Ek/Rk

linia nfk -1/Rk 1/Rk Ek/Rk

Page 51: Metode numerice -notite de curs

51

Pseudocod

program principal

; declaratii

intreg N, L, k, i, j

tablou intreg ni(L), nf(L)

tablou real R(L), E(L), U(L), Icrt(L)

tablou real G(N, N), Is(N), V(N)

real pc, pg

; PREPROCESARE

; Introducere date intrare

citeste N, L ; numar de noduri, numar de laturi

pentru k = 1, L

citeste nik, nfk ; nodul initial, nodul final ale laturii k

citeste Rk, Ek ; rezistenta, tensiunea electromotoare ale laturii k

; Generarea automata a structurilor de date prin parcugerea laturilor circuitului

; initializare

pentru i = 1, n

pentru j = 1, n

Gij = 0

Isi = 0

Page 52: Metode numerice -notite de curs

52

; parcurgere laturi

pentru k = 1, L

n1 = nik,

n2 = nfk,

Gn1n1 = Gn1n1 + 1/Rk

Gn2n2 = Gn2n2 + 1/Rk

Gn1n2 = Gn1n2 – 1/Rk

Gn2n1 = Gn2n1 – 1/Rk

Isn1 = Isn1 – Ek/Rk

Isn2 = Isn2 + Ek/Rk

; PROCESARE

; rezolvarea sistem cu N-1 ecuatii

Gauss_fp(N-1, G, Is, V)

VN = 0 ; potential nul al nodului de referinta

; POSTPROCESARE

; determinarea curentilor si tensiunilor laturilor, puterile consumata si generata

pg = 0 ; puterea generata

pc = 0 ; puterea consumata

Page 53: Metode numerice -notite de curs

53

; parcurgere laturi

pentru k = 1, L

n1 = nik,

n2 = nfk,

Uk = Vn1 – Vn2

Icrtk = (Uk + Ek )/Rk

pg = pg + Ek Icrtk

pc = pc + Rk Icrtk Icrtk

; afisare solutii

pentru k = 1, L

scrie k, Icrtk, Uk

scrie pc, pg

stop

• Matricea G este rara, mai utile sunt metodele iterative.

• Erorile inerente si de rotunjire se propaga in procesul de calcul si

pot genera instabilitati numerice importante matricea sistemului

este slab conditionata.

• Astfel, valorile puterilor consumata si generata pot sa nu fie

egale pana la ultima zecimala.

Page 54: Metode numerice -notite de curs

54

6. Interpolarea polinomiala a functiilor reale

Fie functia f:[a,b] → IR, f(x)=y reprezentata prin date (tabelar): se cunosc valorile functiei doar intr-o retea de puncte din domeniul de definitie, numite noduri.

Interpolarea reprezinta aproximarea functiei cu un polinom, astfel

evaluarea functiei se reduce la operatii aritmetice elementare.

Problema fundamentala a interpolarii consta in determinarea unei

functii g:[a,b] → IR de forma:

care aproximeaza functia f, avand aceleasi valori in nodurile retelei

de discretizare cu valorile functiei f:

x x0 x1 ... xn

y y0 y1 … yn ← retea de discretizare cu n+1 noduri

,)()(0

n

k

kk xcxg

Page 55: Metode numerice -notite de curs

55

φk (x), k = 0, n – functii de baza, date de intrare ale problemei de interpolare.

Numarul de noduri ale retelei de discretizare = numarul de functii de baza = n+1.

Problema este bine formulata si are solutie unica daca functiile de

baza sunt liniar independente si nodurile retelei de discretizare sunt

distincte.

Practic, coeficientii ck sunt necunoscutele problemei de interpolare.

nkyxfxg kkk ,0,)()( - conditii de interpolare

Page 56: Metode numerice -notite de curs

56

1. Metoda clasica de interpolare

Functiile de baza sunt alese astfel:

Functia de interpolare devine:

Gradul polinomului este cu 1 mai mic decat numarul de noduri:

n+1 noduri → polinom gradul n

Din conditiile de interpolare

rezulta sistemul de ecuatii algebrice liniare (n+1 ecuatii, n+1

necunoscute):

n

n

k

k xxxxxxxxx )(...,,)(...,,)(,)(,1)( 2

210

n

n

n

k

k

k

n

k

kk xcxcxccxcxcxg

0

2

210

0

...)()(

,)(...,,)(,)(,)( 221100 nn yxgyxgyxgyxg

Metode de interpolare globala

Page 57: Metode numerice -notite de curs

57

• matricea sistemului nu este diagonal dominanta, nu se aplica metode iterative.

• timpul de pregatire (determinare coeficienti ck) este 2n3/3 (metoda directa Gauss), mult prea mare.

• timpul de evaluare este 2n.

• erorile solutiei sunt mari, deoarece matricea sistemului este slab

conditionata pentru valori mari ale gradului n > 5 (functiile de

baza devin aproape liniar dependente).

)(...,,,

...

...

...............................................

...

...

21,0

2

210

2

210

11

2

12110

00

2

02010

xgcccc

yxcxcxcc

yxcxcxcc

yxcxcxcc

yxcxcxcc

n

n

n

nnnn

n

n

nnnn

n

n

n

n

Page 58: Metode numerice -notite de curs

58

2. Metoda Lagrange

Functiile de baza φk (x) = lk (x), sunt ortogonale cu proprietatile:

reprezentand polinoamele Lagrange:

Coeficientii ak se determina astfel:

,,0)(,1)( jixlxl jiii

)(...))((...))(()( 1110 nkkkk xxxxxxxxxxaxl

n

kii

ikk xxaxl0

)()(

n

kii

ik

k

n

kii

ikkkk

xx

axxaxl

0

0 )(

11)(1)(

Page 59: Metode numerice -notite de curs

59

Astfel, polinoamele Lagrange au forma finala:

Functia de interpolare Lagrange este:

nk

xx

xx

xln

kii

ik

n

kii

i

k ,0,

)(

)(

)(

0

0

n

kn

kii

ik

n

kii

i

k

n

k

kk

xx

xx

cxlcxg0

0

0

0 )(

)(

)()(

Page 60: Metode numerice -notite de curs

60

Din conditiile de interpolare , rezulta sistemul:

Functia de interpolare Lagrange are forma finala:

n

k

n

kii ik

ik

n

k

kkxx

xxyxlyxg

0 00

)()(

nkyxg kk ,0,)(

nnnnnn

nn

nn

yxlcxlcxlc

yxlcxlcxlc

yxlcxlcxlc

)(...)()(

........................................................

)(...)()(

)(...)()(

1100

11111100

00011000

nkyc

yc

yc

yc

kk

nn

,0,..........

11

00

Page 61: Metode numerice -notite de curs

61

Cazuri particulare:

• n=1 (2 noduri prin care trece o dreapta):

• n=2 (3 noduri prin care trece o parabola):

• matricea sistemului este diagonala.

• timpul de evaluare este 4n2, si reprezinta timpul total (inclusiv pregatirea datelor).

• matricea sistemului este foarte bine conditionata (functiile de

baza sunt ortogonale).

01

01

10

10)(

xx

xxy

xx

xxyxg

1202

102

2101

201

2010

210)(

xxxx

xxxxy

xxxx

xxxxy

xxxx

xxxxyxg

Page 62: Metode numerice -notite de curs

62

• pentru a reduce timpul de evaluare, care include si pregatirea datelor, functia de interpolare Lagrange se modifica astfel:

unde coeficientii pk se pot determina inainte de evaluarea

propriu-zisa (etapa de pregatire):

n

kn

kii

ik

k

k

n

k

n

i

i

n

kii ik

ik

xx

y

xxxx

xx

xxyxg

0

0

0 00

1)(

,)(00

n

k k

kn

i

ixx

pxxxg

nkxx

yp

n

kii ik

kk ,0,

0

Page 63: Metode numerice -notite de curs

63

• Pentru metoda Lagrange cu pregatire, timpul de pregatire este 2n2, iar timpul de evaluare este 5n, ceea ce reprezinta un avantaj important daca se efectueaza foarte multe evaluari ale functiei de interpolare Lagrange.

Page 64: Metode numerice -notite de curs

64

3. Metoda Newton

Functiile de baza φk (x) sunt alese astfel:

Functia de interpolare Newton este:

nkxxx

xxxxxxx

xxxxx

xxx

x

k

i

ik

nn

,0,)(

...)(

................................................

)(

)(

1)(

1

0

110

102

01

0

n

k

k

i

ik

n

k

kk xxcxcxg0

1

00

)()(

)(...))((

...))(()()(

110

102010

nn xxxxxxc

xxxxcxxccxg

Page 65: Metode numerice -notite de curs

65

Din conditiile de interpolare , rezulta sistemul cu o matrice de forma triunghiular inferioara, care se rezolva prin subtitutie progresiva:

nkyxg kk ,0,)(

nnnnnnnn yxxxxxxcxxxxcxxcc

yxxxxcxxcc

yxxcc

yc

1102102010

2120220210

10110

00

......

......................................................................................

nn xxxxfc

xxxfxxxx

xxxx

yyyy

c

xxfxx

yyc

xfyc

,...,,,...

.........................................

,,

,

210

210

1202

02

01

0102

2

10

01

011

000

nkxxxfc kk ,0,,...,, 10

Coeficientii ck sunt diferentele

divizate de ordinul k, kxxxf ,...,, 10

Page 66: Metode numerice -notite de curs

66

Diferentele divizate de ordinul k, se determina recursiv, din diferentele divizate de ordinul k-1:

Astfel, diferentele divizate de ordinul 1 sunt:

diferentele divizate de ordinul 2 sunt:

iar in cele din urma, diferenta divizata de ordinul n este:

0

1102110

,...,,,...,,,...,,

xx

xxxfxxxfxxxf

k

kkk

...,,,,,12

1221

0

0110

xx

yyxxf

xx

yyxxf

k

,...,,,

,,,,,

,,13

2132321

02

1021210

xx

xxfxxfxxxf

xx

xxfxxfxxxf

.,...,,,...,,

,...,,0

1102110

xx

xxxfxxxfxxxf

n

nnn

Page 67: Metode numerice -notite de curs

67

Functia de interpolare Newton are forma finala:

• matricea sistemului este relativ bine conditionata.

• timpul de pregatire (determinare coeficienti ck) este 3n2/2.

• timpul de evaluare este 2n.

• permite marirea gradului polinomului de interpolare, prin

adaugarea unui nod nou in reteaua de discretizare, cu reutilizarea

coeficientilor de la gradul anterior, care nu se modifica, deci cu

un efort minim de calcul.

• astfel, exista control automat asupra erorii de interpolare.

n

k

k

i

ik xxxxxfxg0

1

0

10 ,...,,)(

)(...))((,...,,

...))((,,)(,)(

11010

102100100

nn xxxxxxxxxf

xxxxxxxfxxxxfyxg

Page 68: Metode numerice -notite de curs

68

• Metode clasica, Lagrange, Newton sunt metode de interpolare

globala, ce determina un singur polinom de grad n care sa treaca

prin cele n + 1 puncte ale retelei de discretizare

• Deoarece polinomul de interpolare este unic (n = 1, exista o

dreapta unica ce trece prin cele doua puncte; n = 2, exista o

parabola unica ce trece prin cele trei puncte, …), cele trei

metode rulate pe un calculator ideal, de precizie infinita (in care

nu exista erori de rotunjire) ar furniza aceeasi solutie.

• Eroarea de interpolare este eroarea de trunchiere, care depinde

invers proportional de gradul polinomului de interpolare, n, si

direct proportional de pasul de discretizare, h=xk–xk-1=ct. (retea

uniforma).

• Teoretic, eroare scade cu cresterea gradului polinomului de

interpolare, dar pentru anumite functii, de exemplu functia

Runge, s-a observat o comportare contrara pe o retea uniforma.

Page 69: Metode numerice -notite de curs

69

• Pentru functia Runge, cresterea numarului de noduri ale retelei

de discretizare uniforme conduce la aparitia de oscilatii

importante ale functiei de interpolare intre nodurile retelei, in

special la capetele domeniului de definitie.

• Solutia este utilizarea unei retele neuniforme, ale carei noduri

sunt chiar radacinile polinomului Cebisev, ceea ce reprezinta

interpolarea neuniforma Cebisev.

• Interpolarea Cebisev nu se poate aplica functiilor definite

tabelar, trebuie sa se cunoasca expresia analitica a functiei

pentru evaluarea acesteia in radacinile polinomului Cebisev.

Page 70: Metode numerice -notite de curs

70

Pseudocod

functia interp_L (n, x, y, xcrt)

; evalueaza functia de interpolare Lagrange fara pregatire in punctul xcrt

intreg n ; gradul polinomului

tablou real x(n+1), y(n+1) ; reteaua de discretizare, indici de la 0 la n

real xcrt ; punctul in care se doreste evaluarea functiei de interpolare

real ycrt ; valoarea functiei de interpolare in xcrt

real s

ycrt = 0

pentru k = 0, n

s = 1

pentru j = 0, n

daca j ≠ k atunci

s = s∙(xcrt − xj)/(xk − xj)

ycrt = ycrt + s∙yk

intoarce ycrt

Page 71: Metode numerice -notite de curs

71

procedura preg_L (n, x, y, p)

; pregateste datele pentru interpolarea Lagrange

intreg n ; gradul polinomului

tablou real x(n+1), y(n+1) ; reteaua de discretizare, indici de la 0 la n

tablou real p(n+1) ; coeficientii polinomului, date pregatite, indici de la 0 la n

pentru k = 0, n

pk = yk

pentru j = 0, n

daca j ≠ k atunci

pk = pk /(xk − xj)

retur

Page 72: Metode numerice -notite de curs

72

functia eval_L (n, x, y, xcrt, p)

; evalueaza functia de interpolare Lagrange cu pregatire in punctul xcrt

intreg n ; gradul polinomului

tablou real x(n+1), y(n+1) ; reteaua de interpolare, indici de la 0 la n

tablou real p(n+1) ; coeficientii polinomului, date pregatite, indici de la 0 la n

real xcrt, ycrt, s

s = 1

pentru k = 0, n

s = s∙(xcrt − xk)

daca s = 0 atunci

intoarce yk

ycrt = 0

pentru k = 0, n

ycrt = ycrt + pk /(xcrt − xk)

ycrt = s∙ycrt

intoarce ycrt

Page 73: Metode numerice -notite de curs

73

program principal

; declaratii

intreg n, k

real xcrt, ycrt

tablou real x(n+1), y(n+1)

; introducere date intrare

citeste xcrt ; punctul in care se doreste evaluarea functiei de interpolare

citeste n ; gradul polinomului

pentru k = 0, n

citeste xk, yk ; nodurile retelei de discretizare

; apelare functie metoda de interpolare Lagrange fara pregatire

ycrt = interp_L (n, x, y, xcrt)

; afisare date iesire

scrie ycrt ; valoarea functiei de interpolare in xcrt

stop

Page 74: Metode numerice -notite de curs

74

Metoda de interpolare liniara pe portiuni

Nu se determina un singur polinom pe intervalul [x0, xn] ca la metodele de interpolare globala.

Pe fiecare subinterval [xk, xk+1] se determina cate un polinom de gradul 1.

Astfel, intre doua noduri succesive, (xk, yk) si (xk+1, yk+1), graficul functiei este aproximat cu dreapta care uneste nodurile respective.

Graficul functiei f(x) este aproximat cu linia poligonala (g(x)) care uneste toate nodurile retelei de discretizare.

Pentru

Metode de interpolare locala

k

kk

kkk xx

xx

yyyyxg

1

1)(

:, 1 kk xxx

Page 75: Metode numerice -notite de curs

75

7. Derivarea numerica a functiilor reale

Fie functia f:[a,b] → IR, f(x)=y reprezentata prin date (tabelar): se cunosc valorile functiei doar intr-o retea de puncte din domeniul de definitie, numite noduri.

Derivarea numerica se bazeaza pe interpolarea numerica!

Daca se determina functia de interpolare g:[a,b] → IR care trece

prin nodurile retele de discretizare, atunci derivata numerica a

functiei f(x) se obtine prin derivarea functiei g(x), care reprezinta

un polinom de gradul n.

← retea de discretizare cu n+1 noduri

x x0 x1 ... xn

y y0 y1 … yn

y’ y’0=? y’1=? … y’n=?

Page 76: Metode numerice -notite de curs

76

Pentru n = 1, functia de interpolare este un polinom de gradul 1:

iar derivata sa este o constanta pe intervalul [x0,x1]:

Astfel, aproximarea de ordinul unu a derivatei numerice este

discontinua in nodurile retelei de discretizare:

,)(01

01

10

10

xx

xxy

xx

xxyxg

01

01)('xx

yyxg

kk

kkkk

xx

yyyxg

1

1')('

1

1')('

kk

kkkk

xx

yyyxg

← formula progresiva de ordinul 1

← formula regresiva de ordinul 1

Page 77: Metode numerice -notite de curs

77

Pentru n = 2, functia de interpolare este un polinom de gradul 2:

iar derivata sa este un polinom de gradul 1 pe diviziunea [x0,x1,x2]:

Pentru o retea de discretizare uniforma, h=xk–xk-1=ct., aproximarile

de ordinul doi ale derivatei numerice sunt:

h

yyyxg kk

kk2

')(' 11 ← formula centrata de ordinul 2

,)(1202

102

2101

201

2010

210

xxxx

xxxxy

xxxx

xxxxy

xxxx

xxxxyxg

1202

102

2101

201

2010

210)('

xxxx

xxxxy

xxxx

xxxxy

xxxx

xxxxyxg

h

yyyyxg kkk

kk2

43')(' 11

11

← formula progresiva

de ordinul 2

h

yyyyxg kkk

kk2

34')(' 11

11

← formula regresiva

de ordinul 2

Page 78: Metode numerice -notite de curs

78

• Pentru determinarea derivatei numerice in nodurile retelei de

discretizare, se recomanda utilizarea:

– formulei centrate de ordinul 2 in nodurile interioare

– formulei progresiva de ordinul 1 sau 2 in primul nod

– formulei regresiva de ordinul 1 sau 2 in ultimul nod.

• Pentru determinarea derivatei intr-un punct diferit de nodurile

retelei de discretizare, se utilizeaza interpolarea numerica pe o

retea de discretizare diferita (xk, y’k), k=0,n.

• Pentru calcul derivatelor de ordin superior (a doua derivata, a

treia derivata, a patra derivata, ...), se utilizeaza aproximari de

ordin mare.

• De exemplu, pentru determinarea numerica a celei de-a doua

derivate, este necesar cel putin un polinom de gradul 3 pentru a

obtine o functie continua.

Page 79: Metode numerice -notite de curs

79

• Derivarea numerica este afectata de eroarea de trunchiere.

• Teoretic, eroarea de trunchiere scade cu cresterea ordinul

aproximarii.

• Datorita fenomenului Runge, formulele de derivare de ordin

superior (n > 5) pot fi afectate de erori de trunchiere importante.

• Astfel, derivarea numerica poate prezenta instabilitati numerice,

in special pentru formulele de ordin superior.

• Eroarea de trunchiere depinde direct proportional cu pasul de

derivare h.

• Eroarea de rotunjire depinde invers proportional cu pasul de

derivare h.

• Pentru valori foarte mici ale pasului h, eroarea de trunchiere

scade considerabil, insa eroarea de rotunjire devine importanta.

• Practic, exista un pas optim pentru care eroarea totala este

minima.

Page 80: Metode numerice -notite de curs

80

Pseudocod

procedura derivtab (n, h, y, dy)

; calculeaza tabelul de derivare a unei functii definite tabelar in n+1 noduri

intreg n ; n+1 este numarul de noduri ale retelei de discretizare

real h ; pasul constant al retelei de discretizare

tablou real y(n+1) ; valorile cunoscute ale functiei, indici de la 0 la n

tablou real dy(n+1) ; valorile derivatei functiei, indici de la 0 la n

dy0 = (-3y0 + 4y1 – y2)/(2h) ; formula progresiva de ordinul 2

dyn = (yn-2 – 4yn-1 + 3yn)/(2h) ; formula regresiva de ordinul 2

pentru i = 1, n−1

dyi = (yi+1 – yi-1)/(2h) ; formula centrata de ordinul 2

retur

Page 81: Metode numerice -notite de curs

81

program principal

; declaratii

intreg n, k

tablou real x(n+1), y(n+1), dy(n+1)

; introducere date intrare

citeste n ; n+1 este numarul de noduri ale retelei de discretizare

pentru k = 0, n

citeste xk, yk ; nodurile retelei de discretizare

h = x1–x0 ; determinare pasul retelei de discretizare uniforme

; apelare procedura metodei de calcul

derivtab (n, h, y, dy)

; afisare date iesire

pentru k = 0, n

scrie dyk ; valorile derivatei numerice in nodurile retelei de discretizare

stop

Page 82: Metode numerice -notite de curs

82

8. Integrarea numerica a functiilor reale

Fie functia f:[a,b] → IR, f(x)=y reprezentata prin date (tabelar): se cunosc valorile functiei doar intr-o retea de puncte din domeniul de definitie, numite noduri.

Valoarea exacta a integralei reprezinta aria suprafetei subintinse de

graficul functiei intre capetele domeniului de definitie:

Integrarea numerica se bazeaza pe interpolarea polinomiala pe

portiuni!

Integrarea numerica este mult mai robusta decat derivarea

numerica.

x x0 x1 ... xn

y y0 y1 … yn ← retea de discretizare cu n+1 noduri

b

a

xxfI d)(0

Page 83: Metode numerice -notite de curs

83

Metoda trapezelor

In cazul metodei de interpolare liniara pe portiuni, graficul functiei f(x) este aproximat cu linia poligonala (g(x)) care uneste toate nodurile retelei de discretizare.

Astfel, intre doua noduri succesive, (xk, yk) si (xk+1, yk+1), graficul functiei este aproximat cu dreapta care uneste nodurile respective.

Integrala numerica pe intervalul (xk, xk+1) este aria trapezului

sprijinit de axa Ox, determinat de abscisele xk, xk+1 si ordonatele yk,

yk+1:

Integrala numerica pe intervalul (a,b) este suma ariilor celor n

trapeze:

2

)(d)( 11

1

kkkk

x

x

k

xxyyxxgI

k

k

1

0

111

0 2

)(n

k

kkkkn

k

k

xxyyII

Page 84: Metode numerice -notite de curs

84

Pentru o retea de discretizare uniforma, h=xk–xk-1=ct., formula

integralei numerice se simplifica:

Metoda Simpson 1/3

Graficul functiei f(x) este aproximat intre trei noduri consecutive,

(xk-1, yk-1), (xk, yk), (xk+1, yk+1), cu o parabola (g(x)) care uneste cele

trei noduri.

Integrala numerica pe intervalul (xk-1, xk+1) este aria suprafetei

subintinse de parabola:

unde, din motive de simplitate, s-a considerat o retea de discretizare

uniforma, h=xk–xk-1=ct..

nn

n

k

kk yyyyyh

yyh

I

1210

1

0

1 2...2222

,43

d)( 11

1

1

kkk

x

x

k yyyh

xxgIk

k

Page 85: Metode numerice -notite de curs

85

Integrala numerica pe intervalul (a,b) este suma ariilor suprafetelor

subintinse de parabole:

• Numarul de noduri (n+1) al retelei de discretizare trebuie sa fie

impar.

• Metoda Simpson este mai precisa decat metoda trapezelor

• Metoda trapezelor este mai robusta decat metoda Simpson,

numarul de noduri nefiind restrictionat.

1

21

11

1

21

43

n

kkk

kkk

n

kkk

k yyyh

II

nnn yyyyyyyh

I 123210 42...4243

Page 86: Metode numerice -notite de curs

86

• Eroarea de metoda este eroarea de trunchiere.

• Eroarea scade cu cresterea numarului de noduri.

• Eroare: locala (pe fiecare subinterval) si globala (suma erorilor

locale),

• Eroarea locala are ordinul O(h3) la metoda trapezelor si ordinul

O(h5) la metoda Simpson.

• Eroarea globala are ordinul O(h2) la metoda trapezelor si ordinul

O(h2) la metoda Simpson, fiind mai mare decat eroarea locala.

• In practica, metoda trapezelor ofera rezultate satisfacatoare daca

numarul de noduri este rezonabil de mic.

Page 87: Metode numerice -notite de curs

87

Pseudocod

functia trapez (a, b, n)

; calculeaza integrala functiei f pe intervalul [a, b], cu metoda trapezelor,

; se cunoaste expresia analitica a functiei

intreg n ; numarul de subintervale ale retelei de discretizare uniforme

real h ; pasul constant al retelei de discretizare

real a, b ; capetele intervalului de definitie

intreg k

real r ; valoarea integralei

h = (b − a)/n

r = 0

pentru k= 1, n−1

r = r + f(a+k∙h)

r = (2r + f(a)+f(b))∙h/2

intoarce r

Page 88: Metode numerice -notite de curs

88

functia Simpson (a, b, n, y)

; calculeaza integrala functiei f pe intervalul [a, b] cu metoda Simpson,

; functia este definita tabelar

intreg n ; numarul de subintervale ale retelei de discretizare uniforme

real h ; pasul constant al retelei de discretizare

real a, b ; capetele intervalului de definitie

tablou real y(n+1) ; valoarea functiei in nodurile retelei de discretizare

intreg k

real r ; valoarea integralei

h = (b − a)/n

r = 0

pentru k= 1, n−1, 2

r = r + yk-1 + 4yk + yk+1

r = r∙h/3

intoarce r

Page 89: Metode numerice -notite de curs

89

program principal

; declaratii

intreg n, k

tablou real x(n+1), y(n+1)

real a, b, val

; introducere date intrare

citeste n ; n+1 este numarul de noduri ale retelei de discretizare

pentru k = 0, n

citeste xk, yk ; nodurile retelei de discretizare

a = x0 ; limita inferioara a domeniului de definitie

b = xn ; limita superioara a domeniului de definitie

; apelare functia metodei de calcul

val = Simpson (a, b, n, y)

; afisare date iesire

scrie val ; valorea integralei numerice determinata cu metoda Simpson

stop

Page 90: Metode numerice -notite de curs

90

9. Metode iterative de rezolvare a ecuatiilor

neliniare Fie functia continua f:[a,b] → IR, f(x)=y.

Solutia numerica a ecuatiei neliniare (transcendente) f(x)=0 se obtine prin generarea unui sir de solutii care tinde catre solutia exacta.

Metoda bisectiei (metoda injumatatirii intervalului)

In intervalul de definitie [a,b] trebuie sa existe o singura solutie a ecuatiei neliniare, f(a)∙f(b)<0.

La fiecare iteratie se calculeaza jumatatea intervalului de definitie xm=(a+b)/2, si se determina jumatatea in care se afla solutia, aceasta fiind noul interval de definitie:

daca f(xm) ∙ f(a) < 0 atunci

b=xm ; solutia se afla in prima jumatate

altfel

a=xm ; solutia se afla in a doua jumatate

Procesul iterativ se opreste cand (b − a) < eps (valoare impusa).

Page 91: Metode numerice -notite de curs

91

Metoda iteratiei simple

g(x) = x + c∙f(x)

Procesul iterativ se opreste cand (xk+1 − xk) < eps (valoare impusa de utilizator) sau numarul maxim de iteratii este atins.

...... )()2()1()0( kxxxx xlim )(

k

kx

)(0)( xgxxf

)()1( kk xgx – formula de recurenta

– functie de iteratie, reprezinta o

aplicatie cu punct fix (solutia exacta)

)()()1( kkk xfcxx – formula de recurenta

Page 92: Metode numerice -notite de curs

92

Conditia suficienta pentru ca procesul iterativ sa fie convergent este:

• g sa fie o contractie: |g(u) − g(v)| ≤ L∙|u − v|, cu L < 1, pentru orice u, v ∈ [a, b]

• |g’| < 1 →|1 + c∙f ’(x)| < 1.

Valoarea constantei c infuenteaza puternic convergenta procesului iterativ, aceasta trebuie sa aiba semn opus derivatei functiei f si trebuie aleasa astfel incat ultima inegalitate sa fie adevarata.

Cu cat modulul derivatei functiei de iteratie g este mai mic ca unitatea, cu atat procesul iterativ este mai rapid convergent.

Page 93: Metode numerice -notite de curs

93

Metoda Newton (metoda tangentelor)

Metoda cea mai rapid convergenta, la fiecare iteratie valoarea coeficientului c se modifica astfel incat |g’| = 0 →|1 + c∙f ’(x)| = 0:

La fiecare iteratie graficul functiei este aproximat cu tangenta dusa

in punctul de coordonate (xk,f(xk )). Noua solutie xk+1 se afla la

intersectia tangentei cu abscisa OX (y=0).

Derivata functiei trebuie evaluata la fiecare iteratie.

Metoda esueaza daca atinge un punct de extrem, f ’(xk )=0.

)(

)()()1(

' k

kkk

xf

xfxx

– formula de recurenta

)('

1kk

xfcc

Page 94: Metode numerice -notite de curs

94

Metoda Newton-Kantorovici (metoda tangentelor paralele)

Reprezinta o varianta simplificata a metodei Newton, in care derivata functiei se evalueaza o singura data, in punctul corespunzator solutiei initiale:

Metoda este mult mai slab convergenta decat metoda Newton, valoarea lui c este optima doar in punctul corespunzator solutiei initiale.

)0(

)()()1(

' xf

xfxx

kkk

– formula de recurenta

)0('

1

xfc

Page 95: Metode numerice -notite de curs

95

Metoda Newton discreta (metoda secantelor)

Derivata functiei f(x) se calculeaza prin formula regresiva de ordinul 1:

Necesita o dubla initializare a solutiei: x(0), x(1).

Metoda este mai slab convergenta decat metoda Newton, dar mai rapid convergenta decat metoda Newton-Kantorovici.

)1()(

)1()()()()1(

kk

kkkkk

xfxf

xxxfxx – formula de recurenta

)1()(

)1()()('

kk

kkk

xx

xfxfxf

Page 96: Metode numerice -notite de curs

96

functia bisectie (a, b, eps, itmax)

; calculeaza solutia ecuatiei cu metoda bisectiei

real a, b ; capetele intervalului de definitie

real eps ; eroarea impusa

intreg itmax ; numarul maxim de iteratii

intreg k

real xm ; solutia

k = 0

repeta

k = k + 1

xm = (a + b)/2

daca f(xm) ∙ f(a) < 0 atunci

b = xm ; solutia se afla in prima jumatate

altfel

a = xm ; solutia se afla in a doua jumatate

pana cand (b − a) < eps sau k > itmax

intoarce xm

Page 97: Metode numerice -notite de curs

97

functia Newton (a, b, eps, itmax)

; calculeaza solutia ecuatiei cu metoda Newton

real a, b ; capetele intervalului de definitie

real eps ; eroarea impusa

intreg itmax ; numarul maxim de iteratii

intreg k

real d

real xnou, xvechi ; solutii

k = 0

xvechi = (a + b)/2

repeta

k = k + 1

xnou = xvechi – f(xvechi)/f ’(xvechi)

d = |xnou – xvechi| ; eroarea Cauchy

xvechi = xnou

pana cand d < eps sau k > itmax

intoarce xnou

Page 98: Metode numerice -notite de curs

98

functia secante (a, b, eps, itmax)

; calculeaza solutia ecuatiei cu metoda Newton discreta

real a, b ; capetele intervalului de definitie

real eps ; eroarea impusa

intreg itmax ; numarul maxim de iteratii

intreg k

real d

real xnou, xvechi, xvvechi; solutii

k = 0

xvechi = a

xvvechi = b

repeta

k = k + 1

xnou = xvechi – (xvechi – xvvechi)∙f(xvechi)/(f(xvechi) – f(xvvechi))

d = |xnou – xvechi| ; eroarea Cauchy

xvvechi = xvechi

xvechi = xnou

pana cand d < eps sau k > itmax

intoarce xnou

Page 99: Metode numerice -notite de curs

99

program principal

; declaratii

intreg itmax

real a, b

real eps, s

; introducere date intrare

citeste a, b ; capetele intervalului de definitie

citeste eps ; eroarea impusa

citeste itmax ; numarul maxim de iteratii

; apelare functia metodei de calcul

s = bisectie (a, b, eps, itmax)

; afisare date iesire

scrie s ; solutia ecuatiei neliniare

stop

Page 100: Metode numerice -notite de curs

100

Ex.:

Metoda bisectiei:

06)(6 22 xxxfxx

0,8 ba

0)()(6)0()(,50)8()( bfaffbffaf

:1k 6)4()(42

)1()1(

fxmfba

xm

40)4()8()()( )1()1( xmaffxmfaf

]0,4[x

:2k 4)2()(22

)2()2(

fxmfba

xm

20)2()4()()( )2()2( xmbffxmfaf

]2,4[ x

Page 101: Metode numerice -notite de curs

101

Metoda Newton:

Metoda Newton discreta:

1)0(x

71

61

1'

11

' )0(

)0()0()1(

f

f

xf

xfxx

13

55

13

367

7'

77

' )1(

)1()1()2(

f

f

xf

xfxx

1,2 )1()0( xx

4)2()1(

))2(1()1(1

)0()1(

)0()1()1()1()2(

ff

f

xfxf

xxxfxx

2

5

)1()4(

))1(4()4(4

)1()2(

)1()2()2()2()3(

ff

f

xfxf

xxxfxx


Recommended