Está en la página 1de 2

clear

clc
n=input('Digite numero de ecuaciones a resolver: ')

%se abre el espacio para la matriz de coeficientes y el vector de constantes

M=zeros(n,n); %matriz de coeficientes de las variables de las ecuaciones


Y=zeros(n,1); %vector columna de las contantes de las ecuaciones
X=zeros(n,1); % vector columna donde se guardar�n los valores hallados de las
variables

%Se lee la matriz de coeficientes

disp('Lectura de la matriz de coeficientes.') %muestra un mensaje para saber que


vamos a leer la matriz de coeficientes
for i=1:n %ciclo que controla el movimiento por las filas
for j=1:n %ciclo que controla el movimiento por las columnas
fprintf('Ingrese un valor para M(%d, %d): ', i, j) % muestra un mensaje
utilizando las variables 'i' y 'j' para especificar la posicion a ser entrada
M(i,j)=input(''); % entrada por teclado
end%fin del ciclo de las columnas
end %fin del ciclo de las filas

%Se lee el vector de constantes

disp('Lectura del vector columna de constantes') %muestra un mensaje para saber


que vamos a leer el vector columna de constantes

for i=1:n %ciclo para leer el vector columna


fprintf('Ingrese un valor para Y(%d): ', i) % muestra un mensaje utilizando
la variable 'i' para especificar la posicion a ser entrada
Y(i)=input('');
end %fin del ciclo para leer el vector columna

%Se forma la matriz ampliada juntando la matriz de coeficientes con el vector


columna de constantes

A=[M,Y]; %Declaracion de la matriz ampliada

%Operaciones para la resolucion del sistema de ecuaciones

%Eliminacion hacia adelante, esto hace ceros los elementos debajo de la diagonal
principal
%para luego hacer sustitucion hacia atr�s e ir encontrando uno por uno los valores
%de las variables

for j=1:n-1
for i=j+1:n
A(i,:)= A(i,:)+A(j,:)*(-A(i,j)/A(j,j));
%los dos puntos despues de la coma son para especificar que es toda la fila
i
%La opercacion consiste en que a cada fila se igualar� a la misma sumada
con la siguiente fila multiplicada por un factor negativo el cual comprende el
negativo
%del elemento debajo de la diagonal principal dividido entre el dato encima
de este que corresponde a la diagonal principal
end
end
%Sustitucion hacia atr�s

%en este paso lo que se hace es ir reemplazando el valor de la variable como la


constante para luego hacer las operaciones pertinentes:
%primero se asume como el valor de la variable la constante de la ecuacion,
entonces, aplicando el patr�n observado de que para hallar el valor de la variable
%se le tiene que restar un t�rmino a la constante. Por eso se indica que X(i) que
es una de las variables, va a ser igual a esa misma variable,
%que antes se igualo a la contante menos la otra variable hallada anteriormente m�s
abajo multiplicada por el valor de la posicion en la matriz aumentada
correspondiente a la
%columna de constantes en la fila 'i'. Despues de hacer esto es necesario dividir
el valor encontrado en la operacion anterior por el valor de la matriz aumentada
%en la posicion de la diagonal principal respectiva, guardando el resultado en el
vector 'X' que guarda los valores e las variables.
for i=n:-1:1
X(i)=A(i,n+1);
for j=i+1:n
X(i)=X(i)-X(j)*A(i,j);
end
X(i)= X(i)/A(i,i);
end

for i=1:n
fprintf('El valor de la variable es:%d\n',X(i))
end

También podría gustarte