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

ALGORITMO QUE HALLA LA MATRIZ

INVERSA DE UNA MATRIZ CUADRADA

FUNCIÓN PRINCIPAL
% FUNCION PRINCIPAL

function [retval] = inversa(matriz)

% verificacion de la dimension de la matriz


[m, n] = size(matriz);
if (m ~= n)
disp('No es posible operar, La matriz no es cuadrada');
retval = inf;
return
end

% verificacion de la no singularidad de la matriz


% (no singular = reversible)
det = determinante(matriz);

if (det == 0)
disp('La matriz no es inversible (Determinante = 0)');
retval = inf;
return
end

% despues de pasar los filtros, en adelante, la matriz


% tiene con toda seguridad una matriz inversa
matriz = auxInvertir(matriz);

retval = matriz;

end
FUNCIONES DEPENDIENTES

% FUNCION QUE HALLA EL DETERMINANTE:


% Esta funcion es recursiva, donde se hara una reduccion con
% operaciones de fila (gauss-jordan), capturando de ese modo
% el determinante.
%
% Parametros:
% matriz, matriz a trabajar
function [retval] = determinante(matriz)

len = length(matriz);

% si la matriz es de tamaño 1, o el determinante anterior es 0,


% su determinante vendrá a ser el único valor que posee multiplicado
% por el determinante anterior (caso base)
if (len == 1)
retval = matriz(1, 1);
return
end

% este intercambio obtiene una fila pivotal de mayor valor


matriz = intercambiarFila(matriz);

pivot = matriz(1, 1);

% verifica que el pivote no sea 0, de ser así, el determinante


% tambien seria cero
if (pivot == 0)
retval = 0;
return
end

% reduce la primera columna


matriz = reducir(matriz);

% llamada recursiva para la determinande de la matriz mas pequeña


retval = pivot*determinante(matriz(2:len, 2:len));

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);

% Buscamos la fila con mayor valor pivotal


for i = 2:len
if (abs(matriz(maxIndex, 1)) < abs(matriz(i, 1)))
maxIndex = i;
end
end

% una vez hallada, se le intercambia con la primera fila


if maxIndex ~= 1
aux = matriz(1, :);
matriz(1, :) = matriz(maxIndex, :);
matriz(maxIndex, :) = -1*aux;
end

% se retorna la misma matriz


retval = matriz;

end

% FUNCION REDUCIR
% reduce la primera columna, y devuelve dicha matriz ya operada
function [retval] = reducir(matriz)

pivot = matriz(1, 1);

% reducir la primera fila


matriz(1, :) = (1/pivot)*matriz(1, :);

len = length(matriz);

% reduccion mediante operaciones fila-elementales


for i = 2:len
matriz(i, :) = matriz(i, :) - matriz(i, 1)*matriz(1, :);
end

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);

% matriz identidad con las mismas dimensiones


invMatriz = diag(ones(1, len));

% juntamos las matrices para las operaciones fila-elementales


matriz = [matriz invMatriz];

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

% intercambiar unicamente siesque la fila es diferente


% a la fila pivotal
if (maxIndex ~= i)
aux = matriz(i, :);
matriz(i, :) = matriz(maxIndex, :);
matriz(maxIndex, :) = aux;
end
% ----- fin intercambiar fila -----

pivot = matriz(i, i);

matriz(i, :) = (1/pivot)*matriz(i, :);

% reduce complemtamente todas las filas de la matriz,


% para asi lograr tener la matriz identidad en el lado izquierdo
% de esta supermatriz que se formo
for j = 1:len
if (j ~= i)
matriz(j, :) = matriz(j, :) - (matriz(j, i))*matriz(i, :);
end
end

end

% retornamos dicha matriz


retval = matriz(:, (len+1):end);

end
CASOS DE PRUEBA
Con una matriz invertible estable de 10 incógnitas:
Generamos la matriz

Ponemos en marcha nuestro algoritmo


