trabajo

Páginas: 8 (1910 palabras) Publicado: 1 de diciembre de 2013
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 esincompatible.
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 tresincó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-ésimaA(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 desdela 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 elsistema.
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 delsistema.
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 scriptque 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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Trabajadores Del Trabajo
  • trabajo del trabajo
  • Trabajo Del Trabajo
  • El trabajo y el Trabajador
  • Trabajo Trabajador
  • trabajo trabajo
  • trabajo trabajo
  • Trabajo de trabajo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS