Sunteți pe pagina 1din 16

1

CURS 2
METODE NUMERICE PENTRU SISTEME DE ECUAŢII NELINIARE
------------------------------------------------------------------------------------------------------------
0. Preliminarii: Norma unui vector si norma unei matrici (rapel).
1. Sisteme de ecuaţii neliniare. Definiţii.
2. Metoda punctului fix.
3. Metoda Newton; metode cvasi-Newton.

0 Norma unui vector şi norma unei matrici


Fie V un spaţiu vectorial: în cazul de faţă, V este R n sau C n .
Norma unui vector x ∈ V este aplicaţie || . ||: V → R + , satisfăcând axiomele:
1. || x || ≥ 0, şi || x || = 0 ⇔ x = 0.

2. || λ ⋅ x || = | λ | ⋅ || x || , ∀λ = scalar ( λ ∈ R sau λ ∈ C ).

3. || x + y || ≤ || x || + || y ||

Exemple de norme ale unui vector:


|| x || ∞ = max | xi | … norma-∞ (norma maximum)
i =1, n

n
|| x ||1 = ∑ | xi | … norma-1
i =1

1/ 2
 n 
|| x ||2 =  ∑ | xi |2  … norma-2 (norma euclidiană)
 i =1 

Fie An este mulţimea matricilor n × n cu elemente scalare (reale, complexe).
Norma unei matrici A ∈ An este o aplicaţie || . ||: An → R + , care satisface axiomele
1 – 3, şi în plus, următoarele:
4. || A ⋅ B || ≤ || A || ⋅ || B ||

5. || A ⋅ x || ≤ || A || ⋅ || x ||

În axiomele 4-5, B ∈ An , iar x este un vector. Normele care satisfac 5 se zic


compatibile cu norma vectorului.

a.ch. – Octombrie 2009


2

Observaţie
Definiţia normei unei matrici, indusă de norma vectorului, este:
|| A ⋅ x ||
|| A || = sup
x ≠0 || x ||
Pentru detalii privind norma unui vector şi norma unei matrici, vezi Capitolul 4-I ■
Exemple de norme ale unei matrici:
|| A || ∞ = max ∑ | a ij | - norma liniilor
i
j

|| A ||1 = max ∑ | aij | - norma coloanelor


j
i

[
|| A ||2 = ρ ( A ∗ ⋅ A ) ] 1/ 2
- norma euclidiană,

în care: A ∗ = A T ( A – conjugat transpus); ρ = max | λ j | , unde λ j , j = 1, n sunt


j

valorile proprii ale matricii A. ρ se zice rază spectrală.

1 Definiţii
Fie sistemul de ecuaţii neliniare

f 1 ( x1 , x 2 , ... , x n ) = 0
KK
f n ( x1 , x 2 , ... , x n ) = 0

Acesta se scrie vectorial

f ( x) = 0 (1)

unde f : I → R n , I ⊂ R n . Explicit:

 x1  0   f1 ( x) 
x  0   f ( x) 
 2    2 
x =  .  , 0 =  .  , f ( x) =  .  ,
     
. .  . 
 x n  0  f n (x)

O soluţie a sistemului (1) se va nota cu α, adică: f (α ) = 0 .

a.ch. – Octombrie 2009


3

Pentru rezolvarea prin metoda punctului fix, sistemul (1) se va considera pus sub
forma:

x = g (x ) (2)

în care g : I → R n , I ⊂ R n ,

O soluţie a lui (2) se va nota α, adică: α = g(α ) .

În ceea ce urmează, se presupun cunoscute noţiunile de normă a unui vector || x || , şi


normă a unei matrici pătratice || A || . În particular, norma-∞ este:

|| x || ∞ = max | xi | ; || A || ∞ = max ∑ | a ij | .
i i
j

2 Metoda punctului fix


Ecuaţii de forma x = g (x ) .
Metoda

Metoda constă în construirea şirului:


(0) (0) (0)
x ( 0) = [ x1 x2 ... x n ]T - aproximaţia iniţială, dată;

x ( n +1) = g (x ( n ) ), n ≥ 0

