Sunteți pe pagina 1din 104

METODE NUMERICE

Ş.l.dr.ing. Mihaela Cornelia NOVAC

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.

Calculul numeric este un calcul aproximativ şi


implică două aspecte:
 prelucrarea matematică a datelor obţinute din
măsurători;
 rezolvarea numerică aproximativă, deci nu analitică a
unor modele matematice.

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.

 Soluţia analitică este valabilă numai în contextul


acestor ipoteze, încercarea de a o generaliza
constituie o sursă de erori.

3
Analiza matematică reprezintă fundamentele metodelor
numerice

Majoritatea datelor care intră în relaţiile ce intervin în


diferite modele, sunt însă apropiate sau
aproximative în raport cu fenomenul reflectat de
model ca rezultat al datelor numerice înregistrate în
desfăşurarea lui.

In cele mai multe cazuri însăşi modelul estel aproximativ.


Din aceste motive se impune aflarea aşa ziselor soluţii
aproximative ale problemelor, ceea ce a condus la
dezvoltarea impetuoasă a metodelor numerice în
cadrul analizei numerice.
4
 Aproximarea numerică se aplică aproape peste tot,
dar prezintă subtile variaţiuni de la un caz la altul.

 O metodă de aproximare ( numerică ) constă în


înlocuirea unei probleme date Pd printr-o altă
problemă P1 de o structură relativ mai simplă,
astfel încât soluţia problemei P1 să fie suficient de
apropiată de cea a lui Pd.
 De cele mai multe ori rezolvarea problemei P1 se
desfăşoară după un algoritm care constă dintr-o serie de
relaţii, operaţii algebrice şi logice care implică un număr
mare de operaţii elementare.
 Aşa se explică amploarea cunoscută de utilizarea
metodelor numerice odată cu extinderea folosirii
calculatoarelor.
5
 Obiectul de studiu al analizei urmăreşte să
demonstreze că o anumită problemă are soluţie
şi dacă aceasta este unică sau nu.

 Metodele numerice stabilesc posibilităţile cele


mai eficace pentru obţinerea acestei soluţii, sub
aspectul preciziei, al timpului de calcul necesar,
al volumului de memorie ocupată etc.

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

Matlab-ul este un mediu interactiv de


programare dedicat problemelor inginereşti şi
ştiinţifice şi mai general pentru acele aplicaţii
unde trebuie efectuat un volum mare de
calcule numerice, precum şi pentru
reprezentări grafice.

8
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB
Matlab-ul furnizează utilizatorului:

 manipulare uşoară a structurilor matriceale;


 un număr mare de rutine puternice, furnizate
odată cu programul, număr care este în
continuă creştere şi dezvoltare;
 facilităţi grafice bidimensionale şi
tridimensionale;
 permite utilizatorului să dezvolte şi să
modifice softul adăugând propriile programe
la fişierele originale dezvoltând aplicaţii
specifice domeniului în care lucrează.

9
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB

 În Matlab orice variabilă poate lua ca valori


orice tip de număr (întreg, real sau
complex) fără declaraţii speciale în program.

 Întregul sistem de lucru în Matlab este bazat


pe principiul de rezolvare din algebra liniară.

 Deşi Matlab-ul este mai uşor de utilizat, el


nu elimină avantajele programării în
Fortran, Pascal şi C, acestea utilizându-se
pentru calculul de înaltă performanţă care
necesită timp mare de lucru.

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​

 Modulul Handle Graphics®, sistemul de grafică


MATLAB permite:

- vizualizarea 2D şi 3D a datelor
- procesarea de imagini
- animaţie şi grafică

12
ELEMENTE FUNDAMENTALE DE ​
PROGRAMARE ÎN MATLAB​

 Biblioteca de funcţii matematice din MATLAB,


conține o colecţie de algoritmi de calcul:

 funcţii elementare
 funcţii mai sofisticate

13
ELEMENTE FUNDAMENTALE DE ​
PROGRAMARE ÎN MATLAB​

Interfaţa de aplicaţii program a MATLAB-ului (API)


este o bibliotecă care permite scrierea de programe
în C sau Fortran care interacţionează cu MATLAB-ul.

 Include facilităţi pentru:


 apelarea rutinelor din MATLAB,
 apelarea MATLAB-ului ca maşină de calcul,
 scrierea şi citirea fişierelor de tip .MAT

14
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB

Lansarea programului MATLAB

 Se lansează în execuţie din mediul Windows prin


selectarea pictogramei Matlab.
 mediul de dezvoltare Matlab este alcătuit dintr-
