Sunteți pe pagina 1din 23

Introducere în

Cele mai multe probleme inginereşti de analizat implică:

1.dezvoltarea unui model matematic ce reprezintă toate caracteristicile


importante ale sistemului fizic
2.derivarea ecuaţiilor ce guvernează modelul prin aplicarea legilor fizicii, cum ar
fi ecuaţia de echilibru, legea de mişcare a lui Newton, conservarea masei,
conservarea energiei.
3.determinrea soluţiei ecuaţiilor de guvernare
4.interpretarea soluţiei

Depinzând de sistemul de analizat şi de modelul matematic folosit, ecuaţiile de


guvernare pot fi un sistem de ecuaţii algebrice liniare sau neliniare, un sistem
de ecuaţii transcedentale, un sistem de ecuaţii omogene ce conduce la o
problemă de valori proprii sau o ecuaţie ce implică integrale sau derivate.

Aşadar avem două variante de determinare a soluţiei ecuaţiilor de guvernare:


Analitică
Neanalitică
Dacă soluţia poate fi reprezentată într-o formă dată de o expresie analitică, ea
se numeşte soluţie analitică.
Soluţia analitică denotă soluţia exactă ce poate fi folosită pentru studiul
comportamentului sistemului cu parametrii variabili. Din pacate foarte puţine
sisteme practice conduc la soluţii analitice, prin urmare soluţiile analitice sunt
un caz limitat.

În anumite tipuri speciale de probleme soluţiile grafice de obicei sunt utile în


studiul comportamentului sistemului. Totuşi soluţia grafică este mai puţin
precisă; poate fi reprezentată doar dacă dimensiunea problemei este mai mică
sau egală cu 3 şi necesită mult timp.

Soluţiile numerice sunt cele care pot fi exprimate în expresii matematice. Ele
pot fi determinate folosind un intens proces de calcul potrivit, cunoscut ca o
metoda numerică.
De exemplu să considerăm integrala:
b

 xe
 x2
I1  dx
a

Valoarea acestei integrale poate fi exprimată analitic astfel:

 1  x2  b 1 a2
I1    e  | a  e  e
 2  2
b 2
 
Pe de altă parte integrala:

b b
I 1   f ( x)dx   e  x2
dx
a a

nu are soluţie analitică. Această integrală poate fi doar evaluată numeric.


Deoarece integrala reprezintă aria de sub curba f(x), valoarea ei poate fi
estimată dacă se împarte aria de sub curba f(x) in dreptunghiuri mici şi apoi se
vor însuma ariile acestor dreptunghiuri.
Datorită faptului că metodele numerice implică un număr mare de calcule
matematice, utilizarea lor şi popularitatea lor a crescut odată cu dezvoltarea şi
disponibilitatea calculatoarelor.

Metodele numerice pot fi folosite pentru determinarea soluţiei oricărei probleme


inginereşti complexe. În timp ce soluţia analitică de obicei necesită câteva
presupuneri cu un efect de simplificare asupra sistemului fizic, soluţia numerică
nu necesită asemenea presupuneri.

Deşi soluţia numerică nu asigură o cunoaştere imediată a comportamentul


sistemului fizic simplificat, ea poate fi utilizată pentru studiul comportamentului
sistemului fizic real.
Erori. Clasificarea erorilor

Erori absolute şi erori relative

Fie AєR o valoare exactă a unei cantităţi şi notăm cu a o valoare aproximativă


a lui A.
Eroarea absolută: notată Δa, definită astfel încât |a-A|≤Δa.
Modul practic de determinare a erorii absolute constă în a alege cea mai mică
valoare pentru Δa pentru care este satisfăcută inegalitatea din definiţie.
Valoarea exactă se scrie: A=a± Δa
Eroarea relativă: notată δa, definită de relaţia

a  a ; a  0 
a   a ; A0
a
A
sau uneori poate avea forma :

