Vous êtes sur la page 1sur 7

CURS #1 I.

Metode de aproximare a soluţiilor ecuaţiilor neliniare


I.1. Metoda bisecţiei

Fie f : [a, b] → R o funcţie continuă, astfel ı̂ncât f (a)f (b) < 0. Atunci
∃x ∗ ∈ (a, b), astfel ı̂ncât f (x ∗ ) = 0.
Metoda bisecţiei generează un şir de aproximări (xk )k≥0 convergent către
CONŢINUTUL CURSULUI #1: soluţia exactă x ∗ a ecuaţiei f (x) = 0 (i.e. limk→∞ xk = x ∗ , unde x ∗
I. Metode de aproximare a soluţiilor ecuaţiilor neliniare. verifică ecuaţia f (x) = 0).
I.1. Metoda bisecţiei. Metoda bisecţiei constă ı̂n ı̂njumătăţirea la fiecare pas k a intervalului
I.2. Metoda Newton-Raphson. [a, b] şi selectarea acelui interval notat prin [ak , bk ] ı̂n care se află x ∗ .
I.3. Metoda secantei. Şirurile (ak )k≥0 , (bk )k≥0 şi (xk )k≥0 se construiesc conform schemei:
I.4. Metoda poziţiei false.
ak = ak−1 , bk = bk−1 , xk = xk−1 , dacă f (xk−1 ) = 0

 ak + b k
(ak , bk , xk ) = ak = ak−1 , bk = xk−1 , xk = , dacă f (ak−1 )f (xk−1 ) < 0 (1)
2
 ak + bk
ak = xk−1 , bk = bk−1 , xk = , dacă f (ak−1 )f (xk−1 ) > 0,
2

a0 + b0
unde a0 = a, b0 = b, x0 = .
2
Curs #1 October 6, 2018 1 / 26 Curs #1 October 6, 2018 2 / 26

Teorema (I.1.)
Fie f : [a, b] → R continuă, f (a)f (b) < 0. Dacă f admite soluţie unică
x ∗ ∈ (a, b) atunci şirul (xk )k≥0 este convergent la x ∗ şi

b−a
|x ∗ − xk | ≤ , ∀k ≥ 0 (2)
2k+1
Demonstraţie:
1

2 |ak−1 − xk−1 |, f (ak−1 )f (xk−1 ) < 0
1
|x ∗ − xk | ≤ |ak − bk | = 1 (3)
2 2 |xk−1 − bk−1 |, f (ak−1 )f (xk−1 ) > 0
Constatăm că
1 1 ak−1 + bk−1 1
|ak−1 − xk−1 | = |ak−1 − | = |ak−1 − bk−1 | (4)
2 2 2 4
Analog 1 1
|xk−1 − bk−1 | = |ak−1 − bk−1 | (5)
2 4
Astfel că, din (22) rezultă
1 1 1
Figure: Metoda bisecţiei 0 ≤ |x ∗ −xk | ≤ |ak−1 −bk−1 | = |ak−2 −bk−2 | = ... = k+1 |a0 −b0 | (6)
4 8 2

Curs #1 October 6, 2018 3 / 26 Curs #1 October 6, 2018 4 / 26


sau |x ∗ − xk | ≤ 2k+1
1
|a − b| de unde rezultă limk→∞ xk = x ∗ . 2
Criteriul de oprire: Fiind dat ε > 0, se caută N ∈N astfel ı̂ncât Definiţia (I.2.)
b−a
2N+1
< ε ⇔ N > log2 ( b−a b−a
ε ) − 1 ⇔ N = log2 ( ε ) ; Fie şirul (xk )k≥0 convergent la x ∗ . Spunem că şirul (xk )k≥0 converge la x ∗
cu ordinul de convergenţă cel puţin egal cu r > 1, dacă există un şir
Definiţia (I.1.)
(εk )k≥ de numere reale pozitive convergent la 0 şi α > 0 astfel ı̂ncât
Fie şirul (xk )k≥0 convergent la x ∗ . Spunem că şirul (xk )k≥0 converge cel
puţin liniar la x ∗ , dacă există şirul de numere reale pozitive (εk )k≥0 εk+1
|xk − x ∗ | ≤ εk , k ≥ 0 şi limk→∞ =α (8)
convergent la zero şi α ∈ (0, 1) astfel ı̂ncât εrk

