Sunteți pe pagina 1din 32

Formularea problemei

Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Rezolvarea sistemelor de ecuaţii algebrice


neliniare

Prof.dr.ing. Gabriela Ciuprina

Universitatea "Politehnica" Bucureşti, Facultatea de Inginerie Electrică

Suport didactic pentru disciplina Algoritmi Numerici, 2017-2018

1/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Cuprins
1 Formularea problemei
Enunţ
Dificultăţi
2 Iteraţii simple
Problemă de punct fix
Convergenţă
Jacobian
3 Newton
Algoritm
Convergenţa
Efort de calcul
4 Metode care aproximează Jacobianul
5 Metode robuste de tip Newton
Damped Newton
Trust region
6 Metode de descompunere
2/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton Enunţ
Metode care aproximează Jacobianul Dificultăţi
Metode robuste de tip Newton
Metode de descompunere

Formularea problemei

Se dau fk : IRn → IR, continue, k = 1, . . . , n.


Se cer xk pentru care

f1 (x1 , x2 , . . . , xn ) = 0
f2 (x1 , x2 , . . . , xn ) = 0
..
.
fn (x1 , x2 , . . . , xn ) = 0

3/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton Enunţ
Metode care aproximează Jacobianul Dificultăţi
Metode robuste de tip Newton
Metode de descompunere

Formularea problemei
Se dă F : IRn → IRn , continuă.
Se cere x ∈ IRn pentru care

F(x) = 0 (1)

unde
F = [f1 , f2 , . . . , fn ]T ∈ IRn
x = [x1 , x2 , . . . , xn ]T ∈ IRn

Exemplu care conduce la un astfel de sistem: analiza circuitelor


rezistive neliniare.
4/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton Enunţ
Metode care aproximează Jacobianul Dificultăţi
Metode robuste de tip Newton
Metode de descompunere

Dificultăţi

Nu există o metodă simplă de a încadra soluţia astfel încât


să obţinem o metodă garantat convergentă ca în cazul 1D.
Metodele de încadrare nu se pot generaliza.
Efortul de calcul creşte rapid odată cu dimensiunea
sistemului.

5/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Problemă de punct fix
Newton
Convergenţă
Metode care aproximează Jacobianul
Jacobian
Metode robuste de tip Newton
Metode de descompunere

Iteraţii simple

Formularea problemei ca o problemă de punct fix

F(x) = 0 ⇔ x = G(x) (2)

unde
G(x) = x + CF(x) (3)
şi C ∈ IRn×n
Iteraţii de punct fix
x(k +1) = G(x(k ) ) (4)

6/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Problemă de punct fix
Newton
Convergenţă
Metode care aproximează Jacobianul
Jacobian
Metode robuste de tip Newton
Metode de descompunere

Iteraţii simple
O condiţie suficientă de convergenţă este:
În 1D |g ′ (x ∗ )| < 1 unde x ∗ este soluţia.
În nD
ρ(G′ (x∗ )) < 1
unde G′ este matricea Jacobian.

şi iniţializarea este suficient de apropiată de soluţie


Deoarece ρ(A) ≤ kAk ⇒ condiţie suficientă de convergenţă:

kG′ (x∗ )k < 1 ⇔ kI + CF′ (x)k < 1

unde F′ este matricea Jacobian. 7/32


Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Problemă de punct fix
Newton
Convergenţă
Metode care aproximează Jacobianul
Jacobian
Metode robuste de tip Newton
Metode de descompunere

Iteraţii simple

Matricea Jacobian
∂f1 ∂f1 ∂f1
 
∂x1 ∂x2 ··· ∂xn
 
 
∂f2 ∂f2 ∂f2  not
··· (5)


F (x) =  ∂x1 ∂x2 ∂xn  = JF (x)
..
 
.
 
 
∂fn ∂fn ∂fn
∂x1 ∂x2 ··· ∂xn

8/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Algoritm
Newton
Convergenţa
Metode care aproximează Jacobianul
Efort de calcul
Metode robuste de tip Newton
Metode de descompunere

