M E T O D E N U M E R I C E

1
1. Numer e apr oxi mat i ve
1.1. Er or i apr oxi mat i ve si eror i absol ut e
Daca A est e valoarea exacta a unei cantitat i si a este o aproximatie cunoscuta a
acest eia, at unci eroarea absolut a a aproximat iei a se considera de obicei a fi marimea
a

care sat isface relat ia
(1.1)
Pent ru scopuri pract ice est e convenabil sa se ia pent ru a

valoarea cea mai
mica pent ru care est e sat isfacut a inegalitat ea de mai sus sub circumst ant ele dat e..
Numarul exact A poat e si scris at unci
(1.2)
Eroarea relat iva
a

a unui numar aproximat iva est e egala cu raport ul dint re
eroarea absol uta
a

a numarului si valorea sa absol ut a:
(1.3)
Uneori, eroarea relat iva se definest e ca raportul
A
a

, cu A valoarea exacta insa
necunoscut a. I nt roducand a

din (1.3) i n (1.2), rezult a limit e pent ru numarul exact
A:
(1.4)
Exemplu:
Fie numarul aproximativ a = 3.14, ut ilizat in locul numarului exact π = A .
Avand in vedere ca 3.14 <
π
< 3.15, rezult a ca
01 . 0 a < π −
si se poate lua eroarea
absol ut a a