A nu se confunda indicele superior (n) (indicele iteratei) cu ordinul n al sistemului


(indice inferior al coordonatei x n(k ) ).

Convergenţa procesului iterativ este asigurată de următoarele condiţii:

(1) g este contractantă – pe o vecinătate I a rădăcinii: pentru ∀x, y ∈ I


|| g ( x ) − g( y ) || ≤ M ⋅ || x − y || , M < 1.

(2) Aproximaţia iniţială x ( 0 ) ∈ I este suficient de apropiată de rădăcina α.

Observaţie
Dacă g : C → C şi C ⊂ R n este un compact (mulțime mărginită și închisă), atunci

procesul converge pentru ∀x ( 0) ∈ C .

a.ch. – Octombrie 2009


4

Teorema 1

Presupunem:

1. x = g (x) are o rădăcină α.

2. g este continuă şi are derivate parţiale de ordinul 1 continue, pe I definit de:

|| x − α || ∞ ≤ ρ .

3. Derivatele satisfac condiţia:

∂g i (x)
max ∑ ≤ λ < 1 , ∀x ∈ I .
i
j ∂x j

Atunci, ∀x ( 0 ) ∈ I :

(a) Iteratele x ( n ) ∈ I .

(b) Şirul x ( n ) → α .

(c) α este unica rădăcină în I ■

x2

x
ξ
ρ y
α

x1
Intervalul I din Condiția (2).

Sumarul demonstraţiei:

a.ch. – Octombrie 2009


5

Fie x, y ∈ I: || x − α || ∞ ≤ ρ , || y − α || ∞ ≤ ρ . Din desvoltarea Taylor, se arată că avem:

|| g(x) − g(y ) || ∞ ≤ λ ⋅ || x − y || ∞

Rezultă:

|| x ( n +1) − α || ∞ = || g(x ( n ) ) − g(α ) || ∞ ≤ λ ⋅ || x ( n ) − α || ∞ ≤ λ ⋅ ρ < ρ

şi prin inducţie:

|| x ( n ) − α ||∞ ≤ λn ⋅ ρ

Cum λ < 1, rezultă λn → 0 , sau x ( n ) → α .

Concluzia (c) se demonstrează prin contradicţie ■

Observaţii
1) Matricea jacobian a funcţiei g:

Introducem jacobianul G a lui g, prin:

 ∂g 1 ∂g1 ∂g 1 
 ∂x ...
∂x 2 ∂x n 
 ∂g i   1 
G ( x) =   = . . . . . . . . . . . . . . . . . . . . . 
 ∂x j  x  ∂g 
 n ∂g n ... ∂g n 
 ∂x1 ∂x 2 ∂x n  x

Cu definiţia normei || A || ∞ = max ∑ | a ij | , condiţia 3 se scrie:


i
j

3'. || G( x ) ||∞ ≤ λ < 1 , ∀x ∈ I

G(x) joacă rolul lui g ′(x) pentru o funcţie scalară.

2) Convergenţa liniară:

În condiţiile din Teorema 1, cu λ > 0, convergenţa este liniară, conform relaţiei:

|| x ( n +1) − α || ∞ ≤ λ ⋅ || x ( n ) − α || ∞ .

a.ch. – Octombrie 2009


6

3) Convergenţa de ordinul 2 (pătratică)

Să presupunem că în rădăcina α, avem:

∂g i
G( α ) = O ⇔ = 0; i, j = 1, 2, …, n
∂x j α

unde O este matricea nulă, şi că ∂g i / ∂x j sunt continue pe o vecinătate a lui α.

Atunci, ∃ρ > 0 astfel încât condiţia 3 sau 3' este satisfăcută. Dacă, în plus, derivatele
de ordinul 2 există şi sunt mărginite pe || x − α || ∞ ≤ ρ , adică:

∂ 2 gi
max ≤ M1 ,
i , j ,k ∂x j ∂x k

atunci din formula Taylor rezultă:


2
|| g ( x ) − g(α ) ||∞ ≤ M ⋅ || x − α ||∞ ,

