% pregunta 3, laboratorio 3
% percat�ndonos de que A\b es equivalente a descomposici�n LU
% con pivoteo parcial y soluci�n de sistemas triangulares
% Si la matriz del sistema de ecuaciones es estrictamente diagonal
% dominante, no es necesario realizar pivoteo parcial (intercambios de
% filas) para calcular su descomposici�n LU
A = create_trid(10,4,1,1);
b = rand(10,1);
[L,U,P]=lu(A);
x1 = A\b;
x2 = U\(L\b);
disp('matriz tridiagonal y diagonal dominante')
disp('matriz de permutacion deberia ser igual a identidad')
disp('diferencia P-I debe ser matriz nula')
P-eye(10)
disp('diferencia entre soluciones x1=A\b, x2 = U\L\b')
norm(x1-x2)
% residuos
disp('residuo r1=Ax1-b')
r1 = b-A*x1
disp('residuo r2 = Ax2-b')
r2 = b-A*x2

A = rand(10);
while rank(A) ~= 10
    A = rand(10);
end
b = rand(10,1);
[L,U,P] = lu(A);
x1 = A\b;
x2 = U\(L\(P*b));
disp('matriz aleatoria')
disp('P no es identidad')
disp('diferencia P-I no es matriz nula')
P - eye(10);
disp('PA - LU debe ser matriz nula')
P*A-L*U
disp('diferencia entre soluciones x1=A\b, x2 = U\L\(Pb)')
norm(x1-x2)
% residuos
disp('residuo r1=Ax1-b')
r1 = b-A*x1
disp('residuo r2 = Ax2-b')
r2 = b-A*x2

