gauss

Download Gauss

If you can't read please download the document

Upload: xx

Post on 17-Dec-2015

212 views

Category:

Documents


0 download

DESCRIPTION

gauss3

TRANSCRIPT

%-----------------------Gauss Seidel---------------------------------------%Esta funcion se formulo para satisfacer el enunciado 3.%Lo unico que se cambio es que el valor del vector solocion es obtenido%dinamicamente, es decir se va utilizando a medida que se genera.%-------------------------------------------------------------------------%------------------------ANALISIS-----------------------------------------%Se procedera construyendo una funcion con los datos de entrada%A,b,tol,kmax,X%A = Matriz del sistema lineal%b = Vector columna%tol = Tolerancia del error%X = Vector que comienza con la iteracion.%kmax = Numero de iteraciones maximas.%Luego se creara un vecotor obtenido Xo que cumple la funcion de base de%datos para el vector solucion calculado en algoritmo de GAUSS-SEIDEL.%Mediante un bucle se delimita la cantidad de iteraciones kmax.%Anidados se encuentran dos bucles y la condicion%El primer bucle anidado es para seleccionar las filas de A y establecer los%valores de Xo. El segundo almacena las sumas definidas por algoritmo de%GAUSS-SEIDEL. (Ver anexo).%Una vez obtenido el vector resultado se procedra a determinar la%diferencia entre la iteracion X(k-1) y Xo(k).%Luego se procede al cambio de X por Xo para almacenar el resultado como X%La condicion if-en permite que si la diferencia entre Xo y X es menor o%igual que la toleracia se impriman el vector solucion en k y la cantidad%de solucion ademas de salir.%En el caso de cumplirse el maximo de iteraciones kmax se imprime un%mensaje el numero de iteraciones es insuficiente o diverge el sistema.%-------------------------------------------------------------------------%--------------------------PROGRAMA---------------------------------------function[] = GAUSSEIDEL(A,b,tol,X,kmax) %FUNCION CON DATOS DE ENTRADAXo = zeros(length(X),1); %PRE DEFIENICION VECTOR SOLUCION OBTENIDO Vofor k = 1 : kmax; %BUCLE LIMITADO DE ITERACIONES Sum = 0; %VARIABLE TEMPORAL PARA ALMACENA SUMA DE LOS PRODUCTOS DEL ALGORITMO for i = 1 : length(b); %BUCLE QUE UBICA LAS FILAS EN A Y b TAMBIEN LA DIAGONAL A(i,i) for j = 1 : length(b); %BUCLE QUE DETERMINA LA COEFICIENTE COLUMNA DE A Y FILA DE Xo if j ~= i; %CONDICION QUE EXCLUYE LOS ELEMENTOS DE LA DIAGONAL Sum = A(i,j) * Xo(j) + Sum; %AQUI RADICA LA DIFERENCIA SUSTANCIAL CON JACOBI Xo EN LUGAR DE X PAR TENER DATOS ACTUALES end; end; Xo(i) = (b(i) - Sum) / A(i,i); %ALMACENAMIENTO DE VALORES DEL VECTOR SOLUCION Sum = 0; end diffkm1 = Xo-X; %DIFERENCIA ENTRE VECTOR SOLUCION EN k Y k-1 ITERACION X = Xo; %CAMBIO DE VALORES PARA QUE Xo PASE HACER EL VALOR DE X EN ITERACION K-1 if norm(diffkm1)