Newton - ideea
Convergenţa este cu atât mai rapid convergentă cu cât
kI + CF′ (x)k este mai mică.

Viteza maximă de convergentă pentru
kI + CF′ (x)k = 0

C = −(F′ (x))−1 (6)


Iteraţii Newton:
x(k +1) = x(k ) − (F′ (x(k ) ))−1 F(x(k ) ) (7)

Eşec dacă se întâlneşte o matrice Jacobian singulară. 9/32


Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Algoritm
Newton
Convergenţa
Metode care aproximează Jacobianul
Efort de calcul
Metode robuste de tip Newton
Metode de descompunere

Algoritm
Nu se implementează formula
x(k +1) = x(k ) − (F′ (x(k ) ))−1 F(x(k ) ) (8)
Dacă notăm z corecţia:
x(k +1) = x(k ) + z (9)
atunci
z = −(F′ (x(k ) ))−1 F(x(k ) )

(F′ (x(k ) ))z = −F(x(k ) ) (10)

La fiecare iteraţie neliniară


1 se calculează corecţia prin rezolvarea sist. algebric liniar (10);
2 se actualizează soluţia cu (9).
10/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Algoritm
Newton
Convergenţa
Metode care aproximează Jacobianul
Efort de calcul
Metode robuste de tip Newton
Metode de descompunere

Convergenţa

Pătratică
Funcţia de iteraţie G(x) = x − J−1
F (x)F(x)

JG (x ) = 0
Taylor:

G(x) = G(x∗ ) + (x − x∗ )T JG (x∗ ) + (x − x∗ )T HG (x∗ )(x − x∗ )/2

O demonstraţie riguroasă găsiţi aici

kx(k ) − x∗ k ≤ Mk(x(k −1) − x ∗ )k2 (11)

11/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Algoritm
Newton
Convergenţa
Metode care aproximează Jacobianul
Efort de calcul
Metode robuste de tip Newton
Metode de descompunere

Convergenţa

Matricea Hessian
∂ 2 f1 ∂ 2 f1 ∂ 2 f1
 
∂x12 ∂x1 ∂x2 ··· ∂x1 ∂xn
 
 
 
∂ 2 f2 ∂ 2 f2 ∂ 2 f2  not
··· (12)
′′

F (x) =  ∂x2 ∂x1 ∂x22 ∂x2 ∂xn  = HF (x)
..
 
 
 . 
∂ 2 fn ∂ 2 fn ∂ 2 fn
 
∂xn ∂x1 ∂xn ∂x2 ··· ∂xn2

12/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Algoritm
Newton
Convergenţa
Metode care aproximează Jacobianul
Efort de calcul
Metode robuste de tip Newton
Metode de descompunere

Efort de calcul

La fiecare iteraţie:
Evaluarea Jacobianului - n2 evaluări de funcţii scalare
dacă problema este densă (fiecare componentă a funcţiei
depinde de toate componentele variabilei);
Rezolvarea unui sistem de ecuaţii algebrice liniare - n3
dacă matricea este plină.
Foarte costisitor!

13/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Variante inspirate din metodele 1D


