Sie sind auf Seite 1von 7

Mtodo de Gauss-Jordan

El mtodo de Gauss-Jordan es una variacin de la eliminacin gaussiana. La principal diferencia consiste en que mtodo de Gauss-Jordan cuando se elimina una incgnita no solo se elimina de las ecuaciones siguientes si no de todas las otras ecuaciones. De esta forma el paso de eliminacin genera una matriz identidad en vez de una matriz triangular. Por consiguiente, no es necesario emplear la sustitucin hacia atrs para obtener la solucin.

Esquema grfico del mtodo de Gauss-Jordan.

Programa en Matlab %* ****************************************************** **

%** Metodo de Gauss Jordan %** por pasos UdeG ** %** Electronica ** %** Ing. Jesus Norato Valencia %** Materia: Metodos Numericos

**

Maestria en

** **

%** Maestro: M.C. J.Gilberto Mateos Suarez 5/Nov/99 ** %***************************************************** ***** clear; clc; fprintf('Dame la matriz aumentada\n\n'); f=input('Cuantas filas tiene la matriz: '); c=input('Cuantas columnas tiene la matriz: ');

%***************************************************** ****** %** En los siguentes for anidados se da entrada a los ** %** datos de la matriz aumentada, los cuales son dados **

%** primero la columna 1, despues la 2 y asi sucesivamente** %***************************************************** ******

for k=1:c for j=1:f fprintf('fila : %x\n',j) fprintf('columna : %x',k) r=input('Numero de esta fila y columna: '); a(j,k)=r; j=j+1; end k=k+1; end a pause

%***************************************************** **** %** En seguida se normalizan los pivotes y se hacen cero** %** todos los numeros por debajo de ellos **

%***************************************************** ****

for k=1:c-1 a(k,:)=a(k,:)/a(k,k); for j=k+1:f a(j,:)=a(j,:)-a(k,:)*a(j,k); j=j+1; a pause end k=k+1; a pause end

%***************************************************** * %** En la siguiente seccion se hacen cero los numeros** %** que estan por encima de la diagonal principal ** %***************************************************** *

for k=f:-1:2 for j=k-1:-1:1 a(j,:)=a(j,:)-a(k,:)*a(j,k); j=j-1; a pause end k=k-1; a pause end fprintf('resultado\n');

6.2.4 Mtodo de Gauss-Seidel La iteracin de Gauss-Seidel se define al tomar Q como la parte triangular inferior de A incluyendo los elementos de la diagonal:

Si, como en el caso anterior, definimos la matriz R=A-Q

y la ecuacin (63) se puede escribir en la forma:

Qx(k) = -Rx(k-1) + b
Un elemento cualquiera, i, del vector Qx(k) vendr dado por la ecuacin:

Si tenemos en cuenta la peculiar forma de las matrices Q y R, resulta que todos los sumandos para los que j > i en la parte izquierda son nulos, mientras que en la parte derecha son nulos todos los sumandos para los que = . Podemos escribir entonces:

de donde despejando xi(k), obtenemos:

Obsrvese que en el mtodo de Gauss-Seidel los valores actualizados de xi sustituyen de inmediato a los valores anteriores, mientras que en el mtodo de Jacobi todas las componentes nuevas del vector se calculan antes de llevar a cabo la sustitucin. Por contra, en el mtodo de Gauss-Seidel los clculos deben

llevarse a cabo por orden, ya que el nuevo valor xi depende de los valores actualizados de x1, x2, ..., xi-1. En la figura (15) se incluye un algoritmo para la iteracin de Gauss-Seidel.

Figure: Algoritmo para la iteracin de Gauss-Seidel.

Das könnte Ihnen auch gefallen