1 2
unde M = ⋅ n ⋅ M1 ,
2

Cu x = x ( n ) , g( x ( n ) ) = x ( n +1) , rezultă:

2
|| x ( n +1) − α ||∞ ≤ M ⋅ || x ( n ) − α ||∞

care arată că convergenţa este de ordinul 2

2.2 Procedură explicită de punct fix

Considerăm sistemul dat sub forma f (x) = 0 şi vrem să-l transformăm într-un sistem
echivalent de forma x = g (x) .

Fie A (x ) = [aij ( x )] o matrice n × n , nesingulară pe o vecinătate a lui α. Definim:

g(x ) = x − A(x ) ⋅ f (x )

Este evident că, A fiind nesingulară, avem:

x = g(x ) ⇔ f (x ) = 0 .

a.ch. – Octombrie 2009


7

Exemplu – 1: ‘Iterare cu matrice constantă’

A(x) = A , unde A = matrice constantă (aij = constant) şi nesingulară.

g(x ) = x − A ⋅ f (x )

Se verifică imediat că, jacobianul lui g este dat de:

G ( x) = I − A ⋅ F ( x ) ,

unde I este matricea unitate, iar F(x) este jacobianul lui f,

 ∂f j 
F ( x) =   .
 ∂x k  x

Explicit:

 ∂f 1 ∂f 1 ∂f 1 
 ∂x ∂x ... ∂x 
 ∂f   1 2 n

F ( x) =  i  = . . . . . . . . . . . . . . . . . . . . . 
 ∂x j  x  
 ∂f n ∂f n ... ∂f n 
 ∂x1 ∂x 2 ∂x n  x

Conform Teoremei 2, iteraţia va converge dacă elementele matricii G(x) sunt


suficient de mici, şi x ( 0) este suficient de apropiat de α.

Pentru o convergenţă mai rapidă, să cerem – v. Observaţia 3:

G( α ) = O .

Rezultă A ⋅ F (α ) = I , sau

A = [F (α )] .
−1
(3)

Cum α nu este cunoscut, luăm de exemplu, α ≈ x ( 0 ) , rezultă:

[
A = F(x ( 0) ) ] −1
. (4)

Iteraţia va fi definită de

a.ch. – Octombrie 2009


8

x ( n +1) = x ( n ) − A ⋅ f (x ( n ) ) , (5)

unde A este definită de (4).

Procedura se zice iterare cu matricea constantă A, şi este analoagă cu metoda coardei


pentru o funcţie scalară ■

2.3 Schema practică de iterare

Procedeul practic, care evită inversarea matricii F(x ( 0) ) , este următorul. Punem:

δx ( n +1) = x ( n +1) − x ( n ) ,

şi rezultă – pentru n ≥ 0 :

F(x ( 0 ) ) ⋅ δx ( n +1) = −f (x ( n ) ) (6a)

x ( n +1) = x ( n ) + δx ( n +1) (6b)

Procedeul revine la determinarea corecţiei δx ( n+1) prin rezolvarea sistemului liniar


(6a). Iteraţia se opreşte prin testele

|| δx ( n +1) || ≤ eps , (7a)

n +1 ≤ lnit (7b)

unde toleranţa eps şi numărul limită de iteraţii lnit, sunt alese dinainte. Procedeul este
util mai ales dacă actualizăm A după un număr de paşi, conform Observaţiei 1.

Codul Fortran care implementează această schemă, cu actualizarea matricii A după 3


paşi, este dat în ANA – Fix_Sys.

Exemplu – 2: ‘Metoda Newton’


Să presupunem că, pentru a avea A = [F (α )] , actualizăm matricea A din (4,5), la
−1

fiecare pas. Iteraţia (5) devine:

[
x ( n +1) = x ( n ) − F(x ( n ) ) ]
−1
⋅ f (x ( n ) ) .

Aceasta reprezintă metoda Newton pentru sistemul f(x) = 0 – v. în continuare ■

a.ch. – Octombrie 2009


9

3 Metoda Newton
Ecuaţii de forma f (x) = 0 .
Metoda