εk+1
|xk − x ∗ | ≤ εk , k ≥ 0 şi limk→∞ =α (7)
εk Dacă (8) are loc pentru εk = |xk − x ∗ |, k ≥ 0, atunci spunem că şirul
(xk )k≥0 converge la x ∗ cu ordinul r de convergenţă. În particular, dacă
- Dacă relaţia (7) are loc pentru α = 0, atunci spunem că şirul (xk )k≥0 r = 2 atunci spunem că (xk )k≥0 converge pătratic.
converge superliniar; Obs.: Datorită faptului că ı̂n cazul metodei bisecţiei avem estimarea
- Dacă relaţia (7) are loc pentru α ∈ (0, 1) şi εk = |xk − x ∗ |, k ≥ 0, |x ∗ − xk | ≤ 2k+1
1 1
(b − a) putem considera εk = 2k+1 (b − a). Atunci
atunci spunem că şirul (xk )k≥0 converge liniar; εk+1 1
limk→∞ = ∈ (0, 1), (9)
- Dacă (7) are loc pentru α = 1 şi εk = |xk − x ∗ |, atunci viteza de εk 2
convergenţă este mai lentă decât cea liniară şi spunem că şirul
(xk )k≥0 converge subliniar. deci convergenţa este cel puţin liniară.
Curs #1 October 6, 2018 5 / 26 Curs #1 October 6, 2018 6 / 26

ALGORITM (Metoda bisecţiei)


I.2.Metoda Newton-Raphson
Date de intrare: f , a, b, ε;
Date de ieşire: xaprox ;
STEP 1: a0 = a; b0 = b; x0 = a0 +b 0
2 ;
N = log2 ( b−a
  Fie f : [a, b] → R o funcţie derivabilă astfel ı̂ncât f (a)f (b) < 0. Metoda
ε ) − 1 + 1;
N-R presupune construcţia şirului (xk )k≥0 conform următoarei scheme
STEP 2: for k = 1 : N do
grafice: la pasul k, aproximarea xk a soluţiei exacte x ∗ a ecuaţiei f (x) = 0
if f (xk−1 ) = 0 then se obţine prin intersecţia cu axa Ox a tangentei T la graficul funcţiei f ı̂n
xk = xk−1 ; punctul (xk−1 , f (xk−1 )).
break
T : y = f 0 (xk−1 )(x − xk−1 ) + f (xk−1 ) (10)
elseif f (ak−1 )f (xk−1 ) < 0 then
ak = ak−1 ; bk = xk−1 ; xk = ak +bk
2 ; {xk } = T ∩ Ox ⇒ f 0 (xk−1 )(xk − xk−1 ) + f (xk−1 ) = 0 ⇒
elseif f (ak−1 )f (xk−1 ) > 0 then f (xk−1 )
ak +bk xk = xk−1 − (11)
ak = xk−1 ; bk = bk−1 ; xk = 2 ; f 0 (xk−1 )
endif
endfor
xaprox = xk .
Curs #1 October 6, 2018 7 / 26 Curs #1 October 6, 2018 8 / 26
Teorema (I.2)
Presupunem că f ∈ C 2 ([a, b]), f 0 , f 00 nu se anulează pe [a, b] şi
f (a)f (b) < 0. Fie x0 ∈ [a, b] astfel ı̂ncât să aibă loc condiţia

f (x0 )f 00 (x0 ) > 0 (12)

Atunci ecuaţia f (x) = 0 are o soluţie unică x ∗ ∈ (a, b), iar şirul (xk )k≥0
construit prin metoda Newton-Raphson, rămâne ı̂n [a, b] şi converge
pătratic la x ∗ .

