ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Matlab Sistema De Ecuaciones Lineales Metodo De Gauss


Enviado por   •  28 de Enero de 2013  •  2.240 Palabras (9 Páginas)  •  1.180 Visitas

Página 1 de 9

Práctica 3. Sistemas de ecuaciones lineales I (Método de Gauss)

En la práctica anterior vimos como expresar un sistema lineal en forma matricial, como comprobar la solución de un sistema, y como usar la 'división izquierda' para hallar una solución.

También vimos ejemplos de sistemas mal condicionados, y sistemas donde la 'división izquierda' no da una solución porque el sistema es incompatible.

En esta práctica veremos como resolver sistemas triangulares y el método de Gauss para resolver sistemas lineales.

Contents

• Resolución de un sistema triangular superior.

• Resolución de un sistema triangular inferior.

• Método de Gauss (Ejemplo).

• Método de Gauss (Programación del método).

Resolución de un sistema triangular superior.

Consideremos un sistema de tres ecuaciones y tres incógnitas como el siguiente

A11*x1 + A12*x2 + A13*x3 = b1,

A22*x2 + A23*x3 = b2,

A33*x3 = b3.

Para hallar su solución podemos despejar x3 en la última ecuación,

x3=b3/A33.

Con este valor de x3, podemos despejar x2 en la segunda ecuación

x2=(b2-A23*x3)/A22.

Y con los valores hallados de x3 y x2 podemos despejar x1 en la primera

ecuación

x1=(b1-A12*x2-A13*x3)/A11.

Emplearemos este método para resolver un sistema lineal de n ecuaciones y n incógnitas donde la matriz de coeficientes tiene ceros debajo de la diagonal.

Consideramos un sistema como el siguiente:

A(1,1)*x(1) + A(1,2)*x(2) + ... + A(1,n-1)*x(n-1) + A(1,n)*x(n) = b(1),

A(2,2)*x(2) + ... + A(2,n-1)*x(n-1) + A(2,n)*x(n) = b(2),

...

A(n-1,n-1)*x(n-1) + A(n-1,n)*x(n) = b(n-1),

A(n,n)*x(n) = b(n).

Podemos despejar x(n) de la última ecuación con lo que x(n)=b(n)/A(n,n). Conociendo x(n) podemos despejar x(n-1) de la penúltima ecuación.

Siguiendo este proceso, supongamos que ya hemos hallado x(n), x(n-1), ... x(i+1) y queremos despejar x(i) de la ecuación i-ésima

A(i,i)*x(i) + A(i,i+1)*x(i+1) + ... + A(i,n)*x(n) = b(i),

entonces tenemos

x(i)=(b(i) - S )/A(i,i),

donde S = A(i,i+1)*x(i+1) + ... + A(i,n)*x(n) .

Nos proponemos expresar el valor de S como un producto escalar de un vector fila por un vector columna.

S = A(i,i+1)*x(i+1) + ... + A(i,n)*x(n) .

En Matlab, el vector fila A(i,i+1:n) contiene los elementos que están en la fila i, y en las columnas desde la i+1 hasta la n, es decir A(i,i+1), A(i,i+2), A (i,i+3), ... A(i,n-1), A(i,n).

El vector columna x(i+1:n) contiene los elementos de x que van desde el i+1 hasta el n, es decir x(i+1), x(i+2), ..., x(n-1), x(n). Por tanto el valor de S se puede calcular como S=A(i,i+1:n)*x(i+1:n), con lo que usamos las operaciones vectores de Matlab.

Podemos escribir el pseudocódigo que permite resolver el sistema.

Entrada A, b.

n = número de filas de A.

Inicializamos x.

Para i=n, n-1, n-2, ..., 1

x(i)= (b(i)- A(i,i+1:n)*x(i+1:n))/A(i,i)

Siguiente i.

El siguiente código Matlab permite resolver un sistema triangular superior.

% Matriz del sistema

A=[1 3 2 2 1; 0 1 2 4 1; 0 0 2 1 -1; 0 0 0 3 -2; 0 0 0 0 2];

% Término independiente

b=[-2;-1;-2;-9;6];

% Hallamos el número de ecuaciones del sistema.

n=length(A);

% Definimos un vector-columna para almacenar la solución.

x=zeros(n,1);

% El bucle va desde la última ecuación hasta la primera

for i=n:-1:1

x(i)= (b(i)- A(i,i+1:n)*x(i+1:n))/A(i,i);

end

disp('La solución del sistema es ');

disp(x);

La solución del sistema es

1

-2

1

-1

3

Ej 1. Empleando el código que hemos visto escriba un script que permita resolver el sistema

x1 + 2*x2 + 3*x3 + x4 + x5 = 7,

x2 + 4*x3 + x4 - x5 = 6,

- x3 + 2*x4 - x5 = -5,

3*x4 + x5 = -2,

2*x5 = 2.

Compruebe el resultado con la 'división izquierda' (Sol. x1=1, x2=0, x3=2, x4=-1, x5=1).

Ej 2. Modifique el programa para que imprima (usando disp o fprintf) un mensaje como 'El elemento 3 de la diagonal es cero' si algún elemento de la diagonal vale cero, pero que no interrumpa el método. Aplique el programa a la resolución del sistema A*x=b donde A=[1,2,3,1,1;0,2,4,-1,-1;0,0,0,2,-1;0,0,0,3,1;0,0,0,0,-2], b=[2;3;-5;-5;-2]. (Sol x5=1, x4=-2.) (El sistema es compatible indeterminado, se pueden dar las soluciones dependiendo de un parámetro)

Resolución

...

Descargar como (para miembros actualizados)  txt (11.8 Kb)  
Leer 8 páginas más »
Disponible sólo en Clubensayos.com