Documente Academic
Documente Profesional
Documente Cultură
CUPRINS
Capitolul 1
REPREZENTAREA ALGORITMILOR
ÎN PSEUDOCOD.
1. Caracterizarea lucrării
7
METODE NUMERICE
Δf ≅ df = f x ⋅ Δx + f y ⋅ Δy ≤ f x ⋅ Δx + f y ⋅ Δy . (2)
8
CAPITOLUL 1 – Reprezentarea algoritmilor în pseudocod
Δf fx fy
≤ ⋅ Δx + ⋅ Δy , (3)
f f f
Δ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
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
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
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
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
1. Principiul metodei
17
METODE NUMERICE
b−a
x k = a + (k − 1) ⋅ , k = 1,2...(n − 1) , (1)
n
18
CAPITOLUL 2 – Rezolvarea ecuaţiilor algebrice prin metoda generală
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
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
20
CAPITOLUL 2 – Rezolvarea ecuaţiilor algebrice prin metoda generală
4. Chestiuni de verificare
21
CAPITOLUL 3 – Rezolvarea ecuaţiilor algebrice prin metoda bisecţiei
Capitolul 3
1. Principiul metodei
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
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 →∞
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
3. Exemplu de aplicare
4. Chestiuni de verificare
26
CAPITOLUL 4 – Rezolvarea ecuaţiilor algebrice prin metoda Newton - Raphson
Capitolul 4
1. Principiul metodei
27
METODE NUMERICE
A0
A1
A2
f (x )
ϕ(x ) = x − (4)
f ′(x )
ϕ(x ) = ϕ(ξ ) +
( x − ξ)
⋅ ϕ′(ξ ) +
( x − ξ )2
⋅ ϕ′′(ξ ) + . . . (7)
1! 2!
(x n − ξ )2
ϕ(x n ) ≅ ξ + ⋅ ϕ′′(ξ ) . (8)
2
ϕ′′(δ )
x n +1 − ξ ≅ ⋅ (x n − ξ ) 2 , (9)
2
ϕ′′(ξ ) 2
ε n +1 ≅ εn . (10)
2
29
METODE NUMERICE
poate fi, uneori, dificil (sau chiar imposibil, pentru funcţii care nu sunt
cunoscute analitic, ci doar tabelar).
2. Algoritmul metodei
3. Exemplu de aplicare
30
CAPITOLUL 4 – Rezolvarea ecuaţiilor algebrice prin metoda Newton - Raphson
4. Chestiuni de verificare
31
CAPITOLUL 5 – Rezolvarea ecuaţiilor algebrice prin metoda punctului fix
Capitolul 5
1. Principiul metodei
33
METODE NUMERICE
Dacă funcţia g este derivabilă pe intervalul [a, b], iar derivata acesteia
îndeplineşte condiţia
g ′(x ) ≤ λ < 1, (∀)x ∈ [a , b], (2)
x n +1 − ξ ≤ λ ⋅ x n − ξ , (5)
34
CAPITOLUL 5 – Rezolvarea ecuaţiilor algebrice prin metoda punctului fix
2. Algoritmul metodei
3. Exemplu de aplicare
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.
4. Chestiuni de verificare
36
CAPITOLUL 6 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Gauss
Capitolul 6
1. Principiul metodei
⎧ 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
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⎠
⎛ 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
î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.
2. Algoritmul metodei
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
⎧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
1. Principiul metodei
⎧ 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
⎛ 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 ⎠
x ( k +1) = A ⋅ x ( k ) + u . (5)
⎛ ⎞
( k +1) 1 ⎜ n
(k ) ⎟
xi = ⎜ b i − ∑ a ij ⋅ x j ⎟ , i = 1, 2, . . . n. (6)
a ii ⎜ j=1 ⎟
⎝ j≠ i ⎠
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 ⎠
( )
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
3. Exemplu de aplicare
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
4. Chestiuni de verificare
⎧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
1. Principiul metodei
⎛ ⎞
( k +1) 1 ⎜ n
(k ) ⎟
xi = ⎜ b i − ∑ a ij ⋅ x j ⎟ , i = 1, 2, . . . n. (1)
a ii ⎜ j=1 ⎟
⎝ j≠ i ⎠
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
( )
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
; 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
⎧
⎪ 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
4. Chestiuni de verificare
⎧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
1. Noţiuni teoretice
xk x0 x1 ............... xn
f(xk) f(x0) f(x1) ............... f(xn)
f (x k ) = Pn (x k ), k = 0,1,2, K n . (1)
⎧ 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 .
⎧ ϕ 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
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
56
CAPITOLUL 9 – Polinomul de interpolare al lui Lagrange
3. Exemplu de aplicare
xk -2 0 2 4 6 8 10 12
f(xk) 0.25 1 4 16 64 256 1024 4096
57
METODE NUMERICE
4. Chestiuni de verificare
xk -2 0 2 6 8 10 12
f(xk) 0.25 1 4 64 256 1024 4096
58
CAPITOLUL 10 – Polinomul de interpolare al lui Newton
Capitolul 10
1. Noţiuni teoretice
( )
Δn f (x ) = Δ Δn −1f (x ) = Δn −1 (Δf (x )) (2)
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 .
∇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
( 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
62
CAPITOLUL 10 – Polinomul de interpolare al lui Newton
3. Exemplu de aplicare
xk -2 0 2 4 6 8 10 12
f(xk) 0.25 1 4 16 64 256 1024 4096
63
METODE NUMERICE
Tab .2
64
CAPITOLUL 10 – Polinomul de interpolare al lui Newton
4. Chestiuni de verificare
65
CAPITOLUL 11 – Aproximarea cu abatere medie pătratică minimă
Capitolul 11
APROXIMAREA CU ABATERE
MEDIE PĂTRATICĂ MINMĂ.
1. Noţiuni teoretice
xk x0 x1 ............... xm
yk = f(xk) y0 y1 ............... ym
m
1
d(Pn , f ) = ⋅ ∑ [Pn (x i ) − y i ]2 . (1)
m + 1 i =0
67
METODE NUMERICE
( )
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
∑ (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
⎛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 ⎟⎠
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
2. Algoritmul metodei
program ampm
citeşte n
citeşte x0
pentru k = 0, n repetă
citeşte x(k)
citeşte y(k)
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
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,
4. Chestiuni de verificare
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
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
⎡ 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)
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
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
2. Algoritmul metodei
3. Exemplu de aplicare
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
4. Chestiuni de verificare
74
CAPITOLUL 13 – Metode numerice pentru calculul integralei definite
Capitolul 13
1. Noţiuni teoretice
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
b h
∫a f (x )dx ≅ 2 (y 0 + 2 ⋅ y1 + 2 ⋅ y 2 + K + 2 ⋅ y n −1 + y n ) . (5’)
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)
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!
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
2. Algoritmii metodelor
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
79
METODE NUMERICE
4. Chestiuni de verificare
5
4.1. ∫1 x dx
5 x
4.2. ∫0 3 dx
∫0 (3x )
7 2
4.3. − 2 x + 5 dx
80