SistemasdeEcuacionesLineales

9
Luis Cabezas Tito Métodos Numéricos Página 1 MÉTODOS NUMÉRICOS SISTEMAS DE ECUACIONES LINEALES INTRODUCCIÓN Existen dos métodos para resolver los Sistemas de Ecuaciones Lineales. Éstos son: Los Métodos Directos. Los Métodos Iterativos. Uno de los problemas de los métodos directos es que al resolver un sistema de ecuaciones lineales, la memoria de la computadora requerida es proporcional al cuadrado del orden de la matriz de coeficientes, haciéndose el cálculo muy pesado, además de producirse errores de redondeo grandes (Eliminación de Gauss, Eliminación de Jordán, Factorización de matrices y sus derivados). Mientras que, si se usan los métodos iterativos, la solución de sistemas de orden 1000 y aún mayor es posible. Dentro de estos últimos se encuentran los métodos de Jacobi y de Gauss – Seidel. MÉTODOS DIRECTOS Estos métodos no necesitan de valores iniciales y, para determinar la solución del mismo, sólo es necesario conocer la matriz de coeficientes y el vector de términos independientes. También estos métodos permiten generalizar las técnicas de eliminación de incógnitas para resolver grandes sistemas de ecuaciones lineales. Método de Gauss: Consiste en transformar el sistema de ecuaciones lineales expresada como una matriz ampliada en su equivalente, una matriz triangular superior, de la forma: [( | )] ( | ) EJEMPLO: resolver con MATLAB el siguiente sistema de ecuaciones lineales: 10x 1 + x 2 5x 3 = 1 -20x 1 + 3x 2 + 20x 3 = 2 5x 1 + 3x 2 + 5x 3 = 6 En el workspace de MATLAB escribir la matriz A con los coeficientes del sistema de ecuaciones lineales: >> A=[10 1 -5;-20 3 20;5 3 5] A = 10 1 -5 -20 3 20 5 3 5

description

electrónica

Transcript of SistemasdeEcuacionesLineales

Page 1: SistemasdeEcuacionesLineales

Luis Cabezas Tito Métodos Numéricos Página 1

MÉTODOS NUMÉRICOS SISTEMAS DE ECUACIONES LINEALES

INTRODUCCIÓN Existen dos métodos para resolver los Sistemas de Ecuaciones Lineales. Éstos son:

Los Métodos Directos.

Los Métodos Iterativos. Uno de los problemas de los métodos directos es que al resolver un sistema de ecuaciones lineales, la memoria de la computadora requerida es proporcional al cuadrado del orden de la matriz de coeficientes, haciéndose el cálculo muy pesado, además de producirse errores de redondeo grandes (Eliminación de Gauss, Eliminación de Jordán, Factorización de matrices y sus derivados). Mientras que, si se usan los métodos iterativos, la solución de sistemas de orden 1000 y aún mayor es posible. Dentro de estos últimos se encuentran los métodos de Jacobi y de Gauss – Seidel.

MÉTODOS DIRECTOS Estos métodos no necesitan de valores iniciales y, para determinar la solución del mismo, sólo es necesario conocer la matriz de coeficientes y el vector de términos independientes. También estos métodos permiten generalizar las técnicas de eliminación de incógnitas para resolver grandes sistemas de ecuaciones lineales. Método de Gauss: Consiste en transformar el sistema de ecuaciones lineales expresada como una matriz ampliada en su equivalente, una matriz triangular superior, de la forma:

[(

|

)] (

|

)

EJEMPLO: resolver con MATLAB el siguiente sistema de ecuaciones lineales: 10x1 + x2 – 5x3 = 1 -20x1 + 3x2 + 20x3 = 2 5x1 + 3x2 + 5x3 = 6

En el workspace de MATLAB escribir la matriz A con los coeficientes del sistema de ecuaciones lineales: >> A=[10 1 -5;-20 3 20;5 3 5] A = 10 1 -5 -20 3 20 5 3 5

Page 2: SistemasdeEcuacionesLineales

Luis Cabezas Tito Métodos Numéricos Página 2

