Sunteți pe pagina 1din 71

METODE NUMERICE - NOTE DE CURS

(pentru studenții specializărilor inginerești)

CUPRINS

CAPITOLUL 1 - Reprezentarea algoritmilor în pseudo-cod ……………. 7

CAPITOLUL 2 - Rezolvarea ecuaţiilor algebrice prin metoda generală … 17

CAPITOLUL 3 - Rezolvarea ecuaţiilor algebrice prin metoda bisecţiei … 23

CAPITOLUL 4 - Rezolvarea ecuaţiilor algebrice prin metoda


Newton – Raphson ……….. 27
CAPITOLUL 5 - Rezolvarea ecuaţiilor algebrice prin metoda
punctului fix ……………… 33
CAPITOLUL 6 - Rezolvarea sistemelor de ecuaţii liniare prin
metoda Gauss …………….. 37
CAPITOLUL 7 - Rezolvarea sistemelor de ecuaţii liniare prin
metoda Jacobi …………….. 43
CAPITOLUL 8 - Rezolvarea sistemelor de ecuaţii liniare prin
metoda Gauss - Seidel ……. 49
CAPITOLUL 9 - Polinomul de interpolare a lui Lagrange ……………… 53

CAPITOLUL 10 - Polinomul de interpolare a lui Newton ………………. 59

CAPITOLUL 11 - Aproximarea cu abatere medie pătratică minimă ……. 67

CAPITOLUL 12 - Derivarea cu ajutorul polinomului de interpolare


Lagrange …………………. 71
CAPITOLUL 13 - Metode numerice pentru calculul integralei definite … 75
CAPITOLUL 1 – Reprezentarea algoritmilor în pseudocod

Capitolul 1

REPREZENTAREA ALGORITMILOR
ÎN PSEUDOCOD.

1. Caracterizarea lucrării

Rezolvarea problemelor ştiinţifice şi tehnice cu ajutorul calculatorului


presupune, mai întâi, găsirea unui algoritm specific şi, apoi, implementarea
acestuia pe un sistem de calcul.
În afara algoritmului de rezolvare propriu-zis, un rol important în
găsirea eficientă a soluţiei îl joacă alegerea corectă a structurilor de date
utilizate. În esenţă, programul de calcul se bazează pe algoritm (descrierea
operaţiilor ce vor fi efectuate pentru găsirea soluţiei) şi pe structura de date
(modul în care se reprezintă datele de intrare, variabilele intermediare şi datele
de ieşire).
Pentru descrierea structurilor de date şi a algoritmilor se poate utiliza
un limbaj de programare (BASIC, PASCAL, FORTRAN, C++ etc.) sau un
pseudo-limbaj cu o sintaxă mai permisivă (mai puţin rigidă). Pentru a evidenţia
invarianţa algoritmilor la limbajul utilizat, de regulă se recurge la a doua soluţie.
Scopul acestei lucrări este de a familiariza utilizatorii cu gândirea
algoritmică structurată (prin utilizarea pseudo-codului), de a evidenţia metodele
de implementare a pseudo-codului în diferitele limbaje de programare şi, nu în
ultimul rând, de a evidenţia importanţa tipurilor abstracte de date, cu caracter
matematic (vectori, matrice, numere complexe, etc.).

7
METODE NUMERICE

2. Algoritmi de calcul. Stabilitatea şi condiţionarea algoritmilor.

Rezolvarea unei probleme practice, pornind de la un anumit set de


date iniţiale, presupune utilizarea unui algoritm de calcul, pentru obţinerea
datelor de ieşire căutate, potrivit schemei

Date de intrare Algoritm de calcul Date de ieşire

Algoritmul de calcul reprezintă un sistem de reguli care transformă


datele de intrare în date de ieşire, cu ajutorul unor operaţii succesive, unic
determinate. Un algoritm de calcul trebuie să îndeplinească următoarele cerinţe:

¾ Generalitate; se înţelege prin aceasta că nu este suficient ca un algoritm


să permită rezolvarea doar a unei probleme oarecare, ci trebuie să permită
rezolvarea tuturor problemelor din categoria respectivă.
¾ Finitudine; numărul de transformări intermediare (iteraţii) aplicate
datelor de intrare pentru a obţine datele de ieşire trebuie să fie finit.
¾ Unicitate; transformările intermediare trebuie să fie unic determinate (să
conducă de fiecare dată la obţinerea aceloraşi rezultate).

Un algoritm de calcul este stabil dacă aplicat unei probleme cu date


iniţiale „uşor perturbate” conduce la o soluţie apropiată, într-un anume sens, de
soluţia problemei cu datele iniţiale.
O altă noţiune, înrudită cu cea de stabilitate a unui algoritm, este cea
de condiţionare a acestuia; un algoritm este bine condiţionat dacă mici erori
relative în datele iniţiale se transmit în mici erori relative ale datelor de ieşire.
Condiţionarea unui algoritm se poate ilustra simplu, spre
exemplificare, pentru calculul unei funcţii z = f(x, y) într-un punct (x, y).
Aplicând formula lui Taylor se poate scrie
Δf = f (x + Δx , y + Δy ) − f (x , y ) = f x ⋅ Δx + f y ⋅ Δy + ... (1)

În cazul în care Δx , Δy sunt suficient de mici, termenii de rang mai


mare sau egal cu doi din (1.19) se pot neglija; rezultă

Δf ≅ df = f x ⋅ Δx + f y ⋅ Δy ≤ f x ⋅ Δx + f y ⋅ Δy . (2)

Δf reprezintă, în această situaţie, eroarea absolută care afectează


rezultatele ca efect al erorilor Δx şi Δy apărute în datele iniţiale; mai
semnificativă este, însă, eroarea relativă a rezultatelor, care, pentru f ≠ 0 este

8
CAPITOLUL 1 – Reprezentarea algoritmilor în pseudocod

Δf fx fy
≤ ⋅ Δx + ⋅ Δy , (3)
f f f

relaţie care, pentru x, y ≠ 0, se poate rescrie ca

Δf x ⋅ fx Δx y ⋅ fy Δy
≤ ⋅ + ⋅ . (4)
f f x f y
Kx Ky
Coeficienţii Kx şi Ky de mai sus sunt denumiţi indici de condiţionare
a problemei; se poate observa că algoritmul poate să nu fie bine condiţionat, în
cazul în care aceşti indici au valori mari, chiar atunci când Δx şi Δy au valori
relativ mici.

3. Descrierea pseudo-limbajului

Pseudo-codul este o metodă simplă şi eficientă pentru reprezentarea


unui algoritm şi a structurilor de date asociate. Un algoritm redactat în pseudo-
cod este, de fapt, un text alcătuit din linii (rânduri), fiecare dintre acestea
conţinând, de regulă, o declaraţie (al cărui scop principal constă în descrierea
datelor) sau o instrucţiune (care descrie o operaţie care urmează a fi efectuată).
Fiecare linie dintr-un text în pseudo-cod este alcătuită din cuvinte şi
simboluri (caractere speciale nealfanumerice). Anumite cuvinte, cu o
semnificaţie bine determinată, independentă de aplicaţie, se numesc „cuvinte
cheie” şi, pentru a fi distinse faţă de celelalte cuvinte (specifice aplicaţiei), sunt,
de obicei, subliniate (îngroşate).
Orice linie poate conţine precizări suplimentare, numite comentarii,
care ajută la o mai bună înţelegere a algoritmului redactat în pseudo-cod, fără a
face parte din descrierea propriu-zisă a acestuia sau din structura de date.
Comentariile sunt amplasate la sfârşitul liniilor la care se referă şi încep cu
caracterul „;”.

3.1. Structuri de date


Declaraţiile se referă la datele cu care se operează şi pot fi de tip
simplu (fundamental) sau structurate (agregate).
Se consideră următoarele tipuri de date fundamentale:
¾ logic - date cu două valori (0 = fals, 1 = adevărat);
¾ întreg - date care pot lua doar valori întregi;
¾ real - date ale căror valori aproximează numere reale;
¾ caracter - literă, cifră sau semn special (aritmetic sau de punctuaţie).
9
METODE NUMERICE

Exemple de declaraţii ale unor variabile de tip fundamental:


logic l1, l2, l3
întreg i, j, s
real a, m, x, j
caracter c
După cum se poate constata, o declaraţie conţine cuvântul-cheie care
specifică tipul, urmat de lista numelor variabilelor de tipul respectiv, separate
între ele prin virgule. Numele variabilelor pot să fie alcătuite din litere şi cifre,
primul caracter fiind, obligatoriu, o literă şi au semnificaţie limitată doar la
aplicaţia respectivă. Se recomandă ca, în limita posibilităţilor, numele
variabilelor să fie alese cât mai sugestiv iar, pentru eliminarea ambiguităţilor,
fiecare mărime cu care se operează într-o problemă să aibă propria declaraţie,
eventual însoţită de un comentariu lămuritor:
real m ; masa corpului
real v ; viteza de aşchiere
Pentru rezolvarea unor probleme mai complexe, tipurile fundamentale
de date nu sunt suficiente, recurgându-se la tipuri de date structurate, apelate
prin cuvintele-cheie:
¾ tablou - structură de date care conţine un număr cunoscut de
elemente de acelaşi tip;
¾ înregistrare - structură de date ce poate conţine elemente de tipuri
diferite.
Exemple de declaraţii pentru tablouri:
tablou real V(3) ; V este un vector cu trei elemente reale
tablou întreg A(5, 5); A este o matrice 5 x 5 cu elemente
întregi
Cu toate că tabloul are o singură denumire pentru întreaga structură de
date, elementele acestuia se identifică prin index (număr de ordine), ca de
exemplu V(2); A(1, 2); A(5, 4) etc.

3.2. Structuri de control


Instrucţiunile unui algoritm redactat în pseudo-cod descriu operaţiile
pe care trebuie să le efectueze sistemul de calcul cu datele anterior descrise prin
declaraţii.
Instrucţiunile sunt de două tipuri: simple şi structurate; cele simple
sunt, la rândul lor, de trei feluri:
9 de atribuire;
10
CAPITOLUL 1 – Reprezentarea algoritmilor în pseudocod

9 de intrare;
9 de ieşire.
Instrucţiunea de atribuire are sintaxa:
variabilă = expresie
în care „variabilă” este numele unei variabile a cărei valoare urmează să fie
modificată în urma instrucţiunii iar „expresie” este o construcţie sintactică
alcătuită din constante, variabile, operatori şi paranteze, după regulile din
algebră. Efectul execuţiei instrucţiunii de atribuire constă în evaluarea expresiei
şi modificarea, în concordanţă, a variabilei al cărui nume se află în stânga
semnului egal.
Se consideră că operanzii care intervin în expresii au valori
corespunzătoare unuia dintre tipurile fundamentale. Dacă operanzii sunt de tip
logic, atunci se admit operatori logici precum sau, şi, nu, ca în exemplele:
l1 = nu(l2)
l3 = l1 sau l2
l4 = l1 şi l3
Dacă operanzii sunt numerici (real sau întreg), se admit operatori
aritmetici: +, -, *, / sau de relaţie ( =, ≠, <, >, ≤, ≥ ), ca în exemplele:
a⋅x +b
y=
2⋅x −b
l1 = (x ≤ b )si(x > a )
În primul caz rezultatul este de tip numeric iar, în al doilea, de tip
logic.
Instrucţiunile de intrare – ieşire au sintaxa:
citeşte variabilă (listă variabile)
scrie variabilă (listă variabile)
Prima instrucţiune are ca efect transferul pe canalul de intrare a unei
valori (de exemplu introducerea de la tastatură), care modifică valoarea
variabilei specificate, iar a doua are ca urmare transferul valorii variabilei pe
canalul de ieşire (de exemplu, afişarea pe ecran sau tipărirea la imprimantă).
De exemplu, pseudo-codul:
real x, y, s, p
citeşte x, y
s=x+y
p=x*y
scrie s, p
stop
11
METODE NUMERICE

reprezintă algoritmul unui program care calculează suma şi produsul a două


numere reale, ale căror valori se citesc de la tastatură.
Programele se încheie printr-o altă instrucţiune simplă, cu sintaxa
stop
care are ca efect terminarea execuţiei programului respectiv.
Pentru realizarea unor operaţii mai complicate se utilizează, în afara
instrucţiunilor simple, instrucţiunile structurate, care sunt:
9 secvenţa;
9 decizia (cu sau fără alternativă);
9 ciclul (cu test iniţial, cu test final sau cu contor);
9 rutina (procedură sau funcţie).
Secvenţa sau blocul de instrucţiuni reprezintă un şir de instrucţiuni
simple sau structurate (redactate câte una pe linie, în linii succesive), care se
execută una după alta, în ordinea în care au fost scrise; programul de mai sus
este un exemplu de secvenţă.
Decizia este o instrucţiune care permite controlul execuţiei şi are una
dintre următoarele variante sintactice:
¾ decizia simplă:
dacă condiţie atunci
secvenţă
¾ decizia cu alternativă:
dacă condiţie atunci
secvenţa 1
altfel
secvenţa 2
în care „condiţie” este o expresie de tip logic, iar „secvenţa” este o secvenţă de
una sau mai multe instrucţiuni. Pentru a uşura înţelegerea acestei instrucţiuni, se
constată că secvenţele sunt redactate indentat – decalate faţă de cuvântul-cheie
dacă. În urma execuţiei acestei instrucţiuni, se evaluează expresia logică
„condiţie”; dacă valoarea rezultată este adevărată, atunci se execută „secvenţa”
(respectiv „secvenţa 1”), altfel se continuă cu instrucţiunea următoare (respectiv
se execută „secvenţa 2”).
Exemple de instrucţiuni de decizie:
; calculul funcţiei modul, y = x
dacă x ≥ 0 atunci
y=x
12
CAPITOLUL 1 – Reprezentarea algoritmilor în pseudocod

altfel
y = -x

⎧0, x < −1

; calculul funcţiei y = ⎨2x, − 1 ≤ x ≤ 1
⎪ 2
⎩x , x > 1
dacă x<-1 atunci
y=0
altfel dacă (x ≥ -1) şi (x ≤ 1) atunci
y = 2x
altfel
y = x2

Ciclul reprezintă o instrucţiune care permite repetarea unei secvenţe;


se pot utiliza trei tipuri de cicluri: cu test iniţial, cu test final şi cu contor.
Ciclul cu test iniţial are sintaxa:
cât timp condiţie repetă
secvenţă
Efectul este evaluarea expresiei logice „condiţie”; dacă rezultatul este
afirmativ (adevărat), atunci se execută secvenţa şi ciclul se reia până când
„condiţia” devine falsă, după care se sare peste „secvenţă” şi se continuă cu
următoarea instrucţiune. Se constată că există riscul repetării la infinit a ciclului
dacă valoarea logică a condiţiei rămâne mereu adevărată; este deci
responsabilitatea programatorului să asigure caracterul finit al ciclului.
În exemplul următor:
k=1
s=0
cât timp ak > 0 repetă
s = s + ak
k=k+1
scrie s
poate fi utilizat pentru a aduna elementele unui tablou (de tip şir) până la
întâlnirea primului element negativ.
Ciclul cu test final are sintaxa:
repetă
secvenţa
până când condiţie
„secvenţa” fiind executată repetat până când „condiţia” devine adevărată.
13
METODE NUMERICE

Deosebirea faţă de ciclul cu test iniţial constă în aceea că, în acest caz,
corpul ciclului este executat cel puţin o dată. În exemplul următor, se calculează
cu o eroare maximă impusă, suma seriei cu termenul general (-1)k/k!.
t=1
k=0
s=0
repetă
t = -t / k
s=s+t
k=k+1
până când t < eps

Ciclul cu contor permite repetarea unei secvenţe de un număr


