Documente Academic
Documente Profesional
Documente Cultură
Analiza numerică
Diana Bîclea
Cahul, 2016
519.6(076.5)
B 52
Aprobată spre editare în şedinţa Comisiei Metodico -
Ştiinţifice a Universităţii de Stat „B. P. Hasdeu” din Cahul din
6.12.2016 proces verbal nr. 02.
Recenzenţi:
Autor:
Diana Bîclea, conferențiar universitar, membrul
Catedrei de Matematică şi Informatică a Universitatea de Stat
„Bogdan Petriceicu Hasdeu” din Cahul;
Bîclea, Diana.
Analiza numerică : Îndrumar de lucrări de laborator/ Diana
Bîclea; Univ. de Stat "B. P. Haşdeu" din Cahul. – Cahul:
Universitatea de Stat "B. P. Haşdeu" din Cahul, 2016 (Tipogr.
"Centro Grafic"). – 70 p.
Bibliogr.: p. 48-50 (21 tit.). – 150 ex.
ISBN 978-9975-88-014-5.
ISBN 978-9975-88-014-5.
2
Cuprins
Prefață…………………………………………………...…....6
1. Rezolvarea aproximativă a ecuaţiilor numerice.................8
1.1. Scopul lucrării...................................................................8
1.2. Indicaţii metodice.............................................................8
1.3. Considerații teoretice…………….……………………..9
1.3.1. Metoda dihotemiei ..…………………….….…..9
1.3.2. Metoda lui Newton...........................................10
1.3.3. Metoda secantelor………….………………….11
1.3.4. Metoda coardei..................................................12
1.4. Lucrul individual………………….………………..…...13
5. Interpolarea funcţiilor…………..……………….…....34
5.1. Scopul lucrării……………………………..……..…….34
5.2. Indicaţii metodice …………….……………....…….......35
5.3. Considerații teoretice……………………………….…..36
5.3.1. Polinomul de interpolarea al lui Lagrange.....36
5.3.2. Polinomul de interpolare al lui Newton……....37
5.4.Lucrul individual…………….……………….………....38
Bibliografie…………………………………………………..48
Anexe………………………………………………………...51
5
Prefață
Analiza numerică este o ramură importantă a
matematicii, reprezintând una din cele mai puternice mijloace
de soluționare a diverselor probleme. Există un număr foarte
mare de calcule ce trebuie realizate într-un timp foarte scurt,
care implică folosirea metodelor numerice: prognozarea
temperaturii aerului se face cu câteva ore înainte, traiectoria
navelor cosmice trebuie calculată cu câteva minute înainte de
decolare, etc.
Analiza numerică este disciplina care unește toate
ramurile matematicii, soluționând numeric diverse probleme,
prin realizarea programelor de calcul.
Scopul prezentei lucrări este de a oferi un suport
informativ pentru realizarea lucrărilor de laborator la disciplina
”Analiza numerică”, pentru studenții de la specialitățile de
informatică, matematică și informatică. Lucrarea de față poate
fi folosită ca ghid pentru studenții de la specialitățile inginerești
și celor care vor sa-și perfecționeze cunoștințele
despre metodele numerice.
Îndrumarul este structurat în 6 lucrări de laborator.
Fiecare lucrare de laborator este însoțită de indicații metodice,
considerații teoretice, probe pentru lucrul individual și cerințele
de îndeplinire a lor.
6
Lucrarea conține 6 anexe, în care sunt plasate secțiuni de
program în limbajul Turbo Pascal pentru fiecare metodă
descrisă în lucrare. Programele de calcul pot fi ușor modificate
în orice alt limbaj de nivel înalt.
7
1. Rezolvarea aproximativă a ecuaţiilor numerice
Lucrarea de laborator Nr. 1
9
Procedeul continuă până când : bn - a n < e sau / şi
f (x n ) < e . Atunci:
1 b-a
xn - x £ bn - a n = n +1
2 2
şi se ia x = xn .
Această metodă este simplă şi sigură. Viteza de
convergenţă este mica [1, 3, 5, 6].
f ¢( x0 ) f ¢¢(x 0 ) > 0 .
10
m = max f ' ( x) ; x Î [ a; b ] .
6].
1.3.3. Metoda secantelor
La metoda lui Newton convergenţa iteraţiilor se va
considera prin alegerea unui parametru în aşa fel ca derivata să
se anuleze în aproximaţia precedentă. Uneori, este suficient să
determinăm numai o valoare aproximativă g = f ¢(x n -1 ) , drept
valoare aproximativă putem lua:
f ( x n -1 + e ) - f ( x n -1 ) f ( xn-1 ) - f ( xn-2 )
gn = - sau g n = -
e xn-1 - xn-2
11
Procesul iterativ se încheie atunci, cînd una din mărimile
xn+1 - xn < e sau f ( xn+1 ) - f ( xn ) < e devine mai mică decît
, ( ) [ 3,5,9, 10].
12
coordonatele , ( ) , , ( ) , iar punctul xn se
13
2. Rezolvarea sistemelor de ecuaţii algebrice liniare
Lucrarea de laborator Nr.2
14
Se determină soluţiile sistemului dat prin una din
metodele ce vor fi descrise mai jos.
Etapa II. Realizarea unui program de calcul pentru
metoda indicată şi pentru exemplul dat
Să se implementeze un program în limbajul de
programare dorit (Pascal, MatLab, C, C++, Java, etc.). Să se
afişeze şi rezultate obţinute în urma implementării
programului. Secțiunile de program ce descriu metodele
directe de rezolvare a sistemelor de ecuații liniare se găsesc
în anexa 2.
2.3. Considerații teoretice
2.3.1. Metoda Gauss
Fie că avem un sistem de ecuaţii liniare:
ìa11 x1 + a12 x2 + ...+ a1n xn = b1 , æ a11 a12 ... a1n b1 ö
ï ç ÷
ïa21 x1 + a22 x2 + ...+ a2n xn = b2 , ça a ... a2n b2 ÷
í cu A1 = ç 21 22
ï.............................................. ... ... ... ... ...÷
ç ÷
ïîan1 x1 + an 2 x2 + ...+ ann xn = bn , ç bn ÷ø
èan1 a2n ... ann
15
Se presupune că ≠ 0 , atunci putem elimina prima
necunoscută din ecuațiile 2,3, . . . , , înmulțind prima
ecuație cu factorii
ai1
mi1 = , i = 2,..., n,
a11
și scăzind-o, respectiv din ecuațiile 2,3, . . . , .
Procedeul continuă până la eliminarea ultimei
necunoscute.
2. Substituţia inversă.
Se rezolvă sistemul triunghiular, obţinându - se soluţia:
ì ( n-1)
bn
ï xn = ( n -1) ,
ïï a nn
í ( n -1) n ( n-1)
- å aij
ï bi
j =i +1
xj
ï xi = ( n -1)
, i = n - 1,...,1.
ïî aii
[2, 3,5,6,10,21].
2.3.2. Metoda factorizării
Având în vedere că rezolvarea sistemelor
triunghiulare este foarte uşoară, se va descompune matricea
pătrată A = (aij )i , j = 1,..., n în produsul a două matrice: L - matrice
16
Atunci sistemul dat Ax = b , devine:
(LU )x = b şi L(Ux ) = b ,
deci se poate descompune în două sisteme triunghiulare:
Ly = b şi Ux = y , (2)
a căror rezolvare necesită, în general, mai puţine operaţii
decât aplicarea directă a metodei lui Gauss.
Vom determina mai întâi elementele matricelor şi
, apoi vom rezolva sistemele (2). Dacă notăm
æ l11 0 0 ... 0 ö æu11 u12 u13 ... u1n ö
ç ÷ ç ÷
çl l 0 ... 0 ÷ ç 0 u22 u23 ... u2n ÷
L = ç 21 22 ÷ U =ç ;
.... ... ... ... ... ... ... ... ... ... ÷
ç ÷ ç ÷
çl ÷ ç unn ÷ø
è n1 l n 2 l n3 ...lnn ø è0 0 0 ...
k -1
aik - å lim u mk
lik = m =1
, i = k + 1,..., n .
u kk
17
2.3.3. Metoda Cholesky
Metoda Choelsky sau metoda rădăcinii pătrate se
consideră ca un caz particular al factorizării LU , când
matricea A este simetrică şi pozitiv definită, adică A = AT
şi x t Ax > 0 , pentru orice vector x ¹ 0 . (Dacă matricea A
este pozitiv definită, atunci diagonala principală este
pozitivă).
Putem decide dacă o matrice este pozitiv definită în
două moduri dacă toţi minorii principali sunt strict pozitivi
sau dacă toate valorile proprii sunt strict pozitive.
Cu ipotezele de faţă, se poate demonstra, că matricea
A admite factorizare unică de forma A = R T R , unde R
este o matrice inferior triunghiulară, cu diagonala pozitivă.
Aceasta se numeşte factorizarea lui Cholesky.
Metoda aceasta este asemănătoare cu cea precedentă
doar că matricea sistemului se descompune în două matrice
triunghiulare R- inferior triunghiulare şi R t- transpusa
matricei R [2, 3,5,6,10,21].
Avem următoarea relaţie între matricele A şi RT , R :
18
æ ö
ç a a ... a ÷
ç 11 12 1n ÷
ç a
21
a
22
... a
2n ÷=
ç ... ... ... ... ÷
ç a a ... ann ÷
ç n1 n2 ÷
è ø
æ ö æ ö
ç r11 0 ... 0 ÷ ç r11 r12 ... r1n ÷
ç ÷ ç ÷
ç r12 r22 ... 0 ÷* ç 0 r22 ... r2 n ÷.
ç ... ... ... ... ÷ ç ... ... ... ... ÷
ç ÷ ç ÷
ç r1n r2 n ... rnn ÷ ç 0 0 ... rnn ÷
è ø è ø
Astfel putem obţine două sisteme triunghiulare a
căror rezolvare este asemănătoare cu ceea de la metoda :
( ) = sau ( ) = , notăm = şi obţinem
= [2, 3,5,6,10,21].
Pentru i = k avem
k k -1
akk = å rik2 Þ rkk = a kk - å rik ;
i =1 i
k -1
k
aij - å rki rkj
a kj = å rik rij Þ rkj = a kj , rij = i
.
i =1 rii
19
2.4. Lucrul individual
1. Să se determine soluțiile sistemului de ecuații,
scris sub forma matriceală, utilizând metoda lui Gauss şi
metoda factorizării:
20
R:[1,-1,2,-2] R:[4,3,2,1]
æ 50 -10 -20 -10ö æ 40ö æ2 50 1 1 ö æ-47ö
ç ÷ ç ÷ ç ÷ ç ÷
ç-10 40 -10 -10÷ ç-50÷ ç50 2 1 1 ÷ ç 49÷
9. A=ç ;b= ;10. A= ;b = ;
-5 -10 30 -5÷ ç 55÷ ç1 1 50 -1÷ ç 50÷
ç ÷ ç ÷ ç ÷ ç ÷
ç -5 -5 -5 20÷ ç-50÷ ç1 -1 50÷ø çè -1 ÷ø
è ø è ø è 1
R: [1,-1,2,-2] R:[1,-1.1,0]
æ9 1 4 2ö æ13.5ö æ9 1 4 2 ö æ 20ö
ç ÷ ç ÷ ç ÷ ç ÷
ç2 8 1 4÷ ç10.5÷ ç2 8 2 -1÷ ç 28÷
11. A = ç ; b = ;12. A = ;b = ;
1 1 8 1÷ ç 6.5 ÷ ç-1 1 6 1 ÷ ç 20÷
ç ÷ ç ÷ ç ÷ ç ÷
ç4 9÷ø ç 14 ÷ ç6 1 10÷ø çè110÷ø
è 1 1 è ø è 2
R:[1,0,5,0,5,1] R:[-1;5;0,5;11]
æ15 1 -4 -2ö æ 1 ö æ2 0 0 0ö æ 3 ö
ç ÷ ç ÷ ç ÷ ç ÷
ç2 8 1 -3÷ ç63÷ ç1 1,5 0 0÷ ç 4,5 ÷
13. A=ç ÷;b=ç ÷;14. A = ç ;b =
1 1 -10 1 -2 0 -3 0,5 0÷ ç- 6,6÷
ç ÷ ç ÷ ç ÷ ç ÷
ç-2 -1 ÷ ç
-1 6 ø è28ø ÷ ç -2 1÷ø çè 0,8 ÷ø
è è2 1
æ2 -1 10 0ö æ-11ö æ10 -1 2 0ö æ 6 ö
ç ÷ ç ÷ ç ÷ ç ÷
ç0 3 -1 8÷ ç-11÷ ç-1 11 -1 3 ÷ ç 25 ÷
15. A=ç ÷;b =ç ÷;16. A = ç ;b = ;
10 -1 2 0 6 2 -1 10 -1÷ ç-11÷
ç ÷ ç ÷ ç ÷ ç ÷
ç-1 -1 3÷ø çè 25÷ø ç0 -1 8 ÷ø çè-11÷ø
è 11 è 3
æ4 -1 2 0ö æ 0 ö
ç ÷ ç ÷ æ 2 -1 1ö æ -1ö
ç- 2 11 -1 3÷ ç 2 ÷ ç ÷ ç ÷
17. A = ç ; b = ; 18. A = ç 3 3 9÷; b = ç0÷ ;
0 -1 10 0÷ ç 3 ÷ ç ÷ ç4÷
ç ÷ ç ÷ è 3 3 5ø è ø
ç0 -1 ÷
8ø è- 2øç ÷
è 0
21
æ0 2 4 ö æ 0 ö æ 10 -1 0 ö æ9ö
ç ÷ ç ÷ ç ÷ ç ÷
19. A = ç1 -1 -1÷;b = ç 0,375÷ ;20. A = ç -1 10 - 2÷;b = ç7÷
ç1 -1 2 ÷ ç 0 ÷ ç 0 - 2 10 ÷ ç 6÷
è ø è ø è ø è ø
3. Să se aplice metoda lui Cholesky pentru factorizarea
matricelor:
æ4 1 1 1ö æ0,65ö
æ 2 -1 0 ö æ 3 ö ç ÷ ç ÷
ç ÷ ç ÷ ç1 3 -1 1÷ ç0,05÷
1. A = ç -1 2 -1÷ , b = ç - 3 ÷ ;2. A= ç ,b= ç 0 ÷;
ç0 1 2÷ ç 1 ÷ 1 -1 2 0÷
è ø è ø ç ÷ ç ÷
ç1 2÷ø ç 0,5 ÷
è 1 0 è ø
æ4 1 -1 0ö æ 7 ö æ6 2 1 -1ö æ0ö
ç ÷ ç ÷ ç ÷ ç ÷
ç1 3 -1 0÷ ç 8 ÷ ç2 4 1 0÷ ç7÷
3. A= ç ,b = ç - 4 ÷ ; 4. A=ç 1 1 , b =ç ÷ ;
-1 -1 5 2÷ 4 -1÷ -1
ç ÷ ç ÷ ç ÷ ç ÷
ç0 4÷ø ç 6 ÷ ç-1 0 -1 ÷ ç ÷
è 0 2 è ø è 3ø è-2ø
æ10 -1 2 0 ö æ6ö
æ10 -1 0 ö æ 9ö ç ÷ ç ÷
ç ÷ ç ÷ ç-1 11 -1 3 ÷ ç 25 ÷
5. A = ç -1 10 - 2÷;b = ç 7÷ ;6. A= ç -1 ;b = .
ç 0 - 2 10 ÷ ç 6÷ 2 -1 10 0 ÷ ç-11÷
è ø è ø ç ÷ ç ÷
ç0 -1 8 ÷ø çè-11÷ø
è 3
22
3. Rezolvarea sistemelor de ecuaţii algebrice neliniare
Lucrarea de laborator Nr.3
ì f1 (x, y ) = 0,
í (x, y ) Î D = [a, b] ´ [c, d ] . (1)
î f 2 ( x, y ) = 0,
Domeniul D se alege astfel încât în interiorul acestuia
să se afle o soluţie ( x, y ) a sistemului (1).
3.2. Indicaţii metodice
Lucrarea de laborator constă în 2 etape:
Etapa I. Rezolvarea matematică a problemei
formulate. Sistemul (1) mai poate fi scris sub forma
vectorială:
( ) = 0. (2)
Unde = , ,…, , = , ,…, . Practic
astfel de sisteme se rezolvă numai prin metode iterative.
23
Aproximaţia iniţială în cazul a două ecuaţii cu două
necunoscute poate fi găsită grafic: în planul ( , ) trasăm
curbele ( , ) = 0 şi ( , )=0 şi determinăm
punctele de intersecţie. Pentru sisteme cu trei şi mai multe
necunoscute metode satisfăcătoare de alegere a aproximaţiei
iniţiale, de care în mare măsură depinde eficacitatea aplicării
metodelor iterative, nu există [3,6,10,12,21].
Etapa II. Elaborarea unui program de calcul pentru
metoda indicată şi pentru exemplul dat.
Să se implementeze un program în limbajul de
programare dorit (Pascal, MatLab, C, C++, Java, etc.). Să se
afişeze şi rezultate obţinute în urma implementării
programului. Secțiunile de program ce descriu procesul
iterativ al metodei lui Newton este în anexa 3.
24
æ ¶f 1
ç (x, y ) ¶f1 (x, y ) ö÷
¶x ¶y
f ¢(x, y ) = ç ÷,
ç ¶f 2 ¶f 2 ÷
ç ¶x ( x, y ) ¶y ( x, y )÷
è ø
şirul lui Newton pentru sistemul (2) se va scrie:
æ x n +1 ö æ x n ö æ f (x , y ) ö
çç ÷÷ = çç ÷÷ - [ f ¢(x n , y n )]-1 çç 1 n n ÷÷, n Î N
è y n +1 ø è y n ø è f 2 ( x n , y n )ø
unde
æ ¶f 2
ç (x , y ) - ¶f1 ( xn , y n )ö÷
1 ç ¶y n n
[ f ¢( x , y n )]
-1
= ¶y ÷.
D ç ¶f 2 ¶f1
( xn , y n ) - ( xn , y n )÷÷
n
ç-
è ¶x ¶x ø
Determinantul matricei lui Jacobi este
æ ¶f ¶f ¶f ¶f ö
=D çç 1 × 2 - 1 × 2 ÷÷ .
è ¶x ¶y ¶y ¶x ø ( x , y ) n n
25
ìsin(x + 1) - y = 0, ìï3x 2 y + y 2 -=
1 0,
3. í 4. í 4
î2 x + cos y = 2. ïîx + xy -= 1 0.
ìsin( x + y ) - 1,5=
x 0, ì15x - 5 y + 20 lg x + 16 = 0,
5. í 2 6. í
î x + y= 1. î12x + y - 10 lg y - 14 = 0.
2
ì x + x 2 - 2 xy = 0,
ìsin( x - y ) - xy= -1, ï
í y - y + 3xz = -0,2,
2
13. í 2 14.
î x - y = 0,75.
2
ï
î z + z + 2 xy = 0,3.
2
ìïx 2 + y 2 = 4, ì x 2 + y 2 = 4,
15. í 16. í
ïî y 2 - x3 = 0. î x - 1 - ln y = 0.
ìïx 2 + y 2 = 9, ì x 2 + y 2 = 9,
17. í 18. í
ïîx - y 2 = 1. î x + y - 1 = 0.
26
ì x 2 + y 2 = 4, ìïx 2 / 4 + y - 1 = 0,
19. í 20. í
î xy = 1. ïîx - y 2 / 8 = 0.
27
4. Rezolvarea sistemelor de ecuaţii liniare prin metode
iterative
Lucrarea de laborator Nr. 4
28
Soluţia se căutată cu exactitatea dată ( = 10 −
10 ), folosind în acest scop 2 metode: Jacobi și Gauss-
Seidel.
4.3.Considerații teoretice
4.3.1. Metoda Jacobi
Vom scrie sistemul (1) sub forma echivalentă:
x = Bx + c , unde B = (bij )1£i , j £n , bij Î R, c Î R n ,
29
apoi cu ajutorul acestui sistemului construim şirul iterativ:
x ( k +1) = Bx (k ) + c, k Î N .
30
Obţinem şirul lui Gauss –Seidel:
k +1) i -1 æç
aij ö n æ aij ö (k )
x
( = å - ÷ x (k +1) + å ç- ÷x +
bi
,
i j =1ç ÷ j j =i +1 ç a ÷ j
è aii ø è ii ø aii
i = 1,2,..., n, k Î N .
Spre deosebire de metoda lui Jacobi, în acest caz
pentru fiecare necunoscută xi trebuie memorată doar o
singură aproximaţie şi nu două [1, 6, 16, 10] .
Condiți de oprire este:
x ( k ) - x (k -1) = max x i( k ) - x i(k -1) < e .
¥ 1£ i £ n
31
R:[1,-1,2,3] R:[5,-4,3,-2]
æ3 7 -1 2 ö æ20ö æ100 5 10 -1ö æ 4.9 ö
ç ÷ ç ÷ ç ÷ ç ÷
ç14 4 5 3 ÷ ç36÷ ç5 10 -1 2 ÷ ç-51.3÷
5. A=ç ;b = ;6. A = ;b =
11 5 -4 -1÷ ç28÷ ç1 1 10 1 ÷ ç 15.2 ÷
ç ÷ ç ÷ ç ÷ ç ÷
ç-1 -2 7 ÷ø çè22÷ø ç1 100÷ø çè 7.1 ÷ø
è 1 è 1 1
R:[2,1,-1,3] R:[0,1; -5;2;0,1]
æ 20 1 -1 3 ö æ 11 ö æ51 -1 1 -1 ö æ18ö
ç ÷ ç ÷ ç ÷ ç ÷
ç2 5 1 1 ÷ ç -3 ÷ ç2 10 - 2 1 ÷ ç35÷
7. A = ç ; b = ;8. A = ;b =
1 1 10 2 ÷ ç 16 ÷ ç1 1 40 -10÷ ç77÷
ç ÷ ç ÷ ç ÷ ç ÷
ç-1 10÷ø çè-12÷ø ç10 -10 1 50 ÷ø çè62÷ø
è 1 5 è
R:[1,-1,2,-2] R:[4,3,2,1]
æ 50 -10 -20 -10ö æ 40ö æ 2 50 1 1 ö æ-47ö
ç ÷ ç ÷ ç ÷ ç ÷
ç-10 40 -10 -10÷ ç-50÷ ç50 2 1 1 ÷ ç 49÷
9. A=ç ÷;b=ç ÷; 10. A=ç ;b= ;
-5 -10 30 -5 55 1 1 50 -1÷ ç 50÷
ç ÷ ç ÷ ç ÷ ç ÷
ç -5 -5 -5 20÷ ç-50÷ ç 1 1 -1 50÷ø çè -1 ÷ø
è ø è ø è
R: [1,-1,2,-2] R:[1,-1.1,0]
æ9 1 4 2ö æ13.5ö æ9 1 4 2ö æ 20 ö
ç ÷ ç ÷ ç ÷ ç ÷
ç2 8 1 4÷ ç10.5÷ ç2 8 2 -1÷ ç 28 ÷
11. A=ç ÷;b =ç ÷; 12. A = ç ÷;b = ç ÷ ;
1 1 8 1 6.5 -1 1 6 1 20
ç ÷ ç ÷ ç ÷ ç ÷
ç4 ÷ ç ÷ ç ÷ ç ÷
è 1 1 9ø è 14 ø è6 1 2 10ø è110ø
R:[1,0,5,0,5,1] R:[-1;5;0,5;11]
32
æ 15 1 -4 -2ö æ 1 ö æ2 0 0 0ö æ 3 ö
ç ÷ ç ÷ ç ÷ ç ÷
ç2 8 1 -3÷ ç 63÷ ç1 1,5 0 0÷ ç 4,5 ÷
13. A= ç ;b = ; 14. A= ;b =
1 1 -10 1 ÷ ç-2÷ ç0 -3 0,5 0÷ ç-6,6÷
ç ÷ ç ÷ ç ÷ ç ÷
ç-2 -1 -1 6 ÷ø çè 28÷ø ç2 -2 1÷ø çè 0,8 ÷ø
è è 1
R:[1,10,2,7]
æ2 -1 10 0ö æ-11ö æ10 -1 2 0 ö æ6ö
ç ÷ ç ÷ ç ÷ ç ÷
ç0 3 -1 8÷ ç-11÷ ç-1 11 -1 3 ÷ ç 25÷
15. A=ç ÷;b =ç ÷; 16. A=ç -1 ;b= ;
10 -1 2 0 6 2 -1 10 0 ÷ ç-11÷
ç ÷ ç ÷ ç ÷ ç ÷
ç-1 -1 ÷ ç ÷ ç 8 ÷ø çè-11÷ø
è 11 3ø è 25ø è 0 3 -1
æ4 -1 2 0ö æ0ö
ç ÷ ç ÷ æ 2 -1 1ö æ -1ö
ç- 2 11 -1 3÷ ç2÷ ç ÷ ç ÷
17. A = ç ÷; b = ç ÷ ;18. A = ç 3 3 9÷;b = ç 0 ÷
0 -1 10 0 3 ç 3 3 5÷ ç4÷
ç ÷ ç ÷ è ø è ø
ç0 -1 ÷ ç ÷
è 0 8ø è - 2ø
æ0 2 4 ö æ 0 ö æ 10 -1 0 ö æ 9ö
ç ÷ ç ÷ ç ÷ ç ÷
19. A = ç1 -1 -1÷;b = ç0,375÷ ;20. A = ç -1 10 - 2÷; b = ç 7÷
ç1 -1 2 ÷ ç 0 ÷ ç 0 - 2 10 ÷ ç 6÷
è ø è ø è ø è ø
33
5. Interpolarea funcţiilor
Lucrarea de laborator Nr.5
34
Diferenţe divizate de ordinul I ale funcţiei f sunt
rapoartele
( )
f x - f (x j )
i
(i ¹ j )
xi - x j
[ ]
şi le vom nota prin f x i , x j . Diferenţa divizată de ordinul 2,
[ ]
notată prin f x i , x j , x k este raportul
f [x , x ] - f [x , x ]
i j
(i ¹ j ¹ k ) .
i k
x -x i k
5.2.Indicaţii metodice
Lucrarea de laborator constă în 2 etape:
Etapa I. Rezolvarea matematică a problemei formulate.
Cunoscînd valorile = ( ) ale funcţiei = ( ) în
punctele , = 1,2, . . . , ( ≠ ) să se determine valorile
funcţiei într-un şir de puncte, aproximând funcţia ( ) cu un
polinom algebric prin una din metodele ce vor fi descrise
mai jos.
Etapa II. Elaborarea unui program de calcul pentru
metoda indicată şi pentru exemplul dat.
35
Să se implementeze un program în limbajul de
programare dorit (Pascal, MatLab, C, C++, Java, etc.). Să se
afişeze şi rezultate obţinute în urma implementării
programului. Secțiunile de program care descriu procesul
de interpolare se găsesc în anexa 5.
(x - xi )ù
2
w (x ) é
Ln ( x ) = å
n
yi × ×
i=0 ( x - xi ) ê
ë w (x ) û
ú
x = xi
sau
()
Ln x = w x × å
n yi
() ×
1 n
= å Ai ×
w x ()
( )
.
i = 0 w¢ x x - x i =0 x - x
i i i
Această formulă se foloseşte pentru determinarea directă a
polinomului lui Lagrange, mărimile:
Ai =
yi
w¢(xi )
=
yi
(
i = i, n, și v ( x ) = Õ x - xi
n
).
Õ (x - xj ) i=0
n
i
i= 0
j ¹i
36
f ( n ) (x )
Rn ( x ) = w n ( x) .
n!
Unde w n ( x ) = ( x - x1 )...( x - x n ), x este un punct de
ådy
i=0
i i ( x) = å d i Õ ( x - x n - j ) ,
i=0 j =0
37
x0 x1 x2 K x n -1 xn
f [ x0 ] f [ x1 ] f [ x2 ] K f [ x n -1 ] f [xn ]
f [ x 0 , x1 ] f [ x1 , x 2 ] K f [ x n -1 , x n ]
f [ x 0 , x1 , x 2 ] K f [ x n -2 , x n -1 , x n ]
K K K K
f [ x 0 , x1 , x 2 , K , x n ]
38
Tabelul 2. Tabela interpolării :
zi z1, . . . ,zn
Pi P1, . . . ,Pn
zi-punctele în care se interpolează;
Pi- valorile polinomului de interpolare;
Tabelul 3. Valorile nodurilor, funcției de interpolare
N xi yi zi
1 0;0,11;0,2; 0;0,1;0,199;0,35; 0,1;0,3;0,32;0,4;
0,35;0,3 0,493 0,45; 0,51;
2 0,5;0,55;0,7; 0,5;0,56,0,68; 0,52;0,6;0,65;0,7;0,84;0,
0,8;0,88;0,9 0,77;0,8;0,86 9;
3 1;1,1;1015; 0,95;1,03;1,08; 1,12;1,19;1,2;1,4;1,456;
103;1,5; 1,8;1,32; 1,49;
4 2;2,1;2,15; 1,6;1,65;1,66; 2,05;2,3;2,4;2,6;2,7;
2,21;2,5;2,8 1,68;1,88;1,83 2,9;
5 2;2,1;2,14; 0,84;0,92;0,95; 2,08;2,15;2,3;2,4;2,8
2,51;2,7 1,21;1,35;
6 10;10,1;10,2; 1,66,1,65;1,646; 10,05;10,13;
10,3,10,4 1,639;1,63 10,28;10,36;10,5,
7 3;3,2,3,4,3,6; 1,55;1,68;1,8; 3,1;3,3,3,5;3,7;
3,8;4 1,91;2;2,1, 3,9;4,1;
8 4;4,2;4,4,4,6; 1,76;1,72;1,67; 4,1;4,3,4,5;
39
4,8 1,63;1,59; 4,7;4;9,5
40
6. Calculul aproximativ al integralelor
Lucrarea de laborator Nr.6
41
I ( f ) = ò f (x ) dx
b
42
calculate prin aproximaţie integralele definite
[1,2,6,7,9,11,14,21]. Ele se pot obţine în rezultatul
substituirii funcţiei de sub semnul integralei printr-un
polinom de interpolare şi aproximarea integralei ( ) cu
integrala polinomului. Aceste formule au următoarea formă
b n
ò f ( x )dx = å Ai f ( xi ) .
a i =1
43
b-a
Avem, h = , x j = a + ( j + 1)h, j = -1,0,1,...,2 N - 1 .
2N
(Se notează a = x -1 , b = x 2 N -1 ).
Doar N puncte şi anume: x 2 i (i = 0,..., N - 1) sunt noduri
de interpolare (duble).
Rezultă:
N -1
Q ( f ) = D ( f ) = 2h å f (x 2 i ) .
i= 0
R( f ) =
(b - a )h 2 f ¢¢(x ), x Î (a , b )
6
şi
R( f ) £
(b - a )h 2 sup f ¢¢(x ) < e ,
6 xÎ[ a , b ]
[1,2,6,7,9,11,14,21].
.
6.3.2. Formula trapezelor
Se împarte intervalul [ a , b ] în N părţi egale prin
b-a
punctele: xi = a + ih, i = 0,1,..., N , h= şi pe fiecare
N
interval se aplică formula trapezelor. (Toate punctele
a = x 0 , x1 ,..., x N -1 x N = b sunt noduri de interpolare). Rezultă:
é f (a ) + f (b ) N -1 ù
Q( f ) = T ( f ) = h ê + å f ( xi )ú .
ë 2 i =1 û
44
R( f ) = -
(b - a )h 2 f ¢¢(x ), x Î (a , b ) .
12
Problema care se pune este: cât de mare trebuie să fie
pasul h , deci cît de mare trebuie să-l luăm pe N, astfel încât
să se obţină precizia dorită. Deci impunem condiţia:
R( f ) £
(b - a )h 2 sup f ¢¢(x ) < e
6 xÎ[ a , b ]
12e 12e
h2 < ; vom considera: 0 < h < = A . Deci:
M (b - a ) M (b - a )
b-a b-a
N= > .
h A
éb - a ù
De regulă, se consideră N = ê ú + 1 sau primul număr
ë A û
éb - a ù
par mai mare decât ê ú.
ë A û
b-a
Cu N astfel determinat, se calculează: h = ,
N
apoi xi (i = 1,2,..., N ) şi în continuare T ( f ) .
45
6.3.3. Formula lui Simpson
Se împarte intervalul [ a , b ] în 2 N intervale egale prin
b-a
punctele: xi = a + ih, i = 0,1,..., 2 N , h= şi se aplică
2N
formula lui Simpson pe fiecare pereche de intervale vecine,
deci pe N intervale duble. ( Toate cele 2 N + 1 , 2 puncte
xi , i = 0,...,2 N sunt noduri de interpolare). Rezultă:
hé N N -1
ù
Q( f ) = S ( f ) = ê f (a ) + f (b ) + 4 å f ( x 2 i -1 ) + 2 å f (x 2 i )ú .
3ë i =1 i =1 û
Eroarea totală va fi
R( f ) = -
(b - a )h 4 f (4 )
(x ), x Î (a, b ) ,
180
R( f ) £
(b - a )h 4 sup f (4 )
(x ) < e .
180 xÎ[a , b ]
x2 +1
2 1
sin x
1. ò1 2 + sin x dx ; 11. ò
0
x
dx ;
46
1 2
4 x cos x 2
2. ò0 x 4 + 1 dx ; 12. ò
0
x +1
dx ;
0 p /2
ln( x + 5)
5 5
ln x
4. ò dx ; 14. ò dx ;
2
2 + cos 3 x 1
x
2 4
2 2
2 2
cos x
ò e dx ; ò 1+ x
-x 2
7. 17. 2
dx ;
0 0
2 1
sin x 1
8. ò
0 2-x
dx ; 18. ò
0 2+ x
dx ;
2x3 + 1
2 2
sin x
9. ò
0
3
x -1
dx ; 19. ò
1 4 - x2
dx ;
1 2
6 cos x
10. ò
0 4- x 2
dx ; 20. ò
1 x2 -1
dx .
47
Bibliografie
48
10. Jeffrey R. Chasnov .Introduction to Numerical Methods
Hong Kong University of Scientce and Tehnology
Departament of Mathematics, 2012. 63 p.
(http://www.math.ust.hk/~machas/numerical-
methods.pdf)
11. Walter Gautschi. Numerical Analysis. Birkh ̈ user :
Springer New York Dordrecht Heidelberg London,
2012. 615 стр..
12. Kалиткин Н. Н. Численые методы учеб. пособие – 2-
изд., испровленное СПб. БХВ- Петербург. 2011. 592
стр.
13. Александр Гуржий. Численые методы
математической физики. Киев: 2006. 88 стр.
14. Б.П. Демидовичь, И. А. Марон, Э. З. Шувалова.
Численые методы анализа приближение функции
дифференциальные и интегральные уравнения.
Москва: Наука, 1967. 368 стр.
15. Бате К. Вилсон Е. Численые методы анализа и
методы конечных елементов. Москва: Стройиздат,
1982. 448 стр.
16. Бахвалов Н. С. Численые методы (анализ алгебра
обыкнавеные дифференциальные уравнения).
Москва: Наука, 1975. 631 стр.
49
17. Березин И. С. Жидков Н. П. Методы вычислений.
Москва: Гоcурдарственное издательство физико-
математической литературы, 1962. 635 стр.
18. Бронштеин И. Н. Семеняев К. А. Справочник по
математике для инженеров и учащихся вузов.
Москва: Наука, 1981. 504 стр.
19. Корн Г., Корн Т. Справочник по математике для
научных работников и инженеров. Москва: Наука,
1973. 832 стр.
20. Распопов В. Е. Клунникова М. М. Лекции по курсу
Численые методы. Красноярск, 2007. 189 стр.
21. Шарый C.П.. Курс вычислительных методов.
Новосибирск, 2016. 536 стр.
50
Anexa 1.
1. Program bisectie
procedure bisect(a,b:real; var x:real);
var n:integer;
begin
if abs(f(a))<eps then x:=a
else
if abs(f(b))<eps then x:=b
else
begin
writeln('eroarea eps=',
eps:6:4);
writeln;
writeln('n a(n) b(n)
x(n) f(xn) bn-an');
repeat
x:=(a+b)/2.0;
inc(n);
writeln(n:2, a:10:4,
b:10:4, x:10:4, f(x):10:4,
abs(b-
a):10:4);
51
if f(a)*f(x)
<0 then b:=x
else
a:=x;
until (abs(b-a)<eps)
and (abs(f(x))<eps);
end;
end;
2.Program coardei
procedure coarda(x0,x1:real; var
x:real);
var n:integer;
dx:real;
begin
if abs(f(x0))<eps then x:=x0
else
if abs(f(x1))<eps then x:=x1
else
begin
writeln('eroarea eps=', eps:6:4);
writeln;
writeln('n x(n-1) x(n)
x(n+1) f(x(n+1)) dx');
52
n:=0;
repeat
x:=(x0*f(x1)-
x1*f(x0))/(f(x1)-f(x0));
inc(n);
writeln(n:2, x0:10:4,
x1:10:4);
if f(x0)*f(x) <0 then
begin
dx:=abs(x1-x);
x1:=x;
end
else
begin
dx:=abs(x-x0);
x0:=x;
end;
writeln(x:10:4,f(x):10:4,
dx:10:4);
until (abs(b-a)<eps) and
(abs(f(x))<eps);
end;
end;
53
3.Program Newton
procedure Newton(x0:real; var x:real);
var n:integer;
d:real;
begin
n:=0;
writeln('eroarea eps=',
eps:6:4);
writeln;
writeln('n x(n) f(x(n))
x(n)-x(n-1)');
repeat
x:=x0-f(x0)/df(x0);
d:=abs(x-x0);
inc(n);
writeln (n:2, x:10:4,
f(x):10:4, d:10:4);
x0:=x;
until (d<eps) and
(abs(f(x))<eps);
end;
54
Anexa 2.
1. Metoda Gauss
begin
writeln('----------Metoda GAuss--------
');
write('n=');read(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
write('a[',i:2,',',j:2,']=');read(a[i,j]
);
end;
writeln('b[',i:2,']=');read(a[i,n+1]);
end;
det:=1;
for k:=1 to n-1 do
begin
pivot;
t:=a[k,k];
55
for i:=k+1 to n do
begin
for j:=k+1 to n+1 do
a[i,j]:=a[i,j]-
a[i,k]*a[k,j]/t;
if abs(a[i,j])<eps then
a[i,j]:=0;
a[i,k]:=0;
end;
writeln('k=',k:2);
for i:=1 to n do
begin
for j:=1 to n+1 do
write(a[i,j]:10:4);
writeln;
end;
end;
2. Metoda Factorizării
procedure lu(a:matrix;var
l,u:matrix;n:integer);
var i,j,k,m,p:integer;
s:real;
begin
56
for k:=1 to n do
begin
l[k,k]:=1.0;
for j:=k to n+1 do
begin
s:=a[k,j];
for m:=1 to k-1 do
s:=s-l[k,m]*u[m,j];
u[k,j]:=s;
end;
for i:=k+1 to n do
begin
s:=a[i,k];
for p:=1 to k-1 do
s:=s-
l[i,p]*u[p,k];
l[i,k]:=s/u[k,k];
end;
end;
end;
procedure sisinf(a:matrix; b:vector;
var x:vector; n:integer);
57
var
i,j:integer;
s:real;
begin
for i:=1 to n do
begin
s:=b[i];
for j:=1 to i-1 do
s:=s-a[i,j]*x[j];
x[i]:=s/a[i,i];
end;
end;
procedure sisup(a:matrix; b:vector;
var x: vector; n:integer);
var i,j:integer;
t:real;
begin
for i:=n downto 1 do
begin
t:=b[i];
for j:=i+1 to n do
t:=t-a[i,j]*x[j];
x[i]:=t/a[i,i];
58
end;
end;
l[i,1]:=a[1,i]/l[1,1];
for k:=2 to n do
begin
s:=a[k,k];
for j:=1 to k-1 do
s:=s-l[k,j]*l[k,j];
l[k,k]:=sqrt(s);
for i:=k+1 to n do
begin
t:=a[i,k];
59
for m:=1 to k-1
do
t:= t- l[k,k];
end;end; end;
60
Annexa 3.
repeat
f1:=(x*x)/41;
f2 :=(x*x)-y ;
df1x :=x/2 ;
df1y :=1 ;
df2x :=2*x ;
df2y :=-1 ;
d :=df1x*df2y-df1y*df2x ;
a :=f1*df2y-f2*df1y ;
b :=f2*df1x-f1*df2x
x :=x-(a/d) ;
y :=y-(b/d) ;
dx:=abs(a/d);
dy:=abs(b/d);
if dx<dy then max:=dy
else max:=dx;
writeln(n:2,x:10:4,y:10:4,f1:10:4,f2:10:
4, max:10:4);
writeln;
n:=n;
until(max<eps) or (n=10);
61
writeln(‘solutia
sistemului este :’) ;
62
Anexa 4.
1. Metoda Gauss-Seidel
begin
s0:=0;
for j:=1 to n do
begin
write (‘a[‘,i:2,’,’,j:2,’]=’);
read(a[i,j]);
if i<>j then
s0:=s0+abs(a[i,j]);
end;
if(abs(a[i,i])<=s0) or (a[i,i]=0)
then
writeln(‘matricea AS nu
este diagonal dominanta’);
end;
for i:=1 to n do
begin
t[i]:=b[i]/a[i,i];
s0:=0;
for j:=1 to n do
begin
s[i,j]:=-a[i,j]/a[i,i];
63
s0:=s0+abs(s[i,j]);
end;
s[i,i]:=0;
b[i]:=s0-1;
end;
2.Metoda Jacobi
begin
s0:=0;
for j:=1 to n do
s0:=s0+s[i,j]*x0[j];
x[i]:=t[i]+s0;
b[i]:=abs(x[i]-x0[i]);
end;
maxim(b,max);
write(k:3);
for i:=1 to n do
begin
write(x[i]:10:5);
x0[i]:=x[i];
end;
write(m*max:10:5); writeln;
until m*max<eps;
end;
64
Anexa 5.
1. Program Newton
procedure Newton (var x,y:vector;n:
integer; var b,t:real;var q: matrix);
var I,j:integer;
begin
for i:=0 to n do
q[I,0]:=y[i];
for i:=1 to n do
for j:=1 to I do
q[I,j]:=(q[I,j-1]-q[i-
1,j-1])/(x[i]-x[i-j]);
end;
begin
write(‘n=’); readln(n);
write(‘t=’); read(t);
for i:=0 to n do
begin
write(‘x[‘,I,’]=’);
readln(x[i]);
write(‘y[‘,I,’]=’);readln(y[i]);
end;
65
Newton (x,y,n,b,t,q);
2. Program Lagrange
procedure Lagrange(var
c,x,y:vector;n: integer; var b,t:real);
var p:real;
I,j:integer;
begin
for i:=0 to n do
begin
p:=1;
for j:=0 to n do
if j<>I then
p:=p*(x[i]-x[j]);
c[i]:=y[i]/p;
end;
b:=0;
for i:=0 to n do
begin
p:=1.0;
for j:=0 to n do
begin
if j<>I then p:=p*(t-x[j]);
end;
66
b:=b+p*c[i];
end;
begin
write(‘n=’); readln(n);
write(‘t=’); read(t);
for i:=0 to n do
begin
write(‘x[‘,I,’]=’);
readln(x[i]);
write(‘y[‘,I,’]=’);readln(y[i]);
end ;
67
q[I,j]:=((t-x[i-
j])*q[I,j-1]-(t-x[i])*q[i-1,j-1])/(x[i]-
x[i-j]);
b:=q[n,n];
end;
end;
68
Annexa 6.
1. Program pentru metoda dreptunghiurilor
begin
write('a,b=');
read(a,b);
write('n=');
read(n);
h:=(b-a)/(2*n) ;
integrala:=0;
for i:=0 to n-1 do
integrala
:=integrala+2*h*f(a+(2*i+1)*h);
69
integrala :=h*(0.5*(f(a)+f(b))+s);
70