Вы находитесь на странице: 1из 50

Universidad Nacional de Ingeniería

Métodos Numéricos – MB536

Solución de Sistemas de Ecuaciones


Lineales

Por Rosa Garrido Juárez, Mg. Ing.


1
Solución de sistemas de
ecuaciones lineales
 Análisis de Circuitos (ecuaciones de malla y nodos)
 Solución Numérica de ecuaciones diferenciales
(Método de las diferencias Finitas)
 Solución Numérica de ecuaciones de integrales
(Metodo de los Elementos Finitos, Método de los
Momentos)
a11x1  a12 x2    a1n xn  b1  a11 a12  a1n   x1   b1 
a a  a   x  b 
a21x1  a22 x2    a2 n xn  b2  2n   2   2
 
21 22

          
    
an1 x1  an 2 x2    ann xn  bn  n1 n 2
a a  a nn   xn  bn 

2
Consistencia (Solubilidad)
 El sistema lineal de ecuaciones Ax=b tiene una
solución, o es consistente si y solo si
Rango{A}=Rango{A|b}
 Un sistema es inconsistente cuando
Rango{A}<Rango{A|b}

Rango(A) es el máximo numero de columnas


linealmente independientes o filas de A. El rango puede
ser encontrado usando OF (Operaciones elementales
entre filas) ó OC (Operaciones elementales entre
columnas).

3
Operaciones Elementales de filas (OF)

Las siguientes operaciones aplicadas a la matriz


aumentada[A|b], producen un sistema lineal equivalente.
Intercambios: El orden de dos filas pueden ser cambiada
Escalado: Multiplicando un fila por una constante no cero
Reemplazo: Las filas pueden ser reemplazadas por la
suma de esa fila y un múltiplo distinto a cero de cualquier
otra fila.

4
Un ejemplo inconsistente
1 2  x1  4
 2 4  x    5 
  2   
OF:Multiplicar la primera fila por -2 y
sumar la segunda fila

1 2
0 0  Rango(A)=1 Entonces este
 
sistema de
ecuaciones no
1 2 4  es soluble
0 0  3 Rango{A|b}=2
 

5
Unicidad de las soluciones

 El sistema tiene una única solucion si y solo si

Rango(A)=Rango(A|b)=n

n es el orden del sistema

 Tales sistemas son llamados sistemas rango completo


(full-rank)

6
Sistemas rango completo (Full-rank)
 Si Rango(A)=n
Det(A)  0  A es nonsingular por lo tanto invertible
Solución Única

1 2   x1  4
1  1  x   2
  2   

7
Matrices de rango deficiente
 Si Rango(A)=m<n
Det(A) = 0  A es singular por lo tanto no es invertible
número infinito de soluciones (n-m variables libres)
sistema sub-determinado

1 2  x1  4
2 4  x   8
  2   
Rank{A}=Rank{A|b}=1
Consistente  soluble
8
Sistema de ecuaciones
mal-condicionadas
 Una pequeña desviación en las entradas de la matriz A,
causa una gran desviación en la solución.

 1 2   x1   3   x1  1
0.48 0.99  x   1.47   x   1
  2     2  

 1 2   x1   3   x1  3
0.49 0.99  x   1.47   x   0
  2     2  

9
Mal condicionada (continua.....)
 Un sistema lineal de
ecuaciones se dice a
ser “mal
condicionada” si la
matriz de coeficientes
tiende a ser singular

10
Tipos de ecuaciones de sistemas lineales
a ser estudiados

 Los coeficientes reales de la matriz cuadrada A


 EL vector b es diferente de cero y real
 Sistema consistente, soluble
 Sistemas rango completo, solución única
 Sistemas bien-condicionados

11
Técnicas de Solución
 Métodos directos de solución

 Encuentra una solución en un número finito de operaciones


transformando el sistema en un sistema equivalente que sea
' más fácil ' de solucionar.
 Triangulares diagonales, .

 Métodos de solución Iterativos

 Calcula las aproximaciones sucesivas del vector solución para


una mat. A y un b dados, comenzando de un punto inicial x0
 Total del · de operaciones es incierto, puede que no converja.
12
Métodos de solución directa
 Eliminación Gaussiana
 Usando OF, la matriz A es transformada en una
matriz triangular superior (todos los elementos
debajo de la diagonal son cero).
 Sustitución hacia (back substitution) atrás es usada
para resolver un sistema triangular superior

Back substitution
 a11  a1i  a1n   x1   b1  a11  a1i  a1n   x1   b1 
                      
 
 ai1  aii  ain   xi    bi   0