determinat de ori. Sintaxa ciclului cu contor este:
pentru contor = val_ini, val_fin, pas repetă
secvenţă
în care „contor” este numele unei variabile de tip întreg, „val_ini”, „val_fin” şi
„pas” sunt constante sau expresii de tip întreg. Secvenţa de instrucţiuni din
corpul ciclului este repetată pentru valori succesive ale contorului, pornind de la
valoarea iniţială „val_ini”, incrementat cu pasul „pas”, până când acesta
depăşeşte valoarea finală „val_fin”. Dacă în instrucţiune lipseşte valoarea „pas”,
se presupune că aceasta are valoarea implicită 1.
În exemplul următor:
s=0
pentru k = 1, n
s = s + ak
scrie s
se calculează suma primelor n elemente ale unui tablou.

Se întâlnesc, frecvent, situaţii în care o anumită secvenţă de


instrucţiuni trebuie executată de mai multe ori, în momente diferite ale execuţiei
unui program. Pentru a se evita rescrierea de mai multe ori a acestei secvenţe se
recurge la conceptul de rutină.
Rutina reprezintă o secvenţă de declaraţii şi instrucţiuni căreia i se
atribuie un nume. Dacă într-un program se face apel la o rutină, controlul
execuţiei se transferă rutinei, iar după încheierea acesteia se revine în programul
apelant.
În consecinţă, o rutină presupune, pe de o parte, definiţia acesteia (prin
specificarea declaraţiilor şi instrucţiunilor care o alcătuiesc) iar, pe de altă parte,
apelarea ei. Utilizarea rutinelor este justificată chiar şi în cazul în care ele sunt
apelate o singură dată într-un program, deoarece ele permit structurarea
14
CAPITOLUL 1 – Reprezentarea algoritmilor în pseudocod

modulară a unui algoritm. Pentru a realiza acest deziderat, o rutină trebuie să


aibă o anumită consistenţă, să îndeplinească o funcţie bine definită, care să
permită reutilizarea ei şi în cadrul altor programe.
După modul de apelare, rutinele se împart în două categorii: proceduri
şi funcţii.
Procedura este definită printr-o construcţie sintactică de forma:
procedură nume(listă de parametri formali)
secvenţă
retur
în care „nume” este numele procedurii, alcătuit din caractere alfanumerice, iar
lista parametrilor formali conţine nume de parametri, separate prin virgule. O
parte din parametrii formali sunt parametri de intrare (ale căror valori provin din
programul apelant şi se transferă procedurii) iar alţii sunt parametri de ieşire (ale
căror valori se determină în procedură şi se transferă, apoi, programului apelant).
Apelarea unei proceduri astfel definite se face prin invocarea numelui ei, urmat
de lista parametrilor actuali:
nume(listă de parametri actuali)
Parametrii actuali trebuie să concorde, ca număr, tip şi ordine, cu cei
formali (dar nu neapărat şi ca nume). În exemplul următor,
citeşte a, b
sumprod(a, b, s, p)
scrie s, p
sumprod(s, p, s1, p1)
scrie s1, p1
se face apel la procedura definită în continuare:
procedură sumprod(x, y, sumă, prod)
real x, y, sumă, prod
sumă = x + y
prod = x * y
retur
care are pe x şi y ca parametri formali de intrare şi sumă, prod – parametri
formali de ieşire.
În urma primului apel al acestei proceduri (cu parametri actuali de
intrare a şi b) se calculează şi afişează s = a + b, p = a * b iar în urma celui de-al
doilea apel se calculează şi se afişează s1 = s + p + a * b, şi p1 = (a + b) * a * b.
În cazul unei proceduri, numărul parametrilor de intrare sau de ieşire
este arbitrar (poate fi, inclusiv, nul).
Funcţia este o variantă de rutină la care toţi parametrii formali sunt
parametri de intrare, dar rutina întoarce o valoare. Definiţia funcţiei se realizează
prin construcţia sintactică
15
METODE NUMERICE

funcţia nume(listă de parametri formali)


secvenţă
întoarce valoare
Funcţia poate fi apelată ca operand într-o expresie, în particular în
atribuirea
valoare = nume(listă de parametri actuali)
Funcţia se aseamănă cu o procedură cu un singur parametru de ieşire,
dar, faţă de aceasta, are o flexibilitate suplimentară în apelare. Exemplul următor
real a, b
citeşte a, b
x = min(a, b) / max(a, b)
scrie a, b
recurge la utilizarea a două funcţii, min şi max, definite prin
funcţia max(x, y) ; valoarea maximă
real x, y, m
dacă x > y atunci
m=x
altfel
m=y
întoarce m
funcţia min(x, y) ; valoarea minimă
real x, y, m
dacă x > y atunci
m=y
altfel
m=x
întoarce m
Funcţiile elementare (modul, radical, putere, exponenţială, logaritm,
sinus, cosinus etc.) se consideră predefinite în pseudo-cod, deoarece majoritatea
limbajelor de programare de nivel înalt le au implementate.

4. Chestiuni de verificare
4.1. Să se scrie o procedură care să calculeze produsul scalar a doi vectori.
4.2. Să se scrie o procedură de înmulţire a matricelor dreptunghiulare.
4.3. Să se scrie algoritmul unui program care să calculeze
⎧sin x , x < −5

y = ⎨5x − 3, − 5 ≤ x ≤ 3
⎪ln x , x > 3

16
CAPITOLUL 2 – Rezolvarea ecuaţiilor algebrice prin metoda generală

Capitolul 2

REZOLVAREA ECUAŢIILOR ALGEBRICE


PRIN METODA GENERALĂ.

1. Principiul metodei

Fie funcţia f : D ⊂ R → R şi ecuaţia f(x) = 0. Dacă f este un polinom


sau poate fi adusă la formă polinomială, în urma unor transformări, ecuaţia se
numeşte algebrică; în caz contrar este vorba de o ecuaţie transcendentă.
Algebra clasică oferă formule şi algoritmi care permit rezolvarea
exactă doar pentru o mică parte din ecuaţiile care intervin în soluţionarea
diverselor probleme practice din domeniul ingineriei; chiar şi atunci când astfel
de posibilităţi există (dar aplicarea lor este complicată), ca şi în toate celelalte
cazuri, rezolvarea numerică a ecuaţiilor este calea de urmat.
Rezolvarea oricărei ecuaţii, pe cale numerică, presupune parcurgerea a
două etape:
¾ Separarea rădăcinilor ecuaţiei, care presupune determinarea unui interval
de existenţă pentru fiecare dintre rădăcinile reale ale ecuaţiei.
¾ Calculul aproximativ pentru fiecare rădăcină reală a ecuaţiei şi
evaluarea erorii.
În ceea ce priveşte separarea rădăcinilor, aceasta se poate realiza, spre
exemplu prin metoda clasică a şirului lui Rolle; alte posibilităţi sunt analiza
datelor problemei practice ce conduce la ecuaţia respectivă, sau aproximarea

17
METODE NUMERICE

funcţiei f printr-un polinom de interpolare, rădăcinile polinomului de interpolare


servind ca valori aproximative iniţiale ale rădăcinilor ecuaţiei.
Cu toate că metoda generală de rezolvare numerică a unei ecuaţii
poate fi apreciată ca fiind mai rudimentară decât metodele „clasice”,
aplicabilitatea metodei este extrem de largă, ea ilustrând foarte bine mecanismul
general al algoritmilor de căutare a soluţiei unei ecuaţii.

Fig. 1 - Metodă generală de rezolvare numerică a ecuaţiilor

Fie f : [a , b] → R , despre care se cunoaşte că (∃)ξ ∈ (a , b ) , unic, astfel


încât f(ξ) = 0; considerându-se, potrivit primului criteriu enunţat mai sus, o
valoare maximă admisibilă a erorii er1 (renotată, pentru simplitate, cu er), se va
considera soluţie a ecuaţiei orice număr xk pentru care f (x k ) ≤ er .
Metoda presupune, mai întâi, generarea unui şir de (n+1) puncte
echidistante între a şi b, potrivit relaţiei

b−a
x k = a + (k − 1) ⋅ , k = 1,2...(n − 1) , (1)
n

după care se testează condiţia f (x k ) ≤ er ; în cazul în care răspunsul este


afirmativ, punctul în cauză este inclus în mulţimea soluţiilor.
După cum se poate observa şi din figura 1, în general există mai multe
puncte din şirul (1) care pot fi considerate soluţii (în cazul din figură - xk-2 ,
xk-1, xk ...). Numărul acestor puncte este egal cu numărul termenilor din şir
cuprinşi în intervalul [α, β], unde α şi β sunt soluţiile din intervalul [a, b] ale
ecuaţiei f (x ) = er , α < β.
Pentru a alege din mulţimea soluţiilor aproximative pe cea mai
apropiată de soluţia exactă, ξ, se poate recurge la două strategii:

18
CAPITOLUL 2 – Rezolvarea ecuaţiilor algebrice prin metoda generală

1) se calculează eroarea εk = f(xk), pentru fiecare soluţie potenţială, xk şi se


alege ca soluţie finală cea pentru care eroarea este minimă, în valoare absolută;
2) se reduce valoarea erorii maxime admisibile, er, reducându-se astfel
numărul de soluţii aproximative găsite; în cazul unui program de calcul construit
pe baza acestei metode, prin rularea repetată a acestuia, pentru valori din ce în ce
mai mici ale parametrului er, se poate ajunge, la un moment dat, la situaţia în
care mulţimea soluţiilor potenţiale conţine un singur element, care poate fi
declarat soluţie a ecuaţiei.

2. Algoritmul metodei

program Metoda_generală
real a,b ; domeniul de definiţie al funcţiei f
real er ; eroarea maximă admisibilă a soluţiei
real eps ; eroarea curentă
întreg n ; numărul de iteraţii de efectuat
întreg k ; contorul iteraţiilor
citeşte a, b, n, er
pentru k = 1, n-1 repetă
x = a + k * (b - a) / n
dacă f (x ) < er atunci
eps = f (x )
scrie x ; soluţia aproximativă a ecuaţiei
scrie eps ; eroarea între f(x) şi 0
stop

3. Exemplu de aplicare

Fie ecuaţia x = cos(x); dacă se consideră funcţia f : R → R ,


f(x) = x - cos(x), se poate observa că f este continuă şi derivabilă că f(0) = -1, în
⎛ π⎞ π
timp ce f ⎜ ⎟ = .
⎝ 2⎠ 2
⎛ π⎞
Conform teoremei lui Rolle, rezultă că pe intervalul ⎜ 0, ⎟ funcţia f
⎝ 2⎠
se anulează cel puţin o dată; punctul ξ ∈ (a , b ) pentru care f(ξ) = 0 reprezintă
soluţia exactă a ecuaţiei considerate.
Dacă se utilizează un program de calcul bazat pe această metodă
pentru rezolvarea ecuaţiei, cu diverse valori ale parametrului n (din relaţia (1)) şi
pentru diverse valori ale erorii maxime admisibile, er, se obţin rezultatele din
tabelul 1.

19
METODE NUMERICE

După cum s-a menţionat deja, sunt situaţii în care se obţine o mulţime
de soluţii potenţiale, dintre care trebuie selectată cea mai bună; dacă se
utilizează a doua strategie de selecţie, pentru n = 100, în cazul în care er = 0.1 se
găsesc 7 soluţii potenţiale, dacă er = 0.05 - 3 soluţii, în timp ce pentru er = 0.01
- o singură soluţie.
Evident, valoarea pentru er trebuie aleasă judicios, în corelaţie şi cu
numărul de puncte, n; o reducere peste o anumită limită a erorii maxime
admisibile conduce la a nu găsi nici o soluţie.
Dacă se recurge la prima strategie de selecţie a celei mai bune soluţii,
programul trebuie să furnizeze şi valorile funcţiei f în fiecare din punctele
corespunzătoare soluţiilor potenţiale (coloana a patra din tabelul 1); pe această
bază se poate determina, cu uşurinţă, soluţia aproximativă a ecuaţiei.

Tab. 1

n er xk f(xk)
0.691 -0.079
0.707 -0.054
0.722 -0.028
0.1 0.738 -0.001
0.754 0.025
100
0.770 0.052
0.785 0.078
0.722 -0.028
0.05 0.738 -0.001
0.754 0.025
0.02 0.738 -0.001
0.737 -0.004
0.005 0.738 -0.001
0.740 0.001
1000 0.741 0.004
0.002 0.738 -0.001
0.740 0.001
10000 0.0001 0.73906 -0.000043

Trebuie observat că metoda poate rezolva, la nivelul actual al


calculatoarelor, o varietate largă de ecuaţii, rapid şi cu o precizie mai mult decât
satisfăcătoare.

20
CAPITOLUL 2 – Rezolvarea ecuaţiilor algebrice prin metoda generală

4. Chestiuni de verificare

Să se rezolve prin metoda generală următoarele ecuaţii de forma


f(x) = 0, cu precizia specificată, ştiind că admit câte o soluţie pe intervalele
indicate:

4.1. f(x) = x2 – 5x + 4, er = 10-3, ξ ∈ (0,3) .

4.2. f(x) = x3 - 8x2 + 19x -12, er = 10-5, ξ ∈ (− 1,2 ) .

4.3. f(x) = sin x − ln x , er = 10-6, ξ ∈ (0, π ) .

21
CAPITOLUL 3 – Rezolvarea ecuaţiilor algebrice prin metoda bisecţiei

Capitolul 3

REZOLVAREA ECUAŢIILOR ALGEBRICE


PRIN METODA BISECŢIEI.

1. Principiul metodei

Această metodă poate fi considerată o variantă mai evoluată a metodei


generale, atât deoarece viteza cu care se determină soluţia aproximativă este mai
mare, cât şi pentru că permite cunoaşterea, de la bun început a numărului de
iteraţii care trebuie parcurse pentru rezolvarea ecuaţiei, cu o precizie impusă.
Condiţia ca prin această metodă să se poată rezolva o ecuaţie de forma
f(x) = 0 este ca f să existe un interval compact [a, b] astfel încât

f : [a , b] → R , f ∈ C 0 ([a , b]), f (a ) ⋅ f (b ) < 0 . (1)

Condiţia (1) asigură faptul că, pe intervalul [a, b], f are un număr
impar de rădăcini (cel puţin una). Aplicarea metodei mai presupune şi
impunerea iniţială a unei erori maxime admisibile, ε, pentru soluţia
aproximativă.
Metoda constă, în principiu, într-o serie de înjumătăţiri succesive ale
intervalului [a, b] şi derivatelor acestuia, prin care se generează un şir de
intervale [a1 , b1], [a2 , b2] . . . [an, bn] . . ., lungimea fiecăruia fiind egală cu
jumătatea intervalului precedent (a se vedea şi figura 1). Mijloacele acestor
intervale - c1 , c2 . . . cn . . . se constituie, astfel, într-un şir de aproximări
succesive ale soluţiei exacte, ξ, care se va demonstra că este convergent către ξ.
23
METODE NUMERICE

Fig.1 - Metoda înjumătăţirii intervalului

Algoritmul de aplicare a metodei este prezentat în cele ce urmează, în


