Beruflich Dokumente
Kultur Dokumente
una
respuesta
Tamao
de
con
[n,m]=size(A);
matriz A
la
Ab=[A b];
[Ab].
% Matriz aumentada
% Muestra la matriz
if n==m
cuadrada
si
la
matriz
es
for i=1:n
marca(i)=i;
posiciones de las variables x en cada cambio
%Almacena
end
for k=1:(n-1)
fprintf('\n ETAPA %g= ',k)
mayor=0;
fila igual a cero
%Hace el mayor de la
filam=k;
numero mayor
columnam=k;
%Hace
columna k como la que tiene el numero mayor de toda la matriz
for p=k:n
la
for r=k:n
if mayor<abs(Ab(p,r))
mayor por toda la matriz
mayor=abs(Ab(p,r));
mayor el numero encontrado
%Hace
filam=p;
numero mayor
columnam=r;
del numero mayor
%cambio de columna
como
el
end
end
end
if mayor ==0
fprintf(' El sistema tiene infinitas soluciones ')
break
programa con la instruccion break, ya que
%se
%si
interrumpe
mayor=0,
el
mas
for j=1:(n+1)
aux=Ab(k,j);
variable auxiliar para intercambio de fila
%Se
utiliza
Ab(k,j)=Ab(filam,j);
Ab(filam,j)=aux;
end
end
if columnam ~= k
una
for i=1:n
aux=Ab(i,k);
variable auxiliar para intercambio de columna
%Se
utiliza
una
%Se
utiliza
una
%Formula
para
Ab(i,k)=Ab(i,columnam);
Ab(i,columnam)=aux;
end
aux = marca(k);
variable auxiliar para intercambio de variables
marca(k)= marca(columnam);
marca(columnam)=aux;
end
end
fprintf('Matriz correspondiente a la etapa:\n');
disp(Ab)
fprintf('\nMultiplicadores:\n');
for i=(k+1):n
mult(i,k)=Ab(i,k)/Ab(k,k);
%Multiplicadores de cada etapa
fprintf('mult(%g,%g)=',i,k)
disp(mult(i,k));
for j=k:(n+1)
Ab(i,j)= Ab(i,j) - mult(i,k)*Ab(k,j);
convertir fila
end
end
fprintf('\nLa matriz correspondiente a esta etapa es:\n ')
disp(Ab)
end
fprintf('\nVector final de marcas:\n ')
marca(columnam)=aux
%Sustitucion regresiva
for i=n:-1:1
suma=0;
for p=(i+1):n
suma = suma + Ab(i,p)*X(p);
end
X(i)=(Ab(i,n+1)-suma)/Ab(i,i);
end
%la siguiente parte del programa ordena las varibles, tomando en
%cuenta la marca final y los retoma con su coeficiente a la marca
%inicial
for i=1:n
for j=1:n
if marca(j)==i
k=j;
end
end
aux=X(k);
%para
intercambiar las variables, se utiliza una variable auxiliar.
poder
X(k)=X(i);
X(i)=aux;
aux=marca(k);
%para
intercambiar las variables, se utiliza una variable auxiliar.
poder
marca(k)=marca(i);
marca(i)=aux;
end
else
matriz no sea cuadrada