Академический Документы
Профессиональный Документы
Культура Документы
FUNCIÓN PRINCIPAL
% FUNCION PRINCIPAL
if (det == 0)
disp('La matriz no es inversible (Determinante = 0)');
retval = inf;
return
end
retval = matriz;
end
FUNCIONES DEPENDIENTES
len = length(matriz);
end
% FUNCION QUE INTERCAMBIA FILAS
% intercambia filas colocando la cifra de mayor valor en absoluto
% en la primera fila
function retval = intercambiarFila(matriz)
maxIndex = 1;
len = length(matriz);
end
% FUNCION REDUCIR
% reduce la primera columna, y devuelve dicha matriz ya operada
function [retval] = reducir(matriz)
len = length(matriz);
retval = matriz;
end
% FUNCION AUXILIAR PARA INVERTIR LA MATRIZ
% invierte la matriz mediante el metodo de reduccion de
% gauss-jordan, y devuelve dicha matriz ya invertida
function retval = auxInvertir(matriz)
len = length(matriz);
for i = 1:len
% INTERCAMBIAR FILA
% extraemos al mayor pivote en valor absoluto
maxIndex = i;
for j = (i+1):len
if (abs(matriz(maxIndex, i)) < abs(matriz(j, i)))
maxIndex = j;
end
end
end
end
CASOS DE PRUEBA
Con una matriz invertible estable de 10 incógnitas:
Generamos la matriz
Lo cual se interpreta que todos los valores hallados son iguales al resultado de la función inv de
Matlab, considerando 4 valores decimales.
Con una matriz invertible inestable de 10 incógnitas:
Generamos la matriz
Como se nos pidió en el enunciado, nos devuelve un valor inf al no ser la matriz invertible, y un
mensajito en pantalla para mejor retroalimentación.
Hacemos la prueba de la misma matriz con la función inv de Matlab
Lo cual también nos indica que la matriz es no invertible al ser singular (determinante = 0).
EFICACIA
Nos planteamos un ejercicio, donde tendremos que hallar el vector X, para ello se tiene la
siguiente forma:
Para probar la correctitud de nuestros resultados, probemos los mismos datos con la función inv
de Matlab
Como notamos nuestro algoritmo es muy exacto en cuanto a resultados.