ipoteza în care f(a) > 0 şi f(b) < 0 (cealaltă variantă de aplicare a metodei şi
anume când f(a) < 0 şi f(b) > 0 derulându-se analog).
a+b
¾ Se calculează c 0 = , după care se evaluează funcţia f în punctul c0;
2
în cazul în care f(c0) = 0, înseamnă că, absolut întâmplător, s-a găsit
soluţia exactă a ecuaţiei, ξ = c0 .
¾ Dacă f(c0) > 0, se renotează c0 cu a1 şi b cu b1 (cazul din fig.2.3) iar, în
caz contrar, a devine a1 şi c0 - b1 .
a 1 + b1
¾ Se calculează c1 = , după care se determină f(c1); dacă f(c1) = 0
2
rezultă ξ = c1 .
¾ Se înjumătăţeşte intervalul [a1 , b1], rezultând [a2, b2], fie renotându-se c1
cu a2 şi b1 cu b2 (cazul figurat), fie c1 cu b2 şi a1 cu a2 , în aşa fel încât să
avem f(a2) · f(b2) < 0.
¾ Se determină c2 , apoi a3 şi b3 , c3 , a4 şi b4 . . . şi aşa mai departe, până
când, la un moment dat cn se constituie într-o aproximaţie suficient de
bună a soluţiei exacte şi se adoptă ξ = cn .

Lungimea lk a intervalului oarecare din şir, [ak ,bk], rezultat din


intervalul [a, b] după k înjumătăţiri succesive este

24
CAPITOLUL 3 – Rezolvarea ecuaţiilor algebrice prin metoda bisecţiei

b−a
lk = . (2)
2k
Prin procedeul enunţat mai sus, se generează în paralel două şiruri -
(a n )n ≥0 şi (b n )n ≥0 - primul dintre ele monoton crescător iar celălalt, monoton
descrescător, ambele având ca limită soluţia exactă a ecuaţiei:
lim a n = lim b n = ξ . (3)
n →∞ n →∞

Această afirmaţie poate fi susţinută dacă se observă că eroarea εn


făcută prin aproximarea lui ξ cu cn este mărginită superior de un şir cu limita 0:
ε n = ξ − c n ≤ l n → 0 , atunci când n → ∞ . (4)

Mai mult, dacă se impune, apriori, o limită maximă a erorii


admisibile, er, din impunerea condiţiei c n − ξ ≤ er se poate determina numărul
minim de iteraţii (înjumătăţiri) care trebuie efectuate pentru a găsi soluţia
aproximativă a ecuaţiei, Nmin:
⎡ b−a⎤
⎡ b − a⎤ ⎢ ln er ⎥
N min ≥ ⎢log 2 +1= ⎢ ⎥ + 1, (5)
⎣ er ⎥⎦ ⎢ ln 2 ⎥
⎣⎢ ⎦⎥
unde cu paranteze drepte s-a notat funcţia parte întreagă.

2. Algoritmul metodei

program Metoda_bisecţiei
real a,b ; domeniul de definiţie al funcţiei f
real er ; eroarea maximă admisibilă
întreg n ; numărul de iteraţii de efectuat
întreg k ; contorul iteraţiilor
citeşte a, b, er
n = [ln((b - a) / er) / ln(2)] + 1 ; calculul numărului de iteraţii
k=0 ; iniţializarea contorului
repetă
k=k+1
c = (a + b) / 2
dacă f(a) * f(c) > 0 atunci
a=c
altfel
b=c

25
METODE NUMERICE

până când k > n


x=c
scrie x ; soluţia aproximativă a ecuaţiei
stop

3. Exemplu de aplicare

Fie ecuaţia x = cos(x); dacă se consideră funcţia f : R → R ,


f(x) = x - cos(x), se poate observa că f este continuă şi derivabilă că f(0) = -1, în
⎛ π⎞ π
timp ce f ⎜ ⎟ = .
⎝ 2⎠ 2
Considerând această ecuaţie şi pornind, de asemenea, de la intervalul
π
delimitat de a = 0 şi b = , s-a utilizat un program de calcul bazat pe algoritmul
2
metodei da faţă. Rezultatele sunt următoarele:
- pentru er = 10-3 trebuie efectuate Nmin = 11 iteraţii, soluţia aproximativă
fiind x = 0.7386;
- pentru er = 10-6 trebuie efectuate Nmin = 21 iteraţii, soluţia aproximativă
fiind x = 0.7390859;
- pentru er = 10-9 trebuie efectuate Nmin = 31 iteraţii, soluţia aproximativă
fiind x = 0.7390851328.
După cum se poate observa, soluţia ecuaţiei este găsită mult mai
repede faţă de cazul metodei generale, numărul de iteraţii necesare fiind relativ
mic, chiar în cazul unor erori maxime admisibile extrem de reduse.

4. Chestiuni de verificare

Să se rezolve prin metoda bisecţiei ecuaţiile de mai jos, de forma


f(x) = 0, cu precizia specificată, ştiind că admit câte o soluţie pe intervalele
indicate. Să se compare numărul de iteraţii necesare cu cel de la rezolvarea
aceloraşi ecuaţii prin metoda generală.

4.1. f(x) = x2 – 5x + 4, er = 10-3, ξ ∈ (0,3) .

4.2. f(x) = x3 - 8x2 + 19x -12, er = 10-5, ξ ∈ (− 1,2 ) .

4.3. f(x) = sin x − ln x , er = 10-6, ξ ∈ (0, π ) .

26
CAPITOLUL 4 – Rezolvarea ecuaţiilor algebrice prin metoda Newton - Raphson

Capitolul 4

REZOLVAREA ECUAŢIILOR ALGEBRICE


PRIN METODA NEWTON - RAPHSON.

1. Principiul metodei

Funcţionarea acestei metode se bazează, ca principiu, pe generarea


unui şir de aproximaţii succesive ale soluţiei exacte, ξ, pentru o ecuaţie de forma
f(x) = 0. Şirul de aproximaţii succesive, (x n )n∈N , se construieşte pornind de la o
valoare de start, x0 , convenabil aleasă, utilizând o formulă de tip recurent
f (x n )
x n +1 = x n − , n ≥ 0, (1)
hn

unde hn = h(xn) este o funcţie nenulă (eventual o constantă) aleasă, de asemenea,


convenabil.
Potrivit modului de definire a funcţiei hn , există mai multe metode,
aşa-numite „clasice”: metoda Newton - Raphson (metoda tangentelor variabile),
metoda tangentelor fixe, metoda coardei (numită și metoda secantelor variabile /
metoda falsei poziții sau metoda / regula Falsi) şi metoda secantelor fixe.
În cazul metodei Newton - Raphson, funcţia hn din relaţia (1) se alege
de forma hn = f ’(xn) (derivata funcţiei f). Rezultă o formulă de recurenţă de tipul
f (x n )
x n +1 = x n − , n ≥ 0. (2)
f ′(x n )

27
METODE NUMERICE

Formula (2) mai poartă şi numele de formula iterativă a lui Newton.


Pentru rezolvarea numerică a unei ecuaţii de forma f(x) = 0 prin acest
procedeu, funcţia f trebuie să îndeplinească următoarele condiţii: f : [a , b] → R ,
f ∈ C 2 ([a , b]) (adică f derivabilă de două ori pe [a, b], cu derivatele continui), iar
f ′ şi f ′′ păstrează semnul constant pe tot intervalul; în plus, mai trebuie ca f să
aibă o singură rădăcină în intervalul considerat. Punctul de start, x0 , trebuie ales
astfel încât f (x 0 ) ⋅ f ′′(x 0 ) > 0 .
Metoda are o interpretare geometrică sugestivă (figura 1).

A0

A1
A2

Fig.1 - Metoda Newton-Raphson - interpretare geometrică

Potrivit formulelor din Geometria analitică, ecuaţia tangentei dusă la


curba y = f(x) într-un punct oarecare, de abscisă xk , este

y − f (x k ) = f ′(x k )(x − x k ) . (3)

Dacă se notează cu xk+1 abscisa punctului în care această tangentă


intersectează axa Ox (obţinut pentru y = 0 în ecuaţia (3)) şi se exprimă xk+1 , se
obţine formula lui Newton de mai sus.
În aceste condiţii, se poate observa că fiecare valoare, xk+1, din şirul
aproximaţiilor succesive ale soluţiei ecuaţiei rezultă ca abscisa punctului de
intersecţie, cu axa Ox, a tangentei la graficul funcţiei duse în punctul precedent,
Ak , de abscisă xk . Metoda se mai numeşte şi metoda tangentelor variabile,
deoarece panta fiecărei tangente, pe baza căreia se generează punctele din şir,
are, în general, panta diferită de a celorlalte tangente (precedente sau următoare).
Funcţia φ, definită ca
28
CAPITOLUL 4 – Rezolvarea ecuaţiilor algebrice prin metoda Newton - Raphson

f (x )
ϕ(x ) = x − (4)
f ′(x )

poartă numele de funcţie de iterare a metodei Newton - Raphson. Se poate


verifica imediat că

ϕ(ξ ) = ξ , ϕ′(ξ ) = 0 , ϕ′′(ξ ) ≠ 0 . (5)

Cu această notaţie, şirul aproximaţiilor succesive ale soluţiei ecuaţiei


date se poate genera după formula

xk+1 = φ(xk), k = 0, 1, 2, . . . (6)

Pentru estimarea modului în care se propagă eroarea în cazul metodei


de faţă, precum şi pentru determinarea ordinului de convergenţă, se consideră
dezvoltarea în serie Taylor, într-o vecinătate a punctului ξ,

ϕ(x ) = ϕ(ξ ) +
( x − ξ)
⋅ ϕ′(ξ ) +
( x − ξ )2
⋅ ϕ′′(ξ ) + . . . (7)
1! 2!

Dacă în această dezvoltare se înlocuieşte x cu xn, se reţin doar termenii


de rang 0, 1 şi 2 şi se au în vedere relaţiile (5), rezultă

(x n − ξ )2
ϕ(x n ) ≅ ξ + ⋅ ϕ′′(ξ ) . (8)
2

Ţinând cont şi de (6), se poate scrie egalitatea

ϕ′′(δ )
x n +1 − ξ ≅ ⋅ (x n − ξ ) 2 , (9)
2

ceea ce este echivalent cu

ϕ′′(ξ ) 2
ε n +1 ≅ εn . (10)
2

Din relaţia (10) rezultă, pe de o parte că metoda Newton - Raphson


este caracterizată de o convergenţă pătratică, fiind una dintre metodele cele mai
rapide de rezolvare a unei ecuaţii de forma f(x) = 0; pe de altă parte, însă,
metoda reclamă evaluarea funcţiei f şi a derivatei sale la fiecare iteraţie, ceea ce

29
METODE NUMERICE

poate fi, uneori, dificil (sau chiar imposibil, pentru funcţii care nu sunt
cunoscute analitic, ci doar tabelar).

2. Algoritmul metodei

program Metoda Newton_Raphson


real x0 ; punctul de pornire a căutării iteraţiilor
real er ; eroarea maximă admisibilă
real xvechi, xnou ; valoarea precedentă / curentă a soluţiei
întreg n ; numărul de iteraţii efectuate
întreg k ; contorul iteraţiilor
funcţia f(x) ; funcţia care defineşte ecuaţia
real x
f = …………… ; expresia funcţiei f
întoarce f
funcţia df(x) ; derivata funcţiei f
real x
df = …………… ; expresia funcţiei df
întoarce df
citeşte x0, er
k=0 ; iniţializarea contorului
xnou = x0 ; iniţializarea şirului aproximaţiilor succesive
repetă
xvechi = xnou
k=k+1
xnou = xvechi - f(xvechi) / df(xvechi)
până când xnou − xvechi < er
scrie xnou ; soluţia aproximativă a ecuaţiei
scrie k ; numărul de iteraţii parcurse
stop

3. Exemplu de aplicare

Pentru a da posibilitatea unei comparaţii reale între diferitele metode


numerice de rezolvare a ecuaţiilor, se consideră aceeaşi ecuaţie ca la lucrările 2
şi 3: f(x) = x - cos(x) = 0.
π
Evident, f’(x) = 1 + sin(x). Dacă se alege ca punct de start x 0 = b =
2
şi se utilizează un program de calcul scris pe baza metodei de faţă, rezultă
următoarele:

30
CAPITOLUL 4 – Rezolvarea ecuaţiilor algebrice prin metoda Newton - Raphson

¾ pentru er2 = 10-3 sunt necesari n = 3 iteraţii şi soluţia aproximativă este


x = 0.7391;
¾ pentru er2 = 10-6 sunt necesari n = 4 iteraţii şi soluţia aproximativă este
x = 0.7390851;
¾ pentru er2 = 10-9 sunt necesari n = 5 iteraţii şi soluţia aproximativă este
x = 0.7390851332.
Rezultatele confirmă că metoda Newton - Raphson are o convergenţă
mult mai bună decât a celorlalte prezentate până acum.

4. Chestiuni de verificare

Să se rezolve prin metoda Newton - Raphson ecuaţiile de mai jos, de


forma f(x) = 0, cu precizia specificată, ştiind că admit câte o soluţie pe
intervalele indicate. Să se compare numărul de iteraţii necesare cu cel de la
rezolvarea aceloraşi ecuaţii prin metoda generală şi metoda bisecţiei.

4.1. f(x) = x2 – 5x + 4, er = 10-3, ξ ∈ (0,3) .

4.2. f(x) = x3 - 8x2 + 19x -12, er = 10-5, ξ ∈ (− 1,2 ) .

4.3. f(x) = sin x − ln x , er = 10-6, ξ ∈ (0, π ) .

31
CAPITOLUL 5 – Rezolvarea ecuaţiilor algebrice prin metoda punctului fix

Capitolul 5

REZOLVAREA ECUAŢIILOR ALGEBRICE


PRIN METODA PUNCTULUI FIX.

1. Principiul metodei

Se spune că o funcţie g → D : R are un punct fix ξ ∈ D , dacă g(ξ) = ξ


(fig.1). Altfel spus, o funcţie are unul sau mai multe puncte fixe dacă graficul
său intersectează odată - sau de mai multe ori - prima bisectoare.

Fig.1 - Interpretarea geometrică a punctelor fixe ale unei funcţii

33
METODE NUMERICE

Fie o ecuaţie de forma f(x) = 0, unde f → [a , b] : R şi să presupunem


că ecuaţia considerată are o unică soluţie reală ξ ∈ [a , b] .
Ecuaţia de mai sus poate fi scrisă, adunând x în ambii membri, în
forma echivalentă g(x) = x (unde s-a notat f(x) + x = g(x)); după cum se va arăta
într-un caz concret, această transformare a ecuaţiei iniţiale se poate realiza, în
general, în mai multe moduri. Este uşor de observat că rădăcina ecuaţiei iniţiale
satisface egalitatea g(ξ) = ξ, deci este un punct fix pentru funcţia g.
Cu ajutorul funcţiei g astfel obţinute se poate genera, pornind de la un
număr arbitrar, x0, un şir de numere reale, utilizându-se formula de recurenţă
x n +1 = g(x n ), n ≥ 1 . (1)

Dacă funcţia g este derivabilă pe intervalul [a, b], iar derivata acesteia
îndeplineşte condiţia
g ′(x ) ≤ λ < 1, (∀)x ∈ [a , b], (2)

atunci se poate demonstra că şirul xn constituie un şir de aproximaţii succesive


ale rădăcinii exacte a ecuaţiei, convergent către aceasta.
Într-adevăr, se observă că funcţia g îndeplineşte condiţiile de aplicare
a teoremei lui Lagrange pe orice interval de forma [xn, ξ]; de aici rezultă că
(∃)α n ∈ (x n , ξ) astfel încât
g(x n ) − g(ξ ) = g ′(α n )(x n − ξ ) . (3)

Dacă se ţine cont de relaţia (1) şi de faptul că g(ξ) = ξ, egalitatea (3)


devine
x n +1 − ξ = g ′(α n )(x n − ξ ) . (4)

Utilizând în continuare şi relaţia (2) rezultă că

x n +1 − ξ ≤ λ ⋅ x n − ξ , (5)

ceea ce este echivalent cu


ε n +1 ≤ λ ⋅ ε n . (6)

Dacă se dau valori de la 0 la n în relaţia (6) şi se înmulţesc cele


