Sunteți pe pagina 1din 7

Elemente de analiză numerică Lector dr.

Simona Romaniuc

Facultatea de Inginerie Chimică şi Proteţia Mediului,


Metode numerice, probabilităţi şi statistică, Semestrul II
Lector dr. Simona ROMANIUC

Seminar VII

1 Aproximarea soluţiilor sistemelor de ecuaţii neliniare


1.1 Metoda Newton pentru sisteme neliniare ı̂n două dimensiuni
Considerăm un sistem de ecuaţii de forma:
(
f1 (x, y) = 0
, (x, y) ∈ D ⊂ R2 , (1)
f2 (x, y) = 0
unde funcţiile f1 şi f2 satisfac condiţii de diferenţiabilitate pe D până la un ordin necesar pentru
a construi un procedeu iterativ.
Notând diferenţele x − x(k) = ∆x, y − y (k) = ∆y, (1) este echivalent cu:
f1 (x(k) , y (k) )
   
(k) (k) ∆x
J(x , y ) · =− , (2)
∆y f2 (x(k) , y (k) )
care ne permite următorul procedeu iterativ pentru aproximarea soluţiei sistemului (1):
 (k+1)   (k)   
x x ∆x
= + .
y (k+1) y (k) ∆y
Soluţia poate fi considerată ca fiind ultima iteraţie din secvenţa
(x(0) , y (0) ), (x(1) , y (1) ), . . . , (x(k) , y (k) ), (x(k+1) , y (k+1) ), . . .
până când distanţa dintre ultimele două iteraţii este mai mică decât un număr ε pozitiv, suficient
de mic, dat aprioric, adică:
d((x(k) , y (k) ), (x(k+1) , y (k+1) )) ≤ ε,
sau până când un număr de iteraţii a fost atins.
Algoritmul metodei Newton pentru sisteme neliniare ı̂n două dimensiuni
Pasul 1) Calculăm valorile funcţiilor ı̂n punctul (x(k) , y (k) ) adică f1 (x(k) , y (k) ) şi f2 (x(k) , y (k) ),
unde (x(0) , y (0) ) sunt valorile de plecare pentru iteraţia 1.
Pasul 2) Calculăm valorile Jacobianului ı̂n iteraţia k:
!
∂f1 (k) (k) ) ∂f1 (x(k) , y (k) )
(k) (k) ∂x (x , y ∂y
J(x , y ) = ∂f2 (k) (k) ) ∂f2 (x(k) , y (k) ) .
∂x (x , y ∂y

Pasul 3) Rezolvăm sistemul


f1 (x(k) , y (k) )
   
(k) (k) ∆x
J(x ,y )· =− .
∆y f2 (x(k) , y (k) )
Pasul 4) Calculăm iteraţia următoare:
 (k+1)   (k)   
x x ∆x
= + .
y (k+1) y (k) ∆y

1
Elemente de analiză numerică Lector dr. Simona Romaniuc

Exerciţiul 1 Să se aproximeze soluţia sistemului neliniar


(
x2 − 2x − y + 0, 5 = 0
x2 + 4y 2 − 4 = 0,

ştiind că (x(0) , y (0) ) = (2, 00; 0, 25).


Rezolvare: Aplicăm metoda (2). Funcţiile implicate sunt:
(
f1 (x, y) = x2 − 2x − y + 0, 5
f2 (x, y) = x2 + 4y 2 − 4

iar Jacobianul este  


(2x − 2) −1
.
2x 8y
Pentru a trece de la iteraţia 0 la iteraţia 1, aplicăm algoritmul descris anterior.
Pasul 1) Calculăm: (
f1 (x(0) , y (0) ) = 0, 25
.
f2 (x(0) , y (0) ) = 0, 25
Pasul 2) Calculăm:  
(0) (0) 2 −1
J(x ,y )= .
4 2
Pasul 3) Rezolvăm sistemul:
     