~
 a~ii  a~in   xi    bi 
         
           OF          
an1 ~
 ani  ann   xn  bn   0  0  a~nn   xn  bn 

13
Primer paso de la eliminación
Elemento pivotal  a11 a1(1n)   x1  b1(1) 
(1) (1) (1)
a12 a13 
 (1) (1) (1)    (1) 
 a21 a22 a23  a2(1n)   x2  b2 
 a31
(1) (1)
a32 (1)
a33  a3(1n)   x3   b3(1) 
    
           
 a (1) an(12) an(13) (1)    b (1) 
 n1  ann   xn   n 

a11
(1) (1)
a12 (1)
a13  a1(1n)   x1   b1(1) 
m2,1  a21
(1) (1)  ( 2) ( 2)    ( 2) 
/ a11  0 a22 a23  a2( 2n)   x2  b2 
m3,1  a31
(1) (1)
/ a11  0 ( 2)
a32 ( 2)
a33  a3( 2n)   x3   b3( 2 ) 
    
            
 an(11) / a11
(1)  0 an( 22) an( 23) ( 2)    b ( 2 ) 
mn ,1   ann   xn   n 

14
Segundo paso de la eliminación
a11
(1) (1)
a12 (1)
a13  a1(1n)   x1   b1(1) 
 ( 2) ( 2) ( 2)     ( 2) 
Elemento Pivotal 0 a22 a23  x
a2 n   2  b2 
 0 ( 2)
a32 ( 2)
a33  a3( 2n)   x3   b3( 2 ) 
    
           
 0 an( 22) an( 23) ( 2)    b ( 2 ) 
  ann   x n   n 
a11
(1) (1)
a12 (1)
a13  a1(1n)   x1   b1(1) 
 ( 2) ( 2) ( 2)     ( 2) 
 0 a22 a23  x
a2 n   2  b2 
m3, 2  a32
( 2) ( 2)
/ a22  0 0 ( 3)
a33  a3( 3n)   x3   b3( 3) 
    
            
 an( 22) / a22
( 2)  0 an( 33) ( 3)    b ( 3 ) 
mn , 2  0  ann   x n   n 
15
Algoritmo de la Eliminación Gaussiana

mr , p  arp( p ) / a (ppp )
arp( p )  0
br( p1)  br( p )  mr , p  bp( p )
For c=p+1 to n
( p 1)
a rc a ( p)
rc  mr , p  a ( p)
pc

16
Algoritmo de la sustitución
hacia atrás
a11
(1) (1)
a12 (1)
a13  a1(1n)   x1   b1(1) 
 ( 2) ( 2)    ( 2) 
 0 a22 a23  a2( 2n)   x2   b2 
 0 0 ( 3)
a33  a3( 3n)   x3   b3( 3) 
   
           
 0 0 0 an( n1) n 1 an( n1) n   xn 1  b ( n 1) 
     n 1

 ann   xn  
 bn 
(n) (n)
 0 0 0 0  

bn( n )
xn  ( n )
ann
xn 1 
a
1
( n 1)
b
( n 1)
n 1  ann11n xn 
n 1n 1

1  (i ) n

xi  (i ) bi   aik xk  i  n  1, n  2, ,1
(i )

aii  k i 1 
17
Ejemplo de Eliminación de Gauss
Triangulación Sustitución Inversa
pivot 1x1  4 x2  x3  7 Fila pivotal 17 17
x3  
(3/1) 3x1  2 x2  4 x3   1 10 5
(2/1) 2 x1  5 x2  4 x3  4
17 17
x3   : 2
5 10
x1  4 x2  x3  7
pivot  10 x2  x3   22 Fila pivotal  10 x2  2   22
(-3/-10)  3x2 2 x3   10
x 2   20 :  10  2

x1  4 x2  x3  7 x1  8  2  7
 10 x2  x3   22
17 17 x1  7  6  1 x1  1
x3  
10 5 x2  2
Solución
x3   2
18
Contador de Operaciones
 Numero de operaciones aritméticas requeridas por el
algoritmo para completar esta tarea.
 Generalmente solo multiplicaciones y divisiones son
contadas.
3 2
 Proceso de Eliminación n  n  5n
3 2 6
 Sustitución hacia atrás n2  n Dominates
2 No eficiente para
diferentes vectores RHS
n3 n
 Total n 
2

