Resolucion de sistemas lineales
All Classes Files Functions Variables Typedefs Macros Pages
ResuelveFactorizacionCholeskiBandDisp.hpp
Go to the documentation of this file.
1 // Clase para resolver un sistema lineal usando factorizacion Choleski //
3 // //
4 // An�lisis y Dise�o y Programaci�n: //
5 // //
6 // Nombre: Antonio Carrillo Ledesma //
7 // E-mail: acl@www.mmc.igeofcu.unam.mx //
8 // P�gina: http://www.mmc.igeofcu.unam.mx/acl //
9 // //
10 // //
11 // Este programa es software libre. Puede redistribuirlo y/o modificarlo //
12 // bajo los t�rminos de la Licencia P�blica General de GNU seg�n es //
13 // publicada por la Free Software Foundation, bien de la versi�n 2 de //
14 // dicha Licencia o bien (seg�n su elecci�n) de cualquier versi�n //
15 // posterior. //
16 // //
17 // Este programa se distribuye con la esperanza de que sea �til, pero SIN //
18 // NINGUNA GARANT�A, incluso sin la garant�a MERCANTIL impl�cita o sin //
19 // garantizar la CONVENIENCIA PARA UN PROP�SITO PARTICULAR. V�ase la //
20 // Licencia P�blica General de GNU para m�s detalles. //
21 // //
22 // Deber�a haber recibido una copia de la Licencia P�blica General junto //
23 // con este programa. Si no ha sido as�, escriba a la Free Software //
24 // Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU. //
25 // //
26 // //
28 
29 
30 
31 #ifndef __ResuelveFactorizacionCholeskiBandDisp__
32 #define __ResuelveFactorizacionCholeskiBandDisp__
33 
34 
36 #include "MatrizBandDisp.hpp"
37 #include "MatrizBand.hpp"
38 #include "MatrizDispersa.hpp"
39 
40 
42 
48 {
49 
50 private:
51 
53  bool liberaMatriz;
54 
55 public:
56 
57 
60  {
61  M = NULL;
63  liberaMatriz = false;
64  }
65 
67 
69  {
70  M = A;
72  liberaMatriz = false;
73  }
74 
76 
80  {
81  M = A;
83  liberaMatriz = false;
84  }
85 
87 
91  {
92  M = new MatrizDispersa(A->renglones(),A->columnas(),(A->tamanoBanda()*2+1));
93  A->copia(M);
95  liberaMatriz = true;
96  }
97 
99  {
100  if (liberaMatriz)
101  {
102  M->liberaMemoria();
103  delete M;
104  }
105  M = NULL;
106  }
107 
109  void factoriza(void);
110 
112  void resuelve(void);
113 
115 
117  void resuelve(Vector *x, Vector *b)
118  {
119  X = x;
120  B = b;
121  resuelve();
122  }
123 
124 };
125 
126 #endif
int renglones(void)
Retorna el n�mero de renglones de la matriz.
Definition: Matriz_Base.hpp:103
void factoriza(void)
Factoriza la matriz A en L y U dejandolas en la misma matriz.
Definition: ResuelveFactorizacionCholeskiBandDisp.cpp:35
ResuelveFactorizacionCholeskiBandDisp(MatrizBand *A, Vector *x, Vector *b)
Constructor de la clase.
Definition: ResuelveFactorizacionCholeskiBandDisp.hpp:90
void resuelve(void)
Resuelve el sistema lineal.
Definition: ResuelveFactorizacionCholeskiBandDisp.cpp:125
void resuelve(Vector *x, Vector *b)
Resuelve el sistema lineal.
Definition: ResuelveFactorizacionCholeskiBandDisp.hpp:117
Clase base para trabajar con matrices bandadas y dispersas.
Definition: MatrizBandDisp.hpp:44
Clase para el trabajar con vectores de punto flotante.
Definition: Vector.hpp:47
virtual void copia(Matriz *a)
Copia el contenido de la matriz a la matriz pasada como par�metro.
Definition: Matriz.cpp:371
ResuelveFactorizacionCholeskiBandDisp(MatrizBandDisp *A)
Constructor de la clase.
Definition: ResuelveFactorizacionCholeskiBandDisp.hpp:68
Definition: MatrizBand.hpp:47
int columnas(void)
Retorna el n�mero de columnas de la matriz.
Definition: Matriz_Base.hpp:110
Vector * B
Vactor lado derecho.
Definition: ResuelveSistemaLineal.hpp:82
#define REQUIERE_MAT_BAND
Definition: ResuelveSistemaLineal.hpp:55
#define REQUIERE_MAT_DISP
Definition: ResuelveSistemaLineal.hpp:56
int RequiereMatriz
Requiere matriz del tipo Bandada, Dispersa, Densa.
Definition: ResuelveSistemaLineal.hpp:77
int tamanoBanda(void)
Retorna el tama�o de la banda.
Definition: MatrizBandDisp.hpp:65
~ResuelveFactorizacionCholeskiBandDisp()
Definition: ResuelveFactorizacionCholeskiBandDisp.hpp:98
Matriz * M
Matriz.
Definition: ResuelveSistemaLineal.hpp:84
ResuelveFactorizacionCholeskiBandDisp(void)
Constructor de la clase.
Definition: ResuelveFactorizacionCholeskiBandDisp.hpp:59
Definition: MatrizDispersa.hpp:47
ResuelveFactorizacionCholeskiBandDisp(MatrizBandDisp *A, Vector *x, Vector *b)
Constructor de la clase.
Definition: ResuelveFactorizacionCholeskiBandDisp.hpp:79
Clase para resoluci�n del sistema lineal usando factorizacion Choleski.
Definition: ResuelveFactorizacionCholeski.hpp:44
virtual void liberaMemoria(void)=0
Libera la memoria solicitada para la matriz.
Vector * X
Vector soluci�n
Definition: ResuelveSistemaLineal.hpp:80
Clase para resoluci�n del sistema lineal usando factorizacion Choleski.
Definition: ResuelveFactorizacionCholeskiBandDisp.hpp:47