Valoarea exactă se scrie: A=a(1±δa)


Erori. Clasificarea erorilor

Erori absolute şi erori relative


a  A  a
Exemplu: Fie a=3.14 o aproximaţie a lui A=π. Aa
3.14<π<3.15, deci |a- π|<0.01  a 
a
Aşadar Δa=0.01 şi δa=0.01/3.14≈0.003.
Deci: π =3.14x(1±0.003)
Dar observăm ca 3.14< π<3.142 putem să obţinem estimări mai bune
Δa= 0.002 şi δa=0.002/3.14≈ 0.0006.
Deci: π =3.14x(1±0.0006)
Observaţie: Definiţiile date cu valoare absolută permit extinderea noţiunilor de
eroare absolută şi eroare relativă la elementele oricărui spaţiu vectorial normat
prin înlocuirea valorilor absolute cu norma din spaţiul respectiv.

Definiţie:
Se numesc cifre semnificative exacte ale numărului raţional A scris în formă
zecimală finită, toate cifrele cuprinse între prima şi ultima cifră diferită de zero.
Ex: 498, 08450005600; 498,0845000001; 0,00000000189
Erori. Clasificarea erorilor

Erori de rotunjire si erori de trunchiere


 
i) Eroarea relativă de rotunjire este specifică sistemului de calcul ( computer +
mediu de programare) şi este cel mai mare număr real care adăugat la unitate
nu modifică valoarea acestuia.
Totodată ea depinde de numărul de cifre semnificative exacte folosite în
reprezentarea numărului real şi nu de valoarea sa.
Ordinul de mărime al erorii relative de rotunjire poate fi determinat pentru
fiecare sistem de calcul prin algoritmul:
 
real err
err=1
repetă
err=err/2
până când (1+err=1)
afişează err

Ea se mai numeşte zeroul maşinii şi nu este acelaşi lucru cu cel mai mic
număr pozitiv nenul reprezentabil în computer.
Erori. Clasificarea erorilor

Erori de rotunjire si erori de trunchiere


 
ii) Vorbind despre eroarea de trunchiere este necesar să precizăm că metodele numerice
constau în reducerea rezolvării unei probleme complicate la un număr finit de etape
simple. Datorită caracterului finit al oricărui algoritm, implementarea problemelor ce
presupun matematic parcurgerea unui număr de paşi infinit, determină apariţia unor erori
numite erori de trunchiere. Exemple de astfel de probleme sunt calculul numeric al
limitelor, al seriilor, al funcţiilor, etc.

Într-un calcul de limită a unui şir convergent (x ­n), eroarea de trunchiere este cu atât mai
mică cu cât numărul de termeni calculati din şir, x 1,x2,...xn... este mai mare.
Modul în care eroarea de trunchiere depinde de numărul de paşi n, caracterizează viteza
de convergenţă a algoritmului.

Un algoritm are viteza de convergenţă de ordinul k, dacă există o constantă M>0 astfel
încât eroarea de trunchiere să satisfacă relaţia, pentru orice n>1:
M
er _ trunc ( n)  x  x n 
nk
O categorie importantă de procese numerice infinite reprezintă seriile Taylor.
Ele fiind serii de puteri ce pot fi utilizate la evaluarea funcţiilor elementare
(sinus, cosiunus, exponenţială, logaritm, etc) şi a celor speciale (Bessel).
Erori. Clasificarea erorilor

Erori de rotunjire si erori de trunchiere


 
Exemplu:
Fie seria calculată pe baza controlului erorii de rotunjire.
y=sin(x)
x3 x5 x7
y  x    ...
3! 5! 7!
Termenul general este:
(1) k 1 2 k 1 x2
tk  x  t k 1
(2k  1)! (2k  1)( 2k  2)
Vom trunchia seria de puteri la rangul n:
n
(1) k 1 2 k 1
y 
*
x
k 1 ( 2k  1)!

iar eroarea de truncheiere este:


2 n 1
x
er _ trunc (n)  y  y * 
(2n  1)!
Erori. Clasificarea erorilor

Algoritmul pentru evaluarea funcţiei sinus pentru eroarea de trunchiere mai


mică decât eroarea de rotunjire:
 
real x, T, S
intreg k
T=x;
S=T;
k=1;
repetă
k=k+2;
T= -T∙x∙x/k(k-1);
S=S+T;
până când |T|<err
afişează S.
 
Efortul de calcul pentru evaluarea funcţiei sinus creşte odată cu scăderea erorii
impuse dar şi cu creşterea valorii modulului termenului T.
Erori. Sursele erorilor

În general un rezultat numeric este obţinut cu următoarele tipuri de erori:


1. Erori în modelarea matematică ( de metodă )
Simpla aproximare şi presupunere făcută în reprezantarea unui sistem fizic prin
ecuaţii matematice introduce eroare. De exemplu metoda elementului finit este
realizată cu erori de discretizare. În astfel de caz, rezultatul modelului
matematic va fi diferit faţă de comportamentul măsurat sau observat al
sistemului fizic.
2. Erori de programare
Acestea dacă nu sunt detectate introduc erori în valorile calculate. De aceea
când un program mare este scris, o practică bună este să se dividă programul
în subprograme mai mici şi să se testeze fiecare subprogram în parte pentru
acurateţe.
3. Erori de intrare ( erori iniţiale )
Ele se produc datorită transferului de date şi incertitudinilor asociate
măsurătorilor. De asemenea ele pot surveni din alte calcule prealabil efectuate
pentru modelul matematic respectiv.
Erori. Sursele erorilor

4. Erori de maşină ( erori de rotunjire )


Reprezentarea în virgulă mobilă a numerelor implică erori de rotunjire, erori
underflow şi overflow. Aceste erori sunt introduse la fiecare operaţie aritmetică
în timpul calculului. Ele apar atat la datele iniţiale, în calculele propiu-zise şi la
datele de ieşire.
5. Erori de trunchiere asociate cu procesul matematic
Procesul matematic folosit prin calcul introduce uneori o eroare de trunchiere.
De exemplu evaluarea aproximativă a unei serii infinite sau a unei integrale ce
are infinitul ca limită de integrare, implică erori de calcul.
Rezolvarea sistemelor algebrice liniare

Fie sistemul de ecuaţii:


a11 x1  a12 x 2  ...a1n x n  b1
.


.
a m1 x1  a m 2 x 2  ...a mn x n  bm

cu m ecuaţii şi n necunoscute.
Dacă m=n atunci matricea sistemului Ax=b este pătratică şi există o bună
probabilitate pentru determinarea unei soluţii unice.

Dacă una sau mai multe ecuaţii din cele m sunt o combinaţie liniară de celelalte
(linii degenerate) sistemul poate să nu aibă soluţie unică. Un sistem degenerat
se numeşte singular. Determinantul matricii sistemului este nul. Pentru o
matrice pătratică o linie degenerată implică o coloană degenerată şi viceversa.
Rezolvarea sistemelor algebrice liniare

Sistemul anterior se scrie matricial:


 a 11 a 12 ... a 1n  b1 
.   
b 2 
Ax=b, unde A 
.


şi B  . 
. 
 a 
m1 a m 2 ... a mn   
b m 

Din punct de vedere numeric la rezolvarea unui sistem algebric pot apărea
două probleme...
Rezolvarea sistemelor algebrice liniare