3 3
19
Decomposición LU
A=LU
Ax=b LUx=b
Define Ux=y
Ly=b Resolver y por sustitución hacia adelante
Ux=y Resolver x por sustitución hacia atrás
Las operaciones elementales entre filas debe ser desarrolladas en
b así como en A.
La información de estas operaciones es almacenada en L
En verdad y es obtenida aplicando operaciones elementales al
vector b.

20
Decomposición LU por Eliminación
Gausiana
Existen infinitas formas diferentes para descomponer A.
Una de las más populares es: U=Matriz de la Eliminación Gaussiana
L=Multiplicadores usados para la eliminación

 1 0 0  0 0 a11 (1) (1)


a12 (1)
a13  a1(1n) 
m   ( 2) ( 2) ( 2) 
 2,1 1 0 0 0  0 a 22 a 23  a 2n 
 m3,1 m3, 2 1  0 0  0 0 a33 ( 3)
 a3(3n) 
A  
      0       
mn 1,1 mn 1, 2 mn 1,3  1    0 0 0 an( n1) n 1 an( n1) n 
  
 mn ,1 mn ,3 mn , 4  1  0 ann 
(n)
mn , 2 0 0 0
Almacenamiento Compacto: Las entradas diagonales de la matriz L son
todos unos, estos no necesitan almacenarse. LU es almacenado en una
matriz.
21
Contador de Operaciones
A=LU Descomposición n3 n


3 3
 Ly=b Sustitución hacia adelante n2  n
Ux=y Sustitución hacia atrás
2

n n
2

Total
n3 n 2
 n 
2

3 3
 Para diferentes vectores RHS, el sistema puede ser
eficientemente resuelto.

22
Pivoteo
 Computadoras usan precisión aritmética finita
 Pequeños errores son introducidos en cada operación
aritmética, propagación de errores
 Cuando los elementos pivotales son muy pequeños, los
multiplicadores podrían ser muy grandes.
 La adición de números de magnitud diferente puede
conducir a la pérdida de significación .
 Para reducir el error, se realiza intercambio de filas
para maximizar la magnitud del elemento pivotal.

23
Ejemplo: Sin Pivoteo
1.133 5.281   x1  6.414
aritmética 4-digit 24.14  1.210  x   22.93
  2   

24.14 1.133 5.281   x1   6.414 


m21   21.31 0.000  113.7  x    113.8
1.133   2   

 x1  0.9956
 x    1.001  Pérdida de precisión
 2  
24
Ejemplo: Con Pivoteo
24.14  1.210  x1  22.93
1.133 5.281   x   6.414
  2   

1.133 24.14  1.210  x1  22.93


m21   0.04693 0.000 5.338   x   5.338
24.14   2   

 x1  1.000
 x   1.000
 2  
25
Procedimiento de Pivoteo
a11(1) a12(1) a13(1)  a1(i1)  a1(1j)  a1(1n) 
 ( 2) ( 2) ( 2) ( 2) ( 2) 
 0 a22 a23  a2i  a2 j  a2 n 
 0 0 ( 3)
a33  a3( 3i )  a3(3j)  a3(3n) 
Parte  
          
Eliminada
 0 0 0  aii(i )  aij(i )  ain( i )  Fila
  Pivotal
          
 0 0 0  a (jii )  a (jji )  a (jni ) 
 
          
 (i ) (i ) (i ) 
 0 0 0  ani  anj  ann 
Columna Pivotal
26
Pivoteo por fila
 Más comúnmente llamado procedimiento de
pivoteo parcial
 Busque la columna pivotal

 Encuentre el mas grande elemento en magnitud

 Luego intercambie esta fila con la fila pivotal.

27
Pivoteo por filas
a11(1) a12(1) a13(1)  a1(i1)  a1(1j)  a1(1n) 
 ( 2) ( 2) ( 2) ( 2) ( 2) 
 0 a22 a23  a2i  a2 j  a2 n 
 0 0 ( 3)
a33  a3( 3i )  a3(3j)  a3(3n)  Intercambio
  de filas
          
 0 0 0  aii(i )  aij(i )  ain( i ) 
 
          
 0 0 0  a (jii )  a (jji )  a (jni ) 
 
          
 (i ) (i ) (i ) 
 0 0 0  ani  anj  ann 

El más grande en magnitud 28


Pivoteo por columna
a11(1) a12(1)a13(1)  a1(i1)  a1(1j)  a1(1n) 
 ( 2) ( 2) ( 2) ( 2) ( 2) 
 0 a22 a23  a2i  a2 j  a2 n 
 0 0 a33 ( 3)
 a3( 3i )  a3(3j)  a3(3n) 
 
          
 0 0 0  aii(i )  aij(i )  ain( i ) 
 
           El mas
 0 grande