(n + 1) relaţii astfel obţinute, rezultă că ε n +1 ≤ λn ⋅ ε 0 ; cum λ < 1, lim λn = 0 şi
n →∞
deci lim ε n = 0 . Acesta este acelaşi lucru cu a afirma că lim x n = ξ .
n →∞ n →∞
Tot din relaţia (6) rezultă şi că metoda punctului fix are convergenţă
liniară.

34
CAPITOLUL 5 – Rezolvarea ecuaţiilor algebrice prin metoda punctului fix

2. Algoritmul metodei

program Metoda punctului fix


real x0 ; punctul de pornire a căutării iteraţiilor
real er ; eroarea maximă admisibilă
real xvechi, xnou ; valoarea precedentă / curentă a soluţiei
întreg n ; numărul de iteraţii efectuate
întreg k ; contorul iteraţiilor
funcţia g(x) ; funcţia de punct fix
real x
g = …………… ; expresia funcţiei g
întoarce g
citeşte x0, er
k=0 ; iniţializarea contorului
xnou = x0 ; iniţializarea şirului aproximaţiilor succesive
repetă
xvechi = xnou
k=k+1
xnou = g(xvechi)
până când xnou − xvechi < er
scrie xnou ; soluţia aproximativă a ecuaţiei
scrie k ; numărul de iteraţii parcurse
stop

3. Exemplu de aplicare

Pentru a da posibilitatea unei comparaţii reale între diferitele metode


numerice de rezolvare a ecuaţiilor, se consideră aceeaşi ecuaţie ca la lucrările 2,
3 şi 4: f(x) = x - cos(x) = 0.
Ecuaţia dată se poate scrie sub forma x = cos(x), deci se va adopta
funcţia g de forma g(x) = cos(x). Cum g’(x) = -sin(x) se poate observa că
⎛ π⎞
g ′(x ) ∈ (− 1,0 ), (∀)x ∈ ⎜ 0, ⎟ , de unde rezultă că pentru această situaţie metoda
⎝ 2⎠
punctului fix este convergentă oscilant.
Dacă se adoptă drept criteriu de stopare a căutării soluţiei Criteriul 2
(relaţia (2.6)) şi se utilizează un program de calcul bazat pe metoda punctului fix
(a se vedea § 2.6.5), rezultă următoarele:
◊ pentru er = 10-3 şi x0 = 0 ⇒ x1 = 1.0000, x2 = 0.5403, x3 = 0.8575,
x4 = 0.6543, x5 = 0.7935, x6 = 0.7014 . . . x18 = 0.7388;

35
METODE NUMERICE

π
◊ pentru er = 10-3 şi x0 = ⇒ x1 = 0.0008, x2 = 0.9999, x3 = 0.5403,
2
x4 =0.8575, x5 = 0.6543, x6 = 0.7935, x7 = 0.7014 . . . x19 = 0.7388;
◊ pentru er = 10-6 şi x0 = 0 ⇒ x35 = 0.7390855;
◊ pentru er = 10-9 şi x0 = 0 ⇒ x53 = 0.7390851335.

Se poate observa cum oscilează valorile şirului aproximaţiilor


succesive, de o parte şi de alta a soluţiei exacte; de asemenea, se poate remarca
şi convergenţa mai lentă a metodei, faţă de metoda Newton – Raphson.

4. Chestiuni de verificare

A. Fie ecuaţia f(x) = x2 - 2x - 3 = 0, având rădăcinile ξ1 = -1 şi ξ2 = 3.


Să se studieze posibilitatea rezolvării acestei ecuaţii, prin metoda punctului fix,
în următoarele trei cazuri:
4.1. g(x ) = 2 x + 3 , x0 = 4;
3
4.2. g (x ) = , x0 = 0;
x−2
xn2 − 3
4.3. g (x ) = , x0 = 4.
2

B. Să se rezolve prin metoda Newton - Raphson ecuaţiile de mai jos,


de forma f(x) = 0, cu precizia specificată, ştiind că admit câte o soluţie pe
intervalele indicate. Să se compare numărul de iteraţii necesare cu cel de la
rezolvarea aceloraşi ecuaţii prin metoda generală şi metoda bisecţiei.

4.4. f(x) = x2 – 5x + 4, er = 10-3, ξ ∈ (0,3) .

4.5. f(x) = x3 - 8x2 + 19x -12, er = 10-5, ξ ∈ (− 1,2 ) .

4.6. f(x) = sin x − ln x , er = 10-6, ξ ∈ (0, π ) .

36
CAPITOLUL 6 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Gauss

Capitolul 6

REZOLVAREA SISTEMELOR DE ECUAŢII


LINIARE PRIN METODA GAUSS.

1. Principiul metodei

În primul rând, trebuie făcută precizarea că metodele numerice pentru


rezolvarea sistemelor de ecuaţii, care urmează a fi prezentate în continuare, sunt
destinate abordării sistemelor de n ecuaţii cu n necunoscute, cu coeficienţi reali,
despre care se cunoaşte, apriori, faptul că sunt compatibile.
Un sistem de forma

⎧ a 11 ⋅ x 1 + a 12 ⋅ x 2 + . . . + a 1n ⋅ x n = b1
⎪a ⋅ x + a ⋅ x + . . . + a ⋅ x = b
⎪ 21 1 22 2 2n n 2
⎨ , (1)
⎪ .............................. .............................. .
⎪⎩a n1 ⋅ x 1 + a n 2 ⋅ x 2 + . . . + a nn ⋅ x n = b n

în care a ij , b i ∈ R pentru i = 1, 2, . . . n, j = 1, 2, . . . n, poartă numele de sistem


de ecuaţii liniare.
Detaliind, în continuare, trebuie arătat că metodele numerice utilizate
pentru rezolvarea sistemelor de ecuaţii liniare se împart în două categorii:
metode directe, care determină soluţia exactă a sistemului şi metode iterative,
care - pornind de la o soluţie iniţială arbitrară - determină un şir de aproximaţii
succesive ale vectorului - soluţie a sistemului.
37
METODE NUMERICE

Cea mai veche, cea mai bine cunoscută şi, totodată, cea mai utilizată
metodă de rezolvare numerică a sistemelor de ecuaţii algebrice liniare este
metoda Gauss, care face parte din categoria metodelor directe; principiul
metodei este prezentat în continuare.
Pornindu-se de la un sistem de forma (1), se construieşte o matrice de
forma
⎛ a 11 a 12 ... a 1n b1 ⎞
⎜ ⎟
⎜ a 21 a 22 ... a 2 n b 2 ⎟
A=⎜ , (2)
... ... ... ... ... ⎟
⎜⎜ ⎟⎟
a
⎝ n1 a n2 ... a nn b n⎠

rezultată prin alipirea la matricea coeficienţilor sistemului, A, a vectorului


coloană a termenului liber, B. În continuare, algoritmul metodei urmăreşte
transformarea matricei A într-o matrice ale cărei elemente situate sub diagonala
a11 - a22 - . . . -ann să fie nule; trebuie parcurşi următorii paşi:
a i1
9 se calculează o serie de multiplicatori de forma l i1 = , după care din
a 11
fiecare linie „i” se scade linia întâi înmulţită cu li1, i = 2, 3, . . . n; în cazul
în care a11 = 0, se schimbă prima linie cu o alta, care să aibă primul
element nenul, după care se procedează la cele de mai sus. Rezultă, astfel,
după renotare, o matrice de forma

⎛ a 11 (1) a 12 (1) ... a 1n (1) b1 (1) ⎞⎟



⎜ 0 a 22 (1) ... a 2 n (1) b 2 (1) ⎟
A (1) =⎜ ⎟; (3)
⎜ ... ... ... ... ... ⎟
⎜ 0 a n 2 (1) ... a nn (1) b n (1) ⎟⎠

a i 2 (1)
9 se calculează o nouă serie de multiplicatori, de forma l i 2 = (1)
, după
a 22
care din fiecare linie „i” se scade linia întâi înmulţită cu li2, i = 3, 4, . . . n;
în cazul în care a22(1) = 0, se schimbă a doua linie cu o alta, care să aibă al
doilea element nenul, după care se procedează la cele de mai sus. Rezultă,
astfel, după o nouă renotare, o altă matrice de forma

⎛ a 11 ( 2) a 12 ( 2) ... a 1n ( 2) b1 ( 2) ⎞⎟

⎜ 0 a 22 ( 2) ... a 2 n ( 2) b 2 ( 2) ⎟
A ( 2) =⎜ ⎟; (4)
⎜ ... ... ... ... ... ⎟
⎜ 0 0 ... a nn ( 2) b n ( 2) ⎟⎠

38
CAPITOLUL 6 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Gauss

9 se continuă aplicarea procedurii până când, după n-1 paşi, se obţine


matricea

⎛ a 11 ( n −1) a 12 ( n −1) ... a 1n ( n −1) b1 ( n −1) ⎞⎟



⎜ 0 a 22 ( n −1) ... a 2 n ( n −1) b 2 ( n −1) ⎟
A ( n −1) =⎜ ⎟, (5)
⎜ ... ... ... ... ... ⎟
⎜ 0 0 ... a nn ( n −1) b n ( n −1) ⎟⎠

în care toate elementele de sub diagonala a11(n-1), a22(n-1), . . . ann(n-1) sunt nule.
Dacă se renunţă, în notaţiile din această ultimă matrice, la exponenţii care indică
numărul pasului şi se reface, pe baza ei, sistemul de ecuaţii, rezultă:

⎧a 11 ⋅ x 1 + a 12 ⋅ x 2 + ........... + a 1n −1 ⋅ x n −1 + a 1n ⋅ x n = b1
⎪ a 22 ⋅ x 2 + ......... + a 2 n −1 ⋅ x n −1 + a 2 n ⋅ x n = b 2
⎪⎪
⎨ ............................................................................ (6)
⎪ a n −1n −1 ⋅ x n −1 + a n −1n ⋅ x n = b n −1

⎪⎩ a nn ⋅ x n = b n

9 din ultima ecuaţie a sistemului (6) se determina xn, după care, înlocuind în
penultima ecuaţie pe xn, se determină xn-1 şi aşa mai departe, până când, în
final, se înlocuiesc în prima ecuaţie valorile, deja aflate, pentru x2,
x3, . . . xn şi se calculează x1.

Conform [11], numărul N de operaţii aritmetice simple necesar a fi


efectuate pentru rezolvarea, prin metoda Gauss, a unui sistem de ecuaţii liniare
de rang n este
4n 3 − n
N= (7)
3

Metoda Gauss, fiind o metodă directă, conduce la găsirea soluţiei


exacte a sistemului, în măsura în care acesta este compatibil.

2. Algoritmul metodei

program Metoda Gauss


real l ; valoarea curentă a multiplicatorului de linie
real s ; sumă auxiliară
întreg n ; dimensiunea sistemului
întreg i, j, k ; contori
39
METODE NUMERICE

tablou real A(n,n) ; matricea sistemului


tablou real B(n) ; vectorul-coloană a termenului liber
tablou real X(n) ; vectorul-soluţie curentă
; introducere date de intrare
citeşte n
pentru i = 1, n repetă
citeşte b(i)
pentru j = 1, n repetă
citeşte a(i,j)
; eliminare
pentru k = 1, n-1 repetă
pentru i = k+1, n repetă
l = a(i,k) / a(k,k)
pentru j = k+1, n repetă
a(i,j) = a(i,j) - l·a(k,j)
b(i) = b(i) - l·b(k)
; retro-substituţie
x(n) = b(n) / a(n,n)
scrie x(n)
pentru i = n-1, 1, -1 repetă
s = b(i)
pentru j = n, i+1, -1 repetă
s = s - a(i,j)·x(j)
x(i) = s / a(i,i)
scrie x(i)
stop

3. Exemplu de aplicare

⎧ 2 x 1 + x 2 + x 3 = 11

Să se rezolve sistemul ⎨4 x 1 + 3x 2 + 10 x 3 = 28 .
⎪2 x + 4 x + 17 x = 31
⎩ 1 2 3
⎛ 2 1 3 11 ⎞
⎜ ⎟
Se construieşte matricea extinsă a sistemului, A = ⎜ 4 3 10 28 ⎟ .
⎜ 2 4 17 31 ⎟
⎝ ⎠
a 4 a 2
Se calculează multiplicatorii l 21 = 21 = = 2 , l 31 = 31 = = 1 şi se
a 11 2 a 11 2
efectuează operaţiile L2 - l21 · L1 şi L3 - l31 · L1 (unde Li înseamnă linia „i”).

40
CAPITOLUL 6 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Gauss

⎛ 2 1 3 11 ⎞
(1) ⎜ ⎟
Rezultă A = ⎜ 0 1 4 6 ⎟ ; se calculează, apoi, multiplicatorul
⎜ 0 3 14 20 ⎟
⎝ ⎠
a 32 (1) 3
l 32 = = = 3 şi se efectuează L3 - l32 · L2, după care se obţine
a 22 (1) 1
⎛ 2 1 3 11⎞
( 2) ⎜ ⎟
A = ⎜ 0 1 4 6 ⎟ . Sistemul iniţial poate fi rescris, acum, sub forma
⎜0 0 2 2 ⎟
⎝ ⎠
⎧2 x 1 + x 2 + 3x 3 = 11

⎨ x 2 + 4x 3 = 6 . Urmează imediat, din ultima ecuaţie, x3 = 1, apoi, din a
⎪ 2x 3 = 2

doua, x2 = 2 şi, în fine, din prima ecuaţie, x1 = 3.

4. Chestiuni de verificare

Să se rezolve, prin metoda Gauss, sistemele de ecuaţii:

⎧7 x − 3y + 2z = −5;

4.1. ⎨− x + 4 y + 2z = 3;
⎪2 x + y − 6z = −8.

⎧5x1 − x 2 + x 3 − 2 x 4 = 3;
⎪x − 7 x + 3x + x = −2;
⎪ 1 2 3 4
4.2. ⎨
⎪x1 + 2 x 2 − 6 x 3 + 2 x 4 = −1;
⎪⎩x1 + x 2 + x 3 − 4 x 4 = −1.

41
CAPITOLUL 7 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Jacobi

Capitolul 7

REZOLVAREA SISTEMELOR DE ECUAŢII


LINIARE PRIN METODA JACOBI.

1. Principiul metodei

Metoda lui Jacobi este o metodă iterativă, utilizabilă pentru rezolvarea


numerică a sistemelor de ecuaţii algebrice liniare. Fie sistemul

⎧ a 11 ⋅ x 1 + a 12 ⋅ x 2 + . . . + a 1n ⋅ x n = b1
⎪a ⋅ x + a ⋅ x + . . . + a ⋅ x = b
⎪ 21 1 22 2 2n n 2
⎨ , (1)
⎪ .............................. .............................. .
⎪⎩a n1 ⋅ x 1 + a n 2 ⋅ x 2 + . . . + a nn ⋅ x n = b n

în care a ij , b i ∈ R pentru i = 1, 2, . . . n, j = 1, 2, . . . n.
Algoritmul metodei Jacobi începe prin a pune în evidenţă, în partea
stângă a semnului egal, în ecuaţia numărul k a variabilei xk, k = 1, 2, . . . n.
Evident, pentru a putea rescrie astfel sistemul, trebuie ca toţi coeficienţii de
forma akk să fie nenuli; în cazul în care această condiţie nu este satisfăcută, se
schimbă ecuaţiile între ele, în aşa fel încât pe diagonala principală a matricei
sistemului să nu existe nici un element nul şi se renumerotează necunoscutele în
concordanţă cu schimbările efectuate.
Rezultă astfel:

43
METODE NUMERICE

⎧ 1
⎪ x 1 = ⋅ (b1 − a 12 ⋅ x 2 − a 13 ⋅ x 3 − ... − a 1n ⋅ x n );
a 11

