% cargando archivo
load data-1

% viendo variables almacenadas

whos

% viendo estructura de A
figure(1);
spy(A);
title('Estructura de matriz A');

% calcular matriz de descomposicion de Cholesky 
R = chol(A);
% desventaja de descomposicion de cholesky para resolver sistemas de
% ecuaciones lineales con matrices sparse: R no tiene tantos elementos 
% iguales a cero como A
% hagamos spy de R
figure(2)
spy(R)
title('Estructura de matriz R');

% resolviendo con metodos iterativos
% Gradiente conjugado
x = pcg(A,b);
figure(3)
mostrarmembrana(x,Coordinates,FreeNodes,Elements3,'Membrana, GC');

R = cholinc(A,1e-2);
P = R'*R;
% viendo que P tiene mas elementos iguales a cero que la matriz de
% descomposicion de Cholesky de A 
figure(4)
spy(P)
title('Estructura de precondicionador')
x = pcg(A,b,1e-6,100,P);
figure(5)
mostrarmembrana(x,Coordinates,FreeNodes,Elements3,'Membrana, GCP');