2 −1 ∆x 0, 25
· =−
4 2 ∆y 0, 25

şi găsim    
∆x −0, 09375
= .
∆y 0, 06250
Pasul 4) Calculăm iteraţia 1:
 (1)       
x 2, 00 −0, 09375 1, 90625
= + = .
y (1) 0, 25 0, 06250 0, 31250

Pentru a trece de la iteraţia 1 la iteraţia 2 aplicăm din nou algoritmul.


Pasul 1) Calculăm: (
f1 (x(1) , y (1) ) = 0, 00878
.
f2 (x(1) , y (1) ) = 0, 02441
Pasul 2) Calculăm:  
(1) (1) 1, 8125 −1
J(x ,y )= .
3, 8125 2, 5
Pasul 3) Rezolvăm sistemul:
     
1, 81825 −1 ∆x 0, 00878
· =−
3, 8125 2, 5 ∆y 0, 02441

şi găsim    
∆x −0, 00556
= .
∆y −0, 00129

2
Elemente de analiză numerică Lector dr. Simona Romaniuc

Pasul 4) Calculăm iteraţia 1:


 (2)       
x 1, 90625 −0, 00556 1, 9069
= + =
y (2) 0, 31250 −0, 00129 0, 31121

şi continuăm până la numărul de iteraţii dorit, sau calculând după fiecare iteraţie distanţa dintre
ultimele două aproximări.

Interpolarea funcţiilor de o variabilă

Interpolare. Diferenţe finite


Diferenţe finite de ordine succesive ale unei funcţii, calculate ı̂n nodurile de interpolare, pot fi
aranjate ı̂ntr-un tabel diagonal:

xi yi ∆yi = yi+1 − yi ∆2 yi = ∆yi+1 − ∆yi ∆3 yi = ∆2 yi+1 − ∆2 yi


x0 y0 ∆y0 = y1 − y0 ∆2 y0 = ∆y1 − ∆y0 ∆3 y0 = ∆2 y1 − ∆2 y0
x1 y1 ∆y1 = y2 − y1 ∆2 y1 = ∆y2 − ∆y1
x2 y2 ∆y2 = y3 − y2
x3 y3

Exerciţiul 2 Să se scrie tabelul cu diferenţe finite pentru funcţia f dată prin tabelul următor:

x| 2.00 2.25 2.40 2.80 2.90


y| 4.00 4.50 4.80 5.60 5.70

Rezolvare:

xi yi ∆yi = yi+1 − yi ∆2 yi = ∆yi+1 − ∆yi ∆3 yi = ∆2 yi+1 − ∆2 yi ∆4 yi = ∆3 yi+1 − ∆3 yi


2.00 4.00 0.50 −0.20 0.70 −1.90
2.25 4.50 0.30 0.50 −1.20
2.40 4.80 0.80 −0.70
2.80 5.60 0.10
2.90 5.70

Polinoamele de interpolare ale lui Newton


Considerăm o reţea de puncte echidistante, valorile funcţiei f şi diferenţele finite prezentate mai
sus. Polinomul de interpolare Newton foloseşte aceste diferenţe finite şi se determină ı̂n două
moduri, pe care le vom prezenta ı̂n continuare.

Polinomul de interpolare Newton de speţa I


Polinomul Newton de speta I este convenabil pentru interpolarea funcţiilor ı̂n puncte x̄ ∈ [x0 , xn ]\
{x0 , x1 , . . . , xn } din partea de ı̂nceput a tabelului de valori.

q(q − 1) 2 q(q − 1) . . . (q − n + 1) n
Pn (x) = y0 + q∆y0 + ∆ y0 + . . . + ∆ y0 , (3)
2! n!
x−x0
unde q = n .

3
Elemente de analiză numerică Lector dr. Simona Romaniuc

Exerciţiul 3 Se dă funcţia f prin tabelul următor şi se cere aproximarea acestei funcţii ı̂n punc-
tul x̄ = 1.43, folosind polinomul lui Newton de speţa I:

x| 1, 4 1, 5 1, 6 1, 7 1, 8 1, 9 2, 0
y| 0, 9523 0, 9661 0, 9763 0, 9838 0, 9891 0, 9928 0, 9953

Rezolvare: Construim tabelul cu diferenţe finite

xi yi ∆yi ∆ 2 yi ∆3 yi ∆4 yi
1.4 0, 9523 0, 0138 −0, 0036 0, 0009 −0, 0004
1, 5 0, 9661 0, 0102 −0, 0027 0, 0005 0, 0001
1, 6 0, 9763 0, 0075 −0, 0022 0, 0006 −0, 0002
1, 7 0, 9838 0, 0053 −0, 0016 0, 0004
1, 8 0, 9891 0, 0037 −0, 0012
1, 9 0, 9928 0, 0025
2, 0 0, 9953

Pasul este h = 0, 1, deci


x − x0 x − 1, 4
q= = .
h 0, 1
Cum diferenţele finite de ordinul 3 sunt destul de apropiate, polinomul de interpolare Newton
de speţa ı̂ntâi va fi:
q(q − 1) 2 q(q − 1)(q − 2) 3
P3 (x) = y0 + q∆y0 + ∆ y0 + ∆ y0 =
2! 3!
0, 0036 0, 0009
= 0, 9532 + 0, 0138q − q(q − 1) + q(q − 1)(q − 2).
2! 3!
Pentru x = 1, 43 rezultă q = 0, 3 şi ı̂nlocuind mai sus obţinem
0, 0036 0, 0009
P3 (1, 43) = 0, 9532 + 0, 0138 · 0, 3 + 0, 3 · 0, 7 + 0, 3 · 0, 7 · 1, 7 = 0, 95777.
2! 3!
Prin urmare f (1, 43) ' 0, 95777.

Polinomul de interpolare Newton de speţa a II-a


Polinomul Newton de speta a II-a este convenabil pentru interpolarea funcţiilor ı̂n partea finală
a tabelului de valori şi are forma
q(q + 1) 2 q(q + 1) . . . (q + n − 1) n
Pn (x) = yn + q∆yn−1 + ∆ yn−2 + . . . + ∆ y0 , (4)
2! n!
unde q = x−xh .
n

Dacă diferenţele finite de ordinul k sunt aproape constante (diferă foarte puţin), atunci se
consideră polinomul de interpolare Newton de speţa a doua dat prin relaţia:
q(q + 1) 2 q(q + 1) . . . (q + k − 1) k
Pk (x) = yn + q∆yn−1 + ∆ yn−2 + . . . + ∆ yn−k . (5)
2! k!
Exerciţiul 4 Se dă funcţia f prin tabelul de valori:

xi 1 1, 4 1, 8 2, 2 2, 6 3
yi 2 1, 8 1, 5 1, 8 1, 9 2

Să se aproximeze funcţia ı̂n x = x̄ = 1, 9 folosind polinomul de interpolare Newton de speţa a


II-a.

4
Elemente de analiză numerică Lector dr. Simona Romaniuc

Rezolvare:
Construim tabelul cu diferenţe finite

xi yi ∆yi ∆2 yi ∆3 yi ∆ 4 yi ∆ 5 yi
1 2 −0, 2 −0, 1 0, 7 −1, 5 2, 5
1, 4 1, 8 −0, 3 0, 6 −0, 8 1
1, 8 1, 5 0, 3 −0, 2 0, 2
2, 2 1, 8 0, 1 0
2, 6 1, 9 0, 1
3 2

Considerăm xn = 3 şi avem:


1,9−3
q = x−x
h
n
= x−3
0,4 , iar pentru x = 1, 9 obţinem q = 0,4 = −2, 75

2, 75(1 − 2, 75)(2 − 2, 75) 2, 75(1 − 2, 75)(2 − 2, 75)(3 − 2, 75)