Considerăm ecuaţia echivalentă x = g (x) , unde g (x) = x − A(x) ⋅ f (x) .

Căutăm A(x) , astfel ca metoda punctului fix pentru g să aibă ordinul doi. Condiţia
este – v. mai sus, G(α ) = O , sau

∂g i
=0, i, k = 1, 2, .., n .
∂x k x =α

Se verifică faptul că aceasta conduce la condiţia A(α ) = [F (α )] .


−1

Atunci, presupunem că:

- f este continuă şi cu derivate parţiale de ordinul 1 continue, pe o vecinătate a lui


rădăcinii α.

- Jacobianul lui f este nesingular în α:

det(F (α )) ≠ 0 .

Determinantul fiind funcţie continuă de elementele jacobianului, ∃ρ > 0 astfel că


pentru || x − α || ≤ ρ să avem

det(F (x)) ≠ 0 .

Alegem atunci

A(x) = [F (x)] ,
−1
|| x − α || ≤ ρ ,

care asigură A(α ) = [F (α )] . Rezultă:


−1

−1
g ( x ) = x − [F( x )] ⋅ f ( x )

Metoda Newton este atunci:

[
x ( n +1) = x ( n ) − F( x ( n ) ) ]
−1
⋅ f (x ( n ) ) (6)

a.ch. – Octombrie 2009


10

Conform Teoremei 1 şi Observaţiei 3, rezultă următoarea

Propoziţie
Dacă f are derivate parţiale de ordinul 2, mărginite pe || x − α || ≤ ρ , şi x ( 0) este
suficient de apropiat de α, atunci metoda Newton are convergenţă pătratică ■

În propoziţia de mai sus, şi în relaţiile anterioare, || . || este || . || ∞ .

Notă
Ipotezele de mai sus, în particular det(F (α )) ≠ 0 , se poate înlocui cu altele – v . Cap.
3-IV, 3.1, Teorema 3. Astfel, metoda se poate aplica şi în cazul det(F (α )) = 0 . În
acest caz, convergenţa este liniară. ■

3.2 Schema practică de iterare


Schema practică de iterare este cea de la 2.3, evitându-se inversarea matricii F(x ( n ) ) ,
şi anume (pentru n ≥ 0 ):

F(x ( n ) ) ⋅ δx ( n +1) = −f (x ( n ) ) (7a)

x ( n +1) = x ( n ) + δx ( n +1) (7b)

Corecţia δx ( n+1) se calculează prin rezolvarea sistemului liniar (13a). Iteraţia se


opreşte prin testul

|| δx ( n +1) || ≤ eps , (8a)

unde toleranţa eps este aleasă dinainte. Obişnuit, se adaugă şi testul:

Număr de iteraţii ≤ lnit, (8b)

unde lnit este numărul limită prescris de iteraţii.

Codul Fortran care implementează această schemă se dă în ANA – Newton_Sys.

3.3 Calculul numeric al derivatelor parţiale

Evaluarea jacobianului F(x ( k ) ) , la pasul k, cere evaluarea a n2 funcţii ∂f i / ∂x k . Chiar


dacă acestea se pot calcula analitic, pentru n mare efortul de calcul este mare. Alteori,

a.ch. – Octombrie 2009


11

f i (x) sunt date numeric. În astfel de cazuri, derivatele se calculează numeric, prin
diferenţe divizate:

∂f i f i ( x1 , ... , x j + h, ... , x n ) − f i ( x1 , ... , x j , ... , x n )


= ,
∂x j (k )
h x (k)
x

unde | h | este ‘mic’. Creşterea h poate constantă, sau poate fi variată de la un pas la

altul (luând h = h (k ) ). h nu se ia excesiv de mic, pentru a nu conduce la erori de


rotunjire mari. Se arătă că, pentru a menţine convergenţa pătratică, h trebuie să
satisfacă condiţia (la pasul k):

| h | ≤ C || f (x (k ) ) || ,

unde C este o constantă pozitivă, fixată dinainte (Ralston & Rabinowitz (1978)).

3.4 Metode cvasi-Newton