Demonstraţie:
EXISTENŢA: Existenţa soluţiei ecuaţiei f (x) = 0 este asigurată de
condiţia f (a)f (b) < 0.
UNICITATEA: Presupunem că ∃y ∗ ∈ (a, b) cu x ∗ 6= y ∗ şi f (y ∗ ) = 0.
Cum f (x ∗ ) = f (y ∗ ) = 0, atunci conform Teoremei lui Rolle rezultă că
Figure: Metoda Newton ∃c ∈ (x ∗ , y ∗ ) astfel ı̂ncât f 0 (c) = 0, contradicţie, deoarece am presupus cu
a f 0 este nenulă pe intervalul [a, b].

Curs #1 October 6, 2018 9 / 26 Curs #1 October 6, 2018 10 / 26

CONVERGENŢA: Fără a restrânge generalitatea vom considera f 0 , f 00 deci x ∗ < xk+1 < xk ≤ b. Am obţinut că şirul (xk )k≥0 este descrescător şi
strict pozitive, i.e. f 0 (x) > 0, f 00 (x) > 0, ∀x ∈ [a, b]. Celelalte cazuri se mărginit, deci convergent.
tratează ı̂n mod analog. Fie y ∗ = limk→∞ xk , atunci trecând la limită ı̂n formula (11) rezultă:
Fie x0 ∈ [a, b] cu proprietatea (12), atunci f (x0 ) > 0 = f (x ∗ ). Deoarece f (y ∗ )
f 0 (x) > 0, ∀x ∈ [a, b] rezultă că f este strict crescătoare, astfel că y∗ = y∗ − ⇒ f (y ∗ ) = 0, (15)
f 0 (y ∗ )
x ∗ < x0 ≤ b sau x0 ∈ (x ∗ , b].
Presupunem ı̂n continuare xk ∈ (x ∗ , b], i.e. x ∗ < xk ≤ b. Dezvoltăm ı̂n deci y ∗ este soluţie a ecuaţiei f (x) = 0, iar din unicitatea soluţiei avem
serie Taylor funcţia f ı̂n jurul punctului xk şi evaluăm funcţia ı̂n punctul x ∗ = y ∗.
x∗ : Din relaţia (28) rezultă
1
f (x ∗ ) = f (xk ) + (x ∗ − xk )f 0 (xk ) + (x ∗ − xk )2 f 00 (ξk ), ξk ∈ [x ∗ , xk ] (13) |xk+1 − x ∗ | 1 f 00 (ξk )
2 = (16)
|xk − x ∗ |2 2 f 0 (xk )
Împărţim această relaţie la f 0 (xk ), ţinem cont că f (x ∗ ) = 0 şi
f (xk ) Dacă εk = |xk − x ∗ | atunci
xk+1 = xk − 0 . Obţinem:
f (xk ) εk+1 |xk+1 − x ∗ | 1 |f 00 (ξk )|
limk→∞ = limk→∞ = limk→∞ (17)
1 f 00 (ξk ) ε2k |xk − x ∗ |2 2 |f 0 (xk )|
xk+1 − x = (x ∗ − xk )2 0

