Está en la página 1de 6

Gua de ejercicios correspondiente a la practica 7 Mtodos Numricos y Programacin Digital. Ciclo 01/2011 Sistemas de Ecuaciones Lineales.

Los sistemas de ecuaciones lineales se utilizan en muchos problemas de ingeniera y de las ciencias; hasta el momento, en el laboratorio, se han resuelto mediante el operador de divisin izquierda de MATLAB Por ejemplo para resolver el siguiente sistema de \.Por ecuaciones: 3x + 2y z = 10 -x + 3y + 2z = 5 x - y - z = -1 Se debe crear una matriz con los coeficientes del sistema y luego un vector columna de trminos independientes. Es decir que el sistema a resolver se puede escribir como la siguiente ecuacin de matrices: matrices:AX = B, donde A es la matriz de coeficientes, B el vector onde v columna de trminos constantes y X es el vector columna de incgnitas a resolver. El comando de MATLAB para encontrar la solucin sera X = A\B que es lo mismo que B decir X=inv(A)*B. El objetivo de esta prctica es la solucin de de un sistema de n ecuaciones lineales con n incgnitas.

Donde se conoce la matriz de coeficientes:

Y el vector de trminos independientes:

En notacin matricial, el sistema de ecuaciones lineales se escribe: Ax = b: Y se puede resolver por dos tipos de mtodos: Mtodos directos: son mtodos que, en un nmero finito de operaciones, obtienen la solucin exacta. Mtodos iterativos: son mtodos que generan una sucesin de aproximaciones que converge a la solucin del sistema: . 1. RESOLUCIN DE SISTEMAS TRIANGULARES: Mtodo de Gauss con sustitucin regresiva. Sustitucin Regresiva.

Sea Ux = b un sistema de ecuaciones lineales con solucin nica (det U ~= 0) en el que la matriz de coeficientes es triangular superior. Entonces las componentes de la solucin se pueden calcular mediante el mtodo de sustitucin regresiva, es decir, se despeja la ltima incgnita de la ltima ecuacin, se sustituye en la penltima ecuacin; despus se despeja de esta ecuacin la penltima incgnita y se repite el proceso hacia arriba hasta calcular el valor de la primera incgnita. ALGORITMO: El mtodo funciona slo si todos los elementos diagonales son distintos de cero. Primero se calcula y luego se usa la siguiente regla:
,

para k=N-1, N-2,.,1

Ejemplo: Considere el sistema de ecuaciones lineales:

Aplicando el mtodo de sustitucin regresiva se tiene:

Ejercicio: Construya el programa para resolver un sistema lineal por sustitucin regresiva, las entradas deben ser las matrices A y B y la salida las incgnitas de X, puede comprobar sus resultados con el ejemplo propuesto arriba. Eliminacin gaussiana

Se trata de transformar el sistema de ecuaciones lineales Ax = b en otro equivalente Ux=c que sea triangular superior. Cualquiera de las siguientes operaciones aplicadas a un sistema de ecuaciones lineales produce un sistema equivalente: 1. Intercambio: El orden de las ecuaciones puede cambiarse 2. Escalado: Multiplicar una ecuacin por una constante no nula 3. Sustitucin: Una ecuacin puede ser reemplazada por la suma de ella misma ms un mltiplo de otra ecuacin: Ejemplo: Dado el siguiente sistema de ecuaciones: A + B + C= 1 A+2B+4C=-1 A+3B+9C= 1 Aplicando el mtodo de la sustitucin, la incgnita A es eliminada de las ecuaciones segunda y tercera sustrayendo la primera de ambas. El sistema lineal equivalente es: A + B + C= 1 B+3C=-2 2B+8C= 0 Ahora, la variable B se elimina de la tercera ecuacin restndole a dicha ecuacin el doble de la segunda, lo que nos lleva a un sistema equivalente que es triangular superior: A + B + C= 1 B+3C=-2 2C= 4 Y finalmente se usa el algoritmo de sustitucin regresiva para darle solucin al sistema y despejar las incgnitas. Programas en Matlab:
function p=eliminacion_gauss(n,a,b) %Datos %n es el numero de incgnitas %A es la matriz de coeficientes del sistema %B es la matriz de constantes del sistema %Resultados %Valores de las incognitas m=eye(n); for i=1:1:n sub(i)=i; end for k=1:1:(n-1) max1=0;

for i=k:1:n abs1=abs(a(sub(i),k)); if max1<abs1 max1=abs1; indx1=i; end end if max1==0 return else j=sub(k); sub(k)=sub(indx1); sub(indx1)=j; pivote=a(sub(k),k); for i=(k+1):1:n m(sub(i),k)=-a(sub(i),k)/pivote; for j=(k+1):1:n a(sub(i),j)=a(sub(i),j)+m(sub(i),k)*a(sub(k),j); end b(sub(i))=b(sub(i))+m(sub(i),k)*b(sub(k)); end end end p=backsolving(n,a,b,sub);

-----------------------------------------------------------------------------------------------------------------------function x=backsolving(n,a,b,sub) x(n)=b(sub(n))/a(sub(n),n); for k=(n-1):-1:1 x(k)=b(sub(k)); for i=(k+1):1:n x(k)=x(k)-a(sub(k),i)*x(i); end x(k)=x(k)/a(sub(k),k); end

Resuelva los siguientes sistemas de ecuaciones lineales: (anote los resultados) 2 0 2 3 4 4 2 3 3 2 13 28 20 6

2 4

4 5 3

6 3 2

4 10 5

Descomposicin LU

Si A = LU, con L una matriz triangular inferior (low) y U una matriz triangular superior (upper), entonces el sistema de ecuaciones lineales Ax = b se puede resolver en dos fases:

a) Ly = b; b) Ux = y, Ejemplo:

Aplicando el algoritmo de resolucin de un sistema factorizando en LU, se obtiene:

Tarea: (A entregarse el prximo laboratorio) Investigue y realice el programa en Matlab para descomponer una matriz de orden nxm en LU.

Mtodos Iterativos: Mtodo de Gauss-Seidel Este mtodo busca la resolucin de un sistema lineal AX=B mediante la generacin de una sucesin que converge a la solucin, a partir de un punto inicial Po. Una condicin suficiente para que el mtodo sea aplicable es que A sea de Diagonal estrictamente dominante. Programa en Matlab:
function X=gseid(A,B,P,delta,max1) %Datos %A es una matriz inversible de orden NxN %B es una matriz de orden Nx1 %P es una matriz de oren Nx1: el punto inicial %delta es la tolerancia para el punto inicial %max1 es el numero mximo de iteraciones %Resultados %X es una matriz de orden Nx1 y la solucin al sistema N=length(B); for k=1:max1 for j=1:N if j==1 X(1)=(B(1)-A(1,2:N)*P(2:N))/A(1,1); elseif j==N X(N)=(B(N)-A(N,1:N-1)*(X(1:N-1))')/(A(N,N)); else %X contiene la aproximacin a la k-sima %p la (k-1) sima X(j)=(B(j)-A(j,1:j-1)*X(1:j-1)-A(j,j+1:N)*P(j+1:N))/A(j,j); end end err=abs(norm(X'-P)); relerr=err/(norm(X)+eps); P=X'; if (err<delta)||(relerr<delta) break end end X=X';

Ejercicio: Resuelva los siguiente ejercicios por el mtodo de Gauss Seidel.

Tome como aproximacin inicial Po=0.

También podría gustarte