Metoda Newton este metoda descrisă de formula de iterare (6), care utilizează
jacobianul evaluat la fiecare pas x (n ) (analitic, sau numeric).
Dacă jacobianul F(x (n ) ) este înlocuit cu o aproximaţie a acestuia, metodele se zic
metode Newton-modificate sau metode cvasi-Newton.

Pentru a reduce efortul de calcul se procedează la înlocuirea jacobianului F(x (k ) ) de

la pasul k, cu o aproximaţie a acestuia, fie aceasta A (k ) , după una din următoarele


scheme:

- Jacobianul nu se actualizează după fiecare pas, ci după un număr m de paşi:

A (l ) = F(x ( k ) ) - pentru l = k , K , k + (m − 1) .

Această schemă reduce viteza convergenţei, dar este economică la o rulare lungă.

- Aproximaţia jacobianului la pasul k+1 se generează din cea de la pasul k, fără


evaluări suplimentare de funcţii. Această schemă este mai bună decât precedenta.
Pentru modalităti de generare a lui A ( k +1) - v. Ralston & Rabinowitz (1978).

a.ch. – Octombrie 2009


12

Cu modificările precedente, formula de iterare (6) devine:

x ( k +1) = x ( k ) − [ A ( k ) ]−1 ⋅ f (x ( k ) ) (9)

Nota 1: Metoda Newton prin liniarizarea ecuaţiilor


Fie ecuaţia neliniară f (x) = 0 , sau explicit, sistemul

f i (x) = 0, i = 1, 2, K, n

Dacă x ( 0) este în vecinătatea rădăcinii, considerăm desvoltarea Taylor a lui f i (x) în

jurul lui x ( 0) :

n
∂f i
f i ( x) = f i ( x ( 0 ) ) + ∑ ( x j − x (j0) ) + K
j =1 ∂x j
x( 0 )

unde termenii nescrişi sunt de ordin mai mare sau egal cu doi în ( x j − x (j0 ) ) .

Presupunem că aceştia sunt neglijabili în raport cu termenii de orinul întâi, şi avem

n
∂f i
f i ( x) ≈ f i ( x ( 0 ) ) + ∑ ( x j − x (j0) )
j =1 ∂x j
x( 0 )

∂f i
Notăm F ji = elementele jacobianului F al lui f, adică
∂x j

 ∂f 1 / ∂x1 L ∂f 1 / ∂x n   F1 L Fn 
1 1

 
F(x) =  L L L  =  L L L 
∂f n / ∂x1 L ∂f n / ∂x n   F1n L Fnn 

Desvoltarea devine
n
f i (x) ≈ f i (x ( 0 ) ) + ∑ F ji (x ( 0) )( x j − x (j0) ) ,
j =1

Sau, matriceal,

a.ch. – Octombrie 2009


13

 x1 − x10 
 
 x 2 − x 20 
f i (x) = f i (x ( 0 ) ) + [ F1i F2i K Fni ]x ( 0 ) ⋅
 M 
 0
 x n − x n 

Ecuaţiile scrise pentru i = 1,2, K , n , dau:

f (x) ≈ f (x ( 0 ) ) + F(x ( 0) )(x − x ( 0 ) )

Rezolvăm aproximativ sistemul f (x) = 0 , înlocuind f (x) prin expresia sa liniarizată


(în membrul doi al relaţiei precedente; punem semnul = în loc de ≈).

Rezultă:

F(x ( 0 ) )δx = −f (x ( 0) ) , (10)

unde s-a pus

δx = x − x ( 0) .

Relaţia (10) este formula schemei de iterare în metoda Newton.

Soluţia x (1) = x ( 0 ) + δx este o aproximaţie a rădăcinii (este soluţia sistemului


liniarizat).

Presupunând că aproximaţia x (1) este mai bună decât x ( 0) , atunci metoda constă în
aplicarea repetată a formulei (10), înlocuind, la pasul următor, x ( 0) cu x (1) .

Astfel, în general, metoda Newton este:

F(x ( k +1) )δx ( k +1) = −f (x ( k ) ), k = 0, 1, K

unde δx ( k +1) = x ( k +1) − x ( k )