0 0  a (jii )  a (jji )  a (jni ) 
  en
           magnitud
 (i ) (i ) (i ) 
 0 0 0  ani  anj  ann 
Intercambio de
Estas columnas 29
Pivoteo Completo
a11(1) a12(1)a13(1)  a1(i1)  a1(1j)  a1(1n) 
 ( 2) ( 2) ( 2) ( 2) ( 2) 
 0 a22 a23  a2i  a2 j  a2 n 
 0 0 a33 ( 3)
 a3( 3i )  a3(3j)  a3(3n)  Intercambie
  estas filas
          
 0 0 0  aii(i )  aij(i )  ain( i ) 
 
          
 0 0 0  a (jii )  a (jji )  a (jni ) 
 
           Más grande
 (i ) 
 0 0 0  ani  anj  ann  en magnitud
(i ) (i )

Intercambie
estas columnas 30
Pivoteo por filas en Descomposición LU
 Cuando dos filas de A se
1  1 
intercambian, las filas de  2  2
b deben también ser    
 3  3
intercambiadas.  
 
 Use un vector pivote.  
Vector pivote inicial son p  i  p   j
   
enteros desde 1 hasta n.  
 j i 
 Cuando dos filas (i y j)    
de A son intercambiadas,  
n  n 
aplicar esto al vector    
pivote.

31
Modificando el vector b

 Cuando se realiza la 1   7 .3   7.3 


descomposición LU de A, el  3  8 .6    1.2 
vector pivote nos da el      
orden de las filas después  2   1 .2   8.6 
     
del intercambio.  4  4 . 8   4 .8 
 Antes de aplicar la p  8 b   9.6  b   3.5 
   
sustitución hacia adelante 6   5 . 2   5.2 
para resolver Ly=b, 7    2 .7   2.7 
modificar el orden del      
5   3 .5   9.6 
vector b de acuerdo a las 9    6 .9    6.9 
entradas del vector pivote.      

32
Ejemplo usando Pivoteo
0 3 2  12  1
A   4  2 1  b   5 p  2
 1 4  2  3  3

Intercambio de columnas: Máxima magnitud segunda fila


Intercanbio de la 1era y 2da fila

 4  2 1   2
A   0 3 2  p  1
 1 4  2 3

33
Ejemplo (continuación)...
 4  2 1   2
A   0 3 2  p  1
 1 4  2 3
Elimación de a21 y a31 usando a11 como elemento pivotal
A=LU en forma compacta (en una sola matriz)

 4  2 1   2
A   0 3 2  p  1
 0 3.5  1.75 3
Multiplicadores (matriz L) l21=0; l31=-0.25
34
Ejemplo (continuación)...
 4  2 1   2
A   0 3 2  p  1
 0 3.5  1.75 3

Columna encontrada: Maxima magnitud en la tercera fila


Intercambio de la 2da y 3era fila

 4  2 1   2
A   0 3.5  1.75 p  3
 0 3 2  1

35
Ejemplo (continuación)...
 4  2 1   2
A   0 3.5  1.75 p  3
 0 3 2  1

Eliminar a32 usando a22 como elemento pivotal

 4  2 1   2
A   0 3.5  1.75 p  3
 0 0 3.5  1

Multiplicadores (matriz L) l32=3/3.5


36
Ejemplo (continuación)...
 1 0 0   4  2 1   2
A   0.25 1 0  0 3.5  1.75 p  3
 0 3 / 3.5 1  0 0 3.5  1

 2  12   5
p  3 b   5  b   3 
1  3   12 

A’x=b’ LUx=b’
Ux=y
Ly=b’
37
Ejemplo (continuación)...
Ly=b’
 1 0 0  y1   5  y1    5 
 0.25 1 0  y    3   y   1.75
  2    Sustitución  2  
 0 3 / 3.5 1  y3   12  Inversa  y3  10.5

Ux=y
 4  2 1   x1    5   x1  1 
 0 3.5  1.75  x   1.75 Sustitución  x    2
  2     2  
 0 0 3.5   x3  10.5 Directa  x3  3

38
Eliminación de Gauss-Jordan
 Los elementos sobre la diagonal se convierten y por
debajo de la diagonal son ceros.
a11
(1) (1)
a12  a1(1n) b1(1)  a11
(1) (1)
a12  a1(1n) b1(1) 
 (1)   ( 2) 
a21
(1)
a22  a2(1n) b2(1)   0 a22  a2( 2n) b2( 2 ) 
             
 (1) (1) 
 ( 2) 
