Mariana Quiroz Becerril No. Cuenta: 1340786 Grupo 2
function [ x ] = EliminacionG( mat, b )
%ELIMINACIONG Resuelve un sistema lineal por el metodo de eliminacion %Gaussiana %Valores de entrada % mat matriz cuadrada de coeficientes % b vector columna de soluciones %Valores de salida % x vector columna
nreng= size (mat,1); Obtiene el nmero de renglones
%analizamos todos los renglones
for r = 1 : nreng Analiza todos los renglones Intercambio de renglones if mat(r,r)==0 Revisa que el elemento 1,1 2,2 3,3 etc (que son los utilizados como pivotes) sean 0 para realizar un intercambio for rcambio = r+1:nreng rcambio se posiciona un rengln abajo del que se esta analizando y termina en el numero de renglones if mat(rcambio,r)~= 0 Revisa que el elemento de la misma columna y en rcambio sea diferente para realizar el intercambio con este rengln tmat=mat; Crea un matriz idntica a la original tmat(rcambio,:)=mat(r,:); En la segunda matriz, el rengln rcambio se cambia por el que est en r de la matriz original (: significan que son todos los elementos de ese rengln) tmat(r,:)=mat(rcambio,:); En la segunda matriz, el rengln que est en r se cambia por el que est en rcambio de la matriz original Hasta aqu es el intercambio de renglones mat=tmat; Se regresan los valores de la segunda matriz para trabajar con la original Para el vector de soluciones tb=b; Se crea un vector columna idntico al original tb(rcambio)=b(r); En el segundo vector se cambia el elemento en r por el que est en rcmbio de la matriz original (sin : porque es un solo elemento) tb(r)=b(rcambio); En el segundo vector se cambia el elemento en rcambio por el que est en r de la matriz original b=tb; Se regresan los valores al vector original
break; Al realizar el intercambio se acaba el for
else if(rcambio==nreng) Termina de recorrer la matriz error('La matriz es singular'); end end end end
%eliminacion de todos los renglones abajo de r
for relim=r+1:nreng; Empieza un renglon abajo del primero (renglon a eliminar) factor=mat(relim,r)/mat(r,r); Calcula el factor para eliminar relim con el elemento que se har 0 y el que se utiliza como pivote (renglon de arriba = r) mat(relim,:)=mat(relim,:)-factor*mat(r,:); El renglon a eliminar va a ser igual a este mismo menos el producto del factor por el renglon que se utiliza como pivote b(relim,:)=b(relim,:)-factor*b(r,:); El mismo procedimiento pasado pero en el vector de soluciones mat; Imprime los cambios de la matriz b; Imprime los cambios en el vector de soluciones end end