Problema constă acum, în a proba că şirul x (k ) → α .

Nota 2: Interpretare geometrică pentru cazul n = 2


Să punem z = f1 ( x, y ) , z = f 2 ( x, y ) . Acestea sunt ecuaţiile a două suprafeţe, fie
acestea S1 şi S 2 .

a.ch. – Octombrie 2009


14

Ecuaţia f 1 ( x, y ) = 0 , revine la z = 0 , adică la intersecţia suprafeţei S1 cu planul x-y:


aceasta este o curbă C1 . Soluţia sistemului f 1 ( x, y ) = 0, f 2 ( x, y ) = 0 , revine la
intersecţia curbelor C1 şi C 2 .

Funcţia liniarizată este:

∂f i ( x ( 0) , y ( 0) ) ∂f ( x ( 0) , y ( 0 ) )
z ≈ f i ( x (0 ) , y (0) ) + ( x j − x (j0 ) ) + i ( y j − y (j0) )
∂x ∂y

Aceasta reprezintă ecuaţia planului tangent în ( x ( 0) , y ( 0) ) , la suprafaţa S i .

Deci, metoda revine la înlocuirea suprafeţei, în vecinătatea rădăcinii, prin planul


tangent

(Analog, cu metoda Newton pentru o ecuaţie scalară f ( x) = 0 , unde graficul se


înlocuieşte cu tangenta la grafic).

Intersecţiile planelor tangente cu planul x-y vor fi două drepte – care aproximează
curbele C1 şi C 2 . Intersecţia dreptelor este aproximaţia rădăcinii.

Exemplu
Fie sistemul de două ecuaţii neliniare:

f 1 ( x, y ) ≡ x 2 + y 2 − 5 = 0 , f 2 ( x, y ) ≡ y − e x − 1 = 0 .

Aproximaţiile iniţiale se iau:

x ( 0) = (−2, 1) , şi x ( 0) = (0.5, 2) .

De exemplu, acestea se pot găsi analizând intersecţia graficelor curbelor

x2 + y2 = 5 , y = e x +1.

a.ch. – Octombrie 2009


15

Matricea jacobian este:

2 ⋅ x 2 ⋅ y
F ( x, y ) =  x .
− e 1 

Luăm eps = 1E-6. Calculul este efectuat în simplă precizie. Soluţia calculată (x, y),
numărul de iteraţii, şi valorile lui f în soluţie, sunt date în tabelele de mai jos.

1) Metoda punctului fix, iterare cu matricea constantă A = F(x ( 0 ) ) , cu actualizare


după 3 paşi:

a.ch. – Octombrie 2009


16

x (0) Nr. iteraţii x y f1(x, y) f2(x, y)

(-2,1) 5 -1.919 684 1.146 653 -2.761 E-7 -2.995 E-8

(0.5, 2) 17 0.2043 374 2.226 712 7.210 E-8 -4.654 E-8

Observaţii
Derivatele parţiale ale funcţiilor f i sunt calculate numeric , cu h = 0.001. Numărul
de iteraţii pentru a doua rădăcină este mai mare decât cel pentru prima rădăcină,
întrucât aproximaţia iniţială (0.5, 2) este mai îndepărtată de rădăcină. Cu aproximaţia
x ( 0) = (0.2, 2.2), se găseşte aceeaşi soluţie în 8 iteraţii.

2) Metoda Newton:

x (0) Nr. iteraţii x y f1(x, y) f2(x, y)

(-2,1) 4 -1.919 684 1.146 653 -2.761 E-7 -2.995 E-8

(0.5, 2) 5 0.2043 374 2.226 712 5.384 E-8 8.289 E-9

Notă: Derivatele parţiale sunt calculate cu matricea jacobian F(x, y)


Exerciţiu
Să se rezolve sistemul:
 xy − z 2 = 2
 2 2
− xyz − x + y = 4
e x − e y − z = 7

Să se găsească rădăcinile din vecinătatea punctelor w0 = (2, 2, − 1) şi w0 = (1, 1, 1) .

a.ch. – Octombrie 2009

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