an1 bn   0 an( 22) bn 
( 2)
an(12)  (1)
ann  ann

a11
(1)
0  ( 2)
ann b1( 2 )  a11
(1)
0  0 b1( n 1) 
   
 0
( 2)
a22  ( 2)
ann b2( 2 )   0
( 2)
a22  0 b2( n 1) 
             
   
 0 bn( 3)   0 bn( n ) 
( 3) (n)
0  ann 0  ann

39
Eliminación de Gauss-Jordan
 Casi 50% mas de operaciones aritméticas que la
Eliminación Gaussiana.
 Gauss-Jordan (GJ) Eliminación es preferible cuando la
inversa de una matriz es requirido.

A I
 Aplicar eliminación GJ para convertir A en una matriz
identidad.

I A 1
 40
Diferentes formas de factorización LU
 Forma de Doolittle  a11 a12 a13   1 0 0 u11 u12 u13 
Obtenida por a a23   l21 1 0  0 u22 u23 
 21 a22
Eliminación Gaussiana a31 a32 a33  l31 l32 1  0 0 u33 

 Forma de Crout  a11 a12 a13  l11 0 0  1 u12 u13 


a a23   l21 l22 0  0 1 u23 
 21 a22
a31 a32 a33  l31 l32 l33  0 0 1 

 Forma de Choleski
l11 0 0  l11 l12 l13 
l l 22 0   0 l 22 l 23 
 21
l31 l32 l33   0 0 l33 

41
Forma de Crout
 Cálculo de la primera columna de L li1  ai1
a1 j
 Cálculo de la primera fila de U u1 j 
l 11
 Cálculo alternado de las colum. de L y filas de U

j 1
lij  aij   lik u kj j  i, i  1,2,  , n
k 1

aij  k 1 lik u kj
i 1

uij  i  j, j  2,3,  , n
lii

42
Secuencia de la reducción de Crout
 a11 a12 a13 a14  l11 0 0 0  1 u12 u13 u14  2
a a22 a23 a24  l21 l22 0 0  0 1 u23 u24 
 21 4

a31 a32 a33 a34  l31 l32 l33 0  0 0 1 u34 
     6
a41 a42 a43 a44  l41 l42 l43 l44  0 0 0 1

1 3 5 7

Una entrada de la matriz A es useda solamente una vez


para calcular la Correspondiente entrada de las matrices
L o U .Así las columnas de L y las filas de U pueden ser
almacenadas en la matriz A
43
Ejemplo de Crout

44
Factorización de Cholesky
Si A es simétrica y definida positiva, entonces la
factorización LU
Puede ser arreglada para que U = LT , la cual se obtiene
de la factorización de Cholesky
A = LLT
Donde L es una matriz triangular inferior con diagonal con
entradas positivas
Algoritmo para el cálculo puede ser derivado por la
ecuación correspondiente a las entradas de A y LLt
En el caso de 2 × 2, por ejemplo,

45
Factorización de Choleski (continua)
 Una forma de escribir el algoritmo general,es

46
Ejemplo de Cholesky

Resultado :

47
Sistemas grandes y Esparcidos
 Cuando el sistema lineal es grande y esparcido (muchas
entradas ceros), los métodos directos llegan a ser
ineficientes por la presencia de términos de relleno.
 Los términos de relleno son aquellos que resultan ser
diferentes de cero durante la eliminación

Términos
de
 a11 0 a13 a14 0 a11 0 a13 a14 0  relleno
0 a 0  0 a
 22 0 a24
Eliminación 22 0 a24 0 
a31 0 a33 0 a35  0 0 
a33 
a34  
a35
   
a41 a42 0 a44 0
0 0 0 
a44 
a45 
 0 0 a53 0 a55   0 0 0 0  
a55 48
Matrices Esparcidas
 La matriz de ecuación de nodos es una matriz
esparcida.
 Matrices Esparcidas son almacenadas eficientemente
almacenando solamente las entradas no cero.
 Cuando del sistema es muy grande (n=10,000) los
términos de relleno aumentan los requerimientos de
almacenamiento considerablemente.
 En tales casos los métodos de solución iterativa debe
ser preferidos en lugar de métodos de solución directa.

49
Referencias
 Sencer KOC, Ph.D
Computational Methods for Electrical Engineering
 Brien Alkire, Dr.
 Aplied Numerical Computing
 Richard L. Burden & J.D. Faires
“Análisis Numérico”
International Thomson Editores, 2002

50