, ∗
ξk ∈ [x , xk ] (14)
2 f (xk ) 1 |f 00 (x ∗ )|
= ∈ (0, ∞) (18)
2 |f 0 (x ∗ )|
Din monotonia funcţiei f rezultă f (xk ) > 0 = f (x ∗ ). Din (11) rezultă
xk+1 < xk , iar conform formulei (28) rezultă xk+1 > x∗, Rezultă că (xk )k≥0 converge pătratic la x ∗. 
Curs #1 October 6, 2018 11 / 26 Curs #1 October 6, 2018 12 / 26
Deoarece f 0 , f 00 nu se anulează pe intervalul [a, b], atunci funcţia trebuie să ALGORITM (Metoda Newton-Raphson)
fie monotonă (crescătoare sau descrescătoare) şi să nu-şi schimbe Date de intrare: f , f 0 , x0 , ε;
concavitatea pe intervalul dat. Date de ieşire: xaprox ;
Strategie de lucru: Din punct de vedere computaţional se alege conform
STEP 1: k = 0;
graficului funcţiei un interval ı̂n care funcţia să fie monotonă şi să nu-şi
schimbe concavitatea. Valoarea x0 se alege ı̂n modul următor: STEP 2: do
1. Dacă f este convexă (f 00 (x0 ) > 0), atunci f (x0 ) > 0; k = k + 1;
f (xk−1 )
2. Dacă f este concavă (f 00 (x0 ) < 0), atunci f (x0 ) < 0. xk = xk−1 − ;
f 0 (xk−1 )
Pentru metoda N-R ca şi criteriu de oprire vom alege una din următoarele
|xk − xk−1 |
condiţii: while ≥ ε;
|xk−1 |
- |f (xk )| < ε; xaprox = xk .
|xk − xk−1 |
- < ε.
|xk−1 |

Curs #1 October 6, 2018 13 / 26 Curs #1 October 6, 2018 14 / 26

I. Metode de aproximare a soluţiilor ecuaţiilor neliniare.


I.3. Metoda secantei.

La pasul k, aproximarea xk a soluţiei exacte x ∗ a ecuaţiei


f (x) = 0, x ∈ [a, b] se obţine prin intersecţia cu axa Ox a secantei AB la
graficul lui f , prin punctele A xk−1 , f (xk−1 ) şi B xk−2 , f (xk−2 ) . Prin
urmare, nu se mai foloseşte tangenta la graficul lui f , deci nu mai este
necesar caculul derivatei lui f .
x − xk−1 y − f (xk−1 )
AB : = (19)
xk−2 − xk−1 f (xk−2 ) − f (xk−1 )
xk − xk−1 f (xk−1 )
{xk } = AB ∩ Ox ⇒ =− ⇒
xk−2 − xk−1 f (xk−2 ) − f (xk−1 )
xk−1 − xk−2
xk = xk−1 − f (xk−1 )
f (xk−1 ) − f (xk−2 )
sau
xk−2 f (xk−1 ) − xk−1 f (xk−2 ) Figure: Metoda secantei
xk = ,k ≥ 2 (20)
f (xk−1 ) − f (xk−2 )
unde x0 , x1 ∈ [a, b]
Curs #1 October 6, 2018 15 / 26 Curs #1 October 6, 2018 16 / 26
Teorema ((I.3.) Convergenţa metodei secantei) Conform metodei secantei
xk − xk−1
Presupunem că f ∈ C 1 ([a, b]), f (a)f (b) < 0, f 0 (x) 6= 0, ∀x ∈ [a, b]. Atunci xk+1 = xk − f (xk ) (23)
f (xk ) − f (xk−1 )
∃!x ∗ astfel ı̂ncât f (x ∗ ) = 0. Mai mult, ∃δ > 0, astfel ı̂ncât, dacă
x0 , x1 ∈ [x ∗ − δ, x ∗ + δ] ⊆ [a, b], atunci şirul (xk )k≥0 construit prin metoda Din dezvoltărea ı̂n serie Taylor a funcţiei f ı̂n vecinătatea punctului xk şi
secantei rămâne ı̂n intervalul [x ∗ − δ, x ∗ + δ] şi converge către x ∗ . evalută ı̂n x ∗ rezultă:
f (x ∗ ) = f (xk ) + (x ∗ − xk )f 0 (ξk ), ξk ∈ [x ∗ , xk ]
Demonstraţie: Existenţa şi unicitatea este asigurată de faptul că
f (a)f (b) < 0 şi f 0 (x) 6= 0, ∀x ∈ [a, b]. sau
Deoarece f 0 (x ∗ ) 6= 0, putem considera f 0 (x ∗ ) = µ > 0. f (xk ) = −(x ∗ − xk )f 0 (ξk ) (24)
Din continuitatea derivatei f 0 rezultă că, pentru ∀ε > 0, ∃δ > 0 astfel ı̂ncât
Mai mult, aplicând teorema Lagrange pe intervalul [xk−1 , xk ] rezultă că
0 0 ∗ ∗ ∗
|f (x) − f (x )| < ε, ∀x ∈ [x − δ, x + δ] ⊆ [a, b] (21) ∃ηk ∈ (xk−1 , xk ) astfel ı̂ncât:
sau f (xk ) − f (xk−1 )
0 = f 0 (ηk ) (25)
−ε + µ < f (x) < ε + µ xk − xk−1
Fie ε = µ4 , atunci Din (25) ı̂n (23) rezultă:
3 5 f (xk )
µ < f 0 (x) < µ, ∀x ∈ [x ∗ − δ, x ∗ + δ] (22) xk+1 = xk −
4 4 f 0 (ηk )