A. Chiar dacă nu sunt combinaţii exacte liniare una de cealaltă unele din
ecuaţii pot să fie atât de aproape de dependenţă liniară astfel încât erorile
de rotunjire în calcul să le facă liniar dependente în cursul rezolvării. În
acest caz procedura numerică nu va reuşi dar vă va avertiza că nu
reuşeşte.
B. Acumularea erorilor de rotunjire poate îneca soluţia adevărată. Această
problemă apare în special dacă n este foarte mare. Procedura numerică nu
greşeşte algoritmic, totuşi calculează cu set de x-uri greşit după cum se
poate vedea prin substituţie în ecuaţiile originale. Cu cât setul de ecuaţii
este mai aproape de singularitate cu atât este mai probabil să se întâmple
astfel, deoarece anulări din ce în ce mai apropiate vor apare în timpul
rezolvării. De fapt cazul anterior poate fi privit ca un caz special când
pierderea de precizie este totală.
Rezolvarea sistemelor algebrice liniare

Mai multe metode şi tehnici sofisticate de rezolvare a ecuaţiilor liniare


sunt folosite pentru detectarea sau conectarea celor două probleme
prezentate.

Este dificil să se dea orice direcţie de soluţionare generală a unei


probleme liniare tipice, dar se poate spune că sistemul liniar cu n ecuaţii, unde
n este cuprins între valori până la 20 sau 50, poate fi rezolvat în simplă precizie
(32 biţi) fără a fi nevoie de alte tehnici sofisticate, în cazul în care nu avem un
caz de singularitate.

Dacă lucrăm în dublă precizie (64 biţi ) putem avea seturi de câteva
sute de ecuaţii, iar factorul de limitare este datorat adesea timpului de calcul şi
nu acurateţii. Chiar dacă numărul de ecuaţii n atinge mii, sistemul de ecuaţii
poate fi rezolvat dacă el se încadrează în clasa sistemelor cu matrici rare, care
au foarte puţine elemente nenule în compoziţia lor. Pentru această clasă există
metode specifice de rezolvare şi de memorare a ecuaţiilor.
Rezolvarea sistemelor algebrice liniare

Există însă şi situaţii de sisteme liniare care prin natura lor se apropie
de singularitate. În acest caz este nevoie uneori de tehnici sofisticate de
rezolvare care se aplică chiar şi pentru cazul de n=10 ecuaţii. O tehnică
puternică în acest sens este dată de metoda descompunerii valorilor singulare
(SVD).
În multe cazuri de acest tip nu avem altă alternativă decât de a folosi
pachete de programe din "cutia neagră". Sunt disponibile mai multe rutine, care
sunt scrise în C sau Fortran. Ele sunt publicate, documentate şi disponibile
pentru folosirea liberă de către orice utilizator.
Aceste pachete de programe sofisticate sunt destinate pentru sisteme
foarte mari. Ele sunt făcute cu efortul de minimizare nu numai a numărului
operaţiilor, dar şi a zonei de stocare în memorie. Rutinele sunt scrise în
versiuni care corespund câtorva forme simplificate ale matricii sistemului:
simetrice, triunghiulare, bandă, pozitiv definită, etc.
Dacă avem de-a face cu o matrice într-una din aceste forme este cu
siguranţă mai bine să se folosească rutinele specifice ei, cu avantajele
eficienţei algoritmului scris şi nu rutinele generale ale rezolvării unui sistem
algebric.
Rezolvarea sistemelor algebrice liniare

Metodele de rezolvare a sistemelor de ecuaţii liniare pot fi împărţite în două


clase :
Metode directe, care dau soluţia într-un număr finit de operaţii
elementare efectuate asupra matricii A şi a vectorului b. La fiecare operaţie
elementară se poate vorbi de o eroare de rotunjire a calculelor şi din acest
motiv este de dorit ca numărul operaţiilor elementare să fie cât mai mic.
Soluţia obţinută printr-o metodă directă este aproximativă.
Ca şi exemple de metode directe: metoda lui Cramer, metoda lui
Gauss de eliminare, metoda lui Cholesky (metoda rădăcinilor pătrate), metoda
lui Gauss-Jordan, etc.
Metode iterative, care sunt preferabile când numărul de ecuaţii din sistem
este foarte mare sau problema rezolvării sistemului este aproape de
singularitate. Soluţia se obţine pe baza unui proces iterativ convergent, infinit.
Se porneşte de la o valoare iniţială dată a soluţiei şi apoi se construieşte un şir
al soluţiilor aproximative care converge la soluţia adevărată. Procesul este
întrerupt după un număr finit de paşi când două iteraţii succesive sunt suficient
de apropiate, iar soluţia este obţinută cu o precizie impusă. Exemple: metoda
lui Jacobi, metoda lui Gauss-Seidel, metoda relaxării.
Rezolvarea sistemelor algebrice liniare

