Documente Academic
Documente Profesional
Documente Cultură
1
INTRODUCERE
Metodele numerice formează un capitol al
matematicii
are ca obiect rezolvarea ecuaţiilor, a sistemelor de
ecuaţii, a ecuaţiilor diferenţiale, etc., probleme care
apar în tehnică sau în alte domenii unde se foloseşte
matematica.
2
Modelul matematic - reprezentare matematică a
unui proces fizic, considerat din punct de vedere
funcţional.
Pentru cazuri simple, modelul matematic se reduce
la o serie de relaţii, ce permit obţinerea directă a
soluţiei analitice.
Pentru cazuri mai complicate, modelul matematic se
transformă progresiv în modele analitice mai simple,
pe baza unor ipoteze de calcul.
3
Analiza matematică reprezintă fundamentele metodelor
numerice
6
Dezvoltarea metodelor de calcul numeric a fost
influenţată de progresele obţinute în domeniul
calculatoarelor.
Pe lângă programele uzuale pentru editare de
text, evidenţă contabilă, etc., s-au dezvoltat
programe de calcul matematic cu caracter
general, de exemplu:
MATHEMATICA,
MATLAB,
MATHCAD,
MACSYMA, etc,
sau specific, ca părţi ale unor programe elaborate
pentru aplicaţii industriale directe sau pentru
proiectare.
7
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
8
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
Matlab-ul furnizează utilizatorului:
9
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
10
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
conţine o serie Toolbox-uri și de Blockset-uri
permit rezolvarea unor aplicaţii specifice din
diverse domenii cum ar fi:
inginerie electrică și mecanică,
industria aeronautică şi de automobile,
procesarea materialelor,
procesare de semnal,
procesarea imaginilor,
control de sisteme,
statistică,
finanţe ș.a..
11
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
- vizualizarea 2D şi 3D a datelor
- procesarea de imagini
- animaţie şi grafică
12
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
funcţii elementare
funcţii mai sofisticate
13
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
14
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
15
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
16
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
Fereastra principală MATLAB , are trei subferestre:
Command Window
Command History
Workspace
17
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
18
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
Imediat după informaţiile introductive apare pr
ompterul specific mediului Matlab,
caracterul >>
help
Dacă dorim detalii despre o comandă anume scriem
>>help nume_comandă
Exemplu
>>help for
demo
info
19
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
Matlab-ul lucrează cu două tipuri de ferestre:
de reprezentări grafice
20
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
Un program Matlab poate fi scris sub forma
fişierelor
• script
• function
Fişiere script
conţin comenzi Matlab
au extensia .m
poate fi creat în prealabil cu orice editor de
texte (ASCII)
Apelarea fişierelor script se face prin scrierea
numelui fişierului (fără extensie) la poziţia
cursorului în zona de lucru a ferestrei de
comenzi sau cu ajutorul comenzii Open M-file.
21
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
Exemplu
Vom scrie un ex. pentru calculul rădăcinilor ecuației de gradul doi. |
parcurgem următorii pași:
1. New..din File menu, apoi M-file (Script) și scriem comenzile în
noua m-fila:
% script pentru determinarea radacinile ecuatiei de grad doi format
short;
a=1;
b=5;
c=6;
m = -b/(2*a);
n = sqrt(b^2-4*a*c)/(2*a);
x1 = m+n, x2 = m-n
2. Salvăm cu numele rad_ec_grad2.m
>> type rad_ec_grad2
3. Pentru executarea M-filei se tastează numele ei (fără extensia .m)
>> rad_ec_grad2
22
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
Fişierele funcţii
23
Să se scrie un fişier funcţie care să calculeze urmă
toarea funcţie:
f(x)=6x9+5x4-0,3
Fişierul va fi salvat sub numele ex1.m
În Matlab avem:
function f =ex1(x)
% calcularea funcţiei f (x)
f=6*x.^9 +5*x.^4 -0.3
În fereastra de comenzi a Matlab-ului vom scrie:
>> ex1(3)
În paranteză vom da valori lui x, pentru care dorim să calculăm
funcţia f de exemplu : 3, [-0.5 -1 2.2 7].
24
CONSTANTE SI VARIABILE
PREDEFINITE
Matlab operează, în principiu, cu un singur tip de date,
acesta reprezentând o matrice cu elemente care pot fi
eventual complexe.
Numerele sunt tratate ca matrice cu un singur element.
În general, numerele (variabilele) pot lua valori întregi,
reale sau complexe.
Matlab-ul nu face distincţie între variabilele de tip întreg,
real sau complex, deci numele variabilelor şi tipul lor nu
trebuie declarate.
Nici în cazul matricilor dimensiunile nu trebuie declarate.
25
CONSTANTE SI VARIABILE
PREDEFINITE
26
CONSTANTE SI VARIABILE
PREDEFINITE
Exemplul
>> r=4
>> aria_cerc = pi*r^2
aria_cerc =
50.2655
>> b = r+aria_cerc
b=
54.265
>> c = r+(aria_cerc)^2; % ; suprimă afişarea
>> d = c+b
d=
2.5849e+003 27
CONSTANTE SI VARIABILE
PREDEFINITE
>> z = 3+2i
z=
3.0000 + 2.0000i
>> z = 3+2j
>> sqrt(-1); (sqrt == radical)
ans =
0 + 1.0000i
29
OPERATORII ÎN MATLAB
Operatori aritmetici:
adunarea (+)
scăderea (-)
înmulţirea (*)
împărţirea la stânga ( \ )
împărţirea la dreapta ( / )
ridicarea la putere (^)
30
OPERATORI ŞI FUNCŢII ÎN
MATLAB
Adunarea şi scăderea pot fi efectuate:
între două matrici cu aceeaşi dimensiune;
între o matrici şi un număr (numărul este adunat sau
scăzut din toate elementele matricei)
Înmulţirea poate fi făcută:
între două matrici dacă lungimea liniei primei matrice
este egală cu lungimea coloanei celei de-a doua
matrice;
între o matrice şi un număr;
între două matrici de dimensiuni egale (element cu
element), caz în care operatorul * este precedat de un
punct.
31
OPERATORI ŞI FUNCŢII ÎN
MATLAB
Împărţirea poate fi făcută:
la stânga: x=A \ b % x = inv(A)*b Ax = b
la dreapta: x=B / A % x = B*inv(A) Ax = B
(matrice nesingulară)
împărţirea unei matrici la un număr: y = A / v
împărţirea element cu element a matricilor cu
dimensiuni egale: C=A./B
Ridicarea la putere poate fi făcută:
dacă în construcţia A^ p exponentul p este un număr
întreg pozitiv, atunci A se înmulţeşte cu ea de p ori;
dacă A.^ p se realizează ridicarea la puterea p a
fiecărui element din A
A.^B, unde A şi B sunt matrici cu dimensiuni egale.
32
OPERATORI ŞI FUNCŢII ÎN
MATLAB
Operatori relaţionali:
mai mic (<) ;
mai mare (>) ;
mai mare sau egal (>= );
mai mic sau egal (<= );
diferit (~ =) ;
identic (= =);
Operatori logici:
nu (~);
sau (!);
şi (&).
33
Exemplu
Dând valori lui x să se calculeze funcţia de mai jos în Matlab.
f=(x/2.4) 3-((2x2)/2,4)+(8x/2,4)
În fereastra de comenzi a Matlab-ului vom scrie:
>>x=4;
>>f=(x/2.4) ^3-((2*x^2)/2.4)+(8*x/2.4)
Definirea şi crearea expresiilor simbolice
Cu comanda sym se definesc variabilele şi expresiile simbolice,
în linia de comandă a spaţiului de lucru Matlab.
sym(c) – variabilei c i se atribuie caracterul de simbol.
syms x c
Relaţia de mai sus se poate scrie şi sub altă formă:
x = sym('x','c')
>> funtool
Pentru detalii
M-File Help:
>> help funtool
36
FUNCŢII MATLAB DE UZ
GENERAL
f=nume_functie(argument)
37
FUNCŢII MATLAB DE UZ
GENERAL
O mică parte din funcţiile Matlab sunt date mai jos:
39
FUNCŢII MATLAB DE UZ
GENERAL
real extrage partea reală:
z = real(y);
angle calculează faza (unghiul) în radiani:
f = angle(x);
^ ridică un număr x la puterea n:
y = x ^n.
40
40
FUNCŢII MATLAB DE UZ
GENERAL
Să se determine valorile minime şi maxime ale unui
vector şi ale unei matrice:
V = [ 1 3 –9 0 ]
M = [ 1 2 3 ; - 4 0 9 ; 13 7 –10 ]
A = max (V)
B = min (V)
C = max (M)
D = min (M)
se obţin rezultatele:
A=3 C = [ 13 7 9 ]
B = -9 D = [ -4 0 -10 ]
41
FUNCŢII MATLAB DE UZ
GENERAL
Funcţiile sum şi prod calculează suma, respectiv
produsul elementelor unui vector sau ale unei matrici.
sum(v)
prod(v)
Să se determine suma şi produsul vectorului şi matricei
de mai jos:
Sl = sum ( [ 1 3 –9 0 ] )
Sl = -5
Sc = sum ( [ 1 3 –9 0 ] ‘ )
Sc = -5
Sm = sum ([ 1 2 3 ; - 4 0 9 ; 13 7 –10 ] )
Sm = 10 9 2
42
FUNCŢII MATLAB DE UZ
GENERAL
Pl = prod ( [ 1 3 9 2 ] )
Pl = 54
Pc = prod ( [ 1 3 9 2 ] ‘ )
Pc = 54
Pm = prod ([ 1 2 3 ; - 4 0 9 ; 13 7 –10 ] )
Pm = -52 0 -270
43
FUNCŢII MATLAB DE UZ
GENERAL
Să se sorteze vectorii şi matricea de mai jos în ordine
crescătoare
Vl = sort ( [ 4 7 1 5 ] )
Vl = 1 4 5 7
Vc = sort ( [ 7 4 1 5 ] ‘ )
Vc = 1
4
5
7
M = sort ( [ 8 2 6 ; 3 8 2 ] )
M= 3 2 2
8 8 6
44
FUNCŢII MATLAB DE UZ
GENERAL
Funcţia mean -determină media
aritmetică
Funcţia median- mediana (elementul de
la mijlocul unui set de date ordonat
crescător) unui vector sau a unei
matrice.
feval - evaluează funcţii Matlab
eval - evaluează şiruri de caractere cu
expresii Matlab
45
Metode pentru definirea funcțiilor
function M-files
inline functions
46
Definirea funcțiilor cu comanda
function
Din File-New-Function obținem:
function v = viteza(t,m,b)
v=10*(1-exp((-b/m)*t));
47
ANONYMUS FUNCTIONS
Exemplu: f(x)=x2+4x - 8
>> f=@(x)x^2 +4*x - 8
f=
@(x)x^2 +4*x - 8
% calculăm valoarea funcției în x =4
>> f(4)
ans =
24
48
ANONYMUS FUNCTIONS
49
Definirea funcțiilor inline și utilizarea
funcției feval
O altă metodă este de a scrie direct, în programe sau în
Command Window, funcțiile folosind comanda inline.
Sintaxa:
nume_functie = inline('expresie',var1,var2,..)
50
Definirea funcțiilor inline și
utilizarea funcției feval
Exemplu:
f(x)=x2+4x+2
>> f=inline('x.^2+4*x+2','x')
f=
Inline function: f(x) = x.^2+4*x+2
>> argnames(f)
ans = 'x'
>> formula(f) % scrie expresia funcției
ans =
x.^2+4*x+2
>> feval(f,1) % calcutează valoarea funcției în x =
ans = 7 51
Definirea funcțiilor inline și
utilizarea funcției feval
Exemplu:
Definim funcția f (x, y)= x3+ y2
52
INSTRUCŢIUNI ÎN MATLAB
INSTRUCŢIUNEA “IF“
53
INSTRUCŢIUNI ÎN MATLAB
CLAUZA “ELSE”
if expr_logică
grup_de_instrucţiuni_1
else
grup_de_instrucţiuni_2
end
54
INSTRUCŢIUNI ÎN MATLAB
CLAUZA “ELSEIF”
if expr_logică 1
grup_de_instrucţiuni_1
elseif expr_logică 2
grup_de_instrucţiuni_2
elseif expr_logică 3
grup_de_instrucţiuni_3
-------------------------------------
else
grup_de_instrucţiuni_n
end
55
INSTRUCŢIUNI ÎN MATLAB
INSTRUCŢIUNEA “FOR”
56
INSTRUCŢIUNI ÎN MATLAB
INSTRUCŢIUNEA “WHILE”
while expresie
grup_de_instrucţiuni
end
57
COMENZI DE CITIRE ŞI
AFIŞARE ÎN MATLAB
COMANDA “INPUT”
Comanda:
h = input ( ‘ introduceţi variabila x : ‘ )
% se afișează
introduceţi variabila x :
% introducem valoarea, de exemplu 9, apoi Enter
% obținem
h=
9 58
COMENZI DE CITIRE ŞI
AFIŞARE ÎN MATLAB
COMANDA “DISP”
59
Formatul în care valorile numerice vor fi afişate poate fi
modificat de utilizator prin instrucţiunile:
60
COMENZI DE CITIRE ŞI
AFIŞARE ÎN MATLAB
COMANDA “FPRINTF”
61
OPERAREA CU VECTORI ŞI
MATRICI
Vectori în MATLAB
Vectorul linie
a=[0, 2, 1, 2, 3, 4, 5, 6, 7, 8]
sau
a=[0 2 1 2 3 4 5 6 7 8]
63
OPERAREA CU VECTORI ŞI
MATRICI
Numărul de elemente din vectorul a poate fi mărit astfel:
adăugând un element la capătul rândului
a (11) = 0.7; c = [a, 4]
vom obţine:
a=
0 2 1 2 3 4 5 6 7 8 0.7
c=
0 2 1 2 3 4 5 6 7 8 0.7 4
adăugând elementul la începutul rândului:
d = [4, a]
vom obţine:
d=
4 0 2 1 2 3 4 5 6 7 8 0.7
64
OPERAREA CU VECTORI ŞI
MATRICI
Dacă dorim să extragem o parte dintr-un vector vom
proceda astfel:
v = a (3: 4)
vom avea:
v=[1,2]
Putem genera un vector cu pas liniar
Dacă cunoaştem limitele intervalului (amin şi amax) şi
pasul dintre două elemente consecutive (pas) generarea
vectorului cu pas liniar se face cu ajutorul instrucţiunii:
x = amin:pas:amax
De exemplu cu ajutorul instrucţiunii:
i =1: 2 : 10
se generează vectorul
i=
1 3 5 7 9
Dacă pasul se omite, valoarea acestuia se ia implicit egală cu 1.
65
OPERAREA CU VECTORI ŞI
MATRICI
Vectorul coloană
b = [1; 3; 5; 7; 9 ]
66
OPERAREA CU VECTORI ŞI
MATRICI
Adăugarea unui nou element la un vector coloană face astfel :
b1 = [ b ; 7 ] ; b2 = [ -1 ; b ]
vom avea:
b1 = b2 =
1 -1
3 1
5 3
7 5
9 7
7 9
length - precizeză lungimea unui vector
size – precizează dimensiunea unei matrici
length (a) a=6
length (b) b=5
size (a) 1 6
unde 1 reprezintă numărul liniilor, iar 6 reprezintă numărul coloanelor.
67
Metode pentru generarea vectorilor
1.Generăm un vector pornind de la o valoare
iniţială, prima componentă a vectorului, crescând această
valoare cu un pas dat, până la valoarea finală:
>> v = valoarea_iniţială : pas :valoare_finală
EX:
>> x=1:0.8:4
x = 1.0000 1.8000 2.6000 3.4000
>> x = 1:5
x=12345
>> y=(0:0.2:1)' y=
0
0.2000
0.4000
0.6000
0.8000
68
1.0000
Metode pentru generarea vectorilor
69
>> x=linspace(0,4);
% definim funcția
>> y=x.^2-3*x+2;
% folosim calculul element cu element pentru valorile
funcției
% obținem graficul funcției
>> plot(x,y)
>> grid
70
Funcţii din Matlab utilizate în
calcule cu vectori
71
OPERAREA CU VECTORI ŞI
MATRICI
OPERAREA CU MATRICI
72
OPERAREA CU MATRICI
MATRICI SPECIFICE
ones – matrice cu toate elementele 1.
A = ones (m ,n) ; B = ones ( n )
zeros – matrice cu toate elementele 0
A = zeros (m , n)
eye – matrice cu toate elementele de pe diagonală 1, restul 0
A = eye (m , n)
diag – extrage diagonala principală a matricei
diag (A)
triu – extrage matricea superior triunghiulară
triu (A)
tril – extrage matricea inferior triunghiulară
tril (A)
73
OPERAREA CU MATRICI
fliplr – inversează ordinea coloanelor ( roteşte matricea în jurul
axei verticale )
fliplr (A)
flipud – inversează ordinea liniilor ( roteşte matricea în jurul axei
orizontale )
flipud (A)
det (A) – calculează determinantul matricii (A)
inv (A) – calculează inversa matricii (A)
rot(90)- rotește matricea cu multiplu de 90de grade
size(A)-returneză dimensiunea unei matrici
74
MANIPULAREA ELEMENTELOR
CU MATRICI
76
REPREZENTĂRI GRAFICE
BIDIMENSIONALE
Funcţia plot se apelează cu una din sintaxele:
plot (x, y)
% reprezintă grafic vectorul y funcţie de vectorul x
plot (x1, y1, x2, y2 )
% reprezintă simultan mai multe grafice în acelaşi sistem de coordonate
plot (x, y,’caracter’)
% unde ’caracter’ este un şir de caractere care defineşte caracteristicile
graficii trasate
Funcţiile auxiliare:
title - permite completarea graficului cu titlu,
xlabel - permite completarea graficului cu numele axei x,
ylabel - permite completarea graficului numele axei y
grid - permite completarea graficului cu o reţea de linii
77
REPREZENTĂRI GRAFICE BIDIMENSIONALE
Se pot utiliza tipurile de linii, markere tip şi culorile din tabelul de mai jos:
Linii tip Markere tip Culori
Plus + Continuă - Galben y
Cerc o Linie punct -. Mov m
Steluţă * Puncte : Albastru deschis c
X x Întreruptă -- Roşu r
Punct . Verde g
Pătrat s Albastru b
Diamant d Alb w
Triunghi sus ^
78
REPREZENTĂRI GRAFICE BIDIMENSIONALE
Exemplu
Să se reprezinte grafic în
coordonate liniare funcţia
f(t)=10sint, unde t=0:0.1:2π, cu
linie continuă de culoare roşie. Toate
axele trebuie să fie etichetate şi
desenul să aibă titlu.Să se
folosească funcţia grid.
t = 0 : 0.1 : 2*pi;
f = 10* sin (t);
plot( t, f, ‘ – r ‘ )
xlabel( ‘Timpul‘ )
ylabel( ‘Tensiunea‘ )
title(‘Reprezentarea grafică a
funcţiei u=f(t)‘ );
grid
79
REPREZENTĂRI GRAFICE
BIDIMENSIONALE
Pentru reprezentarea grafică în Exemplu
scară logaritmică sau în coordonate
polare folosim funcţiile:
loglog(x, y) x = 0.9 : 0.01 : 5;
% reprezintă graficul în coordonate f = exp((2*x.^2)./(x+1));
logaritmice semilogx(x, f); semilogy(x, f);
semilogx(x, y)
% reprezintă graficul în coordonate
logaritmice pe axa x
semilogy(x, y)
% reprezintă graficul în coordonate
logaritmice pe axa y
polar(teta, ro )
% reprezintă graficul în coordonate
polare
80
REPREZENTĂRI GRAFICE
BIDIMENSIONALE
Să se reprezinte în coordonate
polare funcţia:
f (x) = sin (2x)cos (4x)
x = 0 : 0.002 : pi^2;
y = sin (2*x) .* cos (4*x);
polar (x,y)
81
Reprezentări grafice
tridimensionale
Funcţii Matlab pentru reprezentări grafice în 3D:
82
Reprezentări grafice
tridimensionale
surf - pentru reprezentarea grafică a suprafeţelor pline
3D
surfc - pentru reprezentare grafică a combinaţiei
suprafaţă 3D (continuă) /linii de contur (reprezentate
sub suprafaţă)
surfl - pentru reprezentarea grafică a suprafeţelor 3D
cu umbre
[x, y] = meshgrid(x , y)
83
Reprezentări grafice
tridimensionale
Funcţia plot3 se apelează cu sintaxa:
plot3(x, y, z)
Exemplul
Să se reprezinte grafic o spirală în 3D:
84
Reprezentări grafice
tridimensionale
Funcţia mesh se apelează cu sintaxele:
mesh(x, y, z)
meshc (x, y, z)
meshz (x, y, z)
Exemplul
Reprezentaţi grafic funcţia z = exsin(y) + (x2 + y2) ca suprafaţă mesh.
85
Reprezentări grafice
tridimensionale
Reprezentarea grafică a suprafeţelor netede se
face cu funcţia surf şi se apelează cu
sintaxele:
86
Reprezentări grafice
tridimensionale
Utilizând funcţiile meshc, surfl şi apoi contour să se reprezinte
grafic funcţia pentru x = -4 : 0.2 : 4 şi y = -4 : 0.2 : 4.
[x, y] = meshgrid(-4 : 0.2 : 4, -4 : 0.2 : 4);
z = 0.5 * ( -20 * x .^ 2 + x ) + 0.5 * ( -15 * y .^ 2 + 5 * y )
figure(1)
meshc(x , y , z); title(‘figura 1’)
axis( [ -4 4 –4 4 –400 0 ] );
xlabel (‘axa-x’); ylabel (‘axa-y’); zlabel (‘axa-z’);
figure(2)
surfl (x, y, z); title(‘figura 2’)
axis( [ -4 4 –4 4 –400 0 ] );
xlabel(‘axa-x’); ylabel(‘axa-y’); zlabel(‘axa-z’);
figure(3)
contour3(x, y, z, 15); title(‘figura 3’);
axis( [ -4 4 –4 4 –400 0 ] )
xlabel(‘axa-x’); ylabel(‘axa-y’); zlabel(‘axa-z’);
87
Reprezentări grafice
tridimensionale
88
ERORI ÎN CALCUL NUMERIC
SURSE DE ERORI
Criteriul cel mai eficient pentru alegerea metodei de calcul este
precizia calculelor numerice.
O metodă de calcul este eficientă când precizia calculelor numerice
este bună, adică eroarea totală este foarte mică.
Cu toate performanţele calculatoarelor precizia rezultatelor este
influenţată de mai mulţi factori. I
În calculul numeric pot apărea:
a) erori iniţiale
b) erori de metodă
c) erori de calcul care sunt: - erori de rotunjire
- erori de trunchiere
89
ERORI ÎN CALCUL NUMERIC
a)Erori iniţiale.
Deoarece soluţia depinde de datele iniţiale acestea sunt rezultatul
unor măsurători sau soluţii aproximative ale altor probleme
b)Eroarea de metodă
se introduce în rezolvarea unei probleme prin folosirea metodei
numerice. Aceasta poate fi influenţată (micşorată) prin
alegerea celei mai adecvate metode.
c) Erori de calcul:
Erori de rotunjire. Rotunjirea constă în folosirea a numai n cifre în
toate numerele cu care se lucrează şi în toate etapele de calcul.
Aceste erori pe parcursul unui lung proces de calcul pot afecta
serios rezultatul final.
Erori de trunchiere apar spre exemplu prin reţinerea dintr-o serie a
unui număr finit de termeni
90
ERORI ÎN CALCUL NUMERIC
a)Erori iniţiale.
Deoarece soluţia depinde de datele iniţiale acestea sunt rezultatul
unor măsurători sau soluţii aproximative ale altor probleme
b)Eroarea de metodă
se introduce în rezolvarea unei probleme prin folosirea metodei
numerice. Aceasta poate fi influenţată (micşorată) prin
alegerea celei mai adecvate metode.
c) Erori de calcul:
Erori de rotunjire. Rotunjirea constă în folosirea a numai n cifre în
toate numerele cu care se lucrează şi în toate etapele de calcul.
Aceste erori pe parcursul unui lung proces de calcul pot afecta
serios rezultatul final.
Erori de trunchiere apar spre exemplu prin reţinerea dintr-o serie a
unui număr finit de termeni
91
ERORI ÎN CALCUL NUMERIC
ERORI ABSOLUTE ŞI RELATIVE
Eroarea absolută
Fie numere x şi x*, x fiind valoarea exactă (reală), iar x* fiind o aproximaţie a lui x. Prin luarea
diferenţei dintre x şi x* putem spune că x* este cea mai bună aproximaţie a lui x, sau nu.
Folosind acest lucru putem determina eroarea absolută:
e (x) = x – x
unde - x este valoarea exactă
- x* este o aproximaţie a lui x
Eroarea relativă
Eroarea relativă este definită ca şi raportul dintre eroarea absolută şi valoarea absolută a lui x.
ex
x , unde x 0.
x
De obicei valoarea exactă x nu se cunoaşte, în relaţia de mai sus se va folosi valoarea aproximată
x*:
ex
x
x*
Dacă se cunoaşte numai aproximarea x*, valoarea absolută nu poate fi calculată. În acest caz vom
utiliza eroarea absolută la limită.
92
ERORI ÎN CALCUL NUMERIC
Exemplul
Avem valoarea lui x, x = 1.4 şi fie x* aproximaţia lui x, x* = 1.3. Să se
calculeze eroarea absolută şi eroarea relativă a lui x.
93
ERORI ÎN CALCUL NUMERIC
REPEZENTAREA NUMERELOR. CIFRE SEMNIFICATIVE EXACTE
94
ERORI ÎN CALCUL NUMERIC
PROPAGAREA ERORILOR
95
ERORI ÎN CALCUL NUMERIC
Diferenţa
X - Y = x + e(x) - y - e(y)
conţine eroarea e(x – y) = e(x) – e(y)
Produsul
XY = xy + ye(x) + xe(y) + e(x)(y)
introduce eroarea e(xy) = xe(y) + ye(x)
x e ( x ) x e ( y)
e
y
y y y
96
ERORI ÎN CALCUL NUMERIC
Erorile relative au următoarele valori:
Adunarea:
ex y x ex y ey
er x y
xy xy x xy y
Scăderea:
ex y x ex y ey
er x y
xy xy x xy y
Înmulţirea:
exy ex ey
er xy
xy x y
Împărţirea
x x y ex ey
er e
y
y x x y
97
ERORI ÎN CALCUL NUMERIC
ERORI DE MĂSURARE
-Grosolane
-apar fie ca rezultat al neatenţiei experimentatorului, fie ca
urmare a încălcării principiilor generale de măsurare, odată
detectate ele trebuie înlăturate.
-sistematice
-afectează în acelaşi fel un set de măsurători. Se pot depista prin
investigaţii specifice şi în consecinţă ele pot fi înlăturate.
-aleatoare
-apar datorită unor factori ce nu pot fi depistaţi şi în consecinţă nu
pot fi eliminate
98
METODE NUMERICE PENTRU
REZOLVAREA SISTEMELOR
DE ECUAŢII LINIARE
99
METODE NUMERICE PENTRU
REZOLVAREA SISTEMELOR
DE ECUAŢII LINIARE
Criteriile care trebuie avute în vedere la alegerea unei metode de
calcul pentru o anumită aplicaţie si un sistem de calcul dat
sunt:
numărul de operaţii aritmetice necesare pentru aplicaţia
respectivă şi metoda de calcul numeric aleasă;
precizia rezultatelor finale pentru metoda aleasă;
testarea preciziei calculelor prin verificări intermediare .
În funcţie de aceste criterii pentru o anumită aplicaţie dată se alege
metoda de calcul numeric care poate satisface în cea mai
mare măsură toate cele trei cerinţe.
100
METODE NUMERICE PENTRU
REZOLVAREA SISTEMELOR
DE ECUAŢII LINIARE
Metodele exacte obţin soluţia sistemului considerat, neglijând erorile de
rotunjire şi trunchiere şi folosind un număr finit de operaţii elementare
Dezavantajele metodelor directe sunt:
o cantitate mare de memorie;
timp mare de utilizare al calculatorului;
necesită multe operaţii aritmetice cu acumulări mari ale erorilor de
rotunjire;
Aceste dezavantaje au ca rezultat final nerealizarea preciziei teoretice
dorite.
Cu cât numărul operaţiilor elementare folosite este mai mic cu atât metoda
directă este mai bună, deoarece aceste operaţii se realizează cu
calculatorul şi la fiecare operaţie efectuată de calculator avem o
operaţie de rotunjire.
Dintre aceste metode amintim: metoda Cramer, matricei inverse, Gauss de
eliminare, Gauss-Jordan, rădăcinilor pătrate (metoda lui Cholesky),
etc.
101
METODE NUMERICE PENTRU
REZOLVAREA SISTEMELOR
DE ECUAŢII LINIARE
Metodele iterative obţin soluţia numerică a unui sistem de ecuaţii, prin
generarea unui şir care tinde către soluţia exactă.
Elementele acestui şir de iteraţii se calculează recursiv, iar procesul se
opreşte după un număr finit de paşi la îndeplinirea criteriului de eroare.
Ar trebui efectuate un număr infinit de iteraţii pentru obţinerea soluţiei
exacte, în practică însă putem efectua un număr finit de paşi de
iteraţie şi ajungem astfel la o aproximare suficient de bună a soluţiei
exacte.
Dacă şirul iteraţiilor este convergent, cu cât se efectuează mai multe iteraţii,
cu atât soluţia numerică este mai precis determinată, erorile, atât cele
de trunchiere cât şi cele de rotunjire, devenind tot mai mici.
În utilizarea metodelor iterative este necesar a se avea în vedere că în plus
faţă de metodele directe, erorile de rotunjire sunt însoţite de erorile de
trunchiere ce apar la impunerea unui număr finit de iteraţii procesului
infinit.
Dar metodele iterative au avantajul că erorile de rotunjire sunt aproape
eliminate.
102
METODE NUMERICE PENTRU
REZOLVAREA SISTEMELOR
DE ECUAŢII LINIARE
Avantajele metodelor iterative faţă de metodele exacte sunt:
cantitate de memorie redusă, în cazul matricilor rare fiind necesară
memorarea numai a termenilor nenuli;
dacă rata convergenţei este satisfăcătoare, avem număr mai mic de operaţii
faţă de metodele directe;
datorită formei repetitive a ecuaţiilor, nu este necesară memorarea întregii
matrici;
timp scurt de calcul pentru obţinerea soluţiilor aproximative datorită unui
număr redus de iteraţii.
Un alt avantaj al metodelor iterative este simplificarea codificării lor sub formă
de program.
O observaţie importantă este faptul că în unele cazuri, metodele iterative pot fi
utilizate la îmbunătăţirea soluţiei unui sistem algebric, obţinută printr-o
metodă directă.
Deci metodele iterative sunt utilizate la dezvoltarea unor programe de calcul
pentru sistemele de ecuaţii algebrice de mari dimensiuni, asigurând o viteză
de calcul mare şi un consum de memorie redus.
Dintre aceste metode amintim: metoda Jacobi (metoda deplasărilor simultane),
metoda Gauss – Seidel (metoda deplasărilor succesive), metoda
suprarelaxărilor succesive, etc.
103
METODE EXACTE DE REZOLVARE A
SISTEMELOR DE ECUAŢII ALGEBRICE
LINIARE
REZOLVAREA SISTEMELOR DE ECUAŢII LINIARE PRIN
METODA DE ELIMINARE A LUI GAUSS
104