Resolucion de sistemas lineales
All Classes Files Functions Variables Typedefs Macros Pages
ResuelveTridiagonal.hpp
Go to the documentation of this file.
1 // Clase para resolver un sistema lineal tridiagonal //
3 // //
4 // An�lisis y Dise�o y Programaci�n: //
5 // //
6 // Nombre: Antonio Carrillo Ledesma //
7 // E-mail: acl@www.mmc.geofisica.unam.mx //
8 // P�gina: http://www.mmc.geofisica.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 __ResuelveTridiagonal__
32 #define __ResuelveTridiagonal__
33 
34 
36 
37 
39 
45 {
46 
47 
48 public:
49 
52  {
53  M = NULL;
54  X = NULL;
55  B = NULL;
56  MetodoModificaMatriz = true;
58  }
59 
61 
63  {
64  if (A->maximoTamanoColumnaOcupado() > 3)
65  {
66  printf("\nError el tama�o de la banda es mayor que 3\n");
67  exit(1);
68  }
69  M = A;
70  X = NULL;
71  B = NULL;
72  MetodoModificaMatriz = true;
74  }
75 
77 
81  {
82  if (A->maximoTamanoColumnaOcupado() > 3)
83  {
84  printf("\nError el tama�o de la banda es mayor que 3\n");
85  exit(1);
86  }
87  M = A;
88  X = x;
89  B = b;
90  MetodoModificaMatriz = true;
92  }
93 
94 
96  void resuelve(void);
97 
98 
100 
102  void resuelve(Vector *x, Vector *b)
103  {
104  X = x;
105  B = b;
106  resuelve();
107  }
108 
109 };
110 
111 #endif
void resuelve(Vector *x, Vector *b)
Resuelve el sistema lineal.
Definition: ResuelveTridiagonal.hpp:102
Clase para el trabajar con vectores de punto flotante.
Definition: Vector.hpp:47
Clase base para el trabajar con matrices de punto flotante.
Definition: Matriz.hpp:44
ResuelveTridiagonal(void)
Constructor de la clase.
Definition: ResuelveTridiagonal.hpp:51
Clase para resoluci�n del sistema lineal.
Definition: ResuelveSistemaLineal.hpp:66
int maximoTamanoColumnaOcupado(void)
Retorna el m�ximo tama�o en todas las columnas que sean distintos de cero.
Definition: Matriz.cpp:337
Vector * B
Vactor lado derecho.
Definition: ResuelveSistemaLineal.hpp:82
int MetodoNumerico
M�todo Numerico.
Definition: ResuelveSistemaLineal.hpp:75
#define TRIDIAGONAL
Definition: ResuelveSistemaLineal.hpp:47
Matriz * M
Matriz.
Definition: ResuelveSistemaLineal.hpp:84
ResuelveTridiagonal(Matriz *A)
Constructor de la clase.
Definition: ResuelveTridiagonal.hpp:62
ResuelveTridiagonal(Matriz *A, Vector *x, Vector *b)
Constructor de la clase.
Definition: ResuelveTridiagonal.hpp:80
bool MetodoModificaMatriz
Indica si el m�todo num�rico modifica la matriz.
Definition: ResuelveSistemaLineal.hpp:71
Clase para resoluci�n del sistema lineal tridiagonal.
Definition: ResuelveTridiagonal.hpp:44
void resuelve(void)
Resuelve el sistema lineal.
Definition: ResuelveTridiagonal.cpp:34
Vector * X
Vector soluci�n
Definition: ResuelveSistemaLineal.hpp:80