Î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. Convergenţa metodelor iterative este rapidă dacă se
cunoaşte o aproximaţie iniţială apropiată de soluţia exactă a sistemului. Ele
necesită un număr mai mic de operaţii pentru aceeaşi precizie în soluţie decât
metodele directe.
Un alt avantaj al metodelor iterative este simplitatea codificării lor sub
formă de program. Erorile de rotunjire sunt deci mai mici decât în cazul
metodelor directe, dacă aproximaţia iniţială este bine aleasă. Metodele directe
pentru rezolvarea unui sistem algebric liniar de ordinul n necesită un număr de
operaţii elementare de ordinul O(n3 ). Cu cât creşte ordinul sistemului cu atât
creşte şi ordinul operaţiilor şi erorile de rotunjire se pot acumula ducând la
erori relative mari ale soluţiei.
Rezolvarea sistemelor algebrice liniare

Este deci necesar în cazul metodelor directe a se minimiza aceste


erori de rotunjire, ceea ce presupune reordonări ale ecuaţiilor sistemului după
fiecare etapă a metodei aplicate, care s-ar numi proceduri de pivotare. Aceste
proceduri însă în cazul sistemelor cu set mare de ecuaţii implică un număr
suficient de mare de operaţii suplimentare şi atunci este binevenită o metodă
de tip iterativ.
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ă.
Rezolvarea sistemelor algebrice liniare

Complexitatea algoritmilor numerici

Calitatea unui algoritm ce permite obţinerea soluţiei corecte este


apreciată prin eficienţa sa spaţială (memoria necesară datelor şi programului)
şi prin eficienţa sa temporală (timpul de calcul necesar obţinerii soluţiei).
De exemplu algoritmul pentru înmulţirea matricilor pătrate n
dimensionale necesită 3n2 locaţii de memorie (în fiecare memorându-se un
număr real element al matricei A, B sau C). Dacă dimensiunea n a matricei
creşte de 10 ori, spaţiul necesar creşte de 100 ori, motiv pentru care se spune
că algoritmul este de de ordinul 2 şi se scrie O(n2).
Rezolvarea sistemelor algebrice liniare

Complexitatea algoritmilor numerici

Pentru evaluarea modului în care timpul de calcul depinde de


dimensiunea problemei rezolvate de algoritm se adoptă ca referinţă timpul
necesar efectuării unei operaţii elementare (adunare şi înmulţire de numere
reale) şi apoi se evaluează numărul acestor operaţii.
De exemplu pentru calculul produsului scalar a doi vectori n-
dimensionali se efectuează (n-1) adunări şi n înmulţiri deci, în total (2n-1)
operaţii. Deoarece la dublarea dimensiunii se dublează practic numărul de
operaţii, se spune că acest algoritm are ordinul de complexitate liniar şi se
notează T=O(n).
În algoritmii numericii timpul de calcul este consumat mai ales de
operaţiile repetate ciclic. Ordinul de complexitate este în general dat de
numărul ciclurilor incluse unul în altul.
De exemplu, produsul scalar a doi vectori este un algoritm de ordin 1:
T=O(n), iar produsul a două matrice pătrate este de ordinul 3: T=0(n3). Trebuie
precizat că o aceeaşi problemă poate avea doi sau mai mulţi algoritmi de
rezolvare cu ordine de complexitate diferite.

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