SOLO para verificar que nuestros resultados son correctos, usaremos la función inv de los
paquetes propios de Matlab

Y para terminar de corroborar la exactitud de nuestro resultado ejecutamos el siguiente comando

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

Ponemos de nuevo en marcha nuestro algoritmo


Ahora con la función inv de Matlab

Con una matriz no invertible de 10 incógnitas:


Generamos la matriz

Aplicamos nuestro algoritmo

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:

AX = B, donde la solución seria X = inv(A) * B

Probemos nuestro algoritmo:

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.

Su robustez le permite funcionar con cualquier tamaño de matrices, como se ve en la siguiente


imagen

Lo cual esta característica le hace mas confiable en cuanto a resultados erróneos.

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

  • Progresiones PDF
    Progresiones PDF
    Документ25 страниц
    Progresiones PDF
    Gregor
    Оценок пока нет
  • MTC e 105 - 2000 Obtencion en Laboratorio de Muestras Representativas
    MTC e 105 - 2000 Obtencion en Laboratorio de Muestras Representativas
    Документ6 страниц
    MTC e 105 - 2000 Obtencion en Laboratorio de Muestras Representativas
    Edilberto Rogers Ramos Apaza
    Оценок пока нет
  • Apaza, Chacon, Zuñiga Labfluidos
    Apaza, Chacon, Zuñiga Labfluidos
    Документ11 страниц
    Apaza, Chacon, Zuñiga Labfluidos
    David Chacon Lima
    Оценок пока нет
  • Matriz in Versa
    Matriz in Versa
    Документ11 страниц
    Matriz in Versa
    David Chacon Lima
    Оценок пока нет
  • Tramo Aa
    Tramo Aa
    Документ2 страницы
    Tramo Aa
    David Chacon Lima
    Оценок пока нет
  • Fisica 3
    Fisica 3
    Документ6 страниц
    Fisica 3
    David Chacon Lima
    Оценок пока нет
  • Problema 50
    Problema 50
    Документ7 страниц
    Problema 50
    David Chacon Lima
    Оценок пока нет
  • Ejercicios 3
    Ejercicios 3
    Документ8 страниц
    Ejercicios 3
    David Chacon Lima
    Оценок пока нет
  • Sección C
     Sección C
    Документ1 страница
    Sección C
    David Chacon Lima
    Оценок пока нет
  • Caratula Suelo 1
    Caratula Suelo 1
    Документ1 страница
    Caratula Suelo 1
    David Chacon Lima
    Оценок пока нет
  • URLS
    URLS
    Документ1 страница
    URLS
    David Chacon Lima
    Оценок пока нет
  • Práctica N10-11
    Práctica N10-11
    Документ17 страниц
    Práctica N10-11
    David Chacon Lima
    Оценок пока нет
  • IMPRESION
    IMPRESION
    Документ3 страницы
    IMPRESION
    David Chacon Lima
    Оценок пока нет
  • IMPRESION
    IMPRESION
    Документ3 страницы
    IMPRESION
    David Chacon Lima
    Оценок пока нет
  • Costos de Operación de Maquinarias
    Costos de Operación de Maquinarias
    Документ26 страниц
    Costos de Operación de Maquinarias
    David Chacon Lima
    Оценок пока нет
  • Pisaq Quirita
    Pisaq Quirita
    Документ145 страниц
    Pisaq Quirita
    David Chacon Lima
    Оценок пока нет
  • MTC e 101 - 2000
    MTC e 101 - 2000
    Документ10 страниц
    MTC e 101 - 2000
    Jose Waldir Becerra Villena
    Оценок пока нет
  • METRADOS
    METRADOS
    Документ3 страницы
    METRADOS
    David Chacon Lima
    Оценок пока нет
  • Control de Lectura - Ensayo PDF
    Control de Lectura - Ensayo PDF
    Документ17 страниц
    Control de Lectura - Ensayo PDF
    Paola
    Оценок пока нет
  • Urgent Eee Eeeeeeeeeeeeeee
    Urgent Eee Eeeeeeeeeeeeeee
    Документ2 страницы
    Urgent Eee Eeeeeeeeeeeeeee
    David Chacon Lima
    Оценок пока нет
  • Causalidad en Las Matematicas
    Causalidad en Las Matematicas
    Документ7 страниц
    Causalidad en Las Matematicas
    David Chacon Lima
    Оценок пока нет
  • Trabajo Gfrupal
    Trabajo Gfrupal
    Документ14 страниц
    Trabajo Gfrupal
    David Chacon Lima
    Оценок пока нет
  • Trabajo de CD7
    Trabajo de CD7
    Документ11 страниц
    Trabajo de CD7
    David Chacon Lima
    Оценок пока нет
  • Causalidad en Las Matematicas
    Causalidad en Las Matematicas
    Документ7 страниц
    Causalidad en Las Matematicas
    David Chacon Lima
    Оценок пока нет
  • 1 Solucionario de Mecanica de Fluidos Shames PDF
    1 Solucionario de Mecanica de Fluidos Shames PDF
    Документ93 страницы
    1 Solucionario de Mecanica de Fluidos Shames PDF
    David Chacon Lima
    Оценок пока нет
  • GL Osario
    GL Osario
    Документ1 страница
    GL Osario
    David Chacon Lima
    Оценок пока нет
  • Ensayo 12334567WPS Office
    Ensayo 12334567WPS Office
    Документ1 страница
    Ensayo 12334567WPS Office
    David Chacon Lima
    Оценок пока нет
  • Trabajo Fase 2
    Trabajo Fase 2
    Документ12 страниц
    Trabajo Fase 2
    David Chacon Lima
    Оценок пока нет
  • CALCULOS n7
    CALCULOS n7
    Документ4 страницы
    CALCULOS n7
    David Chacon Lima
    Оценок пока нет
  • Practica 7
     Practica 7
    Документ6 страниц
    Practica 7
    David Chacon Lima
    Оценок пока нет
  • Curvas 1
    Curvas 1
    Документ8 страниц
    Curvas 1
    Nestor Vera
    Оценок пока нет
  • Matematica6 (2) Ecuaciones
    Matematica6 (2) Ecuaciones
    Документ2 страницы
    Matematica6 (2) Ecuaciones
    luz
    Оценок пока нет
  • Ciba136-12 1 0
    Ciba136-12 1 0
    Документ4 страницы
    Ciba136-12 1 0
    Tamara Diaz Chang
    Оценок пока нет
  • Primera Practica Ciii 2019
    Primera Practica Ciii 2019
    Документ13 страниц
    Primera Practica Ciii 2019
    Yonathan Lopez
    Оценок пока нет
  • Lab 11 Control de Procesos
    Lab 11 Control de Procesos
    Документ12 страниц
    Lab 11 Control de Procesos
    C Condor Lucchini
    Оценок пока нет
  • Algebra 1
    Algebra 1
    Документ16 страниц
    Algebra 1
    Adrii Dussán Coronado
    Оценок пока нет
  • Metodos de Calculo de Poblacion
    Metodos de Calculo de Poblacion
    Документ18 страниц
    Metodos de Calculo de Poblacion
    Christian Chavez
    100% (4)
  • Mecanica de Los Medios Continuos Unidad 1
    Mecanica de Los Medios Continuos Unidad 1
    Документ26 страниц
    Mecanica de Los Medios Continuos Unidad 1
    mudetra
    Оценок пока нет
  • LRDP - Calculop Diferencial-Pc2
    LRDP - Calculop Diferencial-Pc2
    Документ25 страниц
    LRDP - Calculop Diferencial-Pc2
    Alessander Cabrera
    Оценок пока нет
  • Mapa Conceptual
    Mapa Conceptual
    Документ5 страниц
    Mapa Conceptual
    johana
    Оценок пока нет
  • Actividad de Puntos Evaluables - Escenario 6 - SEGUNDO BLOQUE-CIENCIAS BASICAS - MATEMATICAS - (GRUPO12) PDF
    Actividad de Puntos Evaluables - Escenario 6 - SEGUNDO BLOQUE-CIENCIAS BASICAS - MATEMATICAS - (GRUPO12) PDF
    Документ7 страниц
    Actividad de Puntos Evaluables - Escenario 6 - SEGUNDO BLOQUE-CIENCIAS BASICAS - MATEMATICAS - (GRUPO12) PDF
    edwin olivares
    Оценок пока нет
  • 19 Métodos EDP Elípticas
    19 Métodos EDP Elípticas
    Документ24 страницы
    19 Métodos EDP Elípticas
    Fernanda PG13
    Оценок пока нет
  • Material Curvas Circulares Compuestas
    Material Curvas Circulares Compuestas
    Документ7 страниц
    Material Curvas Circulares Compuestas
    Jeison Avila Sanchez
    Оценок пока нет
  • Elipse Hipérbola
    Elipse Hipérbola
    Документ10 страниц
    Elipse Hipérbola
    Martin
    Оценок пока нет
  • Texto Guía Álgebra Intermedia de Allen R. Ángel
    Texto Guía Álgebra Intermedia de Allen R. Ángel
    Документ25 страниц
    Texto Guía Álgebra Intermedia de Allen R. Ángel
    VaneRiofrio
    Оценок пока нет
  • Ejercicios Naime Urango
    Ejercicios Naime Urango
    Документ9 страниц
    Ejercicios Naime Urango
    Eder Cogollo
    Оценок пока нет
  • Caliz Analitico
    Caliz Analitico
    Документ12 страниц
    Caliz Analitico
    kevin
    Оценок пока нет
  • 4 Integración de Las Funciones Trigonométricas
    4 Integración de Las Funciones Trigonométricas
    Документ23 страницы
    4 Integración de Las Funciones Trigonométricas
    Valeria Sanchez
    Оценок пока нет
  • Wuolah Free Aln Ex050418 Resuelto
    Wuolah Free Aln Ex050418 Resuelto
    Документ6 страниц
    Wuolah Free Aln Ex050418 Resuelto
    Jesus Riesgo
    Оценок пока нет
  • Metodos Numéricos (Euler, Euler Modificado, RRKK)
    Metodos Numéricos (Euler, Euler Modificado, RRKK)
    Документ6 страниц
    Metodos Numéricos (Euler, Euler Modificado, RRKK)
    julianpolux
    Оценок пока нет
  • Teoria de La Aritmetica
    Teoria de La Aritmetica
    Документ38 страниц
    Teoria de La Aritmetica
    randolfo santos
    Оценок пока нет
  • Operaciones Matriciales
    Operaciones Matriciales
    Документ11 страниц
    Operaciones Matriciales
    yuri
    Оценок пока нет
  • Sem - Semana 12 - 20-II
    Sem - Semana 12 - 20-II
    Документ2 страницы
    Sem - Semana 12 - 20-II
    Meliza Chuquiyauri Ircañaupa
    Оценок пока нет
  • Matematica 1 Actividad 6
    Matematica 1 Actividad 6
    Документ9 страниц
    Matematica 1 Actividad 6
    GUSTAVO FERNANDEZ
    Оценок пока нет
  • Capitulo 2
    Capitulo 2
    Документ8 страниц
    Capitulo 2
    Andrea Acuña
    Оценок пока нет
  • Algebra Juego
    Algebra Juego
    Документ10 страниц
    Algebra Juego
    Albe Vic
    Оценок пока нет
  • Formulario Calculo 3
    Formulario Calculo 3
    Документ2 страницы
    Formulario Calculo 3
    Jose Aguirre
    Оценок пока нет
  • Ecuaciones
    Ecuaciones
    Документ5 страниц
    Ecuaciones
    Angela Deaquiz
    Оценок пока нет