⎪ x = 1 ⋅ (b − a ⋅ x − a ⋅ x − ... − a ⋅ x );
⎨ 2 a 22 2 21 1 23 3 2n n (2)
⎪ .................................................................................
⎪ 1
⎪x n = ⋅ (b n − a n1 ⋅ x 1 − a n 2 ⋅ x 2 − ... − a nn −1 ⋅ x n −1 ).
⎩ a nn

Pentru uşurinţa scrierii, se trece la transcrierea sistemului sub forma


unei ecuaţii matriceale
x = A · x + u, (3)
în care s-au făcut notaţiile

⎛ b1 ⎞ ⎛ a 12 a 1n ⎞
⎜ ⎟ ⎜ 0 L ⎟
⎛ x1 ⎞ ⎜ a 11 ⎟ ⎜ a 11 a 11 ⎟
⎜ ⎟ ⎜ b2 ⎟ ⎜ a 21 a 2n ⎟
⎜x ⎟ ⎟, 0 L ⎟.
x = ⎜ 2 ⎟, u =⎜a A = −⎜ a a 22 (4)
M ⎜ 22 ⎟ ⎜ 22 ⎟
⎜⎜ ⎟⎟ ⎜ M ⎟ ⎜ M M M M ⎟
⎝xn ⎠ ⎜ bn ⎟ ⎜ a n1 a n2
⎜a ⎟ ⎜a L 0 ⎟⎟
⎝ nn ⎠ ⎝ nn a nn ⎠

Principiul metodei lui Jacobi se bazează pe relaţia (3), unde în


membrul stâng se scrie vectorul soluţiilor la pasul k + 1, iar în membrul drept
acelaşi vector, la pasul k. Rezultă, astfel

x ( k +1) = A ⋅ x ( k ) + u . (5)

Evident, demararea calculelor impune adoptarea unui vector iniţial, x0,


care poate fi ales arbitrar. Egalitatea (5) mai poate fi scrisă şi sub forma

⎛ ⎞
( k +1) 1 ⎜ n
(k ) ⎟
xi = ⎜ b i − ∑ a ij ⋅ x j ⎟ , i = 1, 2, . . . n. (6)
a ii ⎜ j=1 ⎟
⎝ j≠ i ⎠

Cu ajutorul relaţiei (5) se poate genera un şir de aproximaţii succesive


ale vectorului-soluţie a sistemului, care - în anumite condiţii - converge către
soluţia exactă.
În această situaţie, se pot formula condiţiile de convergenţă ale
metodei lui Jacobi; dacă
44
CAPITOLUL 7 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Jacobi

1) lim A k = 0 ;
k →∞

2) toate valorile proprii ale matricei A sunt, în modul, mai mici decât
unitatea,
atunci şirul de aproximaţii succesive ale vectorului-soluţie, generat cu relaţia (5),
converge către soluţia exactă.
Condiţia 2) de mai sus este echivalentă, [13], cu relaţia

n a ij
∑ < 1, i = 1, 2, . . . n, (7)
j=1 a ii
j≠ i

formă sub care este mai uşor de verificat, din punct de vedere practic.
Dacă un sistem de ecuaţii liniare satisface condiţia 2) de convergenţă,
sistemul se numeşte diagonal; sistemele diagonale se bucură, deci, de
proprietatea că sunt rezolvabile prin metoda iterativă Jacobi.
În ceea ce priveşte criteriul de oprire a căutării soluţiei, dacă x(k) şi
x(k+1) sunt două aproximaţii succesive ale vectorului soluţie, generate potrivit
relaţiei (5),
⎛ x 1( k ) ⎞ ⎛ x 1 ( k +1) ⎞
⎜ ⎟ ⎜ ⎟
(k ) ( k +1)
⎜x ⎟ ⎜x ⎟
x ( k ) = ⎜ 2 ⎟ , respectiv x ( k +1) = ⎜ 2 ⎟,
⎜ M ⎟ ⎜ M ⎟
⎜ x (k ) ⎟ ⎜ x ( k +1) ⎟
⎝ n ⎠ ⎝ n ⎠

atunci vectorul x(k+1) poate fi declarat soluţie a sistemului dacă

( )
err = max x i (k +1) − x i ( k ) < er ,
1≤i ≤ n
(8)
unde er reprezintă eroarea maximă admisibilă, stabilită la începutul rezolvării
sistemului.

2. Algoritmul metodei

program Metoda Jacobi


real er ; eroarea maximă admisibilă
real err ; eroarea la pasul curent
real s ; suma parţială
întreg n ; dimensiunea sistemului
întreg i, j, k ; contori
tablou real A(n,n) ; matricea sistemului
tablou real B(n) ; vectorul-coloană a termenului liber
45
METODE NUMERICE

tablou real X(n) ; vectorul-soluţie la iteraţia anterioară


tablou real Xn(n) ; vectorul-soluţie curentă
; introducere date de intrare şi iniţializare a vectorului-soluţie
citeşte n, er
pentru i = 1, n repetă
citeşte b(i)
pentru j = 1, n repetă
citeşte a(i,j)
x(i) = 0
; iteraţii
repetă
err = 0
pentru i = 1, n repetă
s = b(i)
pentru j = 1, n repetă
s = s - a(i, j)·x(j)
s = s + a(i,i)·x(i)
xn(i) = s / a(i,i)
s = xn(i) − x(i)
dacă err < s atunci err = s
scrie err
pentru i = 1, n repetă
x(i) = xn(i)
scrie x(i)
k=k+1
până când err < er
stop

3. Exemplu de aplicare

Să se rezolve, prin metoda iterativă a lui Jacobi, sistemul


⎧ 7 ⋅ x 1 − x 2 + 2 ⋅ x 3 = 11;

⎨ − 3 ⋅ x 1 + 5 ⋅ x 2 − x 3 = 4;
⎪x + 3 ⋅ x − 6 ⋅ x = −11.
⎩ 1 2 3

Vom începe prin a constata că matricea sistemului îndeplineşte


condiţia (7):
a 12 + a 13 1 + 2 3
- pentru prima linie, = = < 1;
a 11 7 7
46
CAPITOLUL 7 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Jacobi

a 21 + a 23 3 +1 4
- pentru a doua linie, = = < 1;
a 22 5 5
a 31 + a 32 1+ 3 4
- pentru a treia linie, = = <1
a 33 6 6

şi, prin urmare, sistemul poate fi rezolvat prin metoda lui Jacobi.
Pe baza relaţiei (6), se pot scrie formulele de recurenţă necesare pentru
generarea şirului de vectori-aproximaţii succesive ale soluţiei:
⎧ ( k +1) 1
⎪ x1 ( )
= ⋅ 11 + x 2 ( k ) − 2 ⋅ x 3( k ) ;
7
⎪⎪
⎨ x2
( k +1) 1
(
= ⋅ 4 + 3 ⋅ x1( k ) + x 3(k ) ;
5
)

⎪⎩ 3
1
6
(
⎪x (k +1) = − ⋅ − 11 − x (k ) − 3 ⋅ x (k ) .
1 2 )
Utilizându-se, în continuare, un program de calcul bazat pe algoritmul
metodei Jacobi, adoptându-se eroarea maximă admisibilă er = 0.001 şi valoarea
⎛ 0⎞
⎜ ⎟
iniţială x (0 ) = ⎜ 0 ⎟ , la rezolvarea sistemului de mai sus se obţin, succesiv,
⎜ 0⎟
⎝ ⎠
valorile din tabelul 1.
Tab.1
Nr. x1 x2 x3 err
iteraţiei
1 1.571 0.800 1.833 1.833
2 1.162 2.109 2.495 1.309
3 1.160 1.996 3.082 0.586
4 0.976 2.112 3.025 0.184
5 1.008 1.991 3.052 0.122
6 0.983 2.016 2.997 0.055
7 1.003 1.990 3.005 0.026
8 0.997 2.003 2.995 0.013
9 1.002 1.997 3.001 0.006
10 0.999 2.001 2.999 0.004
11 1.0004 1.9993 3.0005 0.0018
12 0.9997 2.0004 2.9998 0.0011
13 1.0001 1.9998 3.0001 0.0006

47
METODE NUMERICE

Ţinând cont că soluţiile exacte ale sistemului sunt x1 = 1, x2 = 2 şi


x3 = 3, se poate observa, din tabel, modul cum aproximaţiile succesive converg
către valorile corecte.

4. Chestiuni de verificare

Să se rezolve, prin metoda Jacobi, sistemele de ecuaţii de mai jos,


după ce se va fi verificat, în prealabil, îndeplinirea criteriului de convergenţă; să
se compare rezultatele cu cele obţinute, la rezolvarea aceloraşi sisteme, la
lucrarea 6.

⎧7 x − 3y + 2z = −5;

4.1. ⎨− x + 4 y + 2z = 3;
⎪2 x + y − 6z = −8.

⎧5x1 − x 2 + x 3 − 2 x 4 = 3;
⎪x − 7 x + 3x + x = −2;
⎪ 1 2 3 4
4.2. ⎨
⎪x1 + 2 x 2 − 6 x 3 + 2 x 4 = −1;
⎪⎩x1 + x 2 + x 3 − 4 x 4 = −1.

48
CAPITOLUL 8 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Gauss - Seidel

Capitolul 8

REZOLVAREA SISTEMELOR DE ECUAŢII


LINIARE PRIN METODA GAUSS - SEIDEL.

1. Principiul metodei

Metoda Gauss-Seidel este, ca şi metoda Jacobi, tot o metodă iterativă


de rezolvare a sistemelor de ecuaţii liniare; mai mult, se poate afirma că metoda
Gauss-Seidel este, în fapt, o variantă îmbunătăţită a metodei Jacobi.
Spre deosebire de aceasta, care nu foloseşte în iteraţia curentă vectorul
(k)
x , până când toate componentele sale vor fi fost determinate, metoda Gauss-
Seidel foloseşte aceste componente, pe măsură ce ele sunt calculate. Astfel, la
pasul (k+1) se folosesc în calculul necunoscutei xi(k+1) valorile necunoscutelor
x1(k+1), x2(k+1), . . . xi-1(k+1), deja determinate în iteraţia curentă.; formula

⎛ ⎞
( k +1) 1 ⎜ n
(k ) ⎟
xi = ⎜ b i − ∑ a ij ⋅ x j ⎟ , i = 1, 2, . . . n. (1)
a ii ⎜ j=1 ⎟
⎝ j≠ i ⎠

devine, în acest caz

1 ⎛ i −1 n ⎞
xi ( k +1)
= ⎜ b i − ∑ a ij ⋅ x j (k +1) − ∑ a ij ⋅ x j (k ) ⎟ , i = 1, 2, . . . n. (2)
a ii ⎜ ⎟
⎝ j=1 j=i +1 ⎠

49
METODE NUMERICE

Condiţia de convergenţă

n a ij
∑ < 1, i = 1, 2, . . . n, (3)
j=1 a ii
j≠ i

şi criteriul de oprire a căutării soluţiei

( )
err = max x i (k +1) − x i ( k ) < er ,
1≤i ≤ n
(4)

sunt aceleaşi ca şi pentru metoda lui Jacobi dar, la acelaşi nivel de precizie,
metoda de faţă este sensibil mai rapidă.

2. Algoritmul metodei

program Metoda Gauss-Seidel


real er ; eroarea maximă admisibilă
real err ; eroarea la pasul curent
real s ; suma parţială
întreg n ; dimensiunea sistemului
întreg i, j, k ; contori
tablou real A(n,n) ; matricea sistemului
tablou real B(n) ; vectorul-coloană a termenului liber
tablou real X(n) ; vectorul-soluţie
; introducere date de intrare şi iniţializare a vectorului-soluţie
citeşte n, er
pentru i = 1, n repetă
citeşte b(i)
pentru j = 1, n repetă
citeşte a(i,j)
x(i) = 0

; iteraţii
repetă
err = 0
pentru i = 1, n repetă
s = b(i)
pentru j = 1, n repetă
s = s - a(i, j)·x(j)
50
CAPITOLUL 8 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Gauss - Seidel

s = (s + a(i,i)·x(i)) / a(i,i)
dacă err < s − x(i) atunci err = s − x(i)
x(i) = s
scrie x(i)
scrie err
k = k+1
până când err < er
stop

3. Exemplu de aplicare

Să se rezolve, prin metoda iterativă Gauss - Seidel, sistemul


⎧ 7 ⋅ x 1 − x 2 + 2 ⋅ x 3 = 11;

⎨ − 3 ⋅ x 1 + 5 ⋅ x 2 − x 3 = 4;
⎪x + 3 ⋅ x − 6 ⋅ x = −11.
⎩ 1 2 3

S-a considerat acelaşi sistem ca în cazul metodei lui Jacobi, pentru a


putea evidenţia mai bine ceea ce metoda Gauss-Seidel are specific. Astfel,
relaţiile utilizate, de această dată, pentru generarea şirului de vectori -
aproximaţii succesive ale soluţiei, devin


⎪ x1
( k +1) 1
( )
= ⋅ 11 + x 2 ( k ) − 2 ⋅ x 3 ( k ) ;
7
⎪⎪
⎨ x2
( k +1) 1
(
= ⋅ 4 + 3 ⋅ x 1( k +1) + x 3 (k ) ;
5
)

⎪⎩ 3
1
6
(
⎪x (k +1) = − ⋅ − 11 − x (k +1) − 3 ⋅ x (k +1) .
1 2 )
Utilizând un program de calcul, bazat pe algoritmul metodei Gauss-
Seidel, cu aceleaşi date iniţiale ca în exemplul prezentat la lucrarea 7, se obţin
rezultatele din tabelul 1.
Tab. 1
Nr. x1 x2 x3 err
iteraţiei
1 1.571 1.743 2.967 2.967
2 0.973 1.977 2.984 0.599
3 1.001 1.997 2.999 0.028
4 0.9999 1.9997 2.9999 0.0022
5 1.0000 1.9999 2.9999 0.0002
51
METODE NUMERICE

Evident, şirul de aproximaţii succesive converge mult mai rapid către


soluţia exactă - pentru aceeaşi eroare maximă admisibilă ca în cazul metodei lui
Jacobi, sunt necesare doar 5 iteraţii, în loc de 13, pentru găsirea soluţiei
aproximative a sistemului.

4. Chestiuni de verificare

Să se rezolve, prin metoda Gauss - Seidel, sistemele de ecuaţii de mai


jos; să se compare rezultatele cu cele obţinute, la rezolvarea aceloraşi sisteme, la
lucrările 6 şi 7.

⎧7 x − 3y + 2z = −5;

4.1. ⎨− x + 4 y + 2z = 3;
⎪2 x + y − 6z = −8.

⎧5x1 − x 2 + x 3 − 2 x 4 = 3;
⎪x − 7 x + 3x + x = −2;
⎪ 1 2 3 4
4.2. ⎨
⎪x1 + 2 x 2 − 6 x 3 + 2 x 4 = −1;
⎪⎩x1 + x 2 + x 3 − 4 x 4 = −1.

52
CAPITOLUL 9 – Polinomul de interpolare al lui Lagrange

Capitolul 9

POLINOMUL DE INTERPOLARE LAGRANGE

1. Noţiuni teoretice

Fie funcţia f : [a , b] → R , dată sub forma

xk x0 x1 ............... xn
f(xk) f(x0) f(x1) ............... f(xn)

unde a = x 0 < x 1 < x 2 < K < x m = b este o diviziune, nu neapărat echidistantă a


intervalului [a, b]. Se aleg ca noduri de interpolare punctele diviziunii de mai sus
şi se impune coincidenţa funcţiei f cu un polinom de aproximare algebric de
gradul n în nodurile de interpolare, adică

f (x k ) = Pn (x k ), k = 0,1,2, K n . (1)