P5 (1, 9) = 2−2, 75·0, 1−0− ·0, 2− ·1−
3! 4!
2, 75(1 − 2, 75)(2 − 2, 75)(3 − 2, 75)(4 − 2, 75)
− · 2, 5 = 1, 5435.
5!
Deci f (1, 9) ' 1, 5435.

Polinomul Newton cu diferenţe divizate


Fie f : [a, b] → R o funcţie dată şi x0 , x1 , . . . , xn un sistem de noduri distincte din [a, b], neechi-
distante, ı̂n care se cunosc valorile funcţiei yk = f (xk ), k = 0, 1, 2, . . . , n. Expresia
f (xk+1 ) − f (xk ) yk+1 − yk
f (xk , xk+1 ) = [xk , xk+1 ] = = (6)
xk+1 − xk xk+1 − xk
se numeşte diferenţă divizată de ordinul ı̂ntâi a funcţiei f . Diferenţele divizate de ordinul al
doilea se definesc cu ajutorul celor de ordinul ı̂ntâi, astfel:
[xk+1 , xk+2 ] − [xk , xk+1 ]
f (xk , xk+1 , xk+2 ) = [xk , xk+1 , xk+2 ] = . (7)
xk+2 − xk
Aceste diferenţe divizate de ordine succesive ale funcţiei f se pot trece ı̂ntr-un tabel de forma:

k xk yk = f (xk ) [xk , xk+1 ] [xk , xk+1 , xk+2 ] [xk , xk+1 , xk+2 , xk+3 ]
0 x0 y0
[x0 , x1 ]
1 x1 y1 [x0 , x1 , x2 ]
[x1 , x2 ] [x0 , x1 , x2 , x3 ]
2 x2 y2 [x1 , x2 , x3 ]
[x2 , x3 ]
3 x3 y3

Polinomul

Pn (x) = y0 + [x0 , x1 ](x − x0 ) + [x0 , x1 , x2 ](x − x0 )(x − x1 ) + . . . (8)


. . . + [x0 , x1 , . . . , xn ](x − x0 )(x − x1 ) . . . (x − xn−1 )

se numeşte polinomul de interpolare Newton cu diferenţe divizate.

Exerciţiul 5 Să se construiască un polinom de interpolare de gradul al doilea pentru funcţia


x 7→ f (x) = sin(πx) şi nodurile x0 = 0, x1 = 16 , x2 = 12 .

5
Elemente de analiză numerică Lector dr. Simona Romaniuc

Rezolvare: Construim tabelul cu diferenţe divizate:

k xk yk = sin(πxk ) [xk , xk+1 ] [xk , xk+1 , xk+2 ]


0 0 0
1
−0
2
1
−0
=3
6
3
1 1 −3
1 6 2
2
1
−0
= −3
2
1− 12 3
1
− 16
= 2
2
1
2 2 1
Polinomul cu diferenţe divizate de gradul doi va fi:

P2 (x) = y0 + [x0 , x1 ](x − x0 ) + [x0 , x1 , x2 ](x − x0 )(x − x1 ) =


    1 1 7
=0+3 x−0 −3 x−0 x− = −3x2 + 3x + x = −3x2 + x.
6 2 2
Folosind acest polinom putem aproxima spre exemplu sin( π3 ) = P2 ( 31 ) = 0, 8(3), care este

3
destul de apropiată de valoarea exactă sin( π3 ) = 2 ' 0, 866.

Polinomul de interpolare al lui Lagrange


Considerăm o reţea de noduri x0 , x1 , . . . , xn oarecare şi valorile funcţiei ı̂n aceste noduri notate cu
y0 = f (x0 ), y1 = f (x1 ), . . . , yn = f (xn ). Ştim că există un polinom de grad cel mult n care verifică
condiţiile de interpolare. Metoda se bazează pe observaţia că acest polinom poate fi exprimat ca
o combinaţie liniară de n + 1 polinoame de grad n. Deci căutăm polinomul ϕ(x) notat Ln (x), de
forma:
Ln (x) = y0 ϕ0 (x) + y1 ϕ1 (x) + . . . + yn ϕn (x). (9)
Impunem acestui polinom condiţiile de interpolare