un set de unelte care facilitează folosirea funcţii-
lor şi fişierelor MATLAB.

15
ELEMENTE FUNDAMENTALE DE
PROGRAMARE ÎN MATLAB

 Interfeţele grafice includ:

 fereastra principală MATLAB sau MATLABDesktop,


 fereastra de comenzi sau Command Window,
 fereastra ce memorează istoria comenzilor sau Co
mmand History, şi browser-ele de Help,
 Workspace, Files,
 Search Path etc.

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

Numele variabilelor în MATLAB


 încep cu o literă a-z sau A-Z urmată de alte
caractere: a-z, A-Z, sau _;
 au lungimea maximă din 31 caractere;
 numele variabilelor nu trebuie să coincidă cu numele
funcţiilor din biblioteca Matlab, sau cu funcţiile
definite de utilizator;
Matlab este case sensitive,
variabila raspuns_1 diferită de variabila RASPUNS_1

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 comenzi, unde se lucrează într-unul din


următoarele două moduri:

 modul linie de comandă,


 modul program

 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

Dacă prima linie a fişierului .m conţine cuvântul “function”,


fişierul respectiv este declarat ca şi fişier funcţie.

function [param_ieşire] = nume_funcţie(param_intrare)

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

Constantele numerice pot fi numere reale sau numere


complexe.
Constantele de tip şir sunt definite prin şiruri de
caractere alcătuite din litere, cifre, spaţii,
delimitate prin apostrof

Exemplu 'a1 aria_cerc r a2'

Pentru a afişa valoarea unei variabila se tastează


numele ei.

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

>> 'a1 a2'


ans =
a1 a2
28
CONSTANTE SI VARIABILE
PREDEFINITE
Constante şi variabile predefinite (permanente) în Matlab:
 eps
>> eps
ans = 2.2204e-016
 pi
>> format long
>> pi
ans = 3.14159265358979
 i, j-unitate imaginară
 Inf-infinit
 NaN (Not a Number)
 ans-(answer) este predefinită şi conţine rezultatul ultimei
operaţii, în urma căreia nu s-a făcut nici o atribuire.

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') ​

În mod asemănător altor limbaje de programare şi în progra


mele Matlab se pot introduce comentarii. ​
Caracterul procent (%), marchează începutul comentariului. ​34
FUNCŢII MATLAB DE UZ
GENERAL
Un mare număr de funcţii sunt construite direct în
Matlab.
Aceste funcţii pot returna una sau mai
multe valori.
Funcţiile elementare se obţin cu comanda:
>> help elfun
Funcții speciale din Matlab
>> help specfun
Funcţiile de matrice se obţin cu comanda
>> help elmat
35
 În MATLAB putem accesa o funcție calculator
grafic interactiv pentru lucrul cu funcții de o
variabilă.
 Acesul la această funcție se face cu comanda:

>> funtool
Pentru detalii
M-File Help:
>> help funtool

36
FUNCŢII MATLAB DE UZ
GENERAL

În Matlab toate funcţiile se apelează cu sintaxa ge


nerală:

f=nume_functie(argument)

37
FUNCŢII MATLAB DE UZ
GENERAL
O mică parte din funcţiile Matlab sunt date mai jos:

 sqrt calculează radicalul de ordinul doi:


f =sqrt(x+10);
 abs calculează valoarea absolută (modulul):
y = abs(x)/z;
 conj calculează conjugata:
x = conj(y);
 sin calculează sinusul:
z = sin(x)-x;
 log calculează logaritmul natural:
y = log(x+1);
 log2 calculează logaritmul în baza doi:
x = log2(y);
38
FUNCŢII MATLAB DE UZ
GENERAL
 log10 calculează logaritmul zecimal:
z = log10(1-2*x);
 cosh calculează cosinusul hyperbolic:
y = cosh(pi*x);
 exp calculează exponenţiala:
p = 0.6*exp(x); ex
 expm calculează exponenţialul matricei:
d = expm(A+B);
 sqrtm calculează radicalul matricei:
x = sqrtm(D);
 imag extrage partea imaginară:
x = imag(y);

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.

Alte funcţii Matlab


Funcţiile min şi max determină minimul, respectiv
maximul unui vector sau al unei matrici.
 min (v)
 max (v)

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

Elementele unui vector sau ale unei matrici pot fi sortate


în ordine crescătoare cu funcţia sort.
[ Y , I ] = sort (x)
Y = elementele coloanelor sortate în ordine ascendentă
I = indicii elementelor sortate

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