Curs #1 October 6, 2018 17 / 26 Curs #1 October 6, 2018 18 / 26

sau
Astfel că, xk+1 ∈ [x ∗ − δ, x ∗ + δ], deci şirul (xk )k≥0 rămâne ı̂n intervalul
f (xk )
x ∗ − xk+1 = x ∗ − xk + , (26) [x ∗ − δ, x ∗ + δ]. Mai mult,
f 0 (ηk )
2 2 k+1 ∗
iar conform cu (24) avem: |x ∗ − xk+1 | ≤ |x ∗ − xk | ≤ ... ≤ |x − x0 | (30)
(x ∗ − xk )f 0 (ξk ) 3 3
x ∗ − xk+1 = x ∗ − xk −
f 0 (ηk ) rezultă că şirul (xk )k≥0 este convergent la x ∗. 2
sau Obs.: Se poate arăta că
 f 0 (ξk ) 
x ∗ − xk+1 = (x ∗ − xk ) 1 − 0 (27)
f (ηk ) |x ∗ − xk+1 |
limk→∞ = α, α > 0 (31)
Din (22) rezultă următoarea estimare: |x ∗ − xk |r
2 f 0 (x) 2 √
− <1− 0 < (28) unde r = 21 (1 + 5) ≈ 1, 62, astfel că metoda secantei este mai rapidă
3 f (y ) 3
decât metoda liniară dar mai lentă decât cea pătratică. Din punct de
Fie x0 , x1 ∈ [x ∗ − δ, x ∗ + δ]. Presupunem că xk ∈ [x ∗ − δ, x ∗ + δ] şi vom vedere computaţional valorile iniţiale x0 , x1 se aleg din vecinătatea soluţiei
demonstra că şi xk+1 ∈ [x ∗ − δ, x ∗ + δ]. Se observă că x ∗ , astfel ı̂ncât la fiecare iteraţie se testează ca termenul xk să rămână ı̂n
ηk , ξk ∈ [x ∗ − δ, x ∗ + δ], iar conform relaţiei (28), din (27) rezultă intervalul [a, b]. Pentru optimizarea metodei se va alege intervalul maxim
2 2 [a, b] pe care funcţia f este definită, nu-şi schimbă monotonia (i.e.
|x ∗ − xk+1 | ≤ |x ∗ − xk | ≤ δ (29)
3 3 f 0 (x) 6= 0, ∀x ∈ [a, b]) şi f (a)f (b) < 0.

Curs #1 October 6, 2018 19 / 26 Curs #1 October 6, 2018 20 / 26