Metoda lui Lagrange propune determinarea polinomului de interpolare


de forma
L n (x ) = y 0 ⋅ ϕ 0 (x ) + y1 ⋅ ϕ1 (x ) + K + y n ⋅ ϕ n (x ) , (2)

unde s-au făcut notaţiile yk = f(xk), k = 0, 1, 2, . . . n iar φ0(x), φ1(x), . . . φn(x)


sunt polinoame de gradul n care urmează a fi determinate din impunerea setului
de condiţii (1). Rezultă, astfel, sistemul
53
METODE NUMERICE

⎧ y 0 ⋅ ϕ 0 (x 0 ) + y1 ⋅ ϕ1 (x 0 ) + K + y n ⋅ ϕ n (x 0 ) = y 0 ;
⎪ y ⋅ ϕ ( x ) + y ⋅ ϕ (x ) + K + y ⋅ ϕ (x ) = y ;
⎪ 0 0 1 1 1 1 n n 1 1
⎨ (3)
⎪ M
⎪⎩ y 0 ⋅ ϕ 0 (x n ) + y1 ⋅ ϕ1 (x n ) + K + y n ⋅ ϕ n (x n ) = y n .

O soluţie a sistemului este, în mod evident, cea pentru care

⎧ ϕ 0 (x 0 ) = 1; ϕ1 (x 0 ) = 0; K ϕ k (x 0 ) = 0; K ϕ n (x 0 ) = 0;
⎪ ϕ (x ) = 0; ϕ (x ) = 1; K ϕ (x ) = 0; K ϕ (x ) = 0;
⎪ 0 1 1 1 k 1 n 1
⎪ M
⎨ (4)
⎪ϕ 0 (x k ) = 0; ϕ1 (x k ) = 0; K ϕ k (x k ) = 1; K ϕ n (x k ) = 0;
⎪ M

⎩ϕ 0 (x n ) = 0; ϕ1 (x n ) = 0; K ϕ k (x n ) = 0; K ϕ n (x n ) = 1.
Rezultă că polinomul φk, spre exemplu, se anulează în n puncte şi ia
valoarea 1 într-un singur punct - xk. De aici, se poate adopta o formă simplă
pentru φk şi anume

ϕ k (x ) = a k ⋅ (x − x 0 )(x − x1 )K(x − x k −1 )(x − x k +1 )K(x − x n ) . (5)

Constanta ak se determină impunând condiţia ca în punctul xk


polinomul φk să ia valoarea 1; se obţine
1
ak = , (6)
(x k − x 0 )(x k − x 1 )K (x k − x k −1 )(x k − x k +1 )K (x k − x n )
de unde, rezultă
(x − x 0 )(x − x 1 )K (x − x k −1 )(x − x k +1 )K (x − x n )
ϕ k (x ) = . (7)
(x k − x 0 )(x k − x 1 )K (x k − x k −1 )(x k − x k +1 )K (x k − x n )
În fine, se obţine forma polinomului de interpolare Lagrange de
gradul n:
n (x − x 0 )(x − x 1 )K (x − x k −1 )(x − x k +1 )K (x − x n )
L n (x ) = ∑ y k ⋅ (x (8)
k =0 k − x 0 )(x k − x 1 )K (x k − x k −1 )(x k − x k +1 )K (x k − x n )

Dacă se face notaţia


n (x − x i )
a k (x ) = ∏ , k = 0, 1, 2, . . . n, (9)
i =0 ( x k − x i )
i≠k
54
CAPITOLUL 9 – Polinomul de interpolare al lui Lagrange

expresia polinomului Lagrange se poate scrie mai simplu sub forma


n
L n (x ) = ∑ y k ⋅ a k (x ) . (10)
k =0
Polinomul de interpolare Lagrange coincide cu funcţia f în nodurile de
interpolare, dar între nodurile de interpolare poate să se abată destul de mult de
la valorile acesteia. Pentru a putea evalua ordinul de mărime al acestor abateri,
se consideră funcţia abatere
ε n (x ) = f (x ) − L n (x ) ; (11)

pentru a determina forma analitică a acestei funcţii, se consideră, mai întâi, o


funcţie auxiliară h, de forma
h (x ) = f (x ) − L n (x ) − K ⋅ (x − x 0 )(x − x 1 )K (x − x n ) , (12)

în care K este o constantă care urmează a fi determinată.


Se observă că h(xk) = 0 pentru k = 0, 1, 2, . . . n, deci funcţia h are
(n+1) zerouri, oricare ar fi valoarea lui K; această valoare se poate determina
impunând ca funcţia h să se anuleze şi într-un punct α ∈ (x 0, x n ), α ≠ x k ;se
obţine, de aici
f (α ) − L n (α )
K= . (13)
(α − x 0 )(α − x 1 )K (α − x n )
Dacă se ţine cont şi de rădăcina α, se observă că funcţia h are (n+2)
zerouri pe intervalul [x0, xn] şi, în plus, satisface condiţiile teoremei lui Rolle pe
fiecare dintre cele (n+1) subintervale care se formează folosind nodurile interne
x1, x2, . . . xn-1, α.
Rezultă că prima derivată a funcţiei h, h’, are cel puţin (n+1) zerouri
pe [x0, xn]; raţionând asemănător, se observă că a doua derivată, h”, are cel puţin
n zerouri pe [x0, xn] ş.a.m.d. până la derivata de ordin n, care trebuie să aibă cel
puţin un punct ξ ∈ (x 0 , x n ) în care să se anuleze, ceea ce conduce la relaţia

f (n +1) (ξ )
K= . (14)
(n + 1)!
Egalând cele două valori obţinute pentru K, conform relaţiilor (13) şi
(14), rezultă
f (n +1) (ξ )
ε n (α ) = f (α ) − L n (α ) = ⋅ (α − x 0 )(α − x 1 )L (α − x n ). (15)
(n + 1)!
Deoarece valoarea lui α este oarecare în intervalul [x0, xn], α ≠ x k ,
(dar pentru α = xk, evident, εn(α) = 0) pentru funcţia eroare rezultă expresia:
55
METODE NUMERICE

f (n +1) (ξ )
ε n (x ) = ⋅ (x − x 0 )(x − x 1 )K (x − x n ) , (16)
(n + 1)!
unde ξ este un punct oarecare din intervalul (x0, xn).
Dacă funcţia f are derivata de ordinul (n+1) mărginită, adică dacă
există M > 0 astfel încât pentru orice x ∈ (x 0 , x n ) să fie satisfăcută relaţia
f (n +1) (x ) ≤ M , atunci, conform (16), eroarea de aproximare prin polinomul de
interpolare al lui Lagrange este, la rândul său mărginită:
M
ε n (x ) ≤ ⋅ x − x 0 ⋅ x − x1 ⋅ K ⋅ x − x n . (17)
(n + 1)!
2. Algoritmul metodei

program Polinomul Lagrange


întreg n ; gradul polinomului
întreg j, k ; contori
tablou real x(n), y(n) ; nodurile de interpolare
real x0 ;abscisa punctului de interpolare
real y0 ; valoarea interpolată a funcţiei
real p ; variabilă auxiliară
; introducerea datelor de intrare
citeşte n
citeşte x0
pentru k = 0, n repetă
citeşte x(k)
citeşte y(k)
; construcţia polinomului Lagrange
y0 = 0
pentru k = 0, n repetă
pentru j = 0, n repetă
dacă j ≠ k atunci
x 0 − x ( j)
p = p⋅
x(k ) − x( j)
y0 = y0 + y(k)·p
scrie y0
stop

56
CAPITOLUL 9 – Polinomul de interpolare al lui Lagrange

3. Exemplu de aplicare

Fie următoarea funcţie, dată tabelar:

xk -2 0 2 4 6 8 10 12
f(xk) 0.25 1 4 16 64 256 1024 4096

Să se calculeze, prin interpolare cu un polinom Lagrange, valoarea funcţiei f în


punctul x = 5.
Trebuie observat, mai întâi, că punctele din tabel au fost extrase din
mulţimea de valori ale funcţiei f(x) = 2x; astfel, atunci când se va calcula
valoarea aproximată prin interpolare, se va putea aprecia şi calitatea aproximării,
valoarea exactă fiind cunoscută (25 = 32).
‰ Dacă se utilizează pentru interpolare doar cele două puncte din mijlocul
tabelei de valori (x0 = 4 şi x1 = 6), polinomul de interpolare este de gradul
întâi (interpolare liniară):
x−6 x−4
L1 (x ) = 16 ⋅ + 64 ⋅ = 24 ⋅ x − 80 ;
4−6 6−4
rezultă, de aici, L1(5) = 40. Eroarea relativă de aproximare este, în acest
40 − 32
caz ε1 (5) = ⋅ 100 = 25% - evident, o valoare inacceptabil de mare.
32
‰ Dacă se utilizează patru noduri de interpolare (x0 = 2, x1 = 4, x2 = 6 şi
x3 = 8) polinomul Lagrange de gradul trei rezultă
L 3 (x ) = 4 ⋅
(x − 4)(x − 6)(x − 8) + 16 ⋅ (x − 2)(x − 6)(x − 8) +
(2 − 4)(2 − 6)(2 − 8) (4 − 2)(4 − 6)(4 − 8)
+ 64 ⋅
(x − 2)(x − 4)(x − 8) + 256 ⋅ (x − 2)(x − 4)(x − 6) ,
(6 − 2)(6 − 4)(6 − 8) (8 − 2)(8 − 4)(8 − 6)
9 45 2
respectiv L 3 (x ) = ⋅ x 3 − ⋅ x + 78 ⋅ x − 80. Se obţine, astfel,
4 2
L3(5) =28.750, cu o eroare relativă de -10.156 % faţă de valoarea exactă.
‰ În cazul utilizării a şase noduri de interpolare (de la x0 = 0 la x6 = 10), cu
ajutorul unui program de calcul special destinat pentru construcţia
polinomului de interpolare Lagrange, se obţine L5(5) = 33.496 cu
ε5(5) = 4.675 %.
‰ Dacă se utilizează ca noduri de interpolare a tuturor celor opt puncte din
tabel, cu acelaşi program se obţine L7(5) = 31.271, respectiv
ε7(5) = -2.278 %.

57
METODE NUMERICE

Evident, în exemplul dat nodurile de interpolare au fost alese relativ


rare, iar punctul în care s-a aproximat cu polinomul Lagrange valoarea funcţiei
este amplasat cât mai defavorabil posibil (la mijlocul distanţei dintre două
noduri succesive); cu toate acestea, se poate remarca, în cazul utilizării mai
multor noduri de interpolare, o precizie relativ buna de aproximare.

4. Chestiuni de verificare

4.1. Fie următoarea funcţie, dată tabelar:

xk -2 0 2 6 8 10 12
f(xk) 0.25 1 4 64 256 1024 4096

Să se calculeze, prin interpolare cu un polinoame Lagrange, de grad 3, 4 şi 5,


valoarea funcţiei f în punctele x0 = 1, 2, 3, 4, 5.

4.2. Fie următoarea funcţie, dată tabelar:


xk -2 0 2 4 6
f(xk) 0.11 1 9 81 729

Să se calculeze, prin interpolare cu un polinoame Lagrange, de grad 2, 3, şi 4,


valoarea funcţiei f în punctele x0 = -1, 1, 3, 5.

58
CAPITOLUL 10 – Polinomul de interpolare al lui Newton

Capitolul 10

POLINOMUL DE INTERPOLARE NEWTON

1. Noţiuni teoretice

Fie funcţia f tabelata în puncte echidistante şi fie h pasul tabelei de


valori (xk+1 - xk = h, pentru orice k = 0, 1, 2, . . . n-1). Se numeşte diferenţă
finită la dreapta (progresive), de ordinul întâi, pentru funcţia f expresia
Δf (x ) = f (x + h ) − f (x ) . (1)
Diferenţele finite de ordin superior se definesc în mod recurent:

( )
Δn f (x ) = Δ Δn −1f (x ) = Δn −1 (Δf (x )) (2)

k xk yk Δyk Δ2yk Δ3yk Δ4yk


0 x0 y0
Δy0
1 x1 y1 Δ2y0
Δy1 Δ3y0
2 x2 y2 Δ2y1 Δ4y0
Δy2 Δ3y1
3 x3 y3 Δ2y2
Δy3
4 x4 y4
59
METODE NUMERICE

În aplicaţii, calculul diferenţelor finite se face mai comod, prin simple


operaţii de scădere, pornind de la tabela de valori a funcţiei f dispusă vertical;
spre exemplu, pentru o tabelă în cinci puncte, reprezentarea este cea de mai sus.
Diferenţele finite, de un anumit ordin, se calculează scăzând
diferenţele finite de ordin inferior între care se găsesc, situate la stânga.
În cazul în care se doreşte aproximarea unei funcţii prin interpolare,
dacă nodurile de interpolare sunt echidistante se poate utiliza polinomul de
interpolare al lui Newton, construit pe baza diferenţelor finite. În cele ce
urmează se vor utiliza diferenţele finite la dreapta (regresive).
Se pune deci problema determinării unui polinom algebric de grad mai
mic sau egal cu n, care să satisfacă condiţiile de interpolare P(xk) = yk,
k = 0, 1, 2, . . . n. Se construieşte un polinom de forma

N dn (x ) = c0 + c1 (x − x 0 ) + c 2 (x − x 0 )(x − x1 ) + K +
(3)
+ c n (x − x 0 )(x − x1 )K(x − x n −1 ).
Impunând condiţiile de interpolare polinomului de mai sus, rezultă
sistemul
⎧c 0 = y0 ;
⎪c + c 1 (x 1 − x 0 ) = y 1 ;
⎪⎪ 0
⎨c 0 + c1 (x 2 − x 0 ) + c 2 (x 2 − x 0 )(x 2 − x 1 ) = y 2 ;
⎪M

+ c1 (x n − x 0 ) + c 2 (x n − x 0 )(x n − x 1 ) + c n (x n − x 0 )K (x n − x n −1 ) = y n .
⎪⎩c 0
(4)
Dacă se ţine seama că nodurile de interpolare sunt echidistante, cu
pasul h, sistemul (4) se poate scrie mai simplu ca
⎧c 0 = y0 ;
⎪c + h ⋅ c1 = y 1 ;
⎪ 0

⎨c 0 + 2 ⋅ h ⋅ c1 + 1 ⋅ 2 ⋅ h 2 ⋅ c 2 = y 2 ; (5)
⎪M

⎪⎩c 0 + n ⋅ h ⋅ c1 + n (n − 1) ⋅ h 2 ⋅ c 2 + K + 1 ⋅ 2 ⋅ K ⋅ n ⋅ h n ⋅ c n = y n .

Sistemul (5) este un sistem de (n+1) ecuaţii cu (n+1) necunoscute -


c0, c1, c2, . . . cn - compatibil determinat. Pentru rezolvare, se înlocuieşte
valoarea lui c0 din prima ecuaţie în a doua şi se află c1, apoi se înlocuiesc
valorile lui c0 şi c1 în a treia ecuaţie şi se determină c2 ş.a.m.d. Rezultă:
Δy 0 Δ2 y 0 Δn y 0
c0 = y0; c1 = ; c2 = ;K c n = . (6)
h 2!⋅h 2 n!⋅h n
60
CAPITOLUL 10 – Polinomul de interpolare al lui Newton

Cu ajutorul acestor valori ale coeficienţilor se obţine formula explicită


a polinomului de interpolare Newton de gradul n, construit cu diferenţe finite la
dreapta:
Δy 0 Δ2 y 0
N n (x ) = y 0 +
d
(x − x 0 ) + 2 ⋅ (x − x 0 ) ⋅ (x − x 1 ) + K +
1!⋅h 2!⋅h
(7)
n
Δ y0
+ (x − x 0 )(x − x 1 )K (x − x n −1 ).
n!⋅h n
În mod cu totul analog se poate construi si polinomul de interpolare
Newton de gradul n, pe baza diferenţelor finite la stânga,