= 0.01.
Corespunzat or avem eroarea relat iva a
δ
= 0.01/ 3.14 = 0.003 si deci putem
scrie
π
= 3.14(1 ± 0.003).
a
A a ∆ ≤ −
a
a A ∆ ± =
) 0 a (
a
a
a


= δ
) 1 ( a A
a
δ ± =
M E T O D E N U M E R I C E
2
1.2. Sur sel e si cl asi f i car ea er ori l or
Erorile care apar în rezolvarea numeric a problemelor matemat ice se împart , în
esen, în cinci cat egorii: erori de problema, erori de met od, erori iniiale, erori de
rot unj ire i erori de t runchiere.
Erori l e de pr obl em sunt cauzat e de fapt ul c nu t ot deauna formularea mat emat ic
descrie exact procesul modelat , deoarece de mult e ori, pent ru a reduce complexit at ea
formulrii, sunt em fort ai s acceptm condit ii simplificat oare.
Erori l e de met od se dat oreaz fapt ului c uneori est e dificil, dac nu chiar
imposibil rezolvarea formulrii exact e a problemei . I n aceste cazuri, problema este
înlocuit cu o problem aproximat iv, pent ru care exist tehnici adecvat e de rezolvare
si care are un rezult at foart e apropiat . Met odele numerice sunt în majorit at ea
cont ext elor în care sunt ut ilizat e met ode de aproximare.
Erori le i ni t i al e (i nerent e) sunt erori în valorile dat elor, cauzat e de incert it udini în
surt ori sau de nat ura inerent aproximat iv a reprezentrii numerelor cu aj ut orul
unui numr finit de cifre.
Erori l e de r ot unj i r e sunt cauzat e de reprezent area numerelor (dat e iniiale sau
rezult at e ale unor calcule) cu un numr f init de cifre semnificat ive exact e.
De exemplu:
reprezent area rezult at ului operaiei 1/ 3 sub forma 0.333 implic o eroare de
t runchiere de aproximat iv 3x10
-4
. Erorile de rot unj ire depind de part icularit ile
hardware ale calculat orului, de modul de reprezentare intern al diferit elor t ipuri de
date utilizate în calcule. Erorile de rotunj ire se acumuleaz prin creterea numrului de
calcule, mai ales al celor care implic scderea unor valori aproximat iv egale.
Erori l e de t runchi ere ( rezidual e) provin din nat ura infinit a unor procese ut ilizat e
în descrierea solut iei problemelor mat emat ice. Fapt ul c, pract ic, acest e procese
t rebuie înt rerupte dup un numr finit de paji, int roduce o eroare de t runchiere.
Considerand exemplul dezvoltrii funciilor în serie, însumarea t rebuie înt rerupt la un
anumit t ermen, t runchiind seria i int roducand o anumit eroare de t runchiere.
Met odele numerice permit , în principiu, cont rolul erorilor de rot unj ire i al celor
de t runchiere, cu condiia t ranscrierii adecvat e a algorit mului . Ast fel, în cazul erorilor
de rot unj ire, t rebuie considerat acea form a expresiilor mat emat ice, în care sunt
evit at e operat iile care int roduc acest t ip de erori. I n ceea ce privet e erorile de
t runchiere, acestea se af l sub cont rolul deplin al programatorului, care îns t rebuie s
fie preocupat de const ruirea unor algorit mi finii i ef icieni. Dac finit udinea
algorit mului est e obligat orie pent ru convergent a rezult at elor, eficient a est e o reflect are
direct a experienei i st ilului de programare.
M E T O D E N U M E R I C E
3
1.3 Repr ezent ar ea numerel or. Cif re semni f i cat i ve exact e.
Ori ce numr pozit iv poat e fi reprezent at în baza 10 sub forma
Κ Κ + • α + + • α + • α =
+ −
+ −


1 n m
1 n m
1 m
1 m
m
m
10 10 10 a
(1.5)
unde
i
α
, sînt cifrele numrului a, cu
0
m
≠ α
.
De exemplu:
314.15 = 3* 10
2
+ 1* 10
1
+ 4* 10
0
+ 1* 10
-1
+ 5* 10
-2
.
Sit uaiile concret e implic ut ilizarea unor numere aproximat ive cu un numr finit
de cifre. Toat e cele n cifre zecimale reinute
i
α , i = m, m-1, . . ., m-n+ 1 , se numesc
cifre semnificat ive. Unele dint re cif rele semnificat ive pot fi egale cu zero, cu excepia
primei cifre,
m
α .
De exemplu, în numrul 0.00208 = 0* 10
-3
+ 0* 10
-4
+ 8* 10
-5
, primele t rei
zerouri nu sunt cifre semnificat ive, deoarece ele servesc numai pent ru fixarea pozi iei
punct ului zecimal în scrierea zecimal a numrului.
Definiie. Spunem c un numr aproximati v a are n cifre semnif icative exacte,
1 n m 1 m m
, , ,
+ − −
α α α Κ dac, eroarea absol ut a numrului nu depeste j umt at e de
unit at e în poziia n , numrand de la st înga la dreapt a, adic
(1.6)
De exemplu, numrul a = 36.00 est e în raport cu numrul exact A = 35.97 o
aproximaie cu t rei cif re semnificat ive exacte. I nt r-adevr, avînd în vedere ca | a - A| =
0.03 < 1/ 2* 10
-1
, rezult m-n+ 1 = -1, de unde n= 3 (m= 1) .
Termenul "n cifre semnificat ive exact e" nu t rebuie luat ad lit eram, deoarece nu
est e obligat oriu ca înt r-un numr aproximativ a avînd n cifre exact e, primele n cifre
semnificat ive coincid cu cif rele corespunzt oare ale numrului exact A. De
exemplu, numrul a = 9.995 est e o aproximaie cu t rei cifre corect e a numrului exact
A= 10 i t ot ui are t oat e cifrele diferit e.
Teorem. Dac un numr pozit iv a are n cifre exact e, eroarea relat iv a
δ
a acest ui
numr sat isface inegalit at ea
(1.7)
1 n m
a
10
2
1
+ −
• ≤ ∆
) 1 n (
m
a
10
2
1
− −

α
≤ δ
M E T O D E N U M E R I C E
4
unde
m
α est e prima cifr semnificat iv a numrului a.
I nt r-adevr,
) 1 n (
m
1 m
1 m
m
m
1 n m
a
a
10
2
1
10 10
10 ) 2 / 1 (
a
− −


+ −

α

+ • α + • α



= δ
Κ
Numrul de cifre semnif icat ive exact e corespunzt or unei erori relat ive
a
δ
dat e
est e conform relat iei (1.7) .
(1.8)
De exemplu, numrul aproximat iv a = 3.15, ut ilizat în locul numrului exact
A=
π
, are n < = 2.72 , adic dou cifre exacte.
Numrul aproximat iv a = 3.14 va avea n < = 3.29, adic t rei cifre exact e.
Pent ru numrul de cifre semnificat ive exact e, se poat e obine o est i mare
grosier îns foart e util în pract ic, considerînd c eroare relat iv are forma
p
a
10

≈ δ
si
5
m
≈ α
:
(1.9)
Acest crit eriu poat e fi ut ilizat în sit uaiile în care, cunoscîndu-se eroarea relat iv
a unui numr, se impune estimarea rapid îns nu neaprat foarte precis a numrului
de cif re exact e ale acest uia.
1.4 Erori al e operat i i l or el ement are
1.4.1 Er oar ea sumei
Teorem. Eroarea absolut pent ru suma algebric a mai mult or numere
aproximat ive nu dept e suma erorilor absolut e ale numerelor.
I nt r-adevr, considerînd suma algebric a numerelor aproximat ive a
1
, a
2
, . . . ,
a
n
:
n 2 1
a a a a ± ± ± ± = Κ
avem în mod evident
) 2 ( log 1 n
m a 10
α δ − ≤
p n ≈
M E T O D E N U M E R I C E
5
n 2 1
a a a a ∆ ± ± ∆ ± ∆ ± = ∆ Κ
si deci,
n 2 1
a a a a ∆ + + ∆ + ∆ ≤ ∆ Κ
Pent ru eroarea absolut a sumei avem, prin urmare,
n
a
2
a
1
a a
∆ + + ∆ + ∆ ≤ ∆ Κ
(1.10)
iar pent ru eroarea absolut limit ,
n
a
2
a
1
a
a
*
∆ + + ∆ + ∆ = ∆ Κ
(1.11)
Din aceast relatie rezult c eroarea absolut limit nu poate f i mai mic decat
eroarea absolut a celui mai puin exact t ermen din sum
) , , , max(
n
a
2
a
1
a
a
*
∆ ∆ ∆ ≥ ∆ Κ
(1.12)
I n consecint, ceilali t ermeni, cu grad de precizie mai mare (cu erori absolut e
mai mici) nu pot ameliora precizia rezult at ului.
Teorem. Dac t ot i t ermenii unei sume au acelai semn, eroarea relat iv (limit) a
sumei nu dept e cea mai mare eroare relat iv a t ermenilor.
1.4.2 Eroarea di ferenei
Considerm diferena a doua numere aproximat ive a = a
1
– a
2
Conform relaiei (1.11), eroarea absolut li mit a diferenei est e egal cu suma erorilor
absol ut e ale celor doi t ermeni
2
a
1
a
a
*
∆ + ∆ = ∆
si eroarea relat iv limit a diferenei va f i
2 1
2
a
1
a a
*
a
*
A A A −
∆ + ∆
=

= δ
unde A est e valoarea exact a modulului dif erenei.
M E T O D E N U M E R I C E
6
Dac numerele aproximat ive a
1
i a
2
sunt foart e apropiat e ca valoare, at unci
diferena exact A est e mici, chiar în condiiile în care erorile relat ive
1
a
δ
i
2
a
δ
sunt mici, eroarea relat iv li mit a diferenei, a
*
δ
, poat e fi foart e mare.
Pent ru a exemplifica cele art at e mai sus, considerm numerele aproximat ive
a
1
= 47.132 i a
2
= 47.111 , fiecare avînd cinci cifre semnificat i ve exact e, adic o eroare
absol ut de cel mult 0.0005. Diferena a= 47.132 -47.1 11 = 0.021 are doar dou cifre
semnificat ive exacte, iar eroarea absol ut limit a dif erenei est e
a
*

= 0.0005+ 0.0005 = 0.001
si vom avea urmt oarele erori relat ive limit
00001 . 0
132 . 47
0005 . 0
1
a
≈ = δ
,
00001 . 0
111 . 47
0005 . 0
2
a
≈ = δ
,
05 . 0
021 . 0
001 . 0
a
*
≈ = δ
Dup cum se observ, eroarea relat iv limit a diferenei est e de aproximat iv
5000 de ori mai mare decat erorile relat ive ale t ermenilor. Este de aceea de dorit , ca în
calcule numerice s se rescrie expresiile care implic scderea unor numere
aproximat i v egale.
M E T O D E N U M E R I C E
1
2. Rezolvar ea numer i c a ecuai i l or al gebr i ce i t r anscendent e
Exist a numeroase sit uatii în care avem de rezolvat ecuatii polinomiale sau
nepolinomiale (t ranscendent e) cu o singura variabila de forma 0 = ) x ( f ale caror solutii nu se
pot det ermina prin met odele algebrice cunoscut e. Pent ru rezolvarea acest or ecuatii est e
necesar mai înt âi sa se ident ifice print r-o anumita met oda int ervalele în care se afla exact o
radacina a ecuatiei.
Pentru ca ecuatia sa aiba o solutie în acest interval [ ] b , a este necesar ca f unctia ) x ( f
sa fie cont inua, strict monot ona, adica ) x ( f ′ sa aiba acelasi semn pe int ervalul [ ] b , a si functia
sa prezint e schimbarea de semn: 0 < ⋅ ) b ( f ) a ( f . Aceste conditii pentru det erminarea solutiilor
sunt echi valent e cu urmat oarele ipot eze:
Ø [ ] R b , a : f → est e o functie cont inua si derivabi la (functie Rolle);
Ø



< >
> <
< ⋅
0 0
0 0
0
) b ( f , ) a ( f
) b ( f , ) a ( f
) b ( f ) a ( f ;
Ø ) x ( f are numai o singura solutie pe [ ] b , a .
Met odele cele mai ut ilizate în calculul numeric aproximativ al solutiilor unei ecuatii care
sat isf ace ipot ezele de mai sus sunt :
1. Met oda înj umatatirii int ervalului (bisectiei);
2. Met oda coardei (secant ei);
3. Met oda tangentelor de ordinul I (Newt on Raphson);
4. Met oda t angent elor de ordinul I I (Newt on)
5. Met oda parabolelor (Blumenf eld)
6. Met oda iterativa: x= g( x)
Pent ru ext ragerea radacinii de ordinul k dint r-un numar N se poat e f olosi una din met odele
lui Newt on (t angent elor de ordinul I sau I I ).
Î n continuare sunt prezent at e aceste met ode si modul de aplicare al lor pent ru un
exempl u concret .
2.1. Met oda înj umi r i i i nt er val ul ui ( bi seci ei )
Est e cea mai simpla met oda de det erminare a radacinii unei ecuatii 0 = ) x ( f care se
afla în i ntervalul [ ] b , a . Pent ru aplicarea acest ei met ode se verifica daca:
Ø [ ] R b , a : f → est e o functie cont inua si derivabila;
Ø 0 < ⋅ ) b ( f ) a ( f
Met oda înj umatatirii int ervalului sau a bisectiei se bazeaza pe urmat orul algorit m:
1. se calculeaza valoarea functiei f(x) la capet ele intervalului si înt r-un punct sit uat la mij locul
int ervalului:
2
b a
c x
+
= =
M E T O D E N U M E R I C E
2
2. Se verif ica semnele functiei în cele t rei punct e ale int ervalului (a, c, b) si subint ervalul în
care functia prezinta schimbarea de semn; acest subint erval este noul int erval în care af la
radacina. Sunt posibile urmat oarele vari ant e prezent at e în t abelul urmat or :
Tabelul 1
F(a) f(b) f(c) Radacina ξ
- + + ( ) c , a ∈ ξ
- + - ( ) b , c ∈ ξ
+ - + ( ) b , c ∈ ξ
+ - - ( ) c , a ∈ ξ
Pent ru noul int erval se procedeaza analog calculând valorile functiei la capele lui si la
mij loc, din semnele f unctiei în cele t rei punct e rezult ând subintervalul pentru care are loc
schimbarea de semn;
Procesul est e it erat iv si se încheie at unci când se obtine o eroare mai mica decât
precizia impusa radacinii : ε < − b a
Exempl u
Sa se afle radacina ecuatiei algebrice:
0 1 4 3
2
= − − + x x x ln ,
cu o eroare mai mica de 0,02 stii nd ca se afl a în intervalul [ ] 2 1,
Pent ru det erminarea solutiei ecuatiei se apli ca algori t mul prezent at mai sus: rezulta
valorile din t abelul 2:
Tabelul 2
Nr a c b f ( a) f ( c) f ( b)
1. 1 1,5 2 -2 0,155465 3,693
2. 1 1,25 1,5 -2 -1,089 0,155465
3. 1,25 1,375 1,5 -1,089 - 0,50967 0,155465
4. 1,375 1,4375 1,5 -0,50967 - 0,1878 0,155465
5. 1,4375 1,46875 1,5 -0,1878 - 0,0189 0,155465
6. 1,46875 1,484375 1,5 -0,0189 0,0676 0,155465
7. 1,46875 1,4765625 1,484375 - 0,0189 0,024177
2
Se observa din rezult at ele obtinut e ca aceasta met oda est e slab convergenta. Solutia
aproximat iva a ecuatiei est e ξ= 1,4765625 calculat a cu o eroare: ε = 1,4765625- 1,
46875= 0,0078125
x=a
x
y
y=f(x)
O
Fig. 1
2
1
b a
c
+
=
x=b
2
1 1
2
b a
c
+
=
M E T O D E N U M E R I C E
3
I mplement are in C+ + :
/ *
Rezolvarea numerica a ecuatiilor algebrice si transcedentale
1. Met oda bisectiil or (met oda inj umat atirii)
* /
# include< iostream.h>
# include< coni o. h>
# include< mat h.h>
# include< st dlib.h>
float a,b,c,eps;
int i, n;
float funct ie(float x)
{
ret urn ( log(x) + 3* x* x - 4* x - 1);
}
void bisect ie(float a, float b)
{
if( ( funct ie(a) < 0 ) && ( funct ie(b) > 0) )
{
n= ceil(log(( b-a)/ eps)/ l og( 2))+ 1;
/ / cout < < "Tabelul cu aproximarile succesive"< < endl;
/ / cout < < "| a | c | b | f(a) | f(c) | f(b) | "< < endl;
for(i= 1; i< = n; i+ + )
{
c= ( a+ b)/ 2;
if( funct ie( c) < 0) a= c;
else b= c;
/ / cout < < "-------------------------------------------------------"< < endl;
/ / cout < < "| "< < a< < "| " < < c< < "| " < < b< < "| "< < funct ie( a)< < "| "< < funct ie( c)< < "| " < < funct ie(b)< < "| "< < e
ndl;
/ / get ch() ;
}
cout < < "solut ia : "< < c< < endl;
}
else
cout < < "Nu se incadreaza in ipot eza f( a)< 0 si f(b)> 0";
ret urn;
}
void main(void)
{
clrscr() ;
cout< < " a = "; cin> > a;
cout < < " b = "; cin> > b;
cout< < "Dati preci zia de calcul eps = "; cin> > eps;
bisect ie(a,b) ;
getch( );
}
M E T O D E N U M E R I C E
4
2.2. Met oda coar dei sau secant ei
Fie o functie cont inua si derivabila f(x) având pe int ervalul [ a, b] o singura radacina
( ) b , a ∈ ξ . Deoarece 0 < ⋅ ) b ( f ) a ( f , se poat e aproxima radacina cu abscisa punct ului de
int ersectie a coardei (secantei) care t rece prin punct ele A(a, f (a)) si B(b, f(b)) cu axa Ox (fig.
1.2.1). Ecuatia acest ei coarde est e:
( )
a b
) a ( f ) b ( f
a x ) a ( f y
a b
a x
) a ( f ) b ( f
) a ( f y


− = −



=


Pent ru pri mul int erval [ a,b] se poat e scrie aceasta abscisa ast fel :
) a ( f ) b ( f
a b
) a ( f a x


− =
1
Daca 0
1
< ⋅ ) x ( f ) a ( f at unci noul subinterval [ a,x
1
] va cuprinde solutia ecuatiei.
Procedeul de aproximare se repeta în acelasi mod pent ru noul subint erval. Presupunând ca
pent ru subint ervalul [ x
n-1
, x
n
] est e îndeplini ta conditia:
0
1
< ⋅

) x ( f ) x ( f
n n
,
at unci pent ru det erminarea solutiei aproximative x
n+ 1
est e valabil a rel ai a de recuren a
met odei coardei sau secant ei :
) x ( f ) x ( f
x x
) x ( f x x
n n
n n
n n n
1
1
1


+


− =
Din punct de vedere geomet ric det erminarea solutiei aproximat i ve se realizeaza cu
aj ut orul int ersectiil or succesive ale secant el or la graficul functiei f(x) cu axa Ox , duse prin
punctel e:
Ø A
n+ 1
[ x
n+ 1
, f(x
n+ 1
) ] , A
n
[ (x
n
, f (x
n
)] pent ru cazul 0
1
< ⋅
+
) x ( f ) x ( f
n n
, respect iv
Ø A
n-1
[ x
n- 1
, f(x
n- 1
)] , A
n
[ x
n
, f( x
n
)] , pent ru cazul 0
1
< ⋅

) x ( f ) x ( f
n n
.
Exempl u
Sa se af le radacina ecuatiei algebrice: 0 1 4 3
2
= − − + x x x ln , cu o eroare 02 0, ≤ ε stii nd
ca se afl a în int ervalul [ ] 2 1, .
Pent ru ecuatia de mai sus se aplica relatia de recurenta (1.2.3) care conduce succesiv
la valorile din t abelul 3:
x=a
x
x
2
y
y=f(x
)
O
Fig.1.2.1
x
1
x=b
ξ
A
B
M E T O D E N U M E R I C E
5
Tabelul 3
Pas x
n- 1
x
n
x
n+ 1
f ( x
n-1
) f ( x
n
) f ( x
n+ 1
)
1.
1.000000 2. 000000 1.351300 -2.000000 3.693147 -0. 626100
2.
1.351300 2. 000000 1.445332 -0.626100 3.693147 -0. 146033
3.
1.445332 2. 000000 1.466431 -0.146033 3.693147 -0. 031635
4.
1.466431 2. 000000 1.470962 -0.031635 3.693147 -0. 006742
5.
1.470962 2. 000000 1.471926 -0.006742 3.693147 -0. 001432
6.
1.471926 2. 000000 1.472131 -0.001432 3.693147 -0. 000304
7
1.472131 2. 000000 1.472174 -0.000304 3.693147 -0. 000064
8
1.472174 2. 000000 1.472184 -0.000064 3.693147 -0. 000014
Se observa ca si aceasta met oda est e slab convergent a.
Deci solutia aproximat iva a ecuatiei calculata prin met oda coardei sau secant ei est e:
ξ= 1, 47176 cu o eroare ε = 0,02824 .
I mplement are in C+ + :
Sa se det ermine solut ia ecuat iei 0 5 x 7 x
5
= + + continuta in intervalul [ -1, 0] .
Se observa cu usuri nt a ca met oda se poat e apl ica funct iei f : [ -1, 0] -> R, f (x)= x
5
+ 7x+ 5. Derivat a
f unctiei f este f

(x)= 5x
4
+ 7, deci val oarea minima, respect iv maxima a modulul ui derivat ei pe
int ervalul [ -1,0] est e 7 (not am cu m1) si 12 (not am cu m2).
/ *
Rezolvarea numerica a ecuatiilor algebrice si transcedentale
2. Metoda coardei (metoda secantei)
variant a cu est imarea erorii
* /
# include< iostream.h>
# include< coni o. h>
# include< mat h.h>
# include< st dlib.h>
float a,b,cn,cn_1,eps,m1, m2;
int i;
float funct ie(float x)
{
ret urn ( log(x) + 3* x* x - 4* x + 1 );
}
void coarda(float a, float b, float eps)
{
m1= 4; m2= 9. 5;
i= 1;
cn_1= a;
cn= ( a* funct ie(b) - b* funct ie( a))/ (funct ie( b)-funct ie(a)) ;
while( fabs(cn- cn_1) * m2/ m1 > eps)
{
cn_1= cn;
M E T O D E N U M E R I C E
6
if( f unct ie( cn) < 0) a= cn;
else b= cn;
i+ + ;
cout < < cn< < " an = "< < a< < " bn = "< < b< < " it erat ia = "< < i< < endl;
cn= ( a* funct ie(b) - b* funct ie( a))/ (funct ie( b)-funct ie(a)) ;
}
ret urn;
}
void main(void)
{
clrscr() ;
cout< < " a = "; cin> > a;
cout < < " b = "; cin> > b;
cout< < "Dati preci zia de calcul eps = "; cin> > eps;
coarda(a,b,eps);
getch( );
}
M E T O D E N U M E R I C E
1
3. Rezolvar ea numer i c a ecuai i l or al gebr i ce i t r anscendent e
3.1. Met oda t angent el or de or di nul I
( sau pri ma met od a l ui Newt on sau Newt on- Raphson)
Fie o funcie cont inu i derivabil f(x) pe int ervalul [ a, b] , care sat isface
condiia 0 < ⋅ ) b ( f ) a ( f i are o singur rcin pe int ervalul [ a, b] .
Dac se dezvolt în serie Taylor f uncia f(x) în j urul punct ului x= a se obine:
( ) ( ) ( )
( )
( ) ... a f
!
a x
a f
!
a x
a f x f + ′ ′

+ ′

+ =
2 1
2
(3.1)
Reinând doar primii doi termeni ai dezvoltrii (3.1) se obine o relaie aproximativ de
calcul a lui f(x) în f uncie de f(a) i f’(a):
( ) ( ) ( ) ( ) ( ) ( ). b f
!
b x
b f x f sau a f
!
a x
a f x f ′

+ ≅ ′

+ ≅
1 1
(3.2)
Aceast funcie reprezint t angent a la graficul funciei f(x) în punct ul A[ a, f(a)]
respect iv în punct ul B[ b, f (b)] , conform fi gurii 3.1. Punând condiia ( ) 0 = x f se obine
int ersecia cu axa Ox i rezult o soluie aproximat i v de forma:
( )
( )
( )
( )
( )
( )
( )
( ) b f
b f
b x
b f
b f
b x : sau
a f
a f
a x
a f
a f
a x

− = ⇒

− = −

− = ⇒

− = −
2
1
(3.3)
Alegerea lui a sau b trebuie s se fac ast f el încât s nu se obin o valoare a lui x
2
în
afara int ervalului [ a, b] aa cum rezult din figura 3.3 pent ru x
1
= a.
Folosind aceast relaie rezult f ormul a de recuren a met odei t angent el or de
or dinul I (prima formul a lui Newt on sau Newt on-Raphson):
( )
( )
n
n
n n
x f
x f
x x

− =
+1
(3.4)
a
x
x
2
y
y=f(x)
O
Fig.1.3.1
b
x
3
x
4
A
B
x
1
M E T O D E N U M E R I C E
2
Exempl u
se af le rcina ecuaiei algebrice: 0 1 4 3
2
= − − + x x x ln , cu o eroare mai mic de
0,00001 t iind c se af l în int ervalul [ ] 2 1, .
Dac notm 1 4 3
2
− − + = x x x ln ) x ( f , at unci derivat a funciei ) x ( f este:
4 6
1
− + = ′ x
x
) x ( f (3.5)
Pent ru det erminarea soluiei aproximat ive prin met oda Newt on Raphson se aplic
relaia de recuren (3.4) i se obin succesiv val orile din t abelul 3.1
Tabelul 3.1
Pas x
n
f ( x
n
) f ' ( x
n
) x
n+ 1
f ( x
n+ 1
)
1.
2 3.693147 8.5 1.565512 0.538649
2.
1.565512 0.538649 6.031841 1.476211 0.022232
3.
1.476211 0.022232 5.534677 1.472194 4. 47E-05
4.
1.472194 4.47E-05 5.512424 1.472186 1.82E-10
Se observ c aceast met od est e rapid convergent.
O soluie aproximat iv a ecuaiei est e ξ= 1, 472186 calculat cu o eroare ε = 0,00001.
Apli cat i e:
Se considera ecuat ia x – sin x – 0.25 = 0. Vom const rui trei funct ii:
1. Funct ia denumit a funct ie() care ret urneaza funct ia pent ru care aproximam solut ia int r-un
anumit interval.
2. Funct ia denumit a deriv() care ret urneaza derivat a funct iei dat e.
3. Funct ia denumit a newt on() care aplica met oda lui Newt on asupra funct iei dat e.
I n aceast a funct ie consideram in numar dat de it erat ii, in variabila imax, o er oare not at a eps,
variabilele dx pentru funct ia dat a si df pent ru derivat a corespunzat oare.
Valoarea init iala a lui x va fi 0, iar dupa mai mult e it erat ii vom obt ine val oarea
arpoximat iva a lui x = 1.7123.
I mpl ement are i n C+ +
# i ncl ude< st di o.h>
# i ncl ude< i ost ream.h>
# i ncl ude< mat h.h>
# i ncl ude< st dl i b.h>
# i ncl ude< coni o.h>
f l oat x,dx;
f l oat funct ie( fl oat x)
{
ret ur n( x - sin( x) - 0.25) ;
}
f l oat deri v( f loat x)
{
ret urn( 1 - cos( x) ) ;
}
M E T O D E N U M E R I C E
3
void newt on( f l oat x, f loat dx)
{
f l oat eps= 0.0000000001;
i nt i max = 25;
f l oat f ,df ;
i nt i ;
i = 0;
do{
i = i + 1;
dx= f unct i e( x) ;
df = deri v( x) ;
i f ( abs( df ) > eps) dx = dx/ df ;
x = x - dx;
i f ( x!= 0) dx = dx / x;
cout < < x< < " dx " < < dx< < " i t erat i a i = " < < i < < endl ;
} whi l e( abs( dx< = eps) && i < = i max ) ;
ret urn;
}
i nt main( voi d)
{
cl r scr ( ) ;
cout < < " dat i x = " ; ci n> > x;
newt on( x,dx) ;
get ch( );
}
3.2. Met oda it erat iv x= g(x)
(met oda aproximatiilor successive, metoda contract iilor)
Fie o funcie cont inu i derivabil f(x) pe int ervalul [ a, b] . Deoarece 0 < ⋅ ) b ( f ) a ( f ,
presupunem c ecuaia f(x)= 0 are o singur rcin ( ) b , a ∈ ξ . O rcin aproximat iv a
ecuaiei f(x)= 0 se poat e obine dac aceasta se poat e scrie o relaie de recuren echivalent
x= g(x). Aceast met od nu conduce înt ot deauna la relaii it erative convergent e.
Relaia de recuren a met odei se scrie:
x
n+ 1
= g(x
n
) (3.2.1)
Exempl ul 1
se gseasc rcina ecuaiei: 0 1 4 3
4
= − + x x , cu o precizie de 0,001 dac se af l
în int ervalul (0, 1).
1 4 3 0 1 4 3
3 4
= + ⇔ = − + ) x ( x x x (3.2. 2)
M E T O D E N U M E R I C E
4
Dac se consider 4 3
3
+ = x ) x ( g at unci ecuaia (3.2.2) se scrie sub f orma echivalent :
4 3
1
3
+
=
x
x (3.2. 3)
Cu aj ut orul relaiei(1.6.3) se obine relaia de recuren:
4 3
1
3
1
+
=
+
n
n
x
x (3.2.4)
Plecând de la x
1
= 0 avem succesiv val oril e din de mai j os:
Pas x
n
x
n+1
1. 0 0,25
2. 0,25 0,2471
3. 0,2471 0,2472
Se observ c aceast met od est e rapid convergent.
O soluie aproximat iv a ecuaiei calculat cu o eroare ε = 0,0001 est e: ξ= 0,22472
Exempl ul 2
se gseasc rcina ecuaiei: 0 1
4
= − − x x (1.6.5)
cu o precizie de 0,001 dac se af l în int ervalul (1, 2).
Dac
4
1 x ) x ( g + = at unci ecuaia de mai sus se scrie:
4
1 x x + =
Se obine deci relaia de recuren:
4
1
1
n n
x x + =
+
(1.6. 6)
Plecând de la x
1
= 1 avem succesiv val orile din tabelul 1.6.2:
Pas x
n
x
n+1 Tabelul 1.6.2
1. 1 1,1892
2. 1,1892 1,21638
3. 1, 21638 1,220145
4. 1,220145 1,22066
Se observ c aceast met od est e rapid convergent.
O soluie aproximat iv a ecuaiei calculat cu o eroare ε = 0,00052 est e: ξ= 1,2206.
Apli cat i e:
Se considera ecuat ia x – sin x – 0.25 = 0. Vom const rui doua funct ii:
1. Funct ia denumit a funct ie() care ret urneaza funct ia pent ru care aproximam solut ia int r-un
anumit interval.
2. Funct ia denumit a cont ract ii() care aplica met oda cont ract ii lor (aproximari lor succesive)
asupra funct iei dat e.
I n aceasta funct ie consideram in numar dat de it erat ii, in variabila imax, o er oare
not at a eps, variabila dx pentru funct ia dat a.
Valoarea init iala a lui x va fi 0, iar dupa mai mult e it erat ii vom obt ine val oarea
M E T O D E N U M E R I C E
5
aproximat iva a lui x = 1.7123.
I mpl ement are i n C+ +
# i ncl ude< st di o.h>
# i ncl ude< i ost ream.h>
# i ncl ude< mat h.h>
# i ncl ude< st dl i b.h>
# i ncl ude< coni o.h>
f l oat x,dx;
i nt zero;
f l oat funct ie( fl oat x)
{
ret ur n( x - sin( x) - 0.25) ;
}
voi d cont ract i i ( f l oat x, f loat dx, i nt zero)
{
f l oat eps= 0.0000000001;
i nt i max = 25;
f l oat f ;
i nt i ;
i = 0;
zero= 1;
do{
i = i + 1;
dx= f unct i e( x) ;
x = x - dx;
i f ( x!= 0) dx = dx / x;
cout < < x< < " dx " < < dx< < " i t erat i a i = " < < i < < endl ;
} whi l e( abs( dx< = eps) && i < = i max ) ;
ret urn;
}
i nt main( voi d)
{
cl r scr ( ) ;
cout < < " Dat i x = " ; cin> > x;
cont ract ii ( x,dx,zer o) ;
i f ( zero= = 1 ) cout < < " x = " < < x< < " dx = " < < dx;
get ch( );
}
M E T O D E N U M E R I C E
1
4. Rezol varea si st emel or de ecuai i al gebr i ce l i ni ar e
Met odele de rezolvare a sist emelor de ecuat ii liniare, se pot impart i in doua
categorii:
1. Met ode exact e( di rect e) – care sunt algorit mi finit i pent ru calculul solut iilor
sist emelor de ecuat ii liniare:
Ø Met oda l ui Cramer , bazat a pe calculul det erminant ilor
Ø Met oda el i minari l or succesi ve ( met oda l ui Gauss)
2. Met ode i t erat i ve – care permit gasirea solut iei sist emelor liniare cu o anumit a
precizie, int r-un numar finit de pasi:
Ø Met oda l ui Jacobi
Ø Met oda Gauss- Seidel
4.1.1. Met oda l ui Cramer
Consideram urmat orul sist em de n ecuat ii liniare cu n necunoscut e :
Conform not iunilor de algebra din liceu, daca un sist em liniar cu n ecuat ii si n
necunoscut e are det erminant ul principal nenul, at unci el are solut ie unica, det erminat
prin regula lui Cramer, si anume :
unde, se obt in prin inlocuirea in

a coloanei corespunzat oare
necunoscut ei x
i
, prin coloana t ermenilor liberi.
Rezolvarea efect iva a sist emului de n ecuat ii cu n necunoscut e se face prin
calculul a n + 1 det erminant i.
Deci, t rebuie sa const ruim un algorit m de calcul numeric al det erminant ilor :
Sa presupunem, de exemplu, ca avem un determinant de ordin 3, in forma
generala :









= + + + +
= + + + +
= + + + +
= + + + +
n n nn 3 3 n 2 2 n 1 1 n
3 n n 3 3 33 2 32 1 31
2 n n 2 3 23 2 22 1 21
1 n n 1 3 13 2 12 1 11
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
Κ
Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ
Κ
Κ
Κ


=
1
x
1
x


=
2
x
2
x


=
n
x
n
x
Κ Κ Κ
n
x
2
x
1
x
, , , ∆ ∆ ∆ Κ
M E T O D E N U M E R I C E
2
Daca element ul a
11
est e diferit de zero, at unci caut am sa aj ungem la un
det erminant care sa cont ina pe prima coloana numai pe zero, cu except ia element ului
a
11
. Acest a se poat e obt ine succesiv inmult ind prima linie cu
11
21
a
a
− si adunand rezult at ul
la linia a doua. De asemenea inmult ind prima linie cu
11
31
a
a
− si adunand la linia a t reia se
aj unge la un det erminant , cu aceeasi valoare ca cel init ial , dar care are pe prima
coloana un singur element nenul. Deci det erminat ul devine :
I n cont inuare, daca
'
22
a est e diferit de zero, put em, fara a afect a valoarea
det erminat ului, sa inmult im linia a doua cu
'
22
'
32
a
a
− si sa adunam la a t reia; vom obt ine :
Evident valoarea acest ui det erminant est e egala cu
11
a
'
22
a
' '
33
a .
I naint e, de a generaliza acest procedeu, t rebuie sa vedem ce se int ampla daca,
de exemplu, la primul pas, a
11
= 0.
ü I n aceast a sit uat ie, daca pe prima coloana t oat e element ele sunt nule
at unci det erminant ul est e zero.
ü Daca exist a, t ot usi un element nenul pe prima coloana, at unci put em
permut a linia care cont ine acel element nenul, cu prima li nie. Obt inem un
nou det erminant , avand semnul schimbat fat a de cel ant erior.
Procedeul poat e fi aplicat in cont inuare ca mai sus, cu singura observat ie ca
det erminant ul isi schimba semnul de fiecare dat a cand se efect ueaza o permut are de
doua linii.
I n, general, pent ru calculul unui det erminant de ordin n put em folosi met oda de
mai sus. Astf el, avem :
33 32 31
23 22 21
13 12 11
a a a
a a a
a a a
'
33
'
32
'
23
'
22
13 12 11
a a 0
a a 0
a a a
' '
33
'
23
'
22
13 12 11
a 0 0
a a 0
a a a
M E T O D E N U M E R I C E
3
Pent ru rezolvarea sistemului de n ecuat ii cu n necunoscut e vom const rui o
funct ie de calcul a det erminant ului conform met odei de mai sus, pe care o vom apela,
prima dat a pent ru calcului det erminant ului principal al sist emului ( ∆ ) , si apoi de n ori
pent ru calculul celor n det erminant i corespunzat ori celor n necunoscut e :
Solut ia in limbaj ul C+ + :
# i ncl ude< i ost r eam.h>
# i ncl ude< coni o.h>
# i ncl ude< st dl ib.h>
f l oat a[ 10] [ 10] ,b[ 10] ,x[ 10] ,save[ 10] ,dp;
i nt i ,j ,n;
f l oat det ermi nant ( f l oat a[ 10] [ 10] , i nt n)
{
i nt i ,j ,k,l ,t ,i v;
f l oat t emp,d= 1;
f or( j = 1;j < = n-1;j + + )
{
i v= j ;
t = 1;
whi l e( ( i v< = n) && ( t = = 1) )
i f ( a[ i v] [ j ] = = 0) i v= i v+ 1;
el se t = 0;
i f ( t = = 1)
{
ret urn 0;
}
i f ( j != i v)
{
d= -d;
f or( k= j ;k< = n;k+ + )
{
t emp= a[ j ] [ k] ;
a[ j ] [ k] = a[ i v] [ k] ;
a[ i v] [ k] = t emp;
}
}
f or( l = j + 1; l < = n;l + + )
f or( k= j + 1;k< = n;k+ + )
a[ l ] [ k] = a[ l ] [ k] - a[ j ] [ k] * a[ l ] [ j ] / a[ j ] [ j ] ;
}
f or( j = 1;j < = n;j + + )
d= d* a[ i ] [ j ] ;
r et urn d;
nn 3 n 2 n 1 n
n 3 33 32 31
n 2 23 22 21
n 1 13 12 11
a a a a
a a a a
a a a a
a a a a
Κ
Κ Κ Κ Κ Κ
Κ
Κ
Κ
n
x
2
x
1
x
, , , ∆ ∆ ∆ Κ
M E T O D E N U M E R I C E
4
}
voi d mai n( voi d)
{
cl rscr( ) ;
cout < < " Dat i numarul de ecuat i i "; ci n> > n;
cout < < " Dat i mat r i cea A "< < endl ;
f or( i = 1;i < = n;i + + )
f or( j = 1;j < = n;j + + )
{
cout < < " a[ " < < i < < " ] [ " < < j < < " ] = " ;
ci n> > a[ i ] [ j ] ;
}
cout < < " Dat i t er menul l i ber " < < endl ;
f or( i = 1;i < = n;i + + )
{
cout < < " b[ " < < i < < " ] = " ;
ci n> > b[ i ] ;
}
dp= det er mi nant ( a,n) ;
i f ( dp= = 0)
{
cout < < " Nu se poat e r ezol va cu regul a l ui Cramer" < < endl ;
exi t ( 0) ;
}
f or( j = 1;j < = n;j + + )
{
f or( i = 1;i < = n;i + + )
{
save[ i ] = a[ i ] [ j ] ;
a[ i ] [ j ] = b[ i ] ;
}
x[ j ] = det er mi nant ( a,n) / dp;
cout < < x[ j ] < < endl ;
f or( i = 1;i < = n;i + + )
a[ i ] [ j ] = save[ i ] ;
}
}
4.1.2. Met oda el i mi nari l or succesi ve ( met oda l ui Gauss)
Met oda eliminarilor succesive pornest e de la o observat ie foart e simpla facut a
asupra met odei de calcul a det erminant ilor, prezent at a ant erior. Este vorba de fapt ul
ca daca folosim asa numit a metoda a reducerii, prin eliminarea necunoscutei x
1
, din
ecat iile 2,3,…,n nu facem alt ceva decat sa aplicam pri mul pas din procedeul de calcul
al det erminant ilor. Ast fel, daca sist emul urmat or est e compat ibil si det erminat (adica
det erminant ul principal este nenul) :









= + + + +
= + + + +
= + + + +
= + + + +
n n nn 3 3 n 2 2 n 1 1 n
3 n n 3 3 33 2 32 1 31
2 n n 2 3 23 2 22 1 21
1 n n 1 3 13 2 12 1 11
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
Κ
Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ
Κ
Κ
Κ
M E T O D E N U M E R I C E
5
At unci, se t ransforma int r-un sist em echivalent , de forma :
Daca, it eram, procesul, eliminand necunoscut ele x
i
, din ecuat iile i+ 1, …, n (unde
i = 2, …, n-1 ), vom obt ine in final un sist em de forma :
Acest sistem, numit si st em t r iunghi ular superi or, se poat e rezolva, incepand
cu valoarea lui x
m
care se det ermina din ult ima ecuatie. Cu x
n
, cunoscut de det ermina
x
n-1
din penult ima ecuat ie, s.a.m.d.
Solutia in limbaj ul C+ + , se aseamana foarte mult cu cea de la met oda l ui
Cramer , doar ca cat eva mici modificari :
# i ncl ude< i ost r eam.h>
# i ncl ude< coni o.h>
# i ncl ude< st dl ib.h>
f l oat a[ 10] [ 10] ,b[ 10] ,x[ 10] ,dp;
i nt i ,j ,n,i v,t ,k,l ;
f l oat t emp;
voi d mai n( voi d)
{
cl rscr( ) ;
cout < < " Dat i numarul de ecuat i i "; ci n> > n;
cout < < " Dat i mat r i cea A "< < endl ;
f or( i = 1;i < = n;i + + )
f or( j = 1;j < = n;j + + )
{
cout < < " a[ " < < i < < " ] [ " < < j < < " ] = " ;
ci n> > a[ i ] [ j ] ;
}
cout < < " Dat i t er menul l i ber " < < endl ;
f or( i = 1;i < = n;i + + )
{
cout < < " b[ " < < i < < " ] = " ;
ci n> > b[ i ] ;
}









= + + +
= + + +
= + + +
= + + + +
n n nn 3 3 n 2 2 n
3 n n 3 3 33 2 32
2 n n 2 3 23 2 22
1 n n 1 3 13 2 12 1 11
b x a x a x a
b x a x a x a
b x a x a x a
b x a x a x a x a
Κ
Κ Κ Κ Κ Κ Κ Κ Κ Κ
Κ
Κ
Κ









β = α
β = α + + α
β = α + + α + α
= + + + +
n n nn
3 n n 3 3 33
2 n n 2 3 23 2 22
1 n n 1 3 13 2 12 1 11
x
x x
x x x
b x a x a x a x a
Κ Κ Κ Κ Κ Κ Κ
Κ
Κ
Κ
M E T O D E N U M E R I C E
6
f or( j = 1;j < = n-1;j + + )
{
i v= j ;
t = 1;
whi l e( ( i v< = n) && ( t = = 1) )
i f ( a[ i v] [ j ] = = 0) i v= i v+ 1;
el se t = 0;
i f ( t = = 1)
{
cout < < " Det ermi nant ul pri ci pal est e nul " ;
exi t ( 0) ;
}
i f ( j != i v)
{
f or( k= j ;k< = n;k+ + )
{
t emp= a[ j ] [ k] ;
a[ j ] [ k] = a[ i v] [ k] ;
a[ i v] [ k] = t emp;
}
/ / schi mbam si el ement ul corespunzat or l i ni ei k al t er menul ui l i ber
t emp= b[ j ] ;
b[ j ] = b[ i v] ;
b[ i v] = t emp;
}
f or( l = j + 1; l < = n;l + + )
{
f or( k= j + 1;k< = n;k+ + )
a[ l ] [ k] = a[ l ] [ k] - a[ j ] [ k] * a[ l ] [ j ] / a[ j ] [ j ] ;
/ / cal cul pt . t er menul l i ber
b[ l ] = b[ l ] - b[ j ] * a[ l ] [ j ] / a[ j ] [ j ] ;
}
}
i f ( a[ n] [ n] = = 0)
{
cout < < " Det er ni nant ul pr incipal est e nul " ;
exi t ( 0) ;
}
/ / cal cul ul l ui xn
x[ n] = b[ n] / a[ n] [ n] ;
f or( i = n- 1; i > = 1;i --)
{
t emp = b[ i ] ;
f or( j = i + 1; j < = n;j + + ) t emp = t emp - a[ i ] [ j ] * x[ j ] ;
x[ i ] = t emp / a[ i ] [ i ] ;
}
f or( i = 1;i < = n;i + + )
cout < < " x[ " < < i < < " ] = " < < x[ i ] < < endl ;
get ch( ) ;
}
M E T O D E N U M E R I C E
1
5. Rezol varea si st emel or de ecuai i al gebr i ce l i ni ar e
Met ode i t er at i ve
2. Met ode i t erat i ve – permit gasirea solut iei sist emelor liniare cu o anumit a precizie,
int r-un numar finit de pasi:
Ø Met oda l ui Jacobi
Ø Met oda Gauss- Seidel
5.1 Met oda l ui Jacobi
Consideram urmat orul sist em de n ecuat ii liniare cu n necunoscut e :
care se poat e scrie: Ax = b, unde A= (a
ij
)
i= 1,n ; j = 1,m
est e mat ricea sistemului , iar b est e
vect orul t ermenilor liberi :
Definit ie :
Numi m norma unui vect or x, pe care o not am cu | | x| | , un numar real definit
ast fel :
Numi m nor ma unei mat ri ce A cu n lini si m coloane, pe care o notam | | A| | ,
un numar real def init ast fel :
¹
¹
¹
¹
¹
¹
¹
'
¹
· + + + +
· + + + +
· + + + +
· + + + +
n n nn 3 3 n 2 2 n 1 1 n
3 n n 3 3 33 2 32 1 31
2 n n 2 3 23 2 22 1 21
1 n n 1 3 13 2 12 1 11
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
Κ
Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ
Κ
Κ
Κ
i
n
1 i
x max x
·
·

·
·
·
m
1 j
ij
n
1 i
a max A

,
`

.
|
n
2
1
b
b
b
Μ
M E T O D E N U M E R I C E
2
Teorema :
Daca numarul q = | | I - A | | are propriet at ea ) 1 , 0 ( q ∈ , at unci, sist emul de ecuat ii
Ax = b,are o solut ie unica, x, iar sirul { x
m
} , definit :
x
0
= 0, x
m+ 1
= (I - A) x
m
+ b, converge la x.
I n plus, sunt adevarat e inegalit at ile :
Det erminarea aproximat iva a solut iei sist emului Ax= b ca limit a a sirului { x
m
} ,
poat a numele de met oda Jacobi .
Exemplu:
Consideram urmat orul syst em de t rei ecuatii cu t rei necunoscut e:
Daca not am cu A mat ricea sist emului si cu b vect orul de t ermeni liberi, at unci
avem :
Deci
rezulta ca | | I -A | | = max { 0.5, 0.5, 0.7} = 0.7. Ceea ce inseamna ca se
indeplinest e condit ia t eoemei, si anume q= | | I -A | | sa fie din int ervalul (0,1).
I n plus, | | b | | = max { 1, 0.9, 1,1} = 1.1.
Consideram aproximarea cu t rei zecimale exact e eps = 0.001.
b
q 1
q
x x
q 1
1
x x
m
m 1 m m

≤ −

≤ −
+
¹
¹
¹
'
¹
· + − −
− · + +
· − +
1 . 1 x x 6 . 0 x 1 . 0
9 . 0 x x x 4 . 0
1 x 2 . 0 x 3 . 0 x
3 2 1
3 2 1
3 2 1
1 6 . 0 1 . 0
1 . 0 1 4 . 0
2 . 0 3 . 0 1
A
− −

·
0 6 . 0 1 . 0
1 . 0 0 4 . 0
2 . 0 3 . 0 0
1 6 . 0 1 . 0
1 . 0 1 4 . 0
2 . 0 3 . 0 1
1 0 0
0 1 0
0 0 1
A I − −

·
− −

− · −
M E T O D E N U M E R I C E
3
Ast fel, put em rezol va inecuat ia:
Cea mai mica solut ie a acest ei inecuat ii est e:
Prezentam in continuare solutia exemplului dat mai sus, cu precizarea ca pent ru
a put ea generaliza met oda lui Jacobi, t rebuie scrise cat e o funct ie de calcul a normei
unui vector, respectiv, o funct ie de calcul a normei unei mat rice.
Solut ia in limbaj ul C+ + :
/ *
rezol var ea si st emel or de ecuat i i l i ni ar e
met oda JACOBI
* /
# i ncl ude< i ost r eam.h>
# i ncl ude< st dl ib.h>
# i ncl ude< coni o.h>
# i nclude< mat h.h>
doubl e a[ 10] [ 10] ,x[ 10] ,b[ 10] ,t emp[ 10] ;
/ / a est e mat ri cea si st emul ui
/ / x vect orul de necunoscut e al e si st emul ui
/ / b vect orul de t er meni l i beri
/ / t emp un vect or pent ru cal cul al unor val ori t emporare
doubl e q,eps,nb,s;
/ / q numar egal cu norma mat ri cei I -A ( adi ca q = | I - A| )
/ / eps eroar ea de cal cul aproxi mat i v al sol ut i i l or si st emul ui
/ / nb numar egal cu norma vect orul ui B ( adi ca nb = | B| )
i nt n,m,j ,i ,i t er at i i ;
voi d mai n( voi d)
{
cl rscr( ) ;
cout < < " I nt oducet i nr. de l i ni i si de col oane al e mat ri cei si st emul ui " ;
ci n> > n;
f or( i = 1;i < = n;i + + )
f or( j = 1;j < = n;j + + )
{
cout < < " a[ " < < i < < " ," < < j < < "] = " ;
ci n> > a[ i ] [ j ] ;
}
cout < < " I nt roducet i el ement el e t ermenul ui l i ber " < < endl ;
f or( i = 1;i < = n;i + + )
{
cout < < " b[ " < < i < < " ] = " ;
ci n> > b[ i ] ;
001 . 0 b
q 1
q
m
<

1
q ln
b
) q 1 ( 001 . 0
ln
m +
]
]
]
]
]
]


·
M E T O D E N U M E R I C E
4
}
cout < < " Si st emul i ni t i al est e : " < < endl ;
f or( i = 1;i < = n;i + + )
{
cout < < a[ i ] [ 1] < < " x" < < 1;
f or( j = 2;j < = n;j + + )
cout < < " + " < < a[ i ] [ j ] < < " x"< < j ;
cout < < " = " < < b[ i ] < < endl ;
}
cout < < " ar e sol ut i i l e : " < < endl ;
eps= 0.0001;
/ *
caz par t i cul ar pent ru si st emul :
x1 + 0.3x2 - 0.2x3 = 1
0.4x1 + x2 + 0.1x3 = -0.9
-0.1x1 - 0.6x2 + x3 = 1.1
* /
nb= 1.1;
q= 0.7;
m= ( i nt ) ( l og( eps * ( 1-q) / nb ) / l og(q) + 1) ;
f or( i = 1;i < = n;i + + ) x[ i ] = 0.0;
f or( i t erat i i = 1;i t erat i i < = m;i t er at i i + + )
{
f or( i = 1;i < = n;i + + )
{
s= 0.0;
f or( j = 1;j < = n;j + + )
s+ = a[ i ] [ j ] * x[ j ] ;
t emp[ i ] = x[ i ] - s + b[ i ] ;
}
f or( i = 1;i < = n;i + + ) x[ i ] = t emp[ i ] ;
}
f or( i = 1;i < = n;i + + )
cout < < " x[ " < < i < < " ] = " < < x[ i ] < < endl ;
get ch( ) ;
}
Dupa execut ia programului, se vor obt ine solut iile x = { 0.63, 0.54, 1.04} .
5.2. Met oda Gauss-Sei del
Consideram urmat orul sist em de n ecuat ii liniare cu n necunoscut e :
¹
¹
¹
¹
¹
¹
¹
'
¹
· + + + +
· + + + +
· + + + +
· + + + +
n n nn 3 3 n 2 2 n 1 1 n
3 n n 3 3 33 2 32 1 31
2 n n 2 3 23 2 22 1 21
1 n n 1 3 13 2 12 1 11
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
b x a x a x a x a
Κ
Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ
Κ
Κ
Κ
M E T O D E N U M E R I C E
5
Met oda Gauss-Seidel est e o variant a a met odei Jacobi, in scopul de a creste
convergent a sirului de solut ii { x
m
} .
Definit ie :
Un sist em liniar Ax= b se numest e normal daca mat ricea coeficient ilor A est e
simet rica, adica a
i j
= a
j i ,
si daca forma pat rat ica corespunzat oare
est e pozi t i v def i ni t a.
Teorema :
Daca ambii membri ai sistemului liniar Ax= b, cu mat ricea A nesingulara, sunt
inmult it i la st anga cu t ranspusa A
T
, at unci sist emul rezult ant A
T
A x = A
T
b est e
normal.
Prezent am in cont inuare, o procedura Gauss_Seidel care rezolva un sistem de
ecuat ii liniare cu aj ut orul met odei Gauss-Seidel.
Vom avea mat ricea A, vect orul b al t ermenilor liberi si la sfarsit ul funct iei vom
obt ine in vect orul b solut ia aproximat i va si in variabila eroare eroarea relat iva maxima
a component elor solut iei.
/ *
rezol var ea si st emel or de ecuat i i l i ni ar e
met oda GAUSS- SEI DEL
caz par t i cul ar pent ru si st emul :
x1 + 0.3x2 - 0.2x3 = 1
0.4x1 + x2 + 0.1x3 = -0.9
-0.1x1 - 0.6x2 + x3 = 1.1
* /
# i ncl ude< i ost r eam.h>
# i ncl ude< st dl ib.h>
# i ncl ude< coni o.h>
# i nclude< mat h.h>
doubl e a[ 10] [ 10] ,x[ 10] ,b[ 10] ;
/ / a est e mat ri cea si st emul ui
/ / x vect orul de necunoscut e al e si st emul ui
/ / b vect orul de t er meni l i beri
i nt n,m,j ,i ,er oar e;
voi d gauss_sei del ( doubl e a[ 10] [ 10] , doubl e x[ 10] , i nt n)
{
i nt i max= 20;
i nt eps= 0.0000000001;
i nt i ,j ,k;
doubl e t ,t t [ 10] ;
/ / se gener eaza el ement el e rezul t at e pr i n i mpart i rea f i ecarui el em. de pe l i ni e cu
/ / el em. de pe di agonal a pri nci pal a
∑∑
· ·
·
n
1 i
n
1 j
j i ij
x x a u
M E T O D E N U M E R I C E
6
f or( i = 1;i < = n;i + + )
{
t = -1.0/ a[ i ] [ i ] ;
t t [ i ] = b[ i ] / a[ i ] [ i ] ;
f or( j = 1;j < = n;j + + )
a[ i ] [ j ] = a[ i ] [ j ] * t ;
}
k= 0;
f or( i = 1;i < = n;i + + ) b[ i ] = t t [ i ] ;
do{
k+ + ;
eroare= 0.0;
f or( i = 1;i < = n;i + + )
{
t = t t [ i ] ;
f or( j = 1;j < = n;j + + ) t = t + a[ i ] [ j ] * b[ j ] ;
b[ i ] = b[ i ] + t ;
i f ( b[ i ] != 0.0) t = t / b[ i ] ;
i f ( f abs( t ) > eroar e) eroar e = f abs( t ) ;
}
} whi l e( ( eroar e< eps) | | ( k= = i max) ) ;
ret urn;
}
voi d mai n( voi d)
{
cl rscr( ) ;
cout < < " I nt roducet i nr. de l i ni i si de col oane al e mat ri cei si st emul ui " ;
ci n> > n;
f or( i = 1;i < = n;i + + )
f or( j = 1;j < = n;j + + )
{
cout < < " a[ " < < i < < " ," < < j < < "] = " ;
ci n> > a[ i ] [ j ] ;
}
cout < < " I nt roducet i el ement el e t ermenul ui l i ber " < < endl ;
f or( i = 1;i < = n;i + + )
{
cout < < " b[ " < < i < < " ] = " ;
ci n> > b[ i ] ;
}
cout < < " Si st emul i ni t i al est e : " < < endl ;
f or( i = 1;i < = n;i + + )
{
cout < < a[ i ] [ 1] < < " x" < < 1;
f or( j = 2;j < = n;j + + )
cout < < " + " < < a[ i ] [ j ] < < " x"< < j ;
cout < < " = " < < b[ i ] < < endl ;
}
cout < < " ar e sol ut i i l e : " < < endl ;
gauss_sei del ( a,b,n) ;
f or( i = 1;i < = n;i + + )
cout < < " x[ " < < i < < " ] = " < < b[ i ] < < endl ;
cout < < " Er oar ea r el at i va maxi ma est e " < < er oar e< < endl ;
get ch( ) ;
}
M E T O D E N U M E R I C E
1
6. Eval uar ea f unct i i l or
1. Eval uarea poli noamel or. Schema l ui Horner
2. Eval uar ea f unct i il or anal i t i ce
3. Apr oxi mar ea funct i i l or . Pol i noame de i nt er pol ar e
6.1. Eval uar ea pol inoamel or . Schema l ui Horner
Presupunem ca avem un polinom de grad n:
cu coeficient i reali a
i
, i= 0,1,2,…,n.
Presupunem ca se cere gasirea valorii acest ui polinom pent ru x = .
Calculul se realizeaza cel mai convenabil punand P() sub forma:
Algorit mul cal culului lui P() conform schemi lui Horner revine la evaluarea
succesiva a numerelor
b
0
= a
0
b
i
= b
i -1
+ a
i
, i = 1,2,…,n
si avem P( ) = b
n
.
Schema lui Horner imbina simplit atea formularii algorit mice cu efi cient a
calculului numeric, prin t ransformarea operat iilor de ridicare la put ere in operat ii de
inmult ire, care se efect ueaza mai rapid si mai precis.
Programul urmator prezinta implementarea in C+ + a schemei lui Horner. Se
observa ca nu est e necesarea memorarea numerelor b
i
in t impul calculului, int r-un
vect or, si de aceea se ut ilizeaza o singura variabila b.
/ / ----- ----- cal cul ul val ori i unui pol i nom f ol osi nd SCHEMA l ui HORNER------- ----------- ----
# i ncl ude < i ost r eam.h>
doubl e a[ 100] ,x;
i nt n,i ;
doubl e pol i nom( doubl e a[ 100] , doubl e x, i nt n)
{
doubl e b;
n n
n n
a x a x a x a x P + + + + =


1
1
1 0
) ( Κ
n n
a a a a a P + + + + + =

ξ ξ ξ ξ ξ ) ) ) (( ( ) (
1 2 1 0
Κ Κ
M E T O D E N U M E R I C E
2
i nt i ;
b= a[ 0] ;
f or( i = 1;i < = n;i + + )
b= b* x + a[ i ] ;
ret urn b;
}
voi d mai n( voi d)
{
cout < < " dat i gradul pol i nomul ui n = ";ci n> > n;
f or( i = 0;i < = n;i + + )
{
cout < < " a[ " < < i < < " ] = " ;
ci n> > a[ i ] ;
}
cout < < " Dat i val oar ea pt . care se cal cul eaza x= " ;ci n> > x;
cout < < " Val oarea pol i nomul ui i n pct . " < < x< < " est e: " < < pol i nom( a,x,n) < < endl ;
}
6.2. Eval uar ea f unct i i lor anal i t i ce
O f unct ie reala f (x) se numest e anal i t ica in punct ual . Daca int r-o vecinatat e |
x - | < R a cest ui punct , ea poat e fi dezvolt ata int r-o serie de put eri (serie Taylor)
Pent ru = 0 obt inem seria MacLaurin
Suma partiala de ordinal n a seriei Taylor se numest e polinom Taylor de ordinul
n.
Consideram exemplul funct iei exponent iale din dezvol t area sa in serie:
al carei int erval de convergent a est e ). , ( +∞ −∞ Polinomul Taylor de ordinal n est e


=
− = + − + − + =
0
) (
2
' ' '
) (
!
) (
) (
! 2
) (
) (
! 1
) (
) ( ) (
i
i
i
x
i
f
x
f
x
f
f x f ξ
ξ
ξ
ξ
ξ
ξ
ξ Κ


=
=
0
) (
!
) 0 (
) (
i
i
i
x
i
f
x f
∑ ∑
= =
= − =
n
i
n
i
i
i
i
n
x t x
i
f
x F
0 0
) (
) ( ) (
!
) (
) ( ξ
ξ

=
= + + + =
n
i
i
x
i
x x
x e
0
2
! ! 2
1 Κ
M E T O D E N U M E R I C E
3
in acest caz:
Avand in vedere relat ia dint re doi t ermini succesivi, est e convenabil sa se
efect ueze calculul polinomului lui Taylor ut ilizand schema recurent a:
t
0
= 1, F
0
= 1
, F
i
= F
i-1
+ t
i
, i = 1,2,…, n,…
Procesul it erat iv se cont inua pana cand eroarea relat iva devine mai mica decat o
val oare prescrisa , adica
| t
n
/ F
n
| .
Programul urmator prezint a implement area in C+ + a seriei Taylor aplicat a
funct iei exponent iale.
/ / ---- --------- ---- cal cul ul seri ei TAYLOR pt . f unct i a exponent i al a ---- ---- ---- ----- ---- -------
# i ncl ude < i ost r eam.h>
# i ncl ude < mat h.h>
doubl e x;
const eps= 1e-10;
i nt n,i ;
doubl e expn( doubl e x)
{
doubl e f = 1,t = 1;
i nt i = 0;
whi l e( f abs( t / f ) > eps )
{
i + + ;
t = x/ i * t ;
f = f + t ;
}
ret urn f ;
}
voi d mai n( voi d)
{
cout < < " dat i x = " ;ci n> > x;
cout < < " expn( " < < x< < " ) = " < < expn(x) < < endl ;
cout < < " exp( " < < x< < " ) = " < < exp( x) ;
}

=
=
n
i
i n
x t x F
0
), ( ) (
!
) (
i
x
x t
i
i
=
1 −
=
i i
t
i
x
t
M E T O D E N U M E R I C E
4
6.3. Apr oxi mar ea f unct i i l or. Poli noame de i nt er pol are
Se cunoast e din mat eria de liceu ca put em avea urmat oarele tipuri de probleme:
1. Sa se det ermine functia de gradul I al carei grafic t rece prin punctele de coordonat e
(1,5) si (3,-1).
Solut ia problemei pornest e de la forma generala a ecuat iei de gradul I :
Apoi det erminam valorile a si b ast fel incat sa indepli neasca condit iile:
f(1)= 5 si f(3)= -1.
Deci , obtinem:
f(1)= a* 1+ b= 5 si f(3)= 3* a+ b= -1
Prin rezolvarea sist emului de doua ecuat ii cu doua necunoscut e, obt inem: a= -3
si b= 8.
Asadar, am obt inut funct ia de gradul I : f ( x) = -3x + 8
2. Sa se det ermine funct ia de gradul I I al carei grafic t rece prin punct ele de
coordonat e: (-1,-1) , (2,5) si (3,11).
Solut ia problemei pornest e de la forma generala a ecuat iei de gradul I I :
Apoi det erminam valorile a, b si c din condit iile:
f(1)= a – b + c = -1
f(2)= 4* a + 2* b + c = 5
f(3) = 9* a + 3* b + c = 11
Prin rezolvarea sistemului de t rei ecuat ii cu t rei necunoscut e (adica valorile a, b
b ax ) x ( f , R R : f + = →



− = +
= +

1 b a 3
5 b a
c bx ax ) x ( f , R R : f
2
+ + = →





= + +
= + +
− = + −

11 c b 3 a 9
5 c b 2 a 4
1 c b a
M E T O D E N U M E R I C E
5
si c), obt inem a= 1, b= 1 si c= -1:
Asadar am obt inut funct ia de gradul al doilea f ( x) = x
2
+ x - 1.
Put em generaliza cele doua probleme de mai sus, ast fel:
Se dau m (m> = 1) punct e di n pl an, ( x
i
,y
i
) , x
i
≠ x
j
,
. m j , i 1 , j i ≤ ≤ ≠ ∀
Sa se
det ermi ne f unct i a pol inomi al a, asoci at a unui pol i nom de gr adul m- 1, al carei
graf i c sa cont i na punct el e dat e.
Exemplu: Daca avem 6 punct e in plan si t rebuie sa det erminam un polinom de
gradul 5 al carui grafic sa cont ina acest e punct e.
Teor ema. Fiind dat e m punct e (m> = 1) punct e in plan, (x
i
,y
i
), i = 1, 2, …, m,
x
i
≠ x
j
, j i ≠ ∀ , exist a un polinom P, unic, avand gradul cel mult m-1 si pent ru care
graficul functiei polinomiale asociat e cont ine punct ele dat e.
Def i ni t i e: Polinomul P, a carui exist enta si unicit at e sunt asigurat e de t eorema
de mai sus, se numest e pol i nomul de int erpol are al punct elor (x
i
,y
i
), i = 1, 2, …, m.
O sit uat ie part iculara care prezint a int eres est e aceea in care punct ele de
int erpolare sunt punct e care apart in graf icului unei funct ii f, adica f(x
i
) = y
i
, m i 1 ≤ ≤ . I n
aceast a sit uat ie polinomul de int erpolare sat isface condit iile P(x
i
)= f( x
i
), m i 1 ≤ ≤ si
spunem ca polinomul int erpoleaza fucnt ia f pri n punct ele (x
1
, f(x
1
) ) , ( x
2
,f(x
2
)), …,
(x
m
,f(x
m
)).
METODE NUMERI CE
1
7. Apr oxi marea funct i i l or
Pol i noame de i nt er polar e ( I )
1. Pol i nomul LAGRANGE
Una dint re cele mai cunoscut e formule de int erpolare est e const ruit a de Lagrange sub
forma unui polinom de int erpolare.
Sa presupunem ca in intervalul [ a,b] sunt specif icate n valori ale argument ului x
1
, x
2
, . . . ,
x
n
, si val orile corespunzatoare ale unei funct ii f(x)
f(x
i
)= y
i
, i = 1,2,…,n
Se cere const ruirea unui polinom L
m
(x) care ia in punct ele specificat e x
i
aceleasi valori ca si
funct ia f(x)
L
m
(x
i
)= y
i
, i= 1,2,…,n (1)
Pentru aceasta sa construim mai intai un polinom p
i
(x) pent ru care
(2)
Deoarece polinomul cautat , p
i
( x), se anuleaza in cele (n-1) puncte x
1
, …, x
i- 1
, x
i+ 1
, …, x
n
, el
are expresia
unde C
i
est e un
coeff icient constant, iar
Luind x= x
i
si avand in vedere ca p
i
( x
i
)= 1 obtinem

=
i
i i
) x ( / 1 C
. Cu acest ea, gasim
pentru polinomul p
i
(x) care sat isface condit iile (2)
( 3)
Revenind acum la problema initiala a construirii polinomului L
m
(x) care
sat isf ace condit iile (1), acest a poat e fi scris sub forma
( 4)




=
= δ =
i j daca , 0
i j daca , 1
) x ( p
ij j i

= − − − − =
+ −
i
i n 1 i 1 i 1 i i
) x ( C ) x x ( ) x x )( x x ( ) x x ( C ) x ( p Κ Κ
∏ ∏

− =
i
i j
j
) x x ( ) x (


=
i
i
i
i
) x (
) x (
) x ( p
i
n
1 i
i m
y ) x ( p ) x ( L

=
=
METODE NUMERI CE
2
I nt r-adevar, deoarece polinoamele p
i
(x), sunt de ordinul (n-1), si L
m
(x) est e de ordinul (n-
1) si sat isf ace condit iile (1)
I nlocuind expresia (3) a polinoamelor p
i
(x) in (4) rezult a f ormul a de int erpol are a l ui
Lagrange
Vom crea o fucnt ie numit a Lagrange cu cinci paramet ri :
ni – numarul de punct elor de int erpolare
xi si yi – tablouri care cont in coordonat ele punct elor de int erpolare
x – argument ul pent ru care se calculeaza valoarea polinomului Lagrange de int erpolare
y – val oarea de iesire a funct iei
Programul urmat or prezint a implement area in C+ + a polinomului Lagrange int r-un punct
dat x.
/ *
Pol i nomul de i nt erpol are Lagrange
* /
# i ncl ude< i ost ream.h>
f l oat xi [ 20] , yi [ 20] , x, y;
i nt ni ;
f l oat l agrange( f l oat xi [ ] , f l oat yi [ ] , i nt ni , f l oat x)
{
i nt i , j ;
f l oat p, y;
f or ( i = 1; i < = ni ; i + + )
{
p= 1;
f or( j = 1;j < = ni ;j + + )
i f (j != i )
p= p* (x-xi [ j ] ) / ( xi [ i ] -xi [ j ] ) ;
y= y+ p* yi [ i ] ;
}
ret urn y;
}
voi d mai n( void)
{
cout < < " n = " ;ci n> > ni ;
cout < < " Vect or x = " < < endl ;
f or( i nt i = 1;i < = ni ;i + + )
{
cout < < " x[ " < < i < < " ] = ";
∑ ∑
= =

= = δ = =
n
1 i
n
1 i
j i ij i j i j 1 n
n ,..., 2 , 1 j , y y y ) x ( p ) x ( L
∑ ∑




= =





= =
n
1 i
n
1 i
i
i j
j i
i j
j
i
i
i
i
1 n
y
) x x (
) x x (
y
) x (
) x (
) x ( L
METODE NUMERI CE
3
ci n> > xi [ i ] ;
}
cout < < " Vect or y = " < < endl ;
f or ( i = 1; i < = ni ; i + + )
{
cout < < " y[ " < < i < < " ] = " ;
ci n> > yi [ i ] ;
}
cout < < " Dat i val oar ea punct ul ui pt . care se cal cul eaza pol i nomul = ";
ci n> > x;
y= l agr ange( xi ,yi ,ni ,x) ;
cout < < " Val oar ea pent r u "< < x< < " est e " < < y< < endl ;
}
Executia programului :
n= 4
vect or x = { -2, 1, 2, 4}
vector y = { 25, - 8, - 15, - 13}
valoarea punctului pt . care se calculeaza polinomul = 3
Valoarea pent ru 3 est e 17.22221
2. Pol i nomul AI TKEN
Schema de int erpolare Ait ken porneste de la polinomul Lagrange in mai mult e punct e : x
0
,
x
1
, x
2
, . . . , x
n
.
Se considera expresia
Acesta este un polinom de gradul intai in x.
Efect uand calcul ele, obt inem :
care est e t ocmai expresia polinomului Lagrange const ruit pe nodurile x
0
, x
1
.
Deoarece polinomul de gradul intai in punctele x
0
si x
1
; respect iv valorile y
0
si y
1
este unic,
0 1
1 1
0 0
01
x x
x x y
x x y
) x ( L



=
. y
x x
x x
y
x x
x x
y
x x
x x
y
x x
x x
x x
) x x ( y ) x x ( y
) x ( L
1
0 1
0
0
1 0
1
1
0 1
0
0
0 1
1
0 1
0 1 1 0
01


+


=


+


=

− − −
=
; y ) x ( L ; y ) x ( L
1 1 01 0 0 01
= =
METODE NUMERI CE
4
acest lucru inseamna ca L
01
(x) rezolva problema int erpolarii pent ru nodurile x
0
, x
1
(x
0
< x
1
).
I n mod analog se const ruiesc poli noamele de int erpolare liniare :
L
12
( x) , L
23
( x) , …,L
n-1,n
( x)
; . . . . ;
Put em considera acum
care est e un polinom de gradul doi in x.
Se verifi ca imediat ca L
012
( x
0
) = y
0
; L
012
( x
1
) = y
1
; L
012
( x
2
) = y
2
;
si L
012
(x) este chiar polinomul de int erpolare Lagrange const ruit pe nodurile x
0
< x
1
< x
2
, si care
are in aceste punct e valorile y
0
, y
1
, y
2
.
I n general, avem :
care va f i polinomul de i nterpolare Lagrange pent ru nodurile x
0
< x
1
< . . . < x
n
, si care are
in acest e punct e valorile y
0
, y
1
, . . . , y
n
.
Se observa ca L
012…n
(x) se obtine din L
012…n-1
(x) si L
12…n
(x) la fel cum L
01
(x) s-a obtinut din
y
0
si y
1
, dupa aceeasi schema.
Acest a schema est e urmat oarea :
Aceast a schema ramane ut ila si la adaugare de noi valori x si y :
x
i
y
i
x
i
- x L
i- 1,i
L
i-2,i- 1,i
L
i- 3,i-2,i- 1,i
x
0
y
0
x
0
-x
x
1
y
1
x
1
-x L
01
( x)
x
2
y
2
x
2
-x L
12
( x) L
012
( x)
x
3
y
3
x
3
-x L
23
( x) L
123(x)
L
0123
(x)
… … … … … …
x
i
x
i
- x y
i
L
i-1,i
L
i- 2,i-1,i
L
i-3,i- 2,i-1,i
x
0
x
0
-x y
0
L
01
(x) L
012
(x) L
0123
(x)
x
1
x
1
-x y
1
L
12
(x) L
123(x)

x
2
x
2
-x y
2
L
23
(x) …
x
3
x
3
-x y
3

… … …
1 2
2 2
1 1
12
x x
x x y
x x y
) x ( L



=
1 n n
n n
1 n 1 n
n , 1 n
x x
x x y
x x y
) x ( L

− −




=
0 2
2 21
0 01
012
x x
x x ) x ( L
x x ) x ( L
) x ( L



=
0 n
n 21
0 1 n 01
n 012
x x
x x ) x ( n L
x x ) x ( L
) x ( L



=

Κ
Κ
Κ
METODE NUMERI CE
5
Exemplu :
Se cere L
n
(3) , deci a = 3.
Rezulta ca L
3
(3) = 17.22
Aceeasi valoare se obt ine si calculand cu polinomul Lagrange :
L
3
(a)= . . . . = -17.22
Programul urmat or prezint a impl ement area in C+ + a schemei Ait ken int r-un punct dat x.
/ *
Schema AI TKEN
* /
# i ncl ude< i ost ream.h>
f l oat x[ 10] , y[ 10] , xa[ 10] , d[ 10] [ 20] , a;
i nt n;
voi d ci t i re( f l oat z[ ] )
{
f or( i nt i = 0;i < = n;i + + ) ci n> > z[ i ] ;
ret urn;
}
voi d t ipar ( )
{
cout < < endl < < " Schema Ai t ken " < < endl ;
cout < < " ------ ----- ------------ ------------ --------" < < endl ;
cout < < " x x-a y I I I I I I "< < endl ;
cout < < " ------ ----- ------------ ------------ --------" < < endl ;
i nt n1= n,j ,i ;
f or ( i = 0; i < = n; i + + )
{
cout < < x[ i ] < < " " < < xa[ i ] < < " " ;
f or( j = 0;j < = n1;j + + )
cout < < d[ i ] [ j ] < < " ";
n1--;
cout < < endl ;
}
ret urn;
}
voi d ai t ken( )
{
i nt i ;
x -2 1 2 4
f 25 -8 -15 -13
x
i
x
i
-a y
i
L
i-1,i
L
i- 2,i-1,i
L
i-3,i- 2,i-1,i
-2 -5 25 -30 -20 -17.22
1 -2 -8 -22 -16.67
2 -1 -15 -14
4 1 -13
METODE NUMERI CE
6
f or ( i = 0;i < = n; i + + ) xa[ i ] = x[ i ] - a;
f or( i = 0;i < = n;i + + ) d[ i ] [ 0] = y[ i ] ;
i nt n1,k= 1,j ;
f or( j = 1;j < = n;j + + )
{
n1= n-j ;
f or ( i = 0;i < = n1; i + + )
d[ i ] [ j ] = (d[ i ] [ j -1] * xa[ i + k] - d[ i + 1] [ j -1] * xa[ i ] ) / ( x[ i + k] -x[ i ] ) ;
k+ + ;
}
ret urn;
}
voi d mai n( void)
{
cout < < " n = " ;ci n> > n;
cout < < " a = " ;ci n> > a;
cout < < " vect or x = " ;
ci t i r e( x) ;
cout < < " vect or y = " ;
ci t i re( y) ;
ai t ken( ) ;
t i par( ) ;
cout < < " val oarea pent ru a est e "< < d[ 0] [ n] < < endl ;
}
METODE NUMERI CE
1
8. Apr oxi marea funct i i l or
Pol i noame de i nt erpolar e ( I I )
3. Pol i nom CEBI SEV
Polinoamele Cebisev, utilizat e frecvent pentru dezvoltarea unor funct ii, sat isf ac urmat oarea
relat ie de recurent a:
Programul urmator prezinta implement area in C+ + a polinomului Cebisev intr-un punct dat
x.
/ *
Pol i nomul CEBI SEV
* /
# i ncl ude< i ost ream.h>
# i ncl ude< coni o.h>
voi d mai n( void)
{
doubl e t 0,t 1,t k,x;
i nt n,k;
cl rscr( ) ;
cout < < " I nt r oducet i dat el e pol inomul ui : " < < endl ;
cout < < " x = " ;
ci n> > x;
cout < < " Dat i gradul pol i nomul ui CEBI SEV n = " ;
ci n> > n;
t 0 = 1.0;
t 1 = x;
f or ( k= 2; k< = n; k+ + )
{
t k = 1.0/ k * ( 2 * x * t 1 - t 0 ) ;
t 0 = t 1;
t 1 = t k;
}
cout < < " Pol i nomul Cebi sev est e : " < < endl ;
cout < < " \ t \ t \ t " < < t k;
get ch( ) ;
}
4. Pol i nom LAGUERRE
Polinoamele Laguerre ortogonale, cu ) , 0 ( +∞ ∈ x sat isfac urmat oarea relat ie de recurent a:
0 ) x ( T ) x ( xT ) x ( T
1 i i 1 i
= + −
− +
x ) x ( T , 1 ) x ( T
1 0
= =
x x P x P − = = 1 ) ( , 1 ) (
0
METODE NUMERI CE
2
Programul urmat or prezint a implement area in C+ + a polinomului Laguerre int r-un punct
dat x.
/ *
Pol i nomul LAGUERRE
* /
# i ncl ude< i ost ream.h>
# i ncl ude< coni o.h>
voi d mai n( void)
{
doubl e p0,p1,pk,x;
i nt n,k;
cl rscr( ) ;
cout < < " I nt r oducet i dat el e pol inomul ui : " < < endl ;
cout < < " x = " ;
ci n> > x;
cout < < " Dat i gradul pol i nomul ui n = " ;
ci n> > n;
p0 = 1.0;
p1 = 1 - x;
f or ( k= 2; k< = n; k+ + )
{
pk = 1.0/ k * ( ( k* 2-1) * p1 - ( k-1) * p0 ) ;
p0 = p1;
p1 = pk;
}
cout < < " Val oarea pol i nomul ui LAGUERRE est e : "< < endl ;
cout < < " \ t \ t \ t \ t \ t " < < pk< < endl ;
get ch( ) ;
}
Programul urmat or prezint a implement area in C+ + a polinomului Laguerre int r-o mult ime
de valori x.
/ *
Pol i noamel e LAGUERRE i n mai mul t e punct e
* /
# i ncl ude< i ost ream.h>
# i ncl ude< coni o.h>
voi d mai n( void)
{
doubl e x[ 100] , y[ 100] ;
doubl e p0,p1,pk;
i nt m,n,k,i ;
cl rscr( ) ;
cout < < " I nt r oducet i dat el e pol inomul ui : " < < endl ;
cout < < " Dat i gradul pol i nomul ui LAGUERRE n = " ;
ci n> > n;
cout < < " I n cat e punct e se f ace cal cul ul m = " ;
ci n> > m;
f or( i = 1;i < = m;i + + )
{
( ) [ ] . ,..., 3 , 2 , ) ( ) 1 ( ) ( 1 2
1
) (
2 1
n k pentru x P k x P k
k
x P
k k k
= − − − =
− −
METODE NUMERI CE
3
cout < < " Punct ul x_" < < i < < " " ;
ci n> > x[ i - 1] ;
}
cout < < " = = = = = = = = Rezul t at e = = = = = = = = " < < endl ;
f or( i = 1;i < = m;i + + )
{
p0 = 1.0;
p1 = 1 - x[ i -1] ;
f or ( k= 2; k< = n; k+ + )
{
pk = 1.0/ k * ( ( k* 2-1) * p1 - ( k-1) * p0 ) ;
p0 = p1;
p1 = pk;
}
y[ i -1] = pk;
cout < < x[ i -1] < < " \ t \ t " < < y[ i -1] < < endl ;
}
get ch( ) ;
}
5. Pol i nom LEGENDRE
Polinoamele Legendre, cu ) , 0 ( +∞ ∈ x sat isfac urmat oarea relatie de recurent a:
Programul urmat or prezint a implement area in C+ + a polinomului Legendre int r-un punct
dat x.
/ *
Pol inomul LEGENDRE
* /
# i ncl ude< i ost ream.h>
# i ncl ude< coni o.h>
voi d mai n( void)
{
doubl e p0,p1,pk,x;
i nt n,k;
cl rscr( ) ;
cout < < " I nt r oducet i dat el e pol inomul ui : " < < endl ;
cout < < " x = " ;
ci n> > x;
cout < < " Dat i gradul pol i nomul ui LEGENDRE n = " ;
ci n> > n;
p0 = 1.0;
p1 = x;
f or ( k= 2; k< = n; k+ + )
( ) [ ] . ,..., 3 , 2 , ) ( ) 1 ( ) ( 1 2
1
) (
2 1
n k pentru x P k x P k
k
x P
k k k
= − − − =
− −
x x P x P = = ) ( , 1 ) (
0
METODE NUMERI CE
4
{
pk = 1.0/ k * ( ( k * 2 - 1) * x * p1 - ( k - 1) * p0 ) ;
p0 = p1;
p1 = pk;
}
cout < < " Pol i nomul Legendr e est e : " < < endl ;
cout < < " \ t \ t \ t " < < pk;
get ch( ) ;
}
6. Pol i nom HERMI TE
Polinoamele Hermit e ort ogonale, cu R x ∈ satisfac urmat oarea relat ie de recurent a:
Programul urmat or prezint a implement area in C+ + a polinomului Hermit e int r-un punct dat
x.
/ *
Pol i nomul HERMI TE
* /
# i ncl ude< i ost ream.h>
# i ncl ude< coni o.h>
voi d mai n( void)
{
doubl e p0,p1,pk,x;
i nt n,k;
cl rscr( ) ;
cout < < " I nt r oducet i dat el e pol inomul ui : " < < endl ;
cout < < " x = " ;
ci n> > x;
cout < < " Dat i gradul pol i nomul ui HERMI TE n = ";
ci n> > n;
p0 = 1.0;
p1 = 2 * x;
f or ( k= 2; k< = n; k+ + )
{
pk = 2 * x * p1 - ( k - 1) * 2 * p0 ;
p0 = p1;
p1 = pk;
}
cout < < " Pol i nomul Hermi t e est e : " < < endl ;
cout < < " \ t \ t \ t " < < pk;
get ch( ) ;
}
. ,..., 3 , 2 ), ( ) 1 ( 2 ) ( 2 ) (
2 1
n k pentru x P k x xP x P
k k k
= − − =
− −
x x P x P 2 ) ( , 1 ) (
0
= =
M E T O D E N U M E R I C E
1
9. I nt egrar ea numer i ca a f unct i i l or
Fie o funcie [ ] R b , a : f → i F(x) o primitiv a sa. At ât f(x) cât i F(x) sunt funcii
cont inue. Conform formulei Newton-Leibnit z:
) a ( F ) b ( F ) x ( F dx ) x ( f
b
a
b
a
− = =

, (9.1)
Î n cele mai mult e cazuri est e foart e greu uneori chiar imposibil de det erminat forma
primit ivei F( x). I nt egrala (9.1) se poat e cal cula cu aproximaie folosind metodele
numerice prin care se aproximeaz funcia f(x) definit pe int ervalul [ a, b] cu o funcie
g(x) ast f el încât :
∫ ∫

b
a
b
a
dx ) x ( g dx ) x ( f
(9.2)
Pent ru aceast a se ut ilizeaz urmt oarea schem de calcul:
1. se realizeaz o împire a intervalului [ a, b] în n-1 subint ervale cu aj utorul punct elor
de diviziune x
i
, i= 1, 2, 3, ..., n;
2. se scrie funcia de int egrat sub forma: f(x) = g(x) + r(x), (9.3)
unde g(x) est e o funcie de aproximare i r(x) o funcie rest ;
3. se int egreaz relaia (9.3):
∫ ∫ ∫
+ =
b
a
b
a
b
a
dx ) x ( r dx ) x ( g dx ) x ( f
(9.4)
Dac aproximarea funcie f(x) se face prin int erpolare cu funcia polinomial

=
=
n
k
k k
) x ( q a ) x ( g
1
at unci formula de calcul a int egralei (9.4) devine:




∫ ∫




= =
= = =
=
= = =
b
a
k k
n
k
k k
b
a
n
k
b
a
k k
b
a
n
k
b
a
k k
n
k
k k
b
a
dx ) x ( q I , I a dx ) x ( g deci
dx ) x ( q a dx ) x ( q a dx ) x ( q a dx ) x ( g
1
1 1 1
(9.5)
4. se caut o posibilit at e de minimizare a erorii:

= δ
b
a
dx ) x ( r
(9.6)
M E T O D E N U M E R I C E
2
1. Formul e de int egr are Newt on- Cot es (cu i nt er val i nchis)
Aceste formule utilizeazi valorile funciei de la capetele intervalului de integrare:
y
1
= f (a) i y
2
= f(b) i polinomul de int erpolare Lagrange.
Î n general pent ru aproximarea funciei f(x) se ut ilizeaz diferit e polinoame de
interpolare (preferându-se polinoame de grad mic, de obicei funcii spline continue de
gradul I sau I I - fig. 9.1) i un numr cât mai mare de subint ervale.
Polinomul de int erpolare Lagrange L
n
( x) are expresia:
[ ]
i
n
i
n i n
n
y
) i q ( )! i n ( ! i
q ) (
) x ( L ) x ( g

=
+ −
− −

= =
0
1
1
(9.7)
unde:
[ ]
( )( ) ( ) n q ... q q q q
n
− − − =
+
2 1
1
; n q b x x ; q a x x
hdq dx ;
h
dx
dq
h
x x
h
a x
q
n
= ⇒ = = = ⇒ = =
= = ⇒

=

=
0
0
0
(9.8)
I nt egrala (9.2) se scrie:
[ ]
hdq y
) i q ( )! i n ( ! i
q ) (
dx ) x ( f
dx ) x ( L dx ) x ( g dx ) x ( f
n
n
i
i
n i n
b
a
b
a
n
b
a
b
a



∫ ∫ ∫








− −


= ≈
=
+ −
0
0
1
1
(9.9)
x
y
y=f(x)
O
Fig.7.1.1
x
i+1
x
i+2
y
i+1
x
i
y
i
y
i+1
Funcii
spline
M E T O D E N U M E R I C E
3
Dac se noteaz: ( ) n / a b h − = rezult formula Newt on Cot es:
[ ]
dq
) i q (
q
)! i n ( ! i
y ) (
n
) a b ( dx ) x ( f
n n b
a
i
i n n
i
∫ ∫

− −

− =
+ −
=
0
1
0
1 1
(9.10)
care se mai scrie:
( )


=
− =
n
i
i i
b
a
y H a b dx ) x ( f
0
(9.11)
unde:
[ ]
dq
) i q (
q
)! i n ( ! i n
) (
H
n
n i n
i

− − ⋅

=
+ −
0
1
1
(9.12)
se numesc coeficienii Cot es.
Cazur i uzual e ale f or mul ei Newt on Cot es
Aplicaiile formulei de int egrare aproximat iv Newt on Cot es pent ru diferit e diviziuni
ale int ervalului [ a, b] sunt :
Ø pent ru n= 2 puncte de diviziune relaia (9.11) se scrie:
( )[ ]

+ − =
b
a
y H y H a b dx ) x ( f
1 1 0 0
(9.14)
unde coeficienii Cot es H
0
i H
1
au valorile:
2
1
2 1
1
0 1 1
1
2
1
2
1
1 0 1
1
1
0
2
1
0
1
1
0
2
1
0
0
= =


⋅ ⋅
=
= − =

⋅ ⋅
− =


q
dq
q
) q ( q
! !
H
q
q dq
q
) q ( q
! !
H
(9.15)
Î nlocuind în relaia (9.14) se obine f ormul a t rapezel or:
[ ]

+ =
b
a
y y
h
dx ) x ( f
1 0
2
(9.16)
M E T O D E N U M E R I C E
4
Ø pent ru n= 3 punct e de diviziune (dou subint ervale) relaia (9.11) se scrie:
( )[ ]

+ + − =
b
a
y H y H y H a b dx ) x ( f
2 2 1 1 0 0
(9.17)
unde coeficienii Cot es H
0
, H
1
i H
2
au valorile:
6
1
3 2 4
1
1
0 2 2
1
3
2
3 2
1
2
1 1 2
1
6
1
3 2
3 2
4
1
2 1
2 0 2
1
2
0
3 2
2
0
2
2
0
3
2
2
0
1
2
0
3 2
2
0
0
=








+ − = −
⋅ ⋅
=
=








+ − − = −
⋅ ⋅
− =
=








+ − = − −
⋅ ⋅
=



q q
dq ) q ( q
! !
H
q
q dq ) q ( q
! !
H
q q
q dq ) q )( q (
! !
H
(9.18)
Notând: h a b 2 = − se obine f ormul a 1/ 3 a l ui Si mpson:
[ ]

+ + =
b
a
y y y
h
dx ) x ( f
2 1 0
4
3
(9.19)
Prezent am in cont inuare implement area in C+ + a met odei t rapezelor:
Am not a cu ls valoarea lui a si cu ld valoarea lui b.
# i ncl ude< i ost ream.h>
# i ncl ude< st di o.h>
# i ncl ude< coni o.h>
# i ncl ude< mat h.h>
doubl e f ( doubl e x)
{
ret urn ( x* x+ 5) ;
}
doubl e i _t rapez( doubl e l s,doubl e l d,i nt n)
{
doubl e h,sum;
i nt i ;
h= ( ld- l s) / n;
sum= ( f ( l s) + f ( l d) ) / 2;
M E T O D E N U M E R I C E
5
f or ( i = 1; i < = n-1; i + + ) sum= sum+ h* f ( l s+ i * h) ;
ret urn sum;
}
voi d mai n( )
{
doubl e l s,l d;
i nt n;
cl r scr () ;
cout < < " Dat i l i mi t a st anga l s = " ;ci n> > l s;
cout < < " Dat i l i mi t a dreapt a l d = " ;ci n> > l d;
cout < < " Dat i numarul de punct e n = " ;ci n> > n;
cout < < " Val oar ea i nt egr al ei pr i n f or mul a t r apezel or est e
" < < i _t r apez( l s,l d,n) < < endl ;
get ch( ) ;
}
Prezentam in continuare impl ementarea in C+ + a metodei lui Simpson:
# i ncl ude< i ost ream.h>
# i ncl ude< st di o.h>
# i ncl ude< coni o.h>
# i ncl ude< mat h.h>
doubl e f ( doubl e x)
{
r et ur n( x* x+ 5) ;
}
doubl e i _si mpson( doubl e l s,doubl e l d,i nt n)
{
doubl e h,sum;
i nt i ;
h= ( l d-l s) / n;
sum= h* ( 1/ 3) * ( f ( l s) + f ( l d) ) ;
f or ( i = 1; i < = n-1; i + + )
{
i f ( i= = 1+ i % 2) sum= sum+ ( 2/ 3) * h* f (l s+ i * h) ;
el se sum= sum+ ( 4/ 3)* h* f (l s+ i * h) ;
ret urn sum;
}
}
voi d mai n( )
{
doubl e l s,l d,h;
i nt n;
cl r scr () ;
cout < < " Dat i l i mi t a st anga l s = " ;ci n> > l s;
cout < < " Dat i l i mi t a dreapt a l d = " ;ci n> > l d;
cout < < " Dat i numarul de punct e n = " ;ci n> > n;
cout < < " Val oarea i nt egral ei pri n f ormul a l ui Si mpson est e
" < < i _si mpson( l s,l d,n) < < endl ;
get ch( ) ;
}
1
Obiective curs.
• Crearea, analiza şi implementarea de algoritmi pentru rezolvarea problemelor din matematica
continuă
• Analiza complexităţii, analiza şi propagarea erorilor, condiţionarea problemelor şi stabilitatea
numerică a algoritmilor problemelor numerice
• Prezentarea metodelor numerice clasice şi a celor moderne de rezolvare a problemelor ştiinţifice
şi inginereşti
• Alegerea celor mai potrivite metode numerice pentru o problemă dată

Conţinut curs.
• Reprezentare în virgulă mobilă. Standardul IEEE 754 pentru numere reale.
Condiţionarea problemelor şi stabilitatea numerică a algoritmilor.
• Rezolvarea sistemelor de ecuaţii liniare prin metode gaussiene.
Pivotare parţială şi totală. Factorizare LU.
• Propagarea erorilor în rezolvarea sistemelor de ecuaţii liniare.
• Metode iterative de rezolvare a sistemelor de ecuaţii liniare
• Interpolare polinomială. Polinom de interpolare Lagrange.
• Diferenţe divizate. Polinom Newton. Eroarea interpolării.
• Interpolare cu funcţii spline. Interpolare trigonometrică.
• Aproximare uniformă. Polinoame Cebâşev. Algoritmii lui Remes.
• Aproximare continuă şi discretă în sensul celor mai mici pătrate.
• Rezolvarea sistemelor în sensul celor mai mici pătrate. Factorizare QR.
• Metodele Householder, Givens, Gram-Schmidt
• Integrare numerică. Metode Newton-Cotes. Metoda Romberg.
• Integrare gaussiană. Polinoame ortogonale. Integrale improprii.
• Integrarea ecuaţiilor diferenţiale ordinare. Metode Runge-Kutta.
• Metode multipas explicite şi implicite. Predictor-corector.
• Convergenţa metodelor multipas
• Valori proprii şi vectori proprii. Metodele puterii
• Algoritmul QR cu deplasare explicită. Descompunerea valorilor singulare
2
Aplicaţii ale calculului numeric.
1. Determinarea curenţilor într-un circuitul electric în regim staţionar:


conduce prin aplicarea legilor lui Kirchhoff la un sistem de ecuaţii liniare:





= +
= +
= − +
18 4 3
10 4 2
0
3 2
3 1
3 2 1
I I
I I
I I I

cu soluţia I
1
=1, I
2
=2, I
3
=3
2. Modelul Leontieff consideră economia formată din n sectoare independente: S
1
,S
2
,…, S
n
. Fiecare
sector consumă bunuri produse de celelalte sectoare (inclusive cele produse de el însuşi). Introducem
notaţiile:
m
ij
= numărul de unităţi produse de sectorul S
i
necesare sectorului S
j
să producă o unitate
p
i
= nivelul producţiei sectorului S
i

m
ij
p
j
= numărul unităţilor produse de S
i
şi consumate de S
j

Numărul total de unităţi produs de S
i
este: p
1
m
i1
+p
2
m
i2
+…+p
n
m
in

Într-un system închis (autarhic) dacă economia este echilibrată, tot ce se produce trebuie consumat, adică:





= + + +
= + + +
n n nn n n
n n
p p m p m p m
p p m p m p m
L
L
L
2 2 1 1
1 1 2 12 1 11

Adică sistemul: M.p = p sau (I-M).p=0, care pentru soluţii nenule, conduce la o problemă de valori
şi vectori proprii.
Într-un model deschis de economie, unele sectoare îşi satisfac unele cerinţe din exterior, adică:
p
i
= m
i1
p
1
+m
i2
p
2
+…+m
in
p
n
+d
i

care conduce la sistemul liniar de ecuaţii:
p = M.p + d
cu soluţia:
p = (I-M)
-1
.d
3
3. Coeficienţii care apar în reacţiile chimice se obţin aplicând legea conservării masei ecuaţiei de echilibru
chimic. Astfel arderea etanului:
xC
2
H
6
+ yO
2
→ zCO
2
+ tH
2
O
dă sistemul de ecuaţii liniare:





+ =
=
=
t z y
t x
z x
2 2
2 6
2

care are o soluţie întreagă:
x=2, y=7, z= 4, t=6.
deci ecuaţia chimică este:
2C
2
H
6
+ 7O
2
→ 4CO
2
+ 6H
2
O.
O problemă având o natură fizică oarecare poate fi studiată experimental sau prin simulare. Aceasta
poate fi transformată, utilizând legile fundamentale ale fizicii într-o problemă de natură matematică
M
P .
Vom spune că problema este bine pusă dacă admite o soluţie unică.


Ca exemplu, vom considera următoarea problemă fizică:
P
F
: Să se studieze propagarea temperaturii într-o bară AB de lungime l cunoscând
-temperaturile la momentul iniţial în orice punct M al barei ( ) [ ] l , x , x 0
0
∈ θ
-temperaturile la cele două capete ( ) t
A
τ şi ( ) t
B
τ în orice moment [ ] 1 0 t , t ∈
) (t
A
τ ( ) t
B
τ ( ) M
0
θ

4
Problema matematică corespunzătoare este:
P
M
: Să se determine funcţia:

( )
[ ] [ ] R t , l ,
) t , x ( t , x :
→ ×
θ → θ
1 0 0

care satisface următoarele condiţii:
t x ∂
∂θ
⋅ =

θ ∂
K 1
2
2
0
ecuaţia lui Fourier
) ( ) 0 , ( 2
0
0
x x θ = θ condiţiile iniţiale
) ( ) , 0 ( 3
0
t t
A
τ = θ condiţiile pe frontieră
) ( ) , ( 4
0
t t l
B
τ = θ
S ∈ θ
0
5 , S = spaţiul funcţiilor de 2 ori derivabile pe [ ] [ ] 1 , 0 , 0 t l ×
În acest moment intervine analiza numerică şi furnizează metodele de calcul, care în urma unui număr
finit ( ) ε , , t x N de operaţii elementare furnizează pentru soluţia ( ) t x, θ o aproximaţie ( ) t x, θ′ efectiv
calculabilă, astfel că: ε < θ′ − θ ) , ( ) , ( t x t x .
Prezintă interes metodele de calcul în timp finit, cu: 1 0 t t < < care furnizează aproximaţii uniforme:
( ) ( ) ε = ε N t x N , , .
Problema continuă P
M
este transformată într-o problemă asemănătoare P
h
prin discretizare.
În acest scop se selectează un număr finit de puncte ( ) t n x i Δ Δ , din domeniul compact [ ] [ ] 1 , 0 , 0 t l ×
folosind o reţea de discretizare cu paşii:

M
l
x = Δ ,

N
t
t
1
= Δ .
şi se notează: ) , ( t n x i
n
i
Δ Δ θ = θ
Dacă se aproximează derivatele parţiale cu diferenţele finite:

2
1 1
2
2
1
2
x
) t n , x i (
x
t
) t n , x i (
t
n
i
n
i
n
i
n
i
n
i
Δ
θ + θ ⋅ − θ
= Δ Δ

θ ∂
Δ
θ − θ
= Δ Δ

θ ∂
− +


se obţine următoarea problemă discretizată: P
h
:
Să se determine
n
i
θ cu N n , M i < < < < 0 1 , care satisface condiţiile:

2
1 1
1
0
2
1
) x (
K
t
n
i
n
i
n
i
n
i
n
i
Δ
θ + θ ⋅ − θ
⋅ =
Δ
θ − θ
− +


) ( 2
0
0 0
x i
i
Δ θ = θ
) ( 3
0
0
t n
A
n
Δ τ = θ
) ( 4
0
t n
B
n
M
Δ τ = θ
5

K x
t


Δ
Δ
2
1
) (
5
2
0

Problema discretizată P
h
constă în rezolvarea succesivă a N sisteme de ecuaţii liniare tridiagonale.
Diferenţa:
n
i
t n x i θ − Δ Δ θ ) , ( evaluează apropierea între soluţia problemei discretizate
h
P şi a modelului
matematic
M
P în fiecare punct al discretizării.
Soluţia problemei discretizate
h
P trebuie să tindă spre soluţia problemei continue
M
P dacă 0 → h ( h
reprezintă pasul de discretizare – în cazul problemei considerate avem paşii 0 , 0 → Δ → Δ t x sau
∞ → ∞ → M N , ); vom spune că trebuie satisfacută o condiţie de consistenţă:

M
h
h
P P =
→0
lim .
O altă condiţie importantă o reprezintă stabilitatea; aceasta impune ca soluţia θ′ a problemei perturbate
M
P (manifestată prin perturbarea parametrilor θ′ ,
A
τ′ ,
B
τ′ , K′ ) să fie apropiată de soluţia θ a
modelului matematic
M
P .
Pe baza modelului matematic discretizat se va proiecta un algoritm, care va fi analizat prin prisma:
- eficienţei (resurse folosite: timp de calcul şi memorie),
- convergenţei către soluţia modelului matematic continuu,
- efectului propagării erorilor.
Etapele enumerate evidenţiază urmatoarele tipuri de erori:
- erori deproblemă (inerente) care apar la trecere de la modelul fizic
F
P la cel matematic
M
P ,
- erori de metodă introduse prin discretizarea modelului matematic,
- erori de trunchere provin din natura infinită a unor procese care descriu soluţia problemei
- erori de rotunjire specifice rezolvării problemei pe calculatorul numeric, care utilizează aritmetica în
virgulă mobilă mobilă
6

Reprezentarea în virgulă mobilă.
fl(x) = ±0.a
1
a
2
...a
t
× β
e

reprezentare normalizată
1 ≤ a
1
< β şi 0 ≤ a
i
< β, i=2:t
L ≤ e ≤ U
• Sistemul de reprezentare în virgulă mobilă F(β, t, L, U) cuprinde:
• baza β
• precizia reprezentării t
• limitele (superioară şi inferioară ale) exponentului L şi U
• reprezentarea lui zero
Exemplu: F(10, 1, 0, 1)={ ±0.a
1
×10
e
}∪{0} cu a
1
∈{1:9} şi e∈{0,1}, în total 37 de
numere.
• 2(β-1)β
t-1
(U-L+1) valori distincte
• a
1
poate lua β-1 valori distincte,
• restul de t-1 cifre poate lua fiecare β valori diferite, deci β
t-1
,
• exponentul ia U-L+1, şi
• semnul două).
Cel mai mare număr reprezentabil Ω, (realmax) are forma:
Ω = 0.(β-1)(β-1)...(β-1)× β
U
=
= [(β-1)/β
1
+(β-1)/β
2
+...+(β-1)/β
t
] ×β
U
7
= (β-1)/β(1-β
-t
)/(1-β
-1
)×β
U
= β
U
(1-β
-t
)
Ω = β
U
(1-β
-t
)
• Cel mai mic număr pozitiv reprezentabil ω numit şi realmin este:
ω = 0.10...0×β
L

L
/β=β
L-1

ω =β
L-1

Surse de erori.
Un număr real x∈F se reprezintă exact, dacă suma se termină înainte de t termeni şi exponentul este
cuprins între limite. Altfel, numărul real x se aproximează printr-o valoare fl(x)∈F
Aproximarea numărului real
x=(0.a
1
a
2
... )β
e
=(a
1
β
-1
+a
2
β
-2
+...+a
t
β
-t
+a
t+1
β
-t-1
+...)β
e

se poate face prin trunchiere sau prin rotunjire.
• Aproximarea prin trunchiere ignoră cifrele numărului real din dreapta poziţiei t.
fl(x)=(0.a
1
a
2
...a
t

e
=(a
1
β
-1
+a
2
β
-2
+... +a
t
β
-t

e

• Aproximarea prin rotunjire consideră:
fl(x)=(0.a
1
a
2
...a
t
+1 )β
e
dacă a
t+1
≥ β/2
fl(x)=(0.a
1
a
2
...a
t

e
dacă a
t+1
< β/2
O depăşire superioară apare dacă e>U.
Ea declanşează o eroare la execuţie, care conduce la întreruperea calculelor.
O depăşire inferioară apare dacă e<L;
ea duce la înlocuirea numărului prin zero.
• Epsilon maşină (notat eps în Matlab sau μ) reprezintă cel mai mic număr pozitiv cu proprietatea că:
fl(1+μ) > 1
De exemplu în F(10, 4, -3, 3) cu rotunjire prin tăiere (trunchiere):
• fl(1+0.0009)=fl(1.0009)=1
• fl(1+0.0010)=fl(1.0010)=1.001 > 1
aşadar μ
tr
=0.001=10
-3
>ω=10
-4
.
• Dacă se foloseşte rotunjire, atunci:
fl(1+0.0004)=fl(1.0004)=1
fl(1+0.0005)=fl(1.0005)=1.001 > 1
cu μ
rot
=0.0005=1/2.10
-3
=1/2.μ
tr
• Eroarea absolută la rotunjirea prin trunchiere:
e
x
= x-fl(x)=(a
1

1
+ a
2

2
+...+ a
t

t
+a
t+1

t+1
+...)β
e
– (a
1

1
+ a
2

2
+...+ a
t

t

e
e
x
= (a
t+1

1
+ a
t+2

2
+...)β
e-t

|e
x
|≤|(β-1)/β
1
+(β-1)/β
2
+...|β
e-t
=
(β-1)β
e-t
(1/β
1
+1/β
2
+...) ≤ (β-1)β
e-t
/(β-1)= β
e-t
|e
x
| ≤ β
e-t
Dacă se foloseşte rotunjirea atunci eroarea absolută este şi mai mică:
|e
x
|≤ 1/2. β
e-t
• Eroarea relativă este:
ε
x
= |e
x
|/|x| = |x-fl(x)|/|x| ≤ β
e-t
/(0.a
1
...a
t
...β
e
)

8
ε
x
≤ β
e-t
/(0.10...0β
e
)= β
1-t

ε
x
≤ β
1-t
la trunchiere
ε
x
≤ 1/2. β
1-t
la rotunjire
În general:
|x-fl(x)|/|x| ≤ μ
de unde deducem:
fl(x) =x(1+ε), |ε| ≤ μ=K β
-t

• De exemplu F(10,4,-20,20),Ω=10
20
(1-10
-4
) =9.999×10
19
,

ω=10
-20-1
=1.0×10
-21
, μ
r
=1/2.10
-4+1
=5×10
-4
Propagarea erorilor.
• numere aproximative -operaţii exacte
• operaţii aproximative - date exacte
1.Rezultatul exact al adunării a două numere x şi y, dacă operaţiile se execută exact este x+y.
În realitate, se lucrează cu valorile inexacte x şi y, în care:
e
x
=|x-x| şi e
y
=|y-y|
x+y=x+y±e
x+y
=x±e
x
+y±e
y
=x+y±(e
x
+e
y
)
e
x+y
=e
x
+e
y
ε
x+y
=e
x+y
/|x+y|=(e
x
+e
y
)/|x+y|=(|x|ε
x
+|y|ε
y
)/|x+y|
ε
x+y
=|x|/|x+y|ε
x
+|y|/|x+y|ε
y
=k
x
ε
x
+k
y
ε
y
Pentru scădere:
x-y=x-y±e
x-y
=x±e
x
-(y±e
y
)=x-y±(e
x
+e
y
)
de unde:
e
x-y
=e
x
+e
y
ε
x-y
=|x|/|x-y|ε
x
+|y|/|x-y|ε
y
=k
x
ε
x
+k
y
ε
y

În acest caz coeficienţii de ponderare:
k
x
=|x|/|x-y| şi k
y
=|y|/|x-y|
pot lua valori foarte mari dacă x≈y, deci în cazul scăderii numerelor apropiate ca ordin de mărime se pot
comite erori foarte mari
În cazul înmulţirii:
xy=xy±e
xy
=(x±e
x
)(y±e
y
)=xy±xe
y
±ye
x
+e
x
e
y
≈xy±(xe
y
+ye
x
)
e
xy
=xe
y
+ye
x
ε
xy

x

y
2. Dacă operaţiile se reprezintă aproximativ, iar numerele sunt reprezentate exact, adunarea a două
numere x=f
x
.b
ex
şi y=f
y
.b
ey
presupune aducerea celui mai mic (fie acesta y) la exponentul celui mai
mare, producându-se o denormalizare
fl(x+y)=fl(f
x
b
ex
+f
y
b
-(ex-ey)
b
ex
)=fl[(f
x
+ f
y
b
-(ex-ey )
) b
ex
]
fl(x+y)=fl[(f
x
+f
y
(1+μ))b
ex
]=fl[x+(1+μ)y]
9
Rezultatul operaţiei este normalizat:
fl(x+y)=[x+(1+μ)y](1+μ)
Denormalizarea unuia dintre termeni poate fi evitată dacă se păstrează rezultatul intermediar într-un
acumulator cu lungimea 2t (acumulator dublu) În acest caz numai rezultatul final va fi afectat de
trunchiere la t cifre semnificative şi normalizare, deci:
fl
2
(x+y)=(x+y)(1+μ)
Anularea catastrofală.
• La scăderea a două numere apropiate ca ordin de mărime, cifrele semnificative se anulează reciproc,
rezultând o eroare relativă mare.
fl(x)=0.a
1
a
2
...a
p-1
a
p
...a
t
× β
e
fl(y)=0.a
1
a
2
...a
p-1
b
p
...b
t
× β
e
fl(y)-fl(y)=0.0 0 ...0 c
p
...c
t
× β
e
=0.c
p
...c
t
× β
e-p

Iniţial avem o singură cifră inexactă, în poziţia t, cu eroarea relativă β
1-t
• După scădere, bitul inexact trece în poziţia t-p cu eroarea relativă β
1-(t-p)
adică amplificată de β
p

ori.
Să considerăm scăderea numerelor x=0.120 şi y=-0.119 în sistemul F(10,2,-10,10):
fl(x)=-fl(y)=0.120
ε=|((x+y)-fl(x+y))/(x+y)|=(0.001-0)/0.001=1 !
eroarea este de 100% !
Se evită scăderea numerelor apropiate ca ordin de mărime prin:
•înmulţire cu conjugatul,
•dezvoltare în serie Taylor,
•rearanjarea termenilor etc .
Prin rearanjarea termenilor evităm adunarea numerelor foarte diferite ca ordin de mărime.
Astfel în sistemul F(10, 3,-10,10) cu rotunjire suma: 1+0.002+0.002+0.002 calculată
• fl(fl(fl(1+0.002)+0.002)+0.002)=1
în timp ce asocierea:
• fl(1+fl(0.002+fl(0.002+0.002)))=1.01.
În aritmetica în virgulă mobilă, asociativitatea nu se mai păstrează. Astfel:
fl(fl(x+y)+z)≠fl(x+fl(y+z)).
De exemplu:
fl(fl(1+μ/2)+ μ/2)= fl(1+μ/2)=1,
în timp ce:
fl(1+fl(μ/2+μ/2))= fl(1+μ) > 1
Reprezentarea numerelor reale (standardul IEEE 754).
Permite reprezentarea realilor în:
1) precizie simplă F(2, 24, -126, 127), folosind 32 biţi

2) precizie dublă F(2, 53, -1022, 1023); se folosesc 64 biţi:
3) precizie extinsă F(2, 65, -16382, 16382); se folosesc 80 biţi:
Întrucât a
1
=1, acesta nu se mai reprezintă (este ascuns), câştigându-se astfel precizie suplimentară. Bitul
ascuns este evidenţiat în reprezentarea: fl(x)=(-1)
s
2
e
.(1.+.f)

10
Precizie simplă
• reprezentare pe 32 biţi
• baza β= 2
• precizie t= 24 biţi (numerele normalizate păstrează numai 23 biţi)
• Numărul real este păstrat prin 3 componente:
– semnul: 1 bit
– exponentul: 8 biţi
– mantisa: 23 biţi (logic24)
• Cei 8 biţi permit: 2
8
= 256 valori diferite. Domeniul [0, 255] este transformat în [-127,
128]
• La exponentul (pozitiv sau negativ) se adaugă o valoare constantă care duce la un exponent
deplasat sau caracteristică pozitivă. Factorul de deplasare pentru precizie simplă este127.
• Domeniul deplasat [0-255] reprezintă exponenţi în domeniul [-127, 128]
exponent_deplasat = exponent + 127
Valoarea numărului este: V=(-1)
s
.2
e
.(1.+.f)
• 1=(-1)
0
.2
0
.(1.+.0)

0+127

0 01111111 00000000000000000000000
S e(8) f(23)
0 011 1111 1000 0000 0000 0000 0000 0000
└────┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘
3 F 8 0 0 0 0 0

• -6.5=(-1)
1
.2
2
.(1.+0.625)

2+127

1 10000001 10100000000000000000000
S e(8) f(23)
1 100 0000 1 101 0000 0000 0000 0000 0000
└────┘└───┘└───┘ └───┘└───┘└───┘└───┘└───┘
C 0 D 0 0 0 0 0
Un număr mai mare decât cel mai mare număr reprezentabil M (cunoscut sub numele de modulul
reprezentării) se obţine în urma unei depăşiri superioare (de regulă o împărţire prin 0: 1/0 = ∞, -
1/0 = -∞) va fi desemnat prin infinit – Inf, iar nedeterminările 0/0, ∞/∞ etc, vor fi desemnate ca NaN
(Not a Number).
Pentru toate acestea se rezervă în reprezentare cel mai mare exponent posibil 128 (adică exponentul
deplasat 255).
Precizie simplă
S E (8biti) E-127 H F (23biti) Valoare
NaN 0 11111111 128 1 ≠0
+Inf 0 11111111 128 1 000 …000 (-1)
0
2
128
0x7F800000
Ω 0 11111110 127 1 111 …111 (-1)
0
2
127
(2-2
-23
)≈3.4E38 0x7F7FFFFF
. . .
1+ε 0 01111111 0 1 000 …001 (-1)
0
2
0
(1+2
-23
)
ε =2
-23
≈1.92E-7
0x3F800001
11
1 0 01111111 0 1 000 …000 (-1)
0
2
0
=1 0x3F800000
ω 0 00000001 -126 1 000 …000 (-1)
0
2
-126
=2
-126
≈1.175E-38 0x00FFFFFF
MaxD 0 00000001 -126 0 111 …111 (-1)
0
2
-126
(1-2
-23
)=2
-126
-2
-149

. . .
MinD 0 00000001 -126 0 000 …001 (-1)
0
2
-126
2
-23
=2
-149
≈1.4E-45 0x00000001
+0 0 00000000 -127 1 000 …000 (-1)
0
2
-127
=2
-127
0x00000000
• Cel mai mic număr normalizat ω = 2
-126
≈1.175E-38
• Cel mai mic număr denormalizat este .00…1 * 2
-126
= 2
-149
≈1.4E-45
• Infinit rezultă din calcule precum: 1/0 = ∞, -1/0 = -∞
Se reprezintă cu exponentul deplasat 255, (nedeplasat 128), şi fracţia 0. … 0
• Cel mai mare număr Ω = 1.111…1*2
127
≈ 3.4E38
• NaN (“not a number”) apare când se încearcă o operaţie nelegală (ca sqrt dintr-un număr
negativ)
• Orice expresie care conţine un termen NaN este evaluată ca NaN
– Există cazuri în care apariţia unui NaN nu declanşează nici o întrerupere (excepţie) NaN
este “liniştit” (QNaN)
– Un NaN semnalizat (SNaN)declanşează o excepţie (de exemplu o valoare neiniţializată)
• sqrt(număr negativ)
• 0 * ∞ 0 / 0 ∞ / ∞
• x % 0 ∞ % x ∞ - ∞
Precizie dublă
S E(11b) E-1023 H f(52biti) Valoare
NaN 0 11…11 1024 1 ≠0
+Inf 0 11…11 1024 1 000 …000 (-1)
0
2
1024

Ω 0 11…10 1023 1 111 …111 (-1)
0
2
1023
(2-2
-52
)≈1.8E308
1+ε 0 01…01 0 1 000 …001 (-1)
0
2
0
(1+2
-52
) ε=2
-52
≈1.1E-16
1 0 01…01 0 1 000 …000 (-1)
0
2
0
=1
ω
0 00…01 -1022 1 000 …000 (-1)
0
2
-1022
=2
-1022
≈2.2E-308
MaxD 0 00…01 -1022 0 111 …111 (-1)
0
2
-1022
(1-2
-52
)=2
-1022
-2
-1074

MinD 0 0…001 -1022 0 000 …001 (-1)
0
2
-1022
2
-52
=2
-1074
≈5E-324
+0 0 0…000 -1023 1 000 …000 (-1)
0
2
-1023
=2
-1023

Condiţionarea problemelor.
• Condiţionarea unei probleme caracterizează sensibilitatea soluţiei în raport cu erorile din datele de
intrare.
• O problemă este bine condiţionată dacă erori mici în date produc de asemeni erori mici în rezultate.
• Condiţionarea este o proprietate a problemei, independentă de soluţia aleasă.
• O problemă rău condiţionată este „aproape nerezolvabilă” în practică (chiar dacă problema este
rezolvată exact, soluţia poate fi lipsită de semnificaţie).
• De exemplu, la evaluarea funcţiei y=f(x), o perturbare a datelor x+Δx produce o perturbare a
soluţiei y+Δy = f(x+Δx), în care:
• eroarea absolută ( ) x x ' f y Δ ⋅ ≈ Δ
12
• eroarea relativă
( )
( ) x
x
x
x f
x f
y
y
Δ
⋅ ⋅


Δ

• Problema este rău condiţionată dacă factorul Lipschitz
( )
( )
x
x f
x ' f
L ⋅ = este mare.
Stabilitatea numerică a algoritmilor
• Stabilitatea numerică caracterizează erorile numerice introduse de algoritm, în ipoteza unor date de
intrare exacte. Se referă la precizia algoritmului.
• Un algoritm este instabil dacă erorile de rotunjire produc erori mari în rezultate.
• Un algoritm numeric stabil nu introduce o sensibilitate suplimentară la perturbaţii.
• Un algoritm stabil dă rezultate apropiate de soluţia exactă pentru o problemă bine condiţionată.
• Un algoritm stabil nu poate rezolva o problemă rău condiţionată, dar un algoritm instabil poate da
soluţii slabe chiar pentru o problemă bine condiţionată.
Dacă f: X → Y este o problemă şi f

: X → Y este un algoritm, atunci acesta este numeric stabil
dacă pentru ∀x∈X, ∃x

∈X, astfel încât:
( ) ( ) ( )
m
O x f x f ε = −
− −
şi ( )
m
O x x ε = −


Algoritmul f

destinat rezolvării problemei f este numeric stabil, dacă este îndeplinită una din condiţiile:
1. f

(x)≅ f(x), adică soluţia calculată aproximează bine soluţia exactă∼
2. există x

apropiat de x astfel încât f

(x)=f(x

) – soluţia calculată de algoritm cu date de
intrare exacte este soluţia exactă cu date uşor perturbate.
Exemple de algoritmi instabili:
• inversarea de matrice folosind determinanţi
• rezolvarea sistemelor liniare prin factorizare LU fără pivotare
• utilizarea factorizării Cholesky în metoda celor mai mici pătrate (rezultate mult mai bune furnizează
factorizarea QR).
• calculul valorilor proprii ca rădăcini ale polinomului caracteristic

Bibliografie.
• V.Iorga, B.Jora “Metode Numerice”,Ed.Albastră,2005
• C.Popeea, B.Jora, B.Dumitrescu “Calcul Numeric – Algoritmi fundamentali”, Ed.ALL
• C.Moler “Numerical Computing with Matlab”
• V.Iorga, F.Pop “Metode Numerice –Îndrumar de laborator”


a.ch. – Octombrie 2008

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
n
R sau
n
C .
Norma unui vector V ∈ x este aplicaţie
+
→R V ||: . || , satisfăcând axiomele:
1. || x || ≥ 0, şi || x || = 0 ⇔ x = 0.
2. || || | | || || x x ⋅ = ⋅ λ λ , scalar = ∀λ ( C R ∈ ∈ λ λ sau ).
3. || || || || || || y x y x + ≤ +
Exemple de norme ale unui vector:
| | max || ||
, 1
i
n i
x
=

= x … norma-∞ (norma maximum)

=
=
n
i
i
x
1
1
| | || || x … norma-1
2 / 1
1
2
2
| | || || |
¹
|

\
|
=

=
n
i
i
x x … norma-2 (norma euclidiană)

Fie
n
A este mulţimea matricilor n n× cu elemente scalare (reale, complexe).
Norma unei matrici
n
A ∈ A este o aplicaţie
+
→R
n
A ||: . || , care satisface axiomele
1 – 3, şi în plus, următoarele:
4. || || || || || || B A B A ⋅ ≤ ⋅
5. || || || || || || x A x A ⋅ ≤ ⋅
În axiomele 4-5,
n
A ∈ B , iar x este un vector. Normele care satisfac 5 se zic
compatibile cu norma vectorului.

a.ch. – Octombrie 2008

2
Observaţie
Definiţia normei unei matrici, indusă de norma vectorului, este:
|| ||
|| ||
sup || ||
0 x
x A
A

=
≠ x

Pentru detalii privind norma unui vector şi norma unei matrici, vezi Capitolul 4-I ■
Exemple de norme ale unei matrici:

=

j
ij
i
a | | max || || A - norma liniilor

=
i
ij
j
a | | max || ||
1
A - norma coloanelor
[ ]
2 / 1
2
) ( || || A A A ⋅ =

ρ - norma euclidiană,
în care:
T
A A =

( A – conjugat transpus); | | max
j
j
λ ρ = , unde n j
j
, 1 , = λ sunt
valorile proprii ale matricii A. ρ se zice rază spectrală.


1 Definiţii
Fie sistemul de ecuaţii neliniare
0 ) , ... , , (
0 ) , ... , , (
2 1
2 1 1
=
=
n n
n
x x x f
x x x f
K K
Acesta se scrie vectorial
0 x f = ) ( (1)
unde
n
R I f → : ,
n
R I ⊂ . Explicit:

=
n
x
x
x
.
.
2
1
x ,

=
0
.
.
0
0
0 ,

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

a.ch. – Octombrie 2008

3
Pentru rezolvarea prin metoda punctului fix, sistemul (1) se va considera pus sub
forma:
) (x g x = (2)
în care
n
R I g → : ,
n
R I ⊂ ,
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:
| | max || ||
i
i
x =

x ;

=

j
ij
i
a | | max || || A .

2 Metoda punctului fix
Ecuaţii de forma ) (x g x = .
Metoda
Metoda constă în construirea şirului:
T
n
x x x ] ... [
) 0 ( ) 0 (
2
) 0 (
1
) 0 (
= x - aproximaţia iniţială, dată;
0 ), (
) ( ) 1 (
≥ =
+
n
n n
x g x
A nu se confunda indicele superior (n) (indicele iteratei) cu ordinul n al sistemului
(indice inferior al coordonatei
) (k
n
x ).
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 I y x ∈ ∀ ,
|| || || ) ( ) ( || y x y g x g − ⋅ ≤ − M , M < 1.
(2) Aproximaţia iniţială I x ∈
) 0 (
este suficient de apropiată de rădăcina α αα α.
Observaţie
Dacă C C g → : şi
n
R C ⊂ este un compact (mulțime mărginită și închisă), atunci
procesul converge pentru C x ∈ ∀
) 0 (
.

a.ch. – Octombrie 2008

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:
1
) (
max < ≤



λ
j j
i
i
x
g x
, I x ∈ ∀ .
Atunci, I x ∈ ∀
) 0 (
:
(a) Iteratele I x ∈
) (n
.
(b) Şirul α x →
) (n
.
(c) α αα α este unica rădăcină în I ■

Intervalul I din Condiția (2).


1
x
2
x
ξ ξξ ξ
y
α αα α
x
ρ
ρ

a.ch. – Octombrie 2008

5
Sumarul demonstraţiei:
Fie x, y ∈ I: ρ ≤ −

|| || α x , ρ ≤ −

|| || α y . Din desvoltarea Taylor, se arată că avem:
∞ ∞
− ⋅ ≤ − || || || ) ( ) ( || y x y g x g λ
Rezultă:
ρ ρ λ λ < ⋅ ≤ − ⋅ ≤ − = −
∞ ∞ ∞
+
|| || || ) ( ) ( || || ||
) ( ) ( ) 1 (
α x α g x g α x
n n n

şi prin inducţie:
ρ λ ⋅ ≤ −

n n
|| ||
) (
α x
Cum λ < 1, rezultă 0 →
n
λ , 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:
x
x
x G













=



=
n
n n n
n
j
i
x
g
x
g
x
g
x
g
x
g
x
g
x
g
...
. . . . . . . . . . . . . . . . . . . . .
...
) (
2 1
1
2
1
1
1

Cu definiţia normei

=

j
ij
i
a | | max || || A , condiţia 3 se scrie:
3'. 1 || ) ( || < ≤

λ x G , I x ∈ ∀
G(x) joacă rolul lui ) (x g′ pentru o funcţie scalară.

2) Convergenţa liniară:
În condiţiile din Teorema 1, cu λ > 0, convergenţa este liniară, conform relaţiei:
∞ ∞
+
− ⋅ ≤ − || || || ||
) ( ) 1 (
α x α x
n n
λ .

a.ch. – Octombrie 2008

6

3) Convergenţa de ordinul 2 (pătratică)
Să presupunem că în rădăcina α αα α, avem:
0 ) ( =


⇔ =
α
O α G
j
i
x
g
; i, j = 1, 2, …, n
unde O este matricea nulă, şi că
j i
x g ∂ ∂ / 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ă:
1
2
, ,
max M
x x
g
k j
i
k j i

∂ ∂

,
atunci din formula Taylor rezultă:
2
|| || || ) ( ) ( ||
∞ ∞
− ⋅ ≤ − α x α g x g M ,
unde
1
2
2
1
M n M ⋅ ⋅ = ,
Cu
) (n
x x = ,
) 1 ( ) (
) (
+
=
n n
x x g , rezultă:
2 ) ( ) 1 (
|| || || ||
∞ ∞
+
− ⋅ ≤ − α x α x
n n
M
care arată că convergenţa este de ordinul 2

2.2 Procedură explicită de punct fix
Considerăm sistemul dat sub forma 0 x f = ) ( şi vrem să-l transformăm într-un sistem
echivalent de forma ) (x g x = .
Fie )] ( [ ) ( x x A
ij
a = o matrice n n × , nesingulară pe o vecinătate a lui α αα α. Definim:
) ( ) ( ) ( x f x A x x g ⋅ − =
Este evident că, A fiind nesingulară, avem:

a.ch. – Octombrie 2008

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

Exemplu – 1: ‘Iterare cu matrice constantă’
A(x) = A , unde A = matrice constantă (a
ij
= constant) şi nesingulară.
) ( ) ( x f A x x g ⋅ − =
Se verifică imediat că, jacobianul lui g este dat de:
) ( ) ( x F A I x G ⋅ − = ,
unde I este matricea unitate, iar F(x) este jacobianul lui f,
x
x F



=
k
j
x
f
) ( .
Explicit:
x
x
x F













=



=
n
n n n
n
j
i
x
f
x
f
x
f
x
f
x
f
x
f
x
f
...
. . . . . . . . . . . . . . . . . . . . .
...
) (
2 1
1
2
1
1
1

Conform Teoremei 2, iteraţia va converge dacă elementele matricii G(x) sunt
suficient de mici, şi
) 0 (
x este suficient de apropiat de α αα α.
Pentru o convergenţă mai rapidă, să cerem – v. Observaţia 3:
O α G = ) ( .
Rezultă I α F A = ⋅ ) ( , sau
[ ]
1
) (

= α F A . (3)
Cum α αα α nu este cunoscut, luăm de exemplu,
) 0 (
x α ≈ , rezultă:
[ ]
1
) 0 (
) (

= x F A . (4)
Iteraţia va fi definită de

a.ch. – Octombrie 2008

8
) (
) ( ) ( ) 1 ( n n n
x f A x x ⋅ − =
+
, (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 ) (
) 0 (
x F , este următorul. Punem:
) ( ) 1 ( ) 1 ( n n n
x x x − =
+ +
δ ,
şi rezultă:
¹
´
¦

+ =
− =
+ +
+
0
) ( (
) 1 ( ) ( ) 1 (
) ( ) 1 ( ) 0 (
n
n n n
n n
x x x
x f x x F
δ
δ
(6)
Procedeul revine la determinarea corecţiei
) 1 ( + n
x δ prin rezolvarea sistemului liniar din
prima ecuație (6). Iteraţia se opreşte prin testele
eps
n

+
|| ||
) 1 (
x δ , (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 [ ]
1
) (

= α F A , actualizăm matricea A din (4,5), la
fiecare pas. Iteraţia (5) devine:
[ ] ) ( ) (
) (
1
) ( ) ( ) 1 ( n n n n
x f x F x x ⋅ − =

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


a.ch. – Octombrie 2008

9
3 Metoda Newton
Ecuaţii de forma 0 x f = ) ( .
Metoda
Considerăm ecuaţia echivalentă ) (x g x = , unde ) ( ) ( ) ( x f x A x x g ⋅ − = .
Căutăm ) (x A , astfel ca metoda punctului fix pentru g să aibă ordinul doi. Condiţia
este – v. mai sus, O α G = ) ( , sau
0 =


=α x
k
i
x
g
, i, k = 1, 2, .., n .
Se verifică faptul că aceasta conduce la condiţia [ ]
1
) ( ) (

= α F α A .
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 α αα α:
0 )) ( det( ≠ α F .
Determinantul fiind funcţie continuă de elementele jacobianului, 0 > ∃ρ astfel că
pentru ρ ≤ − || || α x să avem
0 )) ( det( ≠ x F .
Alegem atunci
[ ]
1
) ( ) (

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

= α F α A . Rezultă:
[ ] ) ( ) ( ) (
1
x f x F x x g ⋅ − =


Metoda Newton este atunci:
[ ] ) ( ) (
) (
1
) ( ) ( ) 1 ( n n n n
x f x F x x ⋅ − =

+
(8)
Conform Teoremei 1 şi Observaţiei 3, rezultă următoarea

a.ch. – Octombrie 2008

10
Propoziţie
Dacă f are derivate parţiale de ordinul 2, mărginite pe ρ ≤ − || || α x , şi
) 0 (
x 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 0 )) ( det( ≠ α F , se poate înlocui cu altele – v . Cap.
3-IV, 3.1, Teorema 3. Astfel, metoda se poate aplica şi în cazul 0 )) ( det( = α F . Î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 ) (
) (n
x F ,
şi anume:
¹
´
¦

+ =
− = ⋅
+ +
+
0
) ( ) (
) 1 ( ) ( ) 1 (
) ( ) 1 ( ) (
n
n n n
n n n
x x x
x f x x F
δ
δ
(9)
Corecţia
) 1 ( + n
x δ se calculează prin rezolvarea sistemului liniar din prima ecuație (9).
Iteraţia se opreşte prin testul
eps
n

+
|| ||
) 1 (
x δ , (10a)
unde toleranţa eps este aleasă dinainte. Obişnuit, se adaugă şi testul:
Număr de iteraţii ≤ lnit, (10b)
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 ) (
) (k
x F , la pasul k, cere evaluarea a n
2
funcţii
k i
x f ∂ ∂ / . Chiar
dacă acestea se pot calcula analitic, pentru n mare efortul de calcul este mare. Alteori,
) (x
i
f sunt date numeric. În astfel de cazuri, derivatele se calculează numeric, prin
diferenţe divizate:

a.ch. – Octombrie 2008

11

) (
) (
) , ... , , ... , ( ) , ... , , ... , (
1 1
k
k
h
x x x f x h x x f
x
f
n j i n j i
j
i
x
x
− +
=


,
unde | | h este ‘mic’. Creşterea h poate constantă, sau poate fi variată de la un pas la
altul (luând
) (k
h h = ). 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):
|| ) ( || | |
) (k
C h x f ≤ ,
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
) (n
x (analitic, sau numeric).
Dacă jacobianul ) (
) (n
x F 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 ) (
) (k
x F de
la pasul k, cu o aproximaţie a acestuia, fie aceasta
) (k
A , după una din următoarele
scheme:
- Jacobianul nu se actualizează după fiecare pas, ci după un număr m de paşi:
) (
) ( ) ( k l
x F A = - pentru ) 1 ( , , − + = m k k l K .
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
) 1 ( + k
A - v. Ralston & Rabinowitz (1978).
Cu modificările precedente, formula de iterare (8) devine:
) ( ] [
) ( 1 ) ( ) ( ) 1 ( k k k k
x f A x x ⋅ − =
− +
(9)

a.ch. – Octombrie 2008

12

Nota 1: Metoda Newton prin liniarizarea ecuaţiilor
Fie ecuaţia neliniară 0 x f = ) ( , sau explicit, sistemul
n i f
i
, , 2 , 1 , 0 ) ( K = = x
Dacă
) 0 (
x este în vecinătatea rădăcinii, considerăm desvoltarea Taylor a lui ) (x
i
f în
jurul lui
) 0 (
x :

=
+ −


+ =
n
j
j j
j
i
i i
x x
x
f
f f
1
) 0 (
) 0 (
) 0 (
) ( ) ( ) ( K
x
x x
unde termenii nescrişi sunt de ordin mai mare sau egal cu doi în ) (
) 0 (
j j
x x − .
Presupunem că aceştia sunt neglijabili în raport cu termenii de orinul întâi, şi avem

=



+ ≈
n
j
j j
j
i
i i
x x
x
f
f f
1
) 0 (
) 0 (
) 0 (
) ( ) ( ) (
x
x x
Notăm
j
i i
j
x
f
F


= elementele jacobianului F al lui f, adică

=

∂ ∂ ∂ ∂
∂ ∂ ∂ ∂
=
n
n
n
n
n n n
n
F F
F F
x f x f
x f x f
L
L L L
L
L
L L L
L
1
1 1
1
1
1 1 1
/ /
/ /
) (x F
Desvoltarea devine

=
− + ≈
n
j
j j
i
j i i
x x F f f
1
) 0 ( ) 0 ( ) 0 (
) )( ( ) ( ) ( x x x ,
Sau, matriceal,




⋅ + =
0
0
2 2
0
1 1
2 1
) 0 (
) 0 (
] [ ) ( ) (
n n
i
n
i i
i i
x x
x x
x x
F F F f f
M
K
x
x x

a.ch. – Octombrie 2008

13
Ecuaţiile scrise pentru n i , , 2 , 1 K = , dau:
) )( ( ) ( ) (
) 0 ( ) 0 ( ) 0 (
x x x F x f x f − + ≈
Rezolvăm aproximativ sistemul 0 x f = ) ( , înlocuind ) (x f prin expresia sa liniarizată
(în membrul doi al relaţiei precedente; punem semnul = în loc de ≈).
Rezultă:
) ( ) (
) 0 ( ) 0 (
x f x x F − = δ , (11)
unde s-a pus
) 0 (
x x x − = δ .
Relaţia (11) este formula schemei de iterare în metoda Newton.
Soluţia x x x δ + =
) 0 ( ) 1 (
este o aproximaţie a rădăcinii (este soluţia sistemului
liniarizat).
Presupunând că aproximaţia
) 1 (
x este mai bună decât
) 0 (
x , atunci metoda constă în
aplicarea repetată a formulei (10), înlocuind, la pasul următor,
) 0 (
x cu
) 1 (
x .
Astfel, în general, metoda Newton este:
K , 1 , 0 ), ( ) (
) ( ) 1 ( ) 1 (
= − =
+ +
k
k k k
x f x x F δ
unde
) ( ) 1 ( ) 1 ( k k k
x x x − =
+ +
δ
Problema constă acum, în a proba că şirul α x →
) (k
.

Nota 2: Interpretare geometrică pentru cazul n = 2
Să punem ) , (
1
y x f z = , ) , (
2
y x f z = . Acestea sunt ecuaţiile a două suprafeţe, fie
acestea
1
S şi
2
S .
Ecuaţia 0 ) , (
1
= y x f , revine la 0 = z , adică la intersecţia suprafeţei
1
S cu planul x-y:
aceasta este o curbă
1
C . Soluţia sistemului 0 ) , ( , 0 ) , (
2 1
= = y x f y x f , revine la
intersecţia curbelor
1
C şi
2
C .

a.ch. – Octombrie 2008

14
Funcţia liniarizată este:
) (
) , (
) (
) , (
) , (
) 0 (
) 0 ( ) 0 (
) 0 (
) 0 ( ) 0 (
) 0 ( ) 0 (
j j
i
j j
i
i
y y
y
y x f
x x
x
y x f
y x f z −


+ −


+ ≈
Aceasta reprezintă ecuaţia planului tangent în ) , (
) 0 ( ) 0 (
y x , la suprafaţa
i
S .
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ă 0 ) ( = x f , unde graficul se
înlocuieşte cu tangenta la grafic).
Intersecţiile planelor tangente cu planul x-y vor fi două drepte – care aproximează
curbele
1
C şi
2
C . Intersecţia dreptelor este aproximaţia rădăcinii.


Exemplu
Fie sistemul de două ecuaţii neliniare:
0 5 ) , (
2 2
1
= − + ≡ y x y x f , 0 1 ) , (
2
= − − ≡
x
e y y x f .
Aproximaţiile iniţiale se iau:
) 1 , 2 (
) 0 (
− = x , şi ) 2 , 5 . 0 (
) 0 (
= x .
De exemplu, acestea se pot găsi analizând intersecţia graficelor curbelor
5
2 2
= + y x , 1 + =
x
e y .


a.ch. – Octombrie 2008

15


Matricea jacobian este:


⋅ ⋅
=
1
2 2
) , (
x
e
y x
y x F .
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ă ) (
) 0 (
x F A = , cu actualizare
după 3 paşi:


a.ch. – Octombrie 2008

16
) 0 (
x
Nr. iteraţii x y f
1
(x, y) f
2
(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
i
f 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
) 0 (
x = (0.2, 2.2), se găseşte aceeaşi soluţie în 8 iteraţii.

2) Metoda Newton:
) 0 (
x
Nr. iteraţii x y f
1
(x, y) f
2
(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:
¦
¹
¦
´
¦
= − −
= + − −
= −
7
4
2
2 2
2
z e e
y x xyz
z xy
y x

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