ALGORITM (Metoda secantei) I.4. Metoda poziţiei false
Date de intrare: f , a, b, x0 , x1 , ε;
Date de ieşire: xaprox ; Metoda poziţiei false construieşte şirurile (ak )k≥0 , (bk )k≥0 , (xk )k≥0
STEP1 : Se aleg x0 , x1 ∈ [a, b]; k = 1; conform următoarei scheme grafice: la pasul k, aproximarea xk a soluţiei
|xk − xk−1 | exacte x ∗ a ecuaţiei f (x) = 0 se obţine prin intersecţia dreptei AB cu axa
STEP2 : while ≥ ε do Ox, unde A(ak , f (ak )), B(bk , f (bk )). Intervalul [ak , bk ] se construieşte
|xk−1 |
k = k + 1; conform metodei bisecţiei.
xk−2 f (xk−1 ) − xk−1 f (xk−2 ) x − ak y − f (ak )
xk = ; AB : = (32)
f (xk−1 ) − f (xk−2 ) bk − ak f (bk ) − f (ak )
if xk < a or xk > b then
x k − ak −f (ak )
OUTPUT(’Introduceţi alte valori pentru {xk } = AB ∩ Ox ⇒ = ⇒ (33)
b k − ak f (bk ) − f (ak )
x0 , x1 ’);
STOP. b k − ak
xk = ak − f (ak ) (34)
f (bk ) − f (ak )
endif
sau
endwhile; ak f (bk ) − bk f (ak )
xk = (35)
xaprox = xk . f (bk ) − f (ak )

Curs #1 October 6, 2018 21 / 26 Curs #1 October 6, 2018 22 / 26

Avem astfel următoarea schemă generală:


(ak , bk , xk ) (36)
 a = a , b = b , x = x , dacă f (x ) = 0
k k−1 k k−1 k k−1 k−1
ak f (bk ) − bk f (ak )


ak = ak−1 , bk = xk−1 , xk = , dacă f (ak−1 )f (xk−1 ) < 0
= f (bk ) − f (ak ) (37)
 ak = xk−1 , bk = bk−1 , xk = ak f (bk ) − bk f (ak ) , dacă f (ak−1 )f (xk−1 ) > 0,

f (bk ) − f (ak )

a0 f (b0 ) − b0 f (a0 )
Teorema (I.4. Teorema de convergenţă a metodei poziţiei false)
unde a0 = a, b0 = b, x0 = .
f (b0 ) − f (a0 ) Presupunem că f ∈ C 2 ([a, b]), f (a)f (b) < 0 şi f 0 , f 00 nu se anulează pe
[a, b]. Atunci ecuaţia f (x) = 0 are o soluţie unică x ∗ ∈ (a, b), iar şirul
(xk )k≥0 construit prin metoda poziţiei false converge la x ∗ .

Figure: Metoda poziţiei false


Curs #1 October 6, 2018 23 / 26 Curs #1 October 6, 2018 24 / 26
ALGORITM (Metoda poziţiei false )
Date de intrare: f , a, b, ε; Date de ieşire: xaprox ;
a0 f (b0 ) − b0 f (a0 )
STEP1 : k = 0; a0 = a; b0 = b; x0 = ;
f (b0 ) − f (a0 ) Exerciţiu: (I.1.)
STEP2 : do √
Fie ecuaţia x − cosx = 0
k = k + 1;
a. Să se construiască ı̂n Matlab o procedură cu sintaxa
if f (xk−1 ) = 0 then [xaprox ] = MetBisectie(f , a, b, eps).
xk = xk−1 ; b. Într-un fişier script să se construiască ı̂n Matlab graficul funcţiei

STOP. f (x) = x − cosx pe intervalul [0, 1]. Să se calculeze soluţia
elseif f (ak−1 )f (xk−1 ) < 0 then aproximativă xaprox cu ajutorul procedurii MetBisectie având ca date
ak f (bk )−bk f (ak ) de intrare funcţia f , intervalul [a, b] = [0, 1] şi eroarea de aproximare
ak = ak−1 ; bk = xk−1 ; xk = f (bk )−f (ak ) ;
ε = 10−5 .
elseif f (ak−1 )f (xk−1 ) > 0 then
ak f (bk )−bk f (ak ) Soluţie: Vezi Program I.1.
ak = xk−1 ; bk = bk−1 ; xk = f (bk )−f (ak ) ;
endif
|xk − xk−1 |
while ≥ ε; xaprox = xk .
|xk−1 |
Curs #1 October 6, 2018 25 / 26 Curs #1 October 6, 2018 26 / 26

Vous aimerez peut-être aussi