Códigos en MATLAB para la descomposición de Cholesky
Códigos en MATLAB para la descomposición de Cholesky
Código 1:
% Definir la matriz A (debe ser simétrica y definida positiva)
A = [4, 12, -16; 12, 37, -43; -16, -43, 98];
% Definir el vector b
b = [1; 2; 3];
% Descomposición de Cholesky de A
L = chol(A, 'lower'); % 'lower' asegura que sea una matriz triangular inferior
% Resolver L*y = b usando forward substitution (sustitución hacia adelante)
y = L\b;
% Resolver L'*x = y usando backward substitution (sustitución hacia atrás)
x = L’\y;
% Mostrar el resultado
disp('La solución del sistema A*x = b es:’);
disp(x);
Ejemplo de código en MATLAB para la descomposición de Cholesky para Ec. Lineales con ciclos for
Código 2:
% Definir la matriz A (debe ser simétrica y definida positiva)
A = [4, 12, -16; 12, 37, -43; -16, -43, 98];
% Definir el vector b
b = [1; 2; 3];
% Descomposición de Cholesky de A
L = zeros(n, n);
for j = 1:n
for i = 1:j
if i == j % Elementos en la diagonal
L(j, j) = sqrt(A(j, j) - sum(L(j, 1:j-1).^2));
else % Elementos fuera de la diagonal
L(j, i) = (A(j, i) - sum(L(j, 1:i-1).*L(i, 1:i-1))) / L(i, i);
end
end
end
% Resolver L*y = b usando forward substitution (sustitución hacia adelante)
y = L\b;
% Resolver L'*x = y usando backward substitution (sustitución hacia atrás)
x = L’\y;
% Mostrar el resultado
disp('La solución del sistema A*x = b es:’);
disp(x);