∇y n ∇2yn
N sn (x ) = y n + (x − x n ) + ⋅ (x − x n ) ⋅ (x − x n −1 ) + K +
1!⋅h 2!⋅h 2
(8)
∇n yn
+ (x − x n )(x − x n −1 )K (x − x 1 ).
n!⋅h n

Polinomul lui Newton construit pe baza diferenţelor finite la dreapta


se recomandă a fi utilizat când se doreşte estimarea valorilor funcţiei y = f(x) în
puncte mai apropiate de x0 decât de xn (situate în prima jumătate a tabelei de
valori), în timp ce varianta construită cu diferenţe finite la stânga va fi folosită
pentru aproximarea valorilor funcţiei în puncte din vecinătatea lui xn (din a doua
jumătate a tabelei de valori).
Pentru a se pune în evidenţă eroarea aproximării prin cele două
polinoame de interpolare Newton, se pot face aproximările

( n +1) Δn +1 y 0 ∇ n +1 y n
f (ξ ) ≅ , respectiv f (n +1) (ξ ) ≅
n +1
. n +1
(9)
h h

Din cele de mai sus rezultă expresiile funcţiilor eroare pentru cele
două polinoame Newton (cu diferenţe finite la dreapta, respectiv la stânga):

Δn +1 y 0
ε dn (x ) ≅ (x − x 0 )(x − x 1 )K (x − x n ) , (10)
(n + 1)!⋅h n +1
respectiv

∇ n +1 y n
ε sn (x ) ≅ (x − x 0 )(x − x 1 )K (x − x n ) . (11)
(n + 1)!⋅h n +1

61
METODE NUMERICE

2. Algoritmul metodei

program Polinomul Newton


întreg np ; gradul polinomului
întreg n ; ordinul ultimului nod de
interpolare
întreg i, k ; contori
tablou real x(n), y(n) ; nodurile de interpolare
tablou real D(n,n) ; tabloul diferenţelor finite
real x0 ;abscisa punctului de interpolare
real y0 ; valoarea interpolată a funcţiei
real p ; variabilă auxiliară
real h ; pasul reţelei de noduri
; introducerea datelor de intrare
citeşte n;
citeşte np;
citeşte x0;
pentru k = 0, n repetă
citeşte x(k)
citeşte y(k)
D(0,k) = y(k)
; calculul diferenţelor finite
pentru i = 1, n repetă
pentru k = 0, n-i repetă
D(i,k) = D(i-1,k+1) - D(i-1,k)
; construcţia polinomului Newton
h = x(1) - x(0)
y0 = D(0,0)
pentru i = 1,np repetă
p=1
pentru k = 0, i-1 repetă
x 0 − x(k )
p = p⋅
(k + 1) ⋅ h
y0 = y0 + D(i,0)·p
scrie y0
stop

62
CAPITOLUL 10 – Polinomul de interpolare al lui Newton

3. Exemplu de aplicare

Fie următoarea funcţie, dată tabelar:

xk -2 0 2 4 6 8 10 12
f(xk) 0.25 1 4 16 64 256 1024 4096

Să se calculeze, prin interpolare cu polinoame Newton, bazate pe diferenţe finite


progresive - respectiv regresive - de diferite grade valoarea funcţiei f în punctele
x = 1, 5, 9.
Se constată că şi de această dată punctele din tabelă sunt extrase din
graficul funcţiei f(x) = 2x, cu scopul declarat de a putea evalua mărimea erorilor
de aproximare; se ştie deci, apriori, că f(1) = 21 = 2, f(5) = 25 = 32 iar
f(9) = 29 = 512.
Se construieşte tabelul diferenţelor finite, pe baza valorilor funcţiei:

k xk yk Δyk Δ2yk Δ3yk Δ4yk Δ5yk Δ6yk Δ7yk


0 -2 0.25
0.75
1 0 1 2.25
3 6.75
2 2 4 9 20.25
12 27 60.75
3 4 16 36 81 182.25
48 108 243 546.75
4 6 64 144 324 729
192 432 972
5 8 256 576 1296
768 1728
6 10 1024 2304
3072
7 12 4096

Şirul de valori din căsuţele marcate situate în partea superioară a


tabelului reprezintă diferenţele finite la dreaptă (progresive) - Δy0, Δ2y0 . . . Δ7y0
- pe baza cărora se poate construi cu relaţia (4.41) polinomul Newton de grad
mai mic sau egal cu 7.
Spre exemplu, polinomul de gradul 2 rezultă de forma
0.75
N d2 (x ) = 0.25 + (x + 2) + 2.252 (x + 2) ⋅ x = 0.28125 ⋅ x 2 + 0.9375 ⋅ x + 1 .
2 2⋅2

63
METODE NUMERICE

Şirul de valori din căsuţele marcate situate în partea inferioară a


tabelului reprezintă diferenţele finite la stânga (regresive) - ∇ yn, ∇ 2yn, . . .
∇ 7yn = Δ7y0 - pe baza cărora se poate construi cu relaţia (4.42) polinomul
Newton de grad mai mic sau egal cu 7. Astfel polinomul de gradul 3 rezultă de
forma
3072 2304
N s3 (x ) = 4096 + ⋅ (x − 12 ) + (x − 12)(x − 10) +
2 2 ⋅ 22
1728
+ (x − 12)(x − 10)(x − 8) = 36 ⋅ x 3 − 792 ⋅ x 2 + 11904 ⋅ x − 14336.
6⋅8
Prin intermediul a două programe de calcul special concepute, se
construiesc polinoamele Newton cu diferenţe finite progresive, respectiv
regresive, cu gradul n modificabil, succesiv, între 2 şi 7 (maximum posibil) şi se
calculează valorile aproximate ale funcţiei în punctele cerute. Rezultă valorile
din tabelele 1, respectiv 2.
Tab. 1
n N dn (1) ε n (1) N dn (5) ε n (5) N dn (9 ) ε n (9 )
[%] [%] [%]
2 2.219 10.95 12.719 -60.25 32.219 -93.71
3 1.719 -14.05 27.484 -14.11 129.672 -74.67
4 2.271 13.55 33.021 3.19 312.396 -38.98
5 1.560 -22.00 31.360 -2.00 476.849 -6.86
6 2.805 40.25 32.606 1.89 517.962 1.16
7 0.403 -79.85 31.271 -2.28 509.152 -0.56

Tab .2

n N sn (1) N sn (5) N sn (9)


2 15712 3424 352
3 -9236 -356 460
4 2456 -1.625 490.375
5 -172.859 24.953 501.766
6 -8.407 29.937 506.749
7 0.403 31.271 509.152

După cum se poate observa din rezultatele obţinute, în anumite cazuri


eroarea relativă este suficient de mică pentru a putea considera interpolarea
rezonabil de precisă; sunt însă şi situaţii în care erorile sunt inacceptabile.

64
CAPITOLUL 10 – Polinomul de interpolare al lui Newton

4. Chestiuni de verificare

4.1. Fie următoarea funcţie, dată tabelar:


xk -2 0 2 4 6
f(xk) 0.11 1 9 81 729

Să se calculeze, prin interpolare cu un polinoame Newton, de grad 2, 3, şi 4,


valoarea funcţiei f în punctele x0 = -1, 1, 3, 5.

4.2. Fie următoarea funcţie, dată tabelar:


xk 0 2 4 6 8
f(xk) 0 1.41 2 2.45 2.83

Să se calculeze, prin interpolare cu un polinoame Newton, de grad 2, 3, şi 4,


valoarea funcţiei f în punctele x0 = 1, 3, 5 şi 7.

65
CAPITOLUL 11 – Aproximarea cu abatere medie pătratică minimă

Capitolul 11

APROXIMAREA CU ABATERE
MEDIE PĂTRATICĂ MINMĂ.

1. Noţiuni teoretice

Dacă funcţia de aproximat este cunoscută tabelar,

xk x0 x1 ............... xm
yk = f(xk) y0 y1 ............... ym

atunci distanţa dintre aceasta şi polinomul de aproximare cu abatere medie


pătratică minimă Pn se calculează ca

m
1
d(Pn , f ) = ⋅ ∑ [Pn (x i ) − y i ]2 . (1)
m + 1 i =0

Minimizarea abaterii medii pătratice este echivalentă cu determinarea


valorii minime a sumei de sub radical; rezultă, că se caută minimul funcţiei
S : R n +1 → R ,
m
S(a 0 , a 1 , K a n ) = ∑ [Pn (x i ) − y i ]2 . (2)
i =0

67
METODE NUMERICE

Determinarea coeficienţilor polinomului Pn se face impunând condiţia


ca derivatele parţiale ale funcţiei S să se anuleze. Cum

( )
m
∂S
= 2∑ a 0 + a 1 ⋅ x i + K + a n ⋅ x i n − y i ⋅ x i k = 0 , k = 0, 1, 2, . . . n, (3)
∂a k i =0

rezultă sistemul de ecuaţii

∑ (a )
m m
0 + a 1 ⋅ x i + K + a n ⋅ x i n ⋅ x i k =∑ y i ⋅ x i k , k = 0, 1, 2, . . . n. (4)
i =0 i =0

Introducând notaţiile
m m
u k = ∑ x i k , respectiv v k = ∑ y i ⋅ x i k , (5)
i =0 i =0

sistemul (4) poate fi scris matriceal sub forma

⎛u0 u 1 K u n ⎞ ⎛ a 0 ⎞ ⎛ v1 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ u1 u 2 K u n +1 ⎟ ⎜ a 1 ⎟ ⎜ v 2 ⎟
⎜ M ⎟ ⋅ ⎜ M ⎟ = ⎜ M ⎟. (6)
⎜⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎝un u n +1 K u n + n ⎟⎠ ⎜⎝ a n ⎟⎠ ⎜⎝ v n ⎟⎠

În cazul particular în care polinomul de aproximarea cu abatere medie


pătratică minimă este de gradul întâi, p1(x) = a0 + a1·x, acesta poartă numele de
„dreaptă de regresie”, coeficienţii acesteia calculându-se cu formulele simple

u 2 ⋅ v 0 − u 1 ⋅ v1 u 0 ⋅ v1 − u 1 ⋅ v 0
a0 = , respectiv a 1 = , (7)
u 0 ⋅ u 2 − u12 u 0 ⋅ u 2 − u12

obţinute prin rezolvarea sistemului (6).

2. Algoritmul metodei

program ampm

întreg n ; numărul punctelor din tabel


întreg k ; contor
tablou real x(n), y(n) ; punctele din tabelul de valori
real u0, u1, u2, u3, u4 ; sume de puteri ale absciselor
68
CAPITOLUL 11 – Aproximarea cu abatere medie pătratică minimă

real v0, v1, v2 ; sume mixte


real a0, a1, a2 ; coeficienţii polinomului de
aproximare
; introducerea datelor de intrare

citeşte n
citeşte x0
pentru k = 0, n repetă
citeşte x(k)
citeşte y(k)

; calculul sumelor de puteri şi determinarea funcţiei de aproximare

u0 = n + 1; u1 = 0; u2 = 0; u3 = 0; u4 = 0; v0 = 0; v1 = 0; v2 = 0
pentru k = 0, n repetă
u1 = u1 + x(k)
u2 = u2 + x(k)2
u3 = u3 + x(k)3
u4 = u4 + x(k)4
v0 = v0 + y(k)
v1 = v1 + x(k)·y(k)
v2 = v2 + x(k)2·y(k)
a0, a1, a2 = Metoda Gauss(u0, u1, u2, u3, u4, v0, v1, v2)
scrie a0, a1, a2
stop

3. Exemplu de aplicare

Să se găsească polinomul de gradul doi P2(x) = a0 + a1·x + a2·x2 care


aproximează cu abatere medie pătratică minimă funcţia dată prin tabelul de mai
jos:

xk 0 1 2 3 4
yk = f(xk) 1 2 4 8 16

4 4
Se calculează cu (4.99) sumele u 0 = ∑ x i = 5 ; u 1 = ∑ x i 1 = 10 ;
0

i =0 i =0
4 4 4 4
u 2 = ∑ x i 2 = 30 ; u 3 = ∑ x i 3 = 100; u 4 = ∑ x i 4 = 354 ; v 0 = ∑ x i 0 ⋅ y i = 31 ;
i =0 i =0 i =0 i =0
4 4
v1 = ∑ x i ⋅ y i = 98 ; v 2 = ∑ x i 2 ⋅ y i = 346 .
i =0 i =0
69
METODE NUMERICE

⎛ 5 10 30 ⎞ ⎛ a 0 ⎞ ⎛ 31 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
Rezultă sistemul ⎜ 10 30 100 ⎟ ⋅ ⎜ a 1 ⎟ = ⎜ 98 ⎟ , care, rezolvat
⎜ 30 100 354 ⎟ ⎜ a ⎟ ⎜ 346 ⎟
⎝ ⎠ ⎝ 2⎠ ⎝ ⎠
printr-un program de calcul bazat pe metoda Gauss, conduce la soluţiile: a0 =
1.2857; a1 = -0.9714; a2 = 1.1429. S-a obţinut, astfel,

P2 (x ) = 1.2857 − 0.9714 ⋅ x + 1.1429 ⋅ x 2 .


Pentru a putea evalua precizia de aproximare, se calculează valorile
lui P2 în abscisele punctelor din tabel şi erorile faţa de funcţia dată în aceste
puncte; rezultă:
P2(0) = 1.2857; ε2(0) = 0.2857;
P2(1) = 1.4572; ε2(1) = -0.5428;
P2(2) = 3.9145; ε2(2) = -0.0855;
P2(3) = 8.6576; ε2(3) = -0.3424;
P2(4) = 15.6865; ε2(4) = -0.3135.

4. Chestiuni de verificare

Să se determine funcţiile de gradul al doilea care aproximează cu


abatere medie pătratică minimă următoarele funcţii date tabelar:

4.1. xk -2 0 2 4 6
f(xk) 0.11 1 9 81 729

4.2. xk 0 2 4 6 8
f(xk) 0 1.41 2 2.45 2.83

70
CAPTOLUL 12 – Derivarea cu ajutorul polinomului de interpolare Lagrange

Capitolul 12

DERIVAREA CU AJUTORUL POLINOMULUI


DE INTERPOLARE LAGRANGE.

1. Noţiuni teoretice

În cazul unei funcţii dată tabelar prin (n+1) puncte, se poate construi
polinomul de interpolare Lagrange şi se poate scrie

n (x − x 0 )K (x − x n ) (n +1)
f (x ) = ∑ y k ⋅ a k (x ) + ⋅f [ξ(x )]. (1)
k =0 (n + 1)!
Prin derivare în raport cu x în relaţia (1), în condiţiile în care
x = xj, oricare ar fi j cuprins între 0 şi n rezultă

( )
n f [ ( )]
(n +1) ξ x
n
( ) (n + 1) ! ⋅ ∏ (x j − x k ) .
f ′ x j = ∑ y k ⋅ a k′ x j +
j
(2)
k =0 k =0
k≠ j

Relaţia (2) poartă numele de formulă de aproximare pentru f’(xj) în


(n+1) puncte, deoarece utilizează o combinaţie liniară de (n+1) valori ale
funcţiei f.
În general, utilizarea unui număr mai mare de puncte în ecuaţia (5.11)
va genera o precizie mai mare, dar numărul mare al evaluărilor funcţiei şi
creşterea erorilor de rotunjire limitează acest lucru.
71
METODE NUMERICE

Se pot deduce, în continuare, câteva formule utile de derivare în trei


puncte; dacă se calculează derivatele termenilor ak se obţine

