Resolucion de sistemas lineales
All Classes Files Functions Variables Typedefs Macros Pages
ResuelveFactorizacionLUBandDisp.hpp
Go to the documentation of this file.
1 // Clase para resolver un sistema lineal usando factorizacion LU //
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 __ResuelveFactorizacionLUBandDisp__
32 #define __ResuelveFactorizacionLUBandDisp__
33 
34 
36 #include "MatrizBandDisp.hpp"
37 #include "MatrizBand.hpp"
38 #include "MatrizDispersa.hpp"
39 
40 
42 
48 {
49 
50 protected:
51 
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
Clase para resoluci�n del sistema lineal usando factorizacion LU.
Definition: ResuelveFactorizacionLUBandDisp.hpp:47
int renglones(void)
Retorna el n�mero de renglones de la matriz.
Definition: Matriz_Base.hpp:103
ResuelveFactorizacionLUBandDisp(MatrizBandDisp *A, Vector *x, Vector *b)
Constructor de la clase.
Definition: ResuelveFactorizacionLUBandDisp.hpp:79
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
void resuelve(Vector *x, Vector *b)
Resuelve el sistema lineal.
Definition: ResuelveFactorizacionLUBandDisp.hpp:117
virtual void copia(Matriz *a)
Copia el contenido de la matriz a la matriz pasada como par�metro.
Definition: Matriz.cpp:371
Definition: MatrizBand.hpp:47
int columnas(void)
Retorna el n�mero de columnas de la matriz.
Definition: Matriz_Base.hpp:110
~ResuelveFactorizacionLUBandDisp()
Definition: ResuelveFactorizacionLUBandDisp.hpp:98
Vector * B
Vactor lado derecho.
Definition: ResuelveSistemaLineal.hpp:82
void resuelve(void)
Resuelve el sistema lineal.
Definition: ResuelveFactorizacionLUBandDisp.cpp:80
#define REQUIERE_MAT_BAND
Definition: ResuelveSistemaLineal.hpp:55
void factoriza(void)
Factoriza la matriz A en L y U dejandolas en la misma matriz.
Definition: ResuelveFactorizacionLUBandDisp.cpp:34
#define REQUIERE_MAT_DISP
Definition: ResuelveSistemaLineal.hpp:56
Clase para resoluci�n del sistema lineal usando factorizacion LU.
Definition: ResuelveFactorizacionLU.hpp:45
int RequiereMatriz
Requiere matriz del tipo Bandada, Dispersa, Densa.
Definition: ResuelveSistemaLineal.hpp:77
ResuelveFactorizacionLUBandDisp(void)
Constructor de la clase.
Definition: ResuelveFactorizacionLUBandDisp.hpp:59
int tamanoBanda(void)
Retorna el tama�o de la banda.
Definition: MatrizBandDisp.hpp:65
ResuelveFactorizacionLUBandDisp(MatrizBandDisp *A)
Constructor de la clase.
Definition: ResuelveFactorizacionLUBandDisp.hpp:68
Matriz * M
Matriz.
Definition: ResuelveSistemaLineal.hpp:84
bool liberaMatriz
Indica si la matriz debera ser borrada.
Definition: ResuelveFactorizacionLUBandDisp.hpp:53
Definition: MatrizDispersa.hpp:47
ResuelveFactorizacionLUBandDisp(MatrizBand *A, Vector *x, Vector *b)
Constructor de la clase.
Definition: ResuelveFactorizacionLUBandDisp.hpp:90
virtual void liberaMemoria(void)=0
Libera la memoria solicitada para la matriz.
Vector * X
Vector soluci�n
Definition: ResuelveSistemaLineal.hpp:80