También cree el vector y de términos independientes: >> y=[1 2 6] y = 1 2 6

Vaya en MATLAB, al directorio donde se encuentra el archivo Gauss-L. por ejemplo:

Escriba en el workspace de MATLAB: >>Gauss_L(A,y);

Se abre la siguiente ventana:

Seleccione la opción 2: Con pivotaje. La solución final es:

También puede escribir directamente: >> sol=Gauss_L(A,y,2) sol = 1.0000 -2.0000 1.4000

Page 3: SistemasdeEcuacionesLineales

Luis Cabezas Tito Métodos Numéricos Página 3

Método de Jordán: Es muy similar al método de Gauss, existiendo una diferencia principal como se muestra a continuación:

[(

|

)] (

|

)

EJEMPLO: resolver con MATLAB el siguiente sistema de ecuaciones lineales: 4x1 - 9x2 + 2x3 = 5 2x1 - 4x2 + 6x3 = 3 x1 - x2 + 3x3 = 4 Proceder de forma similar al Gauss en MATLAB: >> A = [4 -9 2;2 -4 6;1 -1 3] A = 4 -9 2 2 -4 6 1 -1 3 >> y=[5 3 4] y = 5 3 4 >> Jordan_L(A,y);

O directamente: >> sol=Jordan_L(A,y,1) sol =

Page 4: SistemasdeEcuacionesLineales

Luis Cabezas Tito Métodos Numéricos Página 4

6.9500 2.5000 -0.1500 Factorización de Matrices – Método LU: El principal atractivo de esta factorización es que el paso de eliminación que consume tiempo se puede reformular de tal manera que involucre solo operaciones sobre los coeficientes de la matriz A. este método es muy adecuado para aquellas situaciones donde se deben evaluar muchos sistemas de ecuaciones que presentan una misma matriz A, pero diferentes vectores b del lado derecho. La descomposición LU proporciona un medio eficiente para calcular la matriz inversa. Pasos a seguir:

1. La matriz de coeficientes A del sistema de ecuaciones se factoriza o descompone en una matriz triangular inferior L (Low) y una matriz triangular superior U (Up), obteniéndose:

A*x = b, entonces LU*x = b

2. Ambas matrices obtenidas L y U se usan para determinar fácilmente la solución del sistema, haciendo U*x = c, donde ‘c’ es un vector desconocido que puede ser determinado a través de la relación LC = b mediante la sustitución progresiva o hacia adelante. Una vez calculado c, se resuelve U*x = c con sustitución regresiva, obteniéndose el vector solución x.

EJEMPLO: resolver con MATLAB el siguiente sistema de ecuaciones lineales: 4x1 - 9x2 + 2x3 = 5 2x1 - 4x2 + 6x3 = 3 x1 - x2 + 3x3 = 4 Seguir los siguientes pasos en MATLAB: >> A = [4 -9 2;2 -4 6;1 -1 3] A = 4 -9 2 2 -4 6 1 -1 3 >> y=[5 3 4] y = 5 3 4

Page 5: SistemasdeEcuacionesLineales

Luis Cabezas Tito Métodos Numéricos Página 5

>> LU_L(A,y); SOLUCION DEL SISTEMA x 1 = 6.9500000 x 2 = 2.5000000 x 3 = -0.1500000

MÉTODOS ITERATIVOS Consisten en realizar tareas repetitivas hasta alcanzar un vector aproximado que se considera como las soluciones, motivo por el cual, para la utilización de estos métodos es necesario conocer o determinar un vector inicial para comenzar el proceso iterativo. Los principales métodos iterativos son el de Jacobi y el de Gauss-Seidel. Método de Jacobi: También conocido como método de sustitución simultánea, en este método los valores de xk+1 se determinan a través de la sustitución directa de un vector anterior xk asumido u obtenido en el respectivo sistema formado, es decir:

EJEMPLO: resolver con MATLAB el siguiente sistema de ecuaciones lineales: 4x1 – x2 = 1 -x1 + 4x2 – x3 = 1 -x2 + 4x3 + x4 = 1 -x3 + 4x4 = 1 Seguir los siguientes pasos en MATLAB: >> A=[4 -1 0 0;-1 4 -1 0;0 -1 4 -1;0 0 -1 4] A = 4 -1 0 0 -1 4 -1 0 0 -1 4 -1 0 0 -1 4 >> y=[1 1 1 1]

Page 6: SistemasdeEcuacionesLineales

Luis Cabezas Tito Métodos Numéricos Página 6

y = 1 1 1 1 Cambiar en MATLAB al directorio donde se encuentra el archivo Jacobi_L. luego escribir: >> Jacobi_L(A,y,1000); Pide introducir el error, que puede ser 0.001. también pide introducir los valores iniciales para las variables x. Ponga a todos el valor de 0 (cero). METODO DE JACOBI Error a ser aceptado 0.001 Introduzca el vector inicial valor de x 1 = 0 valor de x 2 = 0 valor de x 3 = 0 valor de x 4 = 0 --------------------------------- Sin pivotaje 1 Con pivotaje 2 --------------------------------- Opcion ? Elija la opción 1, Sin pivotaje. Resultado: SOLUCION DEL SISTEMA x 1 = 0.3634186 x 2 = 0.4541931 x 3 = 0.4541931 x 4 = 0.3634186 También se puede escribir directamente: >> [sol,ite]=Jacobi_L(A,y,1000,[0 0 0 0],0.001,1) sol = 0.3634 0.4542 0.4542 0.3634 Método de Gauss - Seidel: Llamado también “Método de Desplazamientos Sucesivos”, donde los valores que se van calculando en la (k+1)-ésima iteración se emplean para calcular los valores faltantes de esa misma iteración, es decir:

Page 7: SistemasdeEcuacionesLineales

Luis Cabezas Tito Métodos Numéricos Página 7

EJEMPLO: resolver con MATLAB el siguiente sistema de ecuaciones lineales:

[

] [

] [

]

Seguir los siguientes pasos en MATLAB: >> A=[4 2 1 -3;1 2 -1 0;3 -1 2 4;0 2 4 3] A = 4 2 1 -3 1 2 -1 0 3 -1 2 4 0 2 4 3 >> y=[10 15 2 -3] y = 10 15 2 -3 Cambiar de directorio dentro de MATLAB donde se encuentra el archivo GaussSeidel_L. Luego escribir: >>GaussSeidel_L(A,y,1000); Introducir como datos lo siguiente: Error = 0.001 Valores iniciales para el vector X = 0. Se mostrará en el workspace lo siguiente: METODO DE GAUSS - SEIDEL Error a ser aceptado 0.001 Introduzca el vector inicial valor de x 1 = 0 valor de x 2 = 0 valor de x 3 = 0 valor de x 4 = 0 ---------------------------------

Page 8: SistemasdeEcuacionesLineales

Luis Cabezas Tito Métodos Numéricos Página 8

Sin pivotaje 1 Con pivotaje 2 --------------------------------- Opcion ? 2 Resultado: SOLUCION DEL SISTEMA x 1 = 2.6188783 x 2 = 4.1735348 x 3 = -4.0337219 x 4 = 1.5960859 Resolviendo directamente: >> [sol,ite]=GaussSeidel_L(A,y,1000,[0 0 0 0],0.001,2) sol = 2.6189 4.1735 -4.0337 1.5961 TRABAJO FINAL:

Invéntese un sistema de ecuaciones lineales de 10 variables. Resuelva el mismo con todos los Métodos Directos e Iterativos. Compare los resultados y saque sus propias conclusiones.

Realice el Diagrama de Flujo usando software adecuado para ello (Ej. Visio) para cada programa de MATLAB: xxxxx_L. Entienda qué es lo que hace cada línea de comando de todos los programas.

Cree Interfaces Gráficas GUI en MATLAB para todos los programas anteriores.

Page 9: SistemasdeEcuacionesLineales

Luis Cabezas Tito Métodos Numéricos Página 9

----- oOo -----