Scop: reducerea efortului de calcul pe iteraţie.
Dar: convergenţă nu va mai fi pătratică ⇒ compromis.
Newton-Kantorovich (tangente paralele)
(F′ (x(0 ))z = −F(x(k ) ) (13)
x(k +1) = x(k ) + z (14)
Sistemul de rezolvat are întotdeauna aceeaşi matrice a
coeficienţilor ⇒ este eficientă folosirea factorizării.
Secante - derivatele parţiale din formula Jacobianului se
calculează numeric.
(k −1) (k −1) (k ) (k −1) (k −1) (k −1) (k −1) (k −1)
∂fi fi (x1 , x2 , . . . , xj , . . . , xn ) − fi (x1 , x2 , . . . , xj , . . . , xn )
=
∂xj (k ) (k −1)
xj − xj

14/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton Damped Newton
Metode care aproximează Jacobianul Trust region
Metode robuste de tip Newton
Metode de descompunere

Convergenţă locală/globală
Metodă locală
O metoda iterativă este locală - dacă ea converge doar dacă
iniţializarea este suficient de aproape de soluţie (în interiorul
razei de convergenţă.)

Metoda Newton şi variantele ei sunt locale.


Dacă iniţializarea este foarte proastă, atunci metodele
locale pot fi modificate pentru a îmbunătăţi convergenţa lor
globală [Martinez]. Exemple de astfel de metode:
Newton cu amortizare;
quasi-Newton (Broyden);
regiuni de încredere;
descompunere (separare/decuplare/segregare).
15/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton Damped Newton
Metode care aproximează Jacobianul Trust region
Metode robuste de tip Newton
Metode de descompunere

Metoda Newton cu amortizare

Se calculează corecţia z la fiecare iteraţie, dar aproximaţia


nouă se calculează ca

x(k +1) = x(k ) + αk z

αk este un parametru scalar care se alege a.î. aproximaţia


x(k +1) să fie mai bună decât aproximaţia x(k ) .

16/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton Damped Newton
Metode care aproximează Jacobianul Trust region
Metode robuste de tip Newton
Metode de descompunere

Metoda Newton cu amortizare

Exemplu:
αk se alege a.î. kf(x(k )) k2 să scadă suficient de mult la fiecare
iteraţie.
sau
αk se alege a.î. h(α) = kf(x(k ) ) + αzk2 să fie minimă
Există o legătură între rezolvarea sistemelor neliniare şi
tehnicile de minimizare (optimizare).
Când aproximările au devenit suficient de aproape de
soluţie, coeficientul de amortizare trebuie să devină 1.

17/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton Damped Newton
Metode care aproximează Jacobianul Trust region
Metode robuste de tip Newton
Metode de descompunere

Metoda regiunii de încredere


Este o metodă mai complicată dar care face metoda de tip
Newton să fie mai robustă.
Ideea:
Se estimeaza razei unei "regiuni de încredere" în care
aproximarea seriei Taylor pe care se bazează metoda
Newton să fie suficient de precisă.
Corecţia soluţiei se ajustează în funcţie de raza acestei
regiuni de încredere.
În apropierea soluţiei, regiunile de încredere sunt suficient
de mari a.î sunt permise corecţii totale Newton.
Şi această metodă foloseşte tehnici de optimizare1
1
Detalii ale acestor algoritmi vor fi prezentate în capitolul de optimizare. 18/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton Damped Newton
Metode care aproximează Jacobianul Trust region
Metode robuste de tip Newton
Metode de descompunere

Metoda regiunii de încredere

Exemple de algoritmi din această categorie:


Levenberg - Marquardt;
double dogleg;
etc.
Astfel de algoritmi sunt folosiţi de exemplu în:
funcţia matlab fsolve;
COMSOL
etc

19/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton Damped Newton
Metode care aproximează Jacobianul Trust region
Metode robuste de tip Newton
Metode de descompunere

Fiţi atenţi la astfel de informaţii (capturi din COMSOL)

20/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton Damped Newton
Metode care aproximează Jacobianul Trust region
Metode robuste de tip Newton
Metode de descompunere

Fiţi atenţi la astfel de informaţii (capturi din COMSOL)

21/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton Damped Newton
Metode care aproximează Jacobianul Trust region
Metode robuste de tip Newton
Metode de descompunere

Fiţi atenţi la astfel de informaţii (capturi din COMSOL)

22/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Ideea

Până acum componentele Jacobianului au fost evaluate în


acelaşi punct.

f1 (x1 , x2 ) = 0,
f2 (x1 , x2 ) = 0

Newton - aplicat întregului sistem


(k ) (k ) (k ) (k )
" # " # " ∂f1 ∂f1
#−1 " #
(k +1) (k ) (k ) (k )
x1 x1 ∂x1
(x1 , x2 ) ∂x2
(x1 , x2 ) f1 (x1 , x2 )
(k +1) = (k ) − ∂f2 (k ) (k ) ∂f2 (k ) (k ) (k ) (k )
x2 x2 ∂x1
(x1 , x2 ) ∂x2
(x1 , x2 ) f2 (x1 , x2 )
(15)

23/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Ideea: Jacobi-Newton

Iteraţii - ca la Jacobi; Newton - aplicat pe grupuri de ecuaţii.


(k ) (k +1)
se rezolvă f1 (x1 , x2 ) = 0 ⇒ x1 ;
(k ) (k +1)
se rezolvă f2 (x1 , x2 ) = 0 ⇒ x2 ;
Deplasări simultane:
(j+1) (j) (j) (k ) (j) (k ) (k +1)
x1 = x1 − f1−1 (x1 , x2 )f1 (x1 , x2 ) → x1
(j+1) (j) (k ) (j) (k ) (j) (k +1)
x2 = x2 − f2−1 (x1 , x2 )f2 (x1 , x2 ) → x2
Condiţie: să existe inversele.

24/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Ideea: Jacobi-Newton

Aproape echivalent cu
(j) (k )
" # " # " ∂f1
#−1 " #
(j+1)
x1
(j)
x1 ∂x1
(x1 , x2 ) 0 (j) (k )
f1 (x1 , x2 )
(j+1) = (j) − ∂f2 (k ) (j) (k ) (j)
x2 x2 0 ∂x2
(x1 , x2 ) f2 (x1 , x2 )
(16)

Termenii care indică cuplajul ∂f1 /∂x2 , ∂f2 /∂x1 sunt neglijaţi.

25/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Ideea: Gauss-Seidel-Newton

Iteraţii - ca la Gauss-Seidel; Newton - aplicat pe grupuri de


ecuaţii.
(k ) (k +1)
se rezolvă f1 (x1 , x2 ) = 0 ⇒ x1 ;
(k +1) (k +1)
se rezolvă f2 (x1 , x2 ) = 0 ⇒ x2 ;
Deplasări succesive:
(j+1) (j) (j) (k ) (j) (k ) (k +1)
x1 = x1 − f1−1 (x1 , x2 )f1 (x1 , x2 ) → x1
(j+1) (j) (k +1) (j) (k +1) (j) (k +1)
x2 = x2 − f2−1 (x1 , x2 )f2 (x1 , x2 ) → x2
Condiţie: să existe inversele.
26/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Aplicaţii tipice

Această abordare este mai ales utilă în probleme


multifizice, în care separarea sistemului în grupuri de
ecuaţii se face pe considerente fizice.
Fiecare grup de ecuaţii provine din formulările matematice
ale unor probleme foarte bine definite şi cunoscute, cu
operatori matematici foarte bine studiaţi.
Rezolvarea pe componente (cuplaj slab) poate fi mai
robustă decât rezolvarea simultană (cuplaj tare).

27/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Rezolvarea pe componente (cuplaj slab) în COMSOL

28/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Rezolvarea pe componente (cuplaj slab) în COMSOL

29/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Rezolvarea pe componente (cuplaj slab) în COMSOL

30/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Rezolvarea pe componente (cuplaj slab) în COMSOL

31/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare
Formularea problemei
Iteraţii simple
Newton
Metode care aproximează Jacobianul
Metode robuste de tip Newton
Metode de descompunere

Referinţe
[Ioan98] D. Ioan et al., Metode numerice în ingineria
electrică, Ed. Matrix Rom, Bucuresti, 1998. (Capitolul 16)
[Cheney] Ward Cheney and David Kincaid, Numerical
Mathematics and Computing, Brooks/Cole publishing
Company,2000.
[Heath] Michael Heath, Scientific computing. An
Introductory Survey, McGraw Hill 2002 (capitolul 5 din
carte) şi alte resurse de la
disponibilă la http://heath.cs.illinois.edu/scicomp/

[Martinez] Jose Mario Martinez, Algorithms for Solving


Nolinear Systems of Equations, 1994, disponibil la
http://www.ime.unicamp.br/ martinez/nato.pdf
32/32
Gabriela Ciuprina Ecuaţii şi sisteme algebrice neliniare

S-ar putea să vă placă și