În Matlab putem defini funcțiile prin trei metode:

 function M-files

 anonymus functions sau function handles @(x)

 inline functions

46
Definirea funcțiilor cu comanda
function
Din File-New-Function obținem:

function [ par_ies] = nume_functie(par_intr )


% scriem funcția
end Exemplu:

Vom crea o funcție cu numele viteza:


 numele_functiei: viteza
 par_ies: v
 par_intr: t,m,b

function v = viteza(t,m,b)
v=10*(1-exp((-b/m)*t));

47
ANONYMUS FUNCTIONS

Cea mai simplă metodă pentru a crea funcții în Matlab


este să folosim semnul @.
Sintaxa: nume_functie = @(var1,var2,..)expresie

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

% calculăm valoarea funcției într-un vector


% rescriem funcția pentru a putea face calculele element
cu element
>> x=1:10;
>> f=@(x) x.^3+ 4*x - 8
f=
@(x)x.^3 + 4*x - 8
>> f(x)
ans =
-3 8 31 72 137 232 363 536 757 1032

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,..)

Putem defini funcțiile și scriind expresia literală a funcției


pentru a fi evaluată cu comanda eval.
Valorile funcţiilor definite inline, calculate în diferite valori ale
argumentelor se pot obține folosind M-funcția (built in) feval.
Sintaxa:
[y1,..,yn] = feval(f,x1,...,xn)

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

>> g = inline ('xˆ3 + yˆ2','x','y');


>> g(2,4)
ans =
24

52
INSTRUCŢIUNI ÎN MATLAB

 INSTRUCŢIUNEA “IF“

-Selectarea grupului de instrucţiuni de executat în funcţie de o


condiţie logică poate fi executată cu ajutorul instrucţiunii if.
-Acesta se încheie cu end şi poate avea operatori relaţionali în
expresia matematică.
-Combinarea a două sau mai multe expresii logice se face cu
ajutorul operatorilor logici.

Cea mai simplă formă de apelare este:


if expr_logică
grup_de_instrucţiuni
end

53
INSTRUCŢIUNI ÎN MATLAB
 CLAUZA “ELSE”

-este utilizată pentru a executa un set de instrucţiuni,


dacă expresia logică este Adevărată şi un alt set de
instrucţiuni dacă expresia logică este Falsă.

Forma generală de apelare a clauzei else este:

if expr_logică
grup_de_instrucţiuni_1
else
grup_de_instrucţiuni_2
end

54
INSTRUCŢIUNI ÎN MATLAB
 CLAUZA “ELSEIF”

-se foloseşte atunci când funcţia de calculat are mai


multe nivele de instrucţiuni elseif.
Forma generală de apelare a clauzei elseif este:

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”

-se utilizează în situaţiile în care este necesară


repetarea unui grup de instrucţiuni de un număr
predefinit de ori.

Structura generală a acestei instrucţiuni:

for index = expresie


grup_de_instrucţiuni
end

56
INSTRUCŢIUNI ÎN MATLAB
 INSTRUCŢIUNEA “WHILE”

-se foloseşte în cazul în care un grup de instrucţiuni


trebuie repetat până când o anumită condiţie, testată la
începutul fiecărei iteraţii, este îndeplinită .

Structura generală a acestei instrucţiuni este :

while expresie
grup_de_instrucţiuni
end

57
COMENZI DE CITIRE ŞI
AFIŞARE ÎN MATLAB
COMANDA “INPUT”

 Are ca parametru un şir de caractere.


 La execuţie se afişează şirul de caractere şi se aşteaptă
răspunsul utilizatorului.

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”

 Afişează valoarea unei matrici fără a tipări numele ei.


 Dacă matricea este un mesaj va tipări respectivul mesaj
(text).
Se apelază cu sintaxa:
disp(A)

unde A este un text şir sau o matrice

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”

 Permite tipărirea unui mesaj şi a unei liste de variabile pe ecran


sau într-un fişier. Se apelează cu sintaxa:

fprintf ( ‘ filename ‘ , ‘ format string ‘ , lista )


unde: - lista este o listă de nume de variabile separate prin virgulă
- filename este numele fişierului care este un parametru opţional

Elementele folosite în ‘ format string ‘ sunt:

 % P.Qe – pentru operaţii exponenţiale


 % P.Qf – numere reale
 % P.Qg – scrierea numărului în formatul cel mai potrivit (% P.Qe
sau % P.Qf )
\ n operatorul pentru linie nouă.
 P şi Q sunt întregi.

