Anda di halaman 1dari 5

%Programa para resolver un sistema de ecuaciones lineales mediante la

%Eliminación gaussiana.

function x = EliminacionGaussiana(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
%Proceso de eliminación Gaussiana
for k= 1:N-1
for m = k+1 : N
MT = -A(m,k)/A(k,k); %Multiplicadores
A(m,:)=A(m,:)+MT*A(k,:);%Modificación de matriz A
B(m)=B(m)+ MT*B(k);%Modificación del vector B.
end
end
%Proceso de sustitución regresiva.
x(N)=B(N)/A(N,N);
for k= N-1: -1:1
ind = N-k;
x(k)=0;
for m=1 :ind
x(k)=x(k)-A(k,k+m)*x(k+m);
end
x(k)=(B(k)+x(k))/A(k,k);
end

////////

>> A = [5 4 8 1 6;9 5 1 6 4;4 1 9 8 6;4 5 9 7 6;6 2 9 7 1];

>> B = [9 1 2 9 1];

>> x = EliminacionGaussiana(A,B)

Reference to a cleared variable A.

Error in EliminacionGaussiana (line 9)

N = rank(A);%Número de incognitas del sistema de ecuaciones

>> 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=

-0.6904 1.6307 0.5418 -0.4772 0.3454

>>

//////
%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
/////

>> A = [9 2 9 2 5:6 1 5 2 8;6 7 8 3 7;1 1 7 1 5;9 7 2 3 5];

Dimensions of matrices being concatenated are not consistent.

>> A = [9 2 9 2 5:6 1 5 2 8;6 7 8 3 7;1 1 7 1 5;9 7 2 3 5];

Dimensions of matrices being concatenated are not consistent.

>> A = [9 2 9 2 5;6 1 5 2 8;6 7 8 3 7;1 1 7 1 5;9 7 2 3 5];

>> B = [4;1;6;1;5];

>> MetodoInversaMatriz(A,B)

Id =

-0.0198 3.6241 -1.8713 4.4114 0.6653

-0.3168 46.4772 -10.4861 9.7110 1.2782

0.0990 9.4960 -1.6583 0.3137 -0.0685


1.2772 -184.6841 45.3139 -51.1406 -6.4637

-0.3267 31.6667 -7.5778 8.0667 1.0000

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

%Asignación de la matriz inversa contenida en la matriz aumentada


IA=A(1:N,N+1:2*N);
%Rotación de la matriz inversa para darle el acomodo correcto
IA=ROT*IA;
%Cálculo de la solución
x= IA*B;

//////

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

Anda mungkin juga menyukai