⎡ 2 ⋅ x j − x1 − x 2 ⎤ ⎡ 2 ⋅ x j − x0 − x2 ⎤
( )
f′ xj = ⎢
(x − x )( x − x ) ⎥ ⋅ f ( x 0 ) + ⎢
( x − x )( x − x ) ⎥ ⋅ f (x 1 ) +
⎣ 0 1 0 2 ⎦ ⎣ 1 0 1 2 ⎦
(3)
⎡ 2 ⋅ x j − x 0 − x1 ⎤
[ ( )]
2
+⎢
1
⎥ ⋅ f (x 2 ) + ⋅ f ξ x j ⋅ ∏ x j − x i ,
′′′ ( )
⎣ (x 2 − x 0 )(x 2 − x1 )⎦ 6 i=0
i≠ j

pentru j = 0, 1, 2.
În cazul nodurilor egal depărtate, adică

x1 = x0 + h şi x2 = x0 + 2·h, (4)

relaţia (3) devine, succesiv, pentru j = 0, 1, respectiv, 2:

2
1 ⎡ 3 1 ⎤ h
f ′(x 0 ) = ⋅ − ⋅ f (x 0 ) + 2 ⋅ f (x 0 + h ) − ⋅ f (x 0 + 2 ⋅ h )⎥ + ⋅ f ′′′(ξ 0 ) , (5)
h ⎢⎣ 2 2 ⎦ 3

1 ⎡ 1 1 ⎤ h2
f ′(x1 ) = ⋅ ⎢− ⋅ f (x 0 ) + ⋅ f (x 0 + 2 ⋅ h )⎥ − ⋅ f ′′′(ξ1 ) , (6)
h ⎣ 2 2 ⎦ 6

1 ⎡1 3 ⎤ h2
f ′(x 2 ) = ⋅ ⎢ ⋅ f (x 0 ) − 2 ⋅ f (x 0 + h ) + ⋅ f (x 0 + 2 ⋅ h )⎥ + ⋅ f ′′′(ξ 2 ) . (7)
h ⎣2 2 ⎦ 3

Dacă în ultimele două relaţii se fac substituţiile x0 + h = x0, respectiv,


x0 + 2·h = x0, după care, pentru generalizare, se înlocuieşte x0 cu xk (inclusiv în
(5), rezultă formulele în trei puncte pentru calculul primei derivate a unei funcţii,
într-un punct oarecare xk:

1
f ′(x k ) ≅ ⋅ [− 3 ⋅ f (x k ) + 4 ⋅ f (x k + h ) − f (x k + 2 ⋅ h )] , (8)
2⋅h

1
f ′(x k ) ≅ ⋅ [− f (x k − h ) + f (x k + h )], (9)
2⋅h

1
f ′(x k ) ≅ ⋅ [f (x k − 2 ⋅ h ) − 4 ⋅ f (x k − h ) + 3 ⋅ f (x k )]. (10)
2⋅h

72
CAPTOLUL 12 – Derivarea cu ajutorul polinomului de interpolare Lagrange

Cu totul asemănător se pot deduce formule pentru calculul primei


derivate în mai mult de trei puncte - spre exemplu, mai jos este prezentată una
dintre formulele în cinci puncte:
1
f ′(x k ) ≅ ⋅ [f (x k − 2 ⋅ h ) − 8 ⋅ f (x k − h ) + 8 ⋅ f (x k + h ) − f (x k + 2 ⋅ h )] . (11)
12 ⋅ h

2. Algoritmul metodei

Program Derivare Lagrange


real x0 ; nodul iniţial
real h ; pasul reţelei
real x ; abscisa punctului curent
întreg n ; dimensiunea tablourilor
întreg i ; contor
tablou real y(n) ; tabloul valorilor funcţiei
tablou real dy(n) ; tabloul valorilor derivatei
citeşte h, x0, n
pentru i = 0, n repetă
citeşte y(i)
− 3 ⋅ y (0 ) + 4 ⋅ y(1) − y (2 )
dy(0) = ; formula (8)
2⋅h
y(n − 2 ) − 4 ⋅ y (n − 1) + 3 ⋅ y(n)
dy(n) = ; formula (10)
2⋅h
pentru i = 1, n -1 repetă
y(i + 1) − y(i − 1)
dy(i) = ; formula (9)
2⋅h
pentru i = 0, n repetă
x = x0 + i·h
scrie x, dy(i)
stop

3. Exemplu de aplicare

Fie următorul tabel,

xk 0 1 2 3 4
f(xk) 1 2 4 8 16

conţinând cinci puncte din graficul funcţiei f(x) = 2x. Să se calculeze valoarea
primei derivate a funcţiei f în punctul x2 = 2.
73
METODE NUMERICE

Evident, pentru rezolvarea problemei se poate utiliza oricare dintre


formulele în trei sau în cinci puncte; pentru a putea analiza oportunitatea
utilizării uneia sau a alteia dintre acestea, în continuare se calculează f’(2),
succesiv, cu formulele (8) . . . (11); se obţin, astfel, următoarele rezultate:
1
¾ f ′(2 ) ≅ ⋅ (− 3 ⋅ 4 + 4 ⋅ 8 − 16) = 2 ;
2
1
¾ f ′(2 ) ≅ ⋅ (− 2 + 8) = 3 ;
2
1
¾ f ′(2 ) ≅ ⋅ (1 − 4 ⋅ 2 + 3 ⋅ 4 ) = 2.5 ;
2
1
¾ f ′(2 ) ≅ ⋅ (1 − 8 ⋅ 2 + 8 ⋅ 8 − 16) = 2.75 .
2
Cum valoarea exactă a derivatei pentru x=2 este
f ′(2 ) = 4 ⋅ ln 2 ≅ 2.772 , se poate remarca faptul că formulele prezentate dau, în
general rezultate satisfăcătoare, iar în cazul utilizării a cinci puncte în loc de trei
aduce o îmbunătăţire simţitoare a preciziei de aproximare.

4. Chestiuni de verificare

4.1. Fie următoarea funcţie, dată tabelar:


xk -2 0 2 4 6
f(xk) 0.11 1 9 81 729

Să se calculeze, cu ajutorul polinomului de interpolare Lagrange, derivatele


funcţiei f în punctele -2, 0, 2, 4, 6.

4.2. Fie următoarea funcţie, dată tabelar:


xk 0 2 4 6 8
f(xk) 0 1.41 2 2.45 2.83

Să se calculeze, cu ajutorul polinomului de interpolare Lagrange, derivatele


funcţiei f în punctele 0, 2, 4, 6, 8.

74
CAPITOLUL 13 – Metode numerice pentru calculul integralei definite

Capitolul 13

METODE NUMERICE PENTRU CALCULUL


INTEGRALEI DEFINITE.

1. Noţiuni teoretice

Fie o diviziune a = x0 < x1 < x2 < . . . < xn = b a intervalului [a, b], cu


noduri echidistante. Folosind proprietatea de aditivitate a integralei, se poate
scrie
b n −1 x
I = ∫ f (x )dx = ∑∫ (x )dx .
k +1
f (1)
a xk
k =0

Fie aproximarea funcţiei f pe intervalul [xk, xk+1] printr-un polinom de


interpolare Newton de gradul întâi
Δy k
f (x ) ≅ y k + (x − x k ) , (2)
1!⋅h
unde h reprezintă pasul diviziunii iar yk = f(xk); înlocuind f din (1) cu valoarea
aproximativă dată de (2) rezultă

x k +1 ⎡ Δy k
(x − x k )⎤⎥dx .
x k +1
Ik = ∫ f (x )dx ≅ ∫ ⎢⎣ y k + (3)
xk xk 1!⋅h ⎦

x − xk
Prin schimbarea de variabilă = t , din (3) se obţine
h
75
METODE NUMERICE

1 ⎛ Δy ⎞
I k ≅ h ⋅ ∫ (y k + t ⋅ Δy k )dt =h ⎜ y k + k ⎟ . (4)
0 ⎝ 2 ⎠
h
Cum Δy k = y k +1 − y k , rezultă că I k ≅ (y k + y k +1 ) şi, în final,
2
b h n −1
∫a f (x )dx ≅ ⋅ ∑ ( y k + y k +1 ) . (5)
2 k =0

În formă desfăşurată, relaţia (5) se scrie

b h
∫a f (x )dx ≅ 2 (y 0 + 2 ⋅ y1 + 2 ⋅ y 2 + K + 2 ⋅ y n −1 + y n ) . (5’)

Formula astfel dedusă poartă numele de formula trapezelor,


deoarece, aşa după cum se poate observa din figura 1, se aproximează integrala
I, reprezentată geometric prin aria suprafeţei cuprinse între curba
y = f(x), axa Ox şi ordonatele ridicate în x = a şi x = b, prin suma ariilor
suprafeţelor trapezelor de forma XkXk+1Mk+1Mk, construite cu ajutorul diviziunii
considerate.
Pentru evaluarea erorii pe care o implică aplicarea formulei trapezelor
la calcularea unei integrale, fie F o primitivă a funcţiei integrant f; conform
formulei Leibniz - Newton, pentru intervalul [xk, xk+1] se poate scrie

h
[f (x k ) + f (x k +1 )] = F(x k +1 ) − F(x k ) − h [f (x k ) + f (x k +1 )]
x k +1
ε k (f ) = ∫ f (x )dx −
xk 2 2
(6)

Fig.1 - Metoda trapezelor - interpretare geometrică

Dacă se consideră dezvoltările în serie Taylor ale funcţiilor f şi F într-


o vecinătate a punctului xk şi se ţine cont de faptul că F’ = f, rezultă:
76
CAPITOLUL 13 – Metode numerice pentru calculul integralei definite

h h2
f (x k +1 ) = f (x k ) + ⋅ f ′(x k ) + ⋅ f ′′(ξ k ) ; (7)
1! 2!

h h2 h3
F(x k +1 ) = F(x k ) + ⋅ f (x k ) + ⋅ f ′(x k ) + ⋅ f ′′(ξ k ) . (8)
1! 2! 3!

În relaţiile de mai sus ξk este un punct oarecare al intervalului


[xk, xk+1]. Prin înlocuirea relaţiilor (7) şi (8) în (6) se obţine
h3
ε k (f ) = − ⋅ f ′′(ξ k ) . (9)
12
Însumând erorile de aproximare de pe fiecare subinterval (dând valori
b−a
lui k de la 0 la n-1 în (9)) şi având în vedere că h = , se poate calcula
n
eroarea totală generată de aplicarea formulei trapezelor:
n −1
h 2 n −1
ε T (f ) = ∑ ε k (f ) = − ⋅ ∑ f ′′(ξ k ) = −
(b − a )3
⋅ f ′′(ξ ) , (10)
12 2
k =0 k =0 12 n

1 n −1
unde punctul ξ a fost ales astfel încât f ′′(ξ ) = ⋅ ∑ f ′′(ξ k ) .
n k =0
În cazul în care derivata a doua a funcţiei admite un majorant, adică
(∃)M > 0 astfel încât f ′′(x ) ≤ M, (∀)x ∈ (a , b ) , rezultă, în final
M (b − a )3
ε T (f ) ≤ . (11)
12n 2
Analizând formula (11) se observă că singura cale de reducere a erorii
de aproximare este creşterea numărului n (utilizarea unui număr cât mai mare de
puncte intermediare).
Formula trapezelor a fost dedusă aproximând funcţia integrant printr-
un polinom de interpolare Newton de gradul întâi, pe fiecare subinterval. Dacă
gradul polinomului Newton de aproximare se ia doi, procedând analog ca mai
sus se obţine, în cazul utilizării unei diviziuni pentru care n este par, formula de
cuadratură Cavalieri - Simpson:
h
[y 0 + 4 y1 + 2 y 2 + 4 y 3 + K + 2 y n − 2 + 4 y n −1 + y n ].
b
∫a f (x )dx ≅ (12)
3
Eroarea pe care o implică aplicarea formulei Cavalieri - Simpson este:
M (b − a )5
ε T (f ) ≤ . (13)
180n 4
77
METODE NUMERICE

Comparând expresiile erorilor pentru cele două formule, (11) şi (13),


se poate vedea că formula Cavalieri - Simpson conduce, pentru acelaşi număr de
noduri, la o precizie mai bună decât formula trapezelor.
Prin utilizarea unor polinoame de interpolare de grad superior, se pot
pune în evidenţă şi alte formule de cuadratură, cu precizie şi mai mare; cu toate
acestea, având în vedere rezultatele foarte bune care se pot obţine prin aplicarea
formulelor (5) şi (12), considerăm suficientă cunoaşterea acestora.

2. Algoritmii metodelor

Program Metoda trapezelor


real a, b ; intervalul de integrare
real h ; pasul diviziunii
real I ; valoarea integralei calculate
întreg n ; numărul de subintervale
întreg j ; contor
funcţie f(x:real):real
f = ................. ; expresia analitică a funcţiei
integrant
returnează f
citeşte a, b, n
b−a
h=
n
I=0
pentru j = 0, n repetă
dacă j = 0 sau j = n atunci
I = I + f(a + j·h)
altfel I = I + 2·f(a + j·h)
h
I = I⋅
2
scrie I
stop
Program Metoda Cavalieri_Simpson
real a, b ; intervalul de integrare
real h ; pasul diviziunii
real I ; valoarea integralei calculate
întreg n ; numărul de subintervale
întreg j ; contor
funcţie f(x:real):real
f = ................. ; expresia analitică a funcţiei
integrant
78
CAPITOLUL 13 – Metode numerice pentru calculul integralei definite

returnează f
citeşte a, b, n
b−a
h=
n
I=0
pentru j = 0, n repetă
dacă j = 0 sau j = n atunci
I = I + f(a + j·h)
altfel dacă j mod 2 = 1 atunci
I = I + 4·f(a + j·h)
altfel I = I + 2·f(a + j·h)
h
I = I⋅
3
scrie I
stop

3. Exemplu de aplicare
Să se calculeze, cu ajutorul formulelor de cuadratură, integralele
4 10 1
I1 = ∫ 2 x dx şi I 2 = ∫ dx .
0 1 x

În primul rând trebuie observat că ambele integrale se pot calcula


analitic, cu ajutorul formulei Leibniz - Newton. Astfel,
4
2x 15 10
I1 = = = 21.6404256133 , respectiv I 2 = ln x 1 = ln10 = 2.3025850930 .
ln 2 0 ln 2
Se calculează apoi, cu ajutorul unui program special destinat, valorile
aproximative ale integralelor, atât cu formula trapezelor cât şi cu formula
Cavalieri - Simpson, pentru diferite numere de subintervale, n. Rezultatele
obţinute sunt următoarele:
Tab. 1
Formula n I1 I2
10 21.77887776 2.36521443
trapezelor 102 21.64181188 2.30325280
103 21.64043948 2.30259177
104 21.64042575 2.30258516
10 21.64112961 2.31197800
Cavalieri - Simpson 102 21.64042568 2.30258723
103 21.6404256133 2.3025850930

79
METODE NUMERICE

După cum se poate observa din tabelul 1, rezultatele obţinute confirmă


precizia (mult) mai bună a formulei Cavalieri - Simpson; de asemenea, se poate
remarca şi calitatea deosebită a rezultatelor - în cazul formulei amintite, pentru
n = 103 diviziuni ale intervalului, primele zece zecimale fiind identice cu cele ale
valorii exacte.

4. Chestiuni de verificare

Să se calculeze, cu ajutorul formulei trapezelor şi apoi cu formula


Cavalieri – Simpson, următoarele integrale:

5
4.1. ∫1 x dx

5 x
4.2. ∫0 3 dx

∫0 (3x )
7 2
4.3. − 2 x + 5 dx

Comparaţi rezultatele obţinute prin cele două metode.

80

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