61
OPERAREA CU VECTORI ŞI
MATRICI
Vectori în MATLAB

Variabilele în Matlab sunt reprezentate ca matrice.

Vectorii şi matricele sunt tablouri de numere aranjate în


linii şi/sau coloane.
Ele se vor introduce între paranteze drepte, element-by-
element .
 o mărime scalară este reprezentată ca o matrice de
tip (1 x 1)
 un vector linie ca o matrice (1 x n),
 un vector coloană ca o matrice (n x 1)
 o matrice (tablou) ca o matrice de tip (m x n).
62
OPERAREA CU VECTORI ŞI
MATRICI
OPERAREA CU VECTORI

Vectorii pot fi interpretaţi ca matrice cu o singură linie sau coloană

 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]

Pentru a afişa un element din vector de exemplu a(3) vom scrie


a (3)
vom obţine: ans = 1

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 ]

- se poate obţine şi prin transpunerea vectorului linie.


Astfel avem:
a = [0 2 1 2 3 4]’
Dacă afişăm rezultatul vom obţine:
a=
0
2.0000
1.0000
2.0000
3.0000
4.0000
Identic putem obţine un vector linie ca transpus al vectorului coloană.

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

2.Generarea unui vector folosind funcţia Matlab


linespace
>> x = linspace(val_initiala, val_finala)
>> x = linspace(val_initiala, val_finala, nr_comp)
Ex:
>> v = linspace(0,0.25,6)
>> v = linspace(0,0.25,6)'
>> x=linspace(0,2*pi,4)'; >> y=sin(x); >> z=cos(x);
>> [x y z] % afișează vlorile în formă de tabel

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

 O matrice se poate introduce direct de la tastatură prin precizarea


elementelor ei.
 Elementele ei sunt introduse într-o listă, între două paranteze drepte,
valorile elementelor pe linii sunt separate prin spaţiu (sau virgulă), iar
sfârşitul liniei se marchează prin punct şi virgulă ( ; ) sau enter. O
matrice este definită astfel:
A=[1 2 3;4 5 6;7 8 9]
 Elementele matricii pot fi constante numerice sau expresii.
 O comandă de genul:
A = [ -1.3 2 – sqrt(16) (1 + 2 + 11 ) * 2/6 ]
va deveni o matrice A cu elementele:
A =[ -1.3000 -2.0000 4.6667]
 O matrice se poate introduce de la tastatură utilizând funcţia input.
X = input ( ‘ introduceţi matricea X : ‘ )

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

În Matlab elementele pot fi manipulate în bloc sau individual.


De exemplu :
a (1) = b (1) + d (1) , x (1,3) = c (4,2) + v (2,3)

Formule pentru selectarea liniilor sau coloanelor:


A (
:, : ) –selectează toată matricea
A (
i, : ) –selectează linia i a matricei A şi toate coloanele
A (
:, j ) –selectează coloana j a matricei A şi toate liniile
A (
:, j:g) –selectează toate liniile şi coloanele de la j la
g
A ( i, j:g) -selectează linia i şi coloanele de la j la g
A (i:h,:) -selectează liniile de la i la h şi toate coloanele
A(:) – selectează toate elementele matricei A şi le
aşează pe o singură coloană
75
REPREZENTĂRI GRAFICE
BIDIMENSIONALE

Funcţiile în Matlab destinate reprezentării grafice bidimensionale


sunt:
 plot - pentru reprezentare în coordonate liniare
 loglog - pentru reprezentare grafică în coordonate
logaritmice
 semilogx - pentru reprezentare grafică în coordonate
semilogaritmice (axa x este logaritmică )
 semilogy - pentru reprezentare grafică în coordonate
semilogaritmice (axa y este logaritmică )
 fill - reprezintă grafic poligoane

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 jos v Negru k

Triunghi sus ^

Triunghi stânga <

Triunghi dreapta >

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:

 plot3 –pentru reprezentarea graficelor în 3D


 contour3 – pentru reprezentarea grafică în 3D a liniile de
contur
 fill3 – pentru reprezentarea grafică în 3D a poliedrelor
 mesh –pentru reprezentarea suprafeţelor 3D sub forma
unei “reţele” (“mesh”)
 meshc – pentru reprezentarea grafică a combinaţiei
suprafaţă 3D / linii de contur (reprezentate sub suprafaţă)
 meshz– pentru reprezentarea grafică a suprafeţelor 3D cu
plan de referinţă la cota zero

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

 meshgrid – generează o matrice a reţelei în planul x-y .


Se apelează cu sintaxa :

