Cuprins
- Introducere 3
- Capitolul I
- METODE DE PROGRAMARE CU MATRICE RARE
- 1.1 Noţiuni fundamentale despre matrice rare 4
- 1.2 Memorarea unui vector
- 1.3 Memorarea unei matrice rare 5
- 1.3.1 Memorarea prin identificare binară 6
- 1.3.2 Memorarea compactă aleatoare 8
- 1.3.3 Memorarea compactă simetrică
- 1.3.4 Memorarea folosind listele înlănţuite
- 1.3.5 Memorarea matricelor rare cu structuri speciale
- 1.4 Tehnici de programare cu matrice rare
- 1.5 Organizarea programelor de calcul cu matrice rare 10
- Capitolul II
- FACTORIZAREA MATRICELOR RARE
- 2.1 Pivotaj intr-o matrice rara 20
- 2.2 Factorizarea LU 23
- 2.3 Bifactorizare 33
- 2.4 Comparaţie între metodele de factorizare 35
- Capitolul III
- REZOLVAREA SISTEMELOR DE ECUAŢII ALGEBRICE LINIARE
- CU MATRICEA COEFICIENŢILOR RARĂ
- 3.1 Condiţionare, stabilitate şi pivotare 36
- 3.2 Scalarea matricelor rare 42
- 3.3 Metode directe 46
- 3.3.1 Rezolvarea sistemelor triunghiulare
- 3.3.2 Rezolvarea sistemelor cu structură specială
- 3.4 Metode iterative
- 3.4.1 Metode staţionare
- 3.4.2 Metode de gradient
- 3.5 Comparaţii între metodele directe şi iterative
- Capitolul IV
- PRPGRAMAREA LINIARĂ UTILIZÂND METODE DE CALCUL CU MATRICE RARE
- 4.1 Algoritmul simplex revizuit cu inversa explicită (IE)
- 4.1.1 Determinarea unei soluţii admisiobile de bază iniţială
- 4.1.2 Îmbunătăţirea unei soluţii admisibile de bază neoptimale
- 4.1.3 Schimbarea bazei
- 4.1.4 Pivotarea – actualizarea inversei noii baze
- 4.1.5 Algoritmul IE
- 4.1.6 Degenerare si protecţie la ciclare
- 4.2 Algoritmul simplex revizuit cu FPI utilizând factorizarea LU (LU) 47
- 4.2.1 Actualizarea bazei în algoritmul LU 67
- 4.2.2 Algoritmul LU 71
- Capitolul V
- SISTEME FIZICE ŞI MATRICE RARE
- 5.1 Reţele electrice
- 5.2 Reţele fluidice
- 5.3 Discretizarea problemelor continue
- Anexă (Programe C++)
- Bibliografie
Extras din proiect
Introducere
Lucrarea cuprinde metode tradiţionale de calcul matriceal care sunt utilizate frecvent în practică, metode reanalizate şi revăzute prin optica matricelor rare în vederea adaptării lor la rezolvarea problemelor de mari dimensiuni.
Sunt prezentate metodele şi caracteristicile esenţiale ale celor mai utilizate tehnici de calcul cu matrice rare privind memorarea, efectuarea calculelor numai cu elemente nenule, reducerea numărului de operaţii, creşterea preciziei de calcul şi a stabilităţii numerice, menţinerea structurii de matrice rară, precum şi eficienţa utilizării acestora din punct de vedere al cerinţelor de memorie şi timp de calcul. De asemenea, sunt prezentate şi aplicaţii ale tehnicilor de calcul cu matrice rare în rezolvarea optimală a sistemelor complexe.
Lucrarea este structurată în cinci capitole, în fiecare dintre acestea fiind prezentate cele mai bune metode de calcul cu matrice rare şi comparaţii ale rezultatelor cu rezultatele metodelor de calcul cu matrice dense.
În capitolul I „Metode de programare cu matrice rare” sunt prezentate noţiuni introductive despre matricele rare si metode de memorare a acestora în formă compactă. Metodele de memorare a matricelor rare sunt utilizate frecvent deoarece matricele rare de mari dimensiuni pot fi memorate şi manevrate doar astfel în memoria centrală a calculatorului si se micşorează timpul de calcul prin evitarea efectuării operaţiilor cu elemente nenule. Sunt prezentate metode care memorează numai elementele nenule şi poziţiile pe care se află acestea în matrice, salvând astfel memorie şi timp.
În capitolul II „Factorizarea matricelor rare” sunt expuse cele mai eficiente metode de factorizare a unei matrice rare, de exprimare a acesteia sub formă de factori matriceali, în vederea calculului matricei inverse. Acestea includ factorizarea LU, bifactorizarea unei matrice şi o comparaţie între acestea. Metoda de factorizare în calculul inversei unei matrice rare necesită un număr de n3/3 operaţii elementare faţă de n3 în cadrul metodelor directe.
În capitolul III „Rezolvarea sistemelor de ecuaţii algebrice liniare cu matricea coeficienţilor rară”, sunt prezentate metode directe şi indirecte de rezolvare a sistemelor de dimensiuni mari, strategii de pivotare şi scalare în vederea menţinerii structurii de matrice rară şi a stabilităţii numerice, precum şi comparaţii între aceste metode.
În capitolul IV „Programarea liniară utilizând metode de calcul cu matrice rare”, sunt prezentate câteva din cele mai eficiente metode de rezolvare a problemelor de programare liniară cu scopul de a arăta cum tehnicile de calcul cu matrice rare pot fi incluse în rezolvarea lor.
În capitolul V „Sisteme fizice şi matrice rare” evidentiaza prezenţa matricelor rare în modelele matematice ale sistemelor fizice complexe de mari dimensiuni. Prezenţa matricelor rare în modelele matematice ale sistemelor fizice este remarcată în analiza reţelelor electrice a sistemelor de distribuţie a puterii şi în analiza reţelelor fluidice.
Anexa cuprinde programele C asociate acestor metode de calcul cu matrice rare.
CAPITOLUL I
METODE DE PROGRAMARE CU MATRICE RARE
1.1 Noţiuni fundamentale despre matrice rare
În general, o matrice n × n este rară dacă conţine un număr mic de elemente nenule, τ, adică τ << n2. O matrice este rară (engl. ″sparse″) în sensul că raportul dintre numărul de elemente nenule şi cel de elemente nule este foarte mic. Cantitativ matricele rare sunt caracterizate de raportul dintre numărul elementelor nenule şi al celor nule, d = τ / (n2 – τ), numit densitatea matricei.
Definiţia 1. O matrice pătrată n × n este rară dacă odată cu creşterea lui n creşterea numărului de elemente nenule τ este inferioară uneia pătratice, adică τ < n1+k, 0 ≤ k <1.
Elementele nule ale unei matrice rare sunt calasificate în zerouri numerice şi zerouri topologice. Toate zerourile topologice sunt şi zerouri numerice. Unele zerouri numerice sunt tratate ca elemente nenule, acestea fiind considerate topologic nenule.
O matrice nesingulară A se poate exprima sub formă de produs de factori matriceali L şi U, unde L este inferior triunghiulară, iar U este superior triunghiulară, cu elementele diagonalei principale egale cu unitatea.
Definiţia 2. O matrice nesingulară A este matrice de eliminare perfectă dacă tuturor elementelor nule din A le corespund elemente nule în factorii matriceali L şi U.
Modelele matematice ale sistemelor fizice complexe de mari dimensiuni adeseori conţin matrice rare. Sistemele de ecuaţii care descriu comportarea acestora pot fi rezolvate în mod direct, prin inversarea explicită a matricei coeficienţilor. Deşi aceste metode sunt uşor de programat, totuşi ele nu exploatează structura rară a matricelor şi pentru probleme de mari dimensiumi sunt total ineficiente. În consecinţă, aceste metode sunt potrivite pentru probleme de dimensiuni relativ mici (n < 100) şi a căror matrice a coeficienţilor este densă.
Metodele directe de inversare a matricelor bazate pe tehnici de factorizare pot lua în consideraţie structura de matrice rară prin utilizarea unor metode de ordonare în vederea minimizării numărului de elemente nenule nou create în procesul de factorizare, deci a menţinerii structurii de matrice rară şi memorarea şi manevrarea numai a elementelor nenule. Deoarece numai elementele nenule ale matricei originale şi ale factorilor matriceali sunt memoraţi, este evident că trebuie să se dispună de metode speciale privind memorarea matricelor rare în formă compactă. Memorarea în formă compactă este convenabilă deoarece:
- matricele rare de mari dimensiuni pot fi memorate şi manevrate în memoria centralăa calculatorului,
- chiar dacă în formă compactă cerinţa de memorie depăşeşte capacitatea memoriei centrale, utilizarea memoriei externe este încă eficientă prin minimizarea tipurilor de acces,
- se micşorează timpul de calcul prin evitarea efectuării de operaţii cu elemente nule, aceasta realizându-se prin factorizarea simbolică care generează numai operaţiile netrivialre,
- matricea A-1 memorată ca produs de matrice elementare de obicei necesită mai puţină memorie decât reprezentarea compactă a lui A-1 explicită.
1.2 Memorarea unui vector
Înainte de a trata tehnicile de memorare a elementelor nenule ale unei matrice rare în formă compactă, se vor discuta aspecte generale implicate în memorarea şi identificarea unui vector în formă compactă, precum şi probleme privind modificarea acestei memorări când noi elemente vor fi adăugate pentru memorare. Această problemă necesită definirea unei zone în care se memorează elementele nenule ale vectorului, zona primară, şi altei zone cu informaţii necesare regăsirii rapide a acestora, zona secundară.
Tehnicile de memorare a unui vector sunt ilustrate pe vectorul (31,6; 52,9; 25,4; 47,3). Acest vector este memorat într-o zonă denumită VAL, în aceiaşi ordine ca mai sus:
Locaţia 1 2 3 4 …
VAL 31,6 52,9 25,4 47,3 …
Deseori în descrierea algoritmilor în care sunt implicaţi vectori este necesară adăugarea sau ştergerea unor elemente. Dacă operaţia de adăugare sau şteregere are loc numai la sfârşitul vectorului, atunci vectorul este numit stivă. În vederea manipulării stivei este necesară numai o variabilă, IVÂRF, care indică vârful stivei. O altă formă specială de vector este coada, aceasta fiind un vector unde elementele se pot adăuga numai la sfârşit şi înlăturarea de la început. Pentru a putea lucra cu o coadă sunt necesare numai două indicatoare, IFAŢA şi ISPATE
Preview document
Conținut arhivă zip
- Metode de Programare cu Matrice Rare
- 0_Coperta.doc
- 1_Cuprins.doc
- 2_Introducere.doc
- 3_CAP.1 Metode de programare cu matrice rare.doc
- 4_CAP.2 Factorizarea matricelor rare.doc
- 5_CAP.3 Sisteme.doc
- 6_CAP.4 Programarea liniara utilizand metode de calcul cu matrice rare.doc
- 7_CAP.5 Sisteme fizice.doc
- 8_Anexa.doc
- 9_Bibliografie.doc
- FACT_LU.CPP
- FACT_LU.EXE
- FACT_LU.IN
- FACT_LU1.CPP
- KNUTH.CPP
- KNUTH.EXE
- OP2_M_1.CPP
- OP2_M_1.EXE
- OP2_M_1.IN
- OP_M_1.CPP
- OP_M_1.EXE
- OP_M_1.IN
- PREZ2.PPT
- PRG.CPP
- PRG1.CPP
- PRG1.EXE
- RAR.IN
- RAR.OUT