Вы находитесь на странице: 1из 3

Algoritmo Cholesky

Pruebas Para las pruebas, se utiliz el siguiente cdigo del algoritmo, implementado en Matlab, el cual trata de resolver un sistema de ecuaciones con el mtodo de Cholesky. Se debe ingresar A y b, de los cuales, la matriz A debe ser simtrica y positiva. matriz=input ('Ingrese la matriz aumentada del sistema, A|b, A tiene que ser simtrica y positiva, por ejemplo: [5 -4 2 20;-4 5 14 19;2 14 3 10]\n'); tam=size(matriz);%sacar el tamao de la matriz para determinar A(matris de coeficientes) % y b(vector de terminos independientes) n=tam(1);%saca el numero de filas de la matriz for i=1:n b(i)=matriz(i,n+1);%determinar "b" for j=1:n A(i,j)=matriz(i,j);%determinar "A" end end b1=b';% "b" es un vector columna for k=1:n %Algoritmo de cholesky for i=1:k-1 sum=0; for j=1:i-1 sum=sum+A(i,j)*A(k,j); end A(k,i)=(A(k,i)-sum)/A(i,i); end sum=0; for j=1:k-1 sum=sum+A(k,j)*A(k,j); end A(k,k)=sqrt(A(k,k)-sum); end for i=1:n-1 %Aade los ceros de la L de cholesky for j=1:n %''(puesto que el algoritmo solo ''' if j>i %'''altera los elementos de A(i,j)=0; %la diagonal principal de A

end %y por debajo de esta) end end L=A;%cambio de variable Lt=L';%Lt sera la U de cholesky(transpuesta de L) c=b1;%se inicializa el vector "c", que tiene el mismo tamao de "b" c(1)=b1(1)/L(1,1);%se determina el primer elemento de c for i=2:n %procedimiento para hallar "c"(progresivamente) s=0; for j=1:n-1 if i~=j & i>j s=s+L(i,j)*c(j) ; end end c(i)=(b1(i)-s)/L(i,i); end x=c;%se inicializa el vector "x", que tiene el mismo tamao de "c" x(n)=c(n)/Lt(n,n);%se determina x(n)(ultima solucion del sistema) for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente) z=0; for j=n:-1:2 %''''''Lt*x=c if i~=j & i<j z=z+Lt(i,j)*x(j); end end x(i)=(c(i)-z)/Lt(i,i); end L%muestra la matriz triangular inferior de cholesky Lt%muestra la matriz superior de cholesky LLt=L*Lt%muestra la factorizacion de cholesky x%vector solucin del sistema clear all%elimina las variables del espacio de trabajo(evita que el programa se cargue de basura)

Factorizacin de Cholesky Una matriz A simtrica y positiva definida puede ser factorizada de manera eficiente por medio de una matrz triangular infereior y una matriz triangular superior. Para una matriz no singular la descomposicin LU nos lleva a considerar una descomposicin de tal tipo A = LU; dadas las condiciones de A, simtrica y definida positiva, no es necesario hacer pivoteo, por lo que sta factorizacin se hace eficientemente y en un nmero de operaciones la mitad de LU tomando la forma positivos. , donde L (la cual podemos "verla" como la raz cuadrada de A) es una matriz triangular inferior donde los elementos de la diagonal son

Para resolver un sistema lineal Ax = b con A simtrica definida positiva y dada su factorizacin de Cholesky entonces resolver para lograr x.

, primero debemos resolver Ly = b y

Una variante de la factorizacin de Cholesky es de la forma matriz en esa forma y no de otra. Para encontrar la factorizacin

, donde R es una matriz triangular superior, en algunas aplicaciones se desea ver la

, bastara ver la forma de L y observar las ecuaciones que el producto derecho nos conduce al igualar elementos:

as obtendramos que:

a11 = l112 a21 = l21l11 a22=l212 + l222 a32=l31l21+l32l22 l32=(a32-l31l21)/l22, etc.

y de manera general, para

Ahora bien, ya que A es simtrica y definida positiva, podemos asegurar que los elementos sobre la diagonal de L son positivos y los restantes elementos reales desde luego. Una de las aplicaciones de la factorizacin de Cholesky es resolver las ecuaciones normales de un problema de cuadrados mnimos, esas ecuaciones son: Metodo de jacobi Por eso, al contrario que en el mtodo Gauss-Seidel, no se puede sobreescribirxi(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 mnima de almacenamiento es de dos vectores de dimensin n, y ser necesario realizar un copiado explcito. , en la que es simtrica y definida positiva.

ALGORITMO DE GAUSS SEIDEL

Вам также может понравиться