[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:

t = 0 : pi/500 : 20*pi;f = 100*sqrt(t).*cos(t)


g = sqrt(t).*sin(t);plot3 ( t , f ,g )

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.

[x, y] = meshgrid(-1: .01 : 1, -1 : .01 :1);


z = exp(x).*sin(y)+(x^2 + y^2) ;
meshz (x, y, z)
title(‘Graficul 3D a funcţiei z’);
xlabel(‘x’)
ylabel(‘y’)
zlabel(‘z’)

85
Reprezentări grafice
tridimensionale
Reprezentarea grafică a suprafeţelor netede se
face cu funcţia surf şi se apelează cu
sintaxele:

 surf (x, y, z, c) – reprezintă o suprafaţă descrisă de


matricele x , y şi z şi colorată cu elementele precizate în
matricea c.
 surfc (x, y, z) – este identică cu surf (x , y , z) ,
exceptând liniile de nivel care sunt reprezentate sub
suprafaţă pe acelaşi grafic.
 surfl (x, y, z) - trasează o suprafaţă 3D cu umbre.

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.
ex 
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*:
ex 
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.

Calculăm eroarea absolută: e = x - x* = 1.4-1.3 = 0.1


Eroarea relativă
e 0.1
   0.071428
x 1.4
Presupunem că pentru x se cunosc un minorant m şi un majorant M,
avem încadrarea m < x < M şi m<x*<M, atunci
e(x) = x – x* < M – m.
Orice element e(x)*al mulţimii de mai jos se numeşte eroare absolută la
limită.
e(x)*( e(x), M-m )

93
ERORI ÎN CALCUL NUMERIC
REPEZENTAREA NUMERELOR. CIFRE SEMNIFICATIVE EXACTE

Orice număr pozitiv poate fi reprezentat în baza 10 sub forma:


a = a110m + a210m-1 + …. + an10m-n+1
- a1, a2,…, an - se numesc cifre semnificative.
-toate cifrele nenule lui a sunt semnificative,
Exemplul
Numărul
a = 510-3 + 810-4 + 010-5 +710-6 + 310-7 + 010-8 = 0.0058073000
are 6 cifre semnificative:
-primele trei cifre 0 sunt nesemnificative (indică numai poziţia virgulei în scrierea zecimală
restrânsă),
-următoarele două cifre 5 şi 8 sunt semnificative,
-cifra 0 dintre 8 şi 7 este semnificativă,
-cifrele 7 şi 3 sunt semnificative,
-următoarea cifră 0 este semnificativă (cifră conservată),
-iar ultimele două cifre sunt nesemnificative (numărul a are cifre numai până la ordinul de
mărime 10-8).

94
ERORI ÎN CALCUL NUMERIC
PROPAGAREA ERORILOR

O eroare ce apare la o operaţie aritmetică se propagă spre


următoarele, într-o măsură mai mare sau mai mică, în funcţie
de felul şi ordinea acestor operaţii.
Considerăm două numere x şi y ce aproximează mărimile X şi Y cu
erorile e(x) şi e(y):
X = x + e(x) şi Y = y + e(y).
Erorile absolute şi relative, în cele patru operaţii aritmetice, depind
de erorile fiecărui operand şi au următoarele expresii:
Suma:
X + Y = x + e(x) + y + e(y) = x + y + e(x) + e(y)
este afectată de suma erorilor e(x+y) = e(x) + e(y)

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)

Împărţirea numărului X la Y introduce eroarea:

 x  e ( x ) x e ( y)
e     
y
  y y y

96
ERORI ÎN CALCUL NUMERIC
Erorile relative au următoarele valori:
Adunarea:
ex  y  x ex  y ey 
 
er x  y   
xy xy x xy y
Scăderea:
ex  y  x ex  y ey 
er x  y    
xy xy x xy y
Înmulţirea:
exy ex  ey 
er xy   
xy x y
Împărţirea
 x   x  y ex  ey 
er    e   
y
    y x x y

97
ERORI ÎN CALCUL NUMERIC
ERORI DE MĂSURARE

Erorile de măsurare sunt în general de trei feluri:

-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

Pot fi grupate în trei categorii:


-cu ajutorul determinanţilor
-cu ajutorul metodei eliminării
-cu ajutorul tehnicilor iterative
Cele mai folosite sunt metoda eliminării
şi metoda tehnicilor iterative.

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.

Pentru rezolvarea sistemelor de ecuaţii algebrice se pot utiliza două


tipuri de metode:
 Metode exacte (directe)
 Metode iterative (indirecte)

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

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