Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Una matriz bandada es una matriz cuadrada en la que todos sus elementos son cero, con
excepcin 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
e1
g0
f1
e2
g1
f2
e3
g2
f3
x0
x1
x2
x3
b0
b1
b2
b3
ek
ek
f k 1
f k f k ek * g k 1
k 1,.., n 1
La sustitucin hacia adelante es
bk bk ek * rk 1
k 1,.., n 1
y hacia atrs es:
x n 1 bn 1 / f n
k n 2,...,0
r g k x k 1
xk k
fk
Mtodo de Jacobi
En anlisis numrico el mtodo de Jacobi es un mtodo iterativo, usado para resolver
sistemas de ecuaciones lineales del tipo Ax = b. El algoritmo toma su nombre del
matemtico alemn Carl Gustav Jakob Jacobi.
Descripcin
La base del mtodo consiste en construir una sucesin convergente definida iterativamente.
El lmite de esta sucesin es precisamente la solucin del sistema. A efectos prcticos si el
algoritmo se detiene despus de un nmero finito de pasos se llega a una aproximacin al
valor de x de la solucin del sistema.
La sucesin 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
Luego,
Si aii 0 para cada i. Por la regla iterativa, la definicin del Mtodo de Jacobi puede ser
expresado de la forma:
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 mtodo Gauss-Seidel, no se puede
sobreescribir xi(k) con xi(k+1), ya que su valor ser necesario para el resto de los clculos. Esta
es la diferencia ms significativa entre los mtodos de Jacobi y Gauss-Seidel. La cantidad
Convergencia
El mtodo de Jacobi siempre converge si la matriz A es estrictamente diagonal dominante y
puede converger incluso si esta condicin no se satisface. Es necesario, sin embargo, que
los elementos de la diagonal en la matriz sean mayores (en magnitud) que los otros
elementos.
Algoritmo
El mtodo de Jacobi se puede escribir en forma de algoritmo de la siguiente manera:
para
hasta
hacer
para
hasta
hacer
si
entonces
fin para
fin para
comprobar si se alcanza convergencia
fin para
algoritmo en java
public class Jacobi {
double [][]matriz={{4,-2,1},{1,-5,3},{2,1,4}};
double []vector={2,1,3};
double []vectorR={1,2,3};
double []x2=vectorR;
double sumatoria=1;
int max=50;
public void SolJacobi(){
int tam = matriz.length;
for (int y = 0; y < 10; y++) {
system.outtt.println("\nvector " + y + "\n");
for(int t=0;t>max;t++){
x2=vectorR.clone();
for (int i = 0; i < tam; i++) {
sumatoria=0;
for (int s = 0; s < tam; s++) {
if(s!=i)sumatoria += matriz[i][s]*x2[s];
}
vectorR[i]=(vector[i]-sumatoria)/matriz[i][i];
System.out.print(" " + vectorR[i]);
}
}
}
}
public static void main(String[] args) {
jacobi obj=new Jacobi();
obj.SolJacobi();
}
}
Mtodo de Gauss-Seidel
En anlisis numrico el mtodo de Gauss-Seidel es un mtodo iterativo utilizado para
resolver sistemas de ecuaciones lineales. El mtodo se llama as en honor a los matemticos
alemanes Carl Friedrich Gauss y Philipp Ludwig von Seidel y es similar al mtodo de
Jacobi.
Descripcin
Es un mtodo iterativo, lo que significa que se parte de una aproximacin inicial y se repite
el proceso hasta llegar a una solucin con un margen de error tan pequeo como se quiera.
Buscamos la solucin a un sistema de ecuaciones lineales, en notacin matricial:
donde
para i=j, o
para
y
.
, i= 1, ..., n. Entonces
, i=1,...,n(*)
La diferencia entre este mtodo y el de Jacobi es que, en este ltimo, las mejoras a las
aproximaciones no se utilizan hasta completar las iteraciones.
Convergencia
Teorema: Suponga una matriz
cumple la condicin de
(**)
(el trmino
es la aproximacin obtenida despus de la k-sima iteracin) este modo de
escribir la iteracin es la forma general de un mtodo iterativo estacionario.
Primeramente debemos demostrar que el problema lineal que queremos resolver se puede
representar en la forma (**), para este motivo debemos tratar de escribir la matriz A como
la suma de una matriz triangular inferior, una diagonal y una triangular superior
A=D(L+I+U), D=diag( ). Haciendo los despejes necesarios escribimos el mtodo de esta
forma
Supongamos ahora que , i= 1, ..., n, son los valores propios que corresponden a los
vectores propios ui, i= 1,..., n, los cuales son linealmente independientes, entonces podemos
escribir el error inicial
(***)
Por lo tanto la iteracin converge si y slo si | i|<1, i= 1, ..., n. De este hecho se desprende
el siguiente teorema:
Teorema: Una condicin suficiente y necesaria para que un mtodo iterativo
estacionario
x^{(0)} es que
Explicacin
Se elige una aproximacin inicial para .
Se calculan las matrices M y el vector c con las frmulas mencionadas. El proceso se repite
hasta que xk sea lo suficientemente cercano a xk 1, donde k representa el nmero de pasos
en la iteracin.
Algoritmo
El mtodo de Gauss-Seidel se puede escribir en forma de algoritmo de la siguiente manera:
para
hasta
hacer
para
hasta
hacer
si
entonces
= + aijxj
fin para
fin para
comprobar si se alcanza convergencia
fin para
En los dos mtodos se realiza el siguiente proceso, con una pequea variacin en GaussSeidel
Tenemos estas ecuaciones:
5x-2y+z=3
-x-7x+3z=-2
2x-y+8z=1
1. Despejar cada incgnita en funcin de las dems.
x=(3+2y-z)/5
y=(x-3z-2)/-7
z=(1-2x+y)/8
2. Dar valores iniciales a las incgnitas
x1=0
y1=0
z1=0
Por Jacobi:
Reemplazar en cada ecuacin los valores iniciales, esto nos dar nuevos valores que sern
usados en la prxima iteracin
x =(3+2*0-0)/5=0.60
y =(0-3*0-2)/-7=0.28
z =(1-2x+y)/8=0.12
Por Gauss-Seidel
Reemplazar en cada ecuacin los valores mas prximos hallados.
x=(3+2*0-0)/5=0,6
y=(0,6-3*0-2)/-7=0,2
z=(1-2*0,6+0,2)/8=0
Se realiza cuantas iteraciones se desee, usando como valores iniciales los nuevos valores
hallados. Se puede detener la ejecucin del algoritmo al calcular el error del clculo, el cual
lo podemos hallar con esta frmula: sqr( (x1-x0)^2 + (y1-y0)^2 +(z1-z0)^2 )
Con jacobi
Con Gauss-Seidel
=(1-2*C5+D5)/8
=RAIZ((C6-C5)^2 + (D6-D5)^2 + (E6-E5)^2)
Que corresponde a la variable X,Y,Z y Error respectivamente.
Y para el mtodo de Gauss-Seidel:
=(3+2*J5-K5)/5
=(I6-3*K5-2)/-7
=(1-2*I6+J6)/8
=RAIZ((I6-I5)^2 + (J6-J5)^2 + (K6-K5)^2)