Вы находитесь на странице: 1из 2

Mtodos numricos 2017B

Eliminacin Gaussiana comentarios


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

Вам также может понравиться