%Eliminación gaussiana.
function x = EliminacionGaussiana(A,B)
////////
>> B = [9 1 2 9 1];
>> x = EliminacionGaussiana(A,B)
>> x = EliminacionGaussiana(A,B)
x=
-0.6904 1.6307 0.5418 -0.4772 0.3454
///////////////
%Programa para resolver un sistema de ecuaciones lineales mediante la
%eliminación de Gauss-Joprdan
function x=EliminacionGaussJordan(A,B)
%A Matriz de coeficientes del sistema de ecuaciones lineales
%B es el vector del lado derecho de entradas del sistema de ecuaciones
%lineales
N = rank(A);
for k=1:N
B(k)=B(k)/A(k,k);%Modificación del vector Bdebido a la normalización
del pivote
A(k,:)=A(k,:)/A(k,k);%normalización del pivote
for m = 1:N
if m ~= k
MT = -A(m,k);%Multiplicadores
A(m,:)=A(m,:) + MT*A(k,:);%Modificación de la matriz A.
B(m)=B(m)+ MT*B(k); %Modificación del vector B
end
end
end
%Nota la solución queda en el vector B
B
…………
>> EliminacionGaussJordan(A,B)
B=
>>
//////
%Programa para resolver un sistema de ecuaciones lineales mediante la
%inversa de la matriz
function x=MetodoInversaMatriz(A,B)
%A Matriz de coeficientes del sistema de ecuaciones lineales
%B es el vector del lado derecho de entradas del sistema de ecuaciones
%lineales
N = rank(A);%Número de incognitas del sistema de ecuaciones de una matriz
unitaria
Id=diag(ones(N,1),0);
%Proceso de eliminación de Gauss-Jordan para determinar la inversa de la
%matriz.
for k=1:N
Id(k)=Id(k)/A(k,k);%Modificación de la matriz Id debido a la
normalización del p
A(k,:)=A(k,:)/A(k,k);%Normalización del pivote
for m=1:N
if m ~=k
MT = -A(m,k);%Multiplicadores
A(m,:)=A(m,:)+MT*A(k,:);%Modificación de la matriz A
Id(m,:)=Id(m,:)+MT*Id(k,:);%Modificación de la matriz Id
end
end
end
Id %Mostra la matriz inversa
x=Id*B;%Solución
/////
>> B = [4;1;6;1;5];
>> MetodoInversaMatriz(A,B)
Id =
ans =
0.0551
-1.6047
-0.0870
8.8490
-2.0403
>> ncondA=cond(A)
ncondA =
920.3886
////
%Programa para resolver un sistema de ecuaciones lineales mediante la
%inversa de la matriz con povoteo parcial; es decir, utilizanco ocmo
pivote
%el elemento de la columna de mayor modulo
function x= MetodoInversaMatrizPivoteoParcial(A,B)
N=rank(A);%Número de incognitas del sistema de ecuaciones
Id=eye(N)%Matriz identidad
A=[A Id];%Se aumenta la matriz
Ren=[1:N]; %Vector que numera el total de renglones
PIV= []; %Vector que acumula los renglones que van siendo pivote
%Proceso de eliminacion Gauss-jordan con pivoteo parcial para determinar
la
%inversa de una matriz.
for k = 1:N
[Amp Pos]= max(abs(A(Ren,k)));%Valor maximo de la k-esima columna y
su posición
R = Ren(Pos); %Renglón coresspondiente a la posición donde se
encuentra el pivote
PIV=[PIV R]; %Acumula los renglones pivote
ROT(R,k)=1;%Matriz de rotación reacomodar las ecuaciones de la
pisicion adecuada
Ren = setdiff(Ren,PIV);%Encuentra los valores diferentes entre Ren y
PIV para buscar el maximo solo en las posiciones no han sido pivote
A(R,:)=A(R,:)/A(R,k);
for m=1:N
if m ~= R
MT = -A(m,k); %Multiplicadores
A(m,:)=A(m,:)+MT(A(R,:);%Modificación de la k-esima columna
de matriz A
end
end
end
//////
>> MetodoInversaMatrizPivoteoParcial(A,B);
Id =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1