Metodo de gauss jordan

Solo disponible en BuenasTareas
  • Páginas : 7 (1705 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de diciembre de 2010
Leer documento completo
Vista previa del texto
Matrices Especiales.
 
Una matriz bandada es una matriz cuadrada en la que todos sus elementos son cero, con excepción de una banda sobre la diagonal principal. Un sistema tridiagonal (es decir con un ancho de banda de 3) se puede expresar en forma general como:
 
f0 | g0 |   |   |   | x0 |   | b0 |
e1 | f1 | g1 |   |   | x1 | = | b1 |
  | e2 | f2 | g2 |   | x2 |   | b2 |
  |   | e3 |f3 |   | x3 |   | b3 |
 
Basados en la descomposición LU podemos ver que el algoritmo de Thomas es:
 

 
 
La sustitución hacia adelante es
 

 
y hacia atrás es:
 

 
Ejemplo:
 
Resuelva el siguiente sistema tridiagonal por medio del algoritmo de Thomas.
 
2.04 | -1 |   |   |   | x0 |   | 40.8 |
-1 | 2.04 | -1 |   |   | x1 | = | 0.8 |
  | -1 | 2.04 | -1 |   | x2 |   | 0.8|
  |   | -1 | 2.04 |   | x3 |   | 200.8 |
 
La solución de la descomposición triangular es:
 
2.04 | -1 |   |   |
-0.49 | 1.55 | -1 |   |
  | -0.645 | 1.395 | -1 |
  |   | -0.717 | 1.323 |
 
 
La solución del sistema es:
 
X = [65.970, 93.778, 124.538, 159.480]T
 
Descomposición de Cholesky.
 
Este algoritmo se basa en el hecho de que una matriz simétrica se puededescomponer en [A] = [L][L]T , dado que la matriz [A] es una matriz simétrica. En este caso aplicaremos la eliminación de Crout a la parte inferior de la matriz y la parte superior, simplemente tendrá los mismos valores.
 
Así tomando las ecuaciones para la factorización LU la podemos adaptar como:
Podemos ver, que cualquier elemento bajo la diagonal se calcula como:

para todo i=0,...,n-1 y j =0,...,i-1.
 
Para los términos arriba de la diagonal, en este caso solo la diagonal
 

para todo i=0,...,n-1.
 
La implementación en Java es:
 
static public void Cholesky(double A[][]) {
int i, j, k, n, s;
double fact, suma = 0;
 
n = A.length;
 
for (i = 0; i < n; i++) { //k = i
for (j = 0; j <= i - 1; j++) { //i = j
suma = 0;
for(k = 0; k <= j - 1; k++) // j = k
suma += A[i][k] * A[j][k];
 
A[i][j] = (A[i][j] - suma) / A[j][j];
}
 
suma = 0;
for (k = 0; k <= i - 1; k++)
suma += A[i][k] * A[i][k];
A[i][i] = Math.sqrt(A[i][i] - suma);
}
}
 Método de Jacobi
En análisis numérico el método de Jacobi es un método iterativo, usado para resolver sistemasde ecuaciones lineales del tipo Ax = b. El algoritmo toma su nombre del matemático alemán Carl Gustav Jakob Jacobi.
* |
Descripción
La base del método consiste en construir una sucesión convergente definida iterativamente. El límite de esta sucesión es precisamente la solución del sistema. A efectos prácticos si el algoritmo se detiene después de un número finito de pasos se llega a unaaproximación al valor de x de la solución del sistema.
La sucesión se construye descomponiendo la matriz del sistema en la forma siguiente:

donde
, es una matriz diagonal.
, es una matriz triangular inferior.
, es una matriz triangular superior.
Partiendo de , podemos reescribir dicha ecuación como:

Luego,

Si aii ≠ 0 para cada i. Por la regla iterativa, la definición del Método deJacobi puede ser expresado de la forma:

donde k es el contador de iteración, Finalmente tenemos:

Cabe destacar que al calcular xi(k+1) se necesitan todos los elementos en x(k), excepto el que tenga el mismo i. Por eso, al contrario que en el método Gauss-Seidel, no se puede sobreescribir xi(k) con xi(k+1), ya que su valor será necesario para el resto de los cálculos. Esta es la diferencia mássignificativa entre los métodos de Jacobi y Gauss-Seidel. La cantidad mínima de almacenamiento es de dos vectores de dimensión n, y será necesario realizar un copiado explícito.
Convergencia
El método de Jacobi siempre converge si la matriz A es estrictamente diagonal dominante y puede converger incluso si esta condición no se satisface. Es necesario, sin embargo, que los elementos de la diagonal...
tracking img