Ln (xk ) = yk , k = 0, 1, 2, . . . , n

şi cu notaţiile

(x − x0 )(x − x1 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn )


ϕi (x) = , i = 0, 1, 2, . . . , n
(xi − x0 )(xi − x1 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn )

se obţine polinomul Lagrange, care are forma:


n
X (x − x0 )(x − x1 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn )
Ln (x) = yi . (10)
(xi − x0 )(xi − x1 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn )
i=0

Se observă pe această formulă că polinomul are ı̂n punctele reţelei xi valorile funcţiei f ,
adică yi . Dacă funcţia f admite derivate continue până la ordinul n + 1, atunci eroarea cu care
polinomul de interpolare Lagrange aproximează funcţia f ı̂ntr-un punct x diferit de punctele de
interpolare va fi:
Mn+1
|En (x)| = |f (x) − Ln (x)| ≤ |(x − x0 )(x − x1 ) . . . (x − xn )|,
(n + 1)!

unde Mn+1 = maxa≤x≤b |f (n+1) (x)|.

6
Elemente de analiză numerică Lector dr. Simona Romaniuc

Polinomul (10) se scrie echivalent:


n
Y X yi
Ln (x) = (x) ,
Di
i=0

unde Y
(x) = (x − x0 )(x − x1 ) . . . (x − xn ),
Di = (xi − x0 )(xi − x1 ) . . . (xi − xi−1 )(x − xi )(xi − xi+1 ) . . . (xi − xn ).

Exerciţiul 6 Să se aproximeze prin polinomul de interpolare Lagrange, valoarea ı̂n x = 9 a


funcţiei date prin tabelul de valori:

xi 1 3 4 5 7 8 10
yi 0, 9512 0, 8607 0, 8187 0, 7788 0, 7047 0, 6703 0, 6065

Rezolvare: Pentru calculul polinomului Lagrange vom ı̂ntocmi următorul tabel, ı̂n care pe
diagonala vom trece valorile x − xi , adică ı̂n cazul nostru 9 − xi , iar ı̂n rest vom completa conform
capului de tabel:
yi
i xi xi − x0 xi − x1 xi − x2 xi − x3 xi − x4 xi − x5 xi − x6 Di yi Di
0 1 8 −2 −3 −4 −6 −7 −9 72576 0, 9512 0, 131 · 10−4
1 3 2 6 −1 −2 −4 −5 −7 −3360 0, 8607 −2, 56 · 10−4
2 4 3 1 5 −1 −3 −4 −6 1080 0, 8187 7, 58 · 10−4
3 5 4 2 1 4 −2 −3 −5 −960 0, 7788 −8, 11 · 10−4
4 7 6 4 3 2 2 −1 −3 864 0, 7047 8, 15 · 10−4
5 8 7 5 4 3 1 1 −2 −840 0, 6703 −7, 97 · 10−4
6 10 9 7 6 5 3 2 −1 −11340 0, 6065 −0, 535 · 10−4

Facând produsul elementelor de pe diagonala principală a acestui tabel, vom avea:

Π(9) = (9 − x0 )(9 − x1 ) . . . (9 − x6 ) = 8 × 6 × 5 × ×2 × 1 × (−1) = −1920.

Sumând elementele ultimei coloane, obţinem:


X yi
= (0, 131 − 2, 56 + 7, 58 − 8, 11 + 8, 15 − 7, 97 − 0, 535) × 10−4 = −3, 314 × 10−4 .
Di
Valoarea aproximativă a funcţiei ı̂n punctul cerut va fi:
X yi
f (9) ' L6 (9) = Π(9) × = −1920 × (−3, 314) × 10−4 ' 0, 6263.
Di

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