You are on page 1of 55

Universidad Nacional Agraria La Molina

Facultad de Ingeniería Agrícola


Departamento de Recursos Hídricos

Hidráulica Computacional
(Aplicaciones con MATLAB)

Álgebra Lineal
Numérica

Jesús Abel Mejía Marcacuzco, Ph.D.


Lima - Perú
MATRICES Y VECTORES
Una Matriz mn es un arreglo rectangular, en filas (m) y
columnas (n), de números encerrados entre corchetes. Los
vectores son formas especiales de matrices:
 b1,1 b1, 2 . b1,n 
b . b2,n 
Matriz con m filas y n columnas
(m>1 y n>1) B   2,1
 .
b2, 2
. . . 
 
 bi , j
 
bm,1 bm, 2 . bm,n 

Una sola fila Una sola columna un solo elemento


(m=1 y n>1) (m>1 y n=1) (m=1 y n=1):
 b1 
b 
B  b1 b2 . bn  B 2 B  b
. 
 
bm 
Suma y Resta de Matrices y Vectores
La suma o resta de matrices se da si ambas tienen el mismo
número de columnas y filas: C  A  B  ci , j   ai , j   bi , j 

1 2 4  7 3 1  1  3 
A  3 1 2  , B   2 3 5 x  4 , y  9 
       
 4 1 3  8 1 6   2   4 

1 2 
8 1 3  5
C  4 3 D  u  2 1 7 z 
1 5 2  1 
0 2

1  7 2  3 4  1  8 5 5  1  7 2  3 4  1  6  1 3
A  B  3  2 1  3 2  5   5 4 7  A  B  3  2 1  3 2  5   1  2  3
       
 4  8 1  1 3  6  12 2 9   4  8 1  1 3  6   4 2  3 

1  3  4  1  3   2
x  y  4  9   13 x  y  4  9    5 
2  4 6  2  4  2
Multiplicación de Matrices y Vectores
El producto de matrices C = AB, es posible cuando el número
de columnas de A y el número de filas de B son idénticas. Los
elementos de C están relacionados con los de A y B por:
ci , j   ai ,k bk , j
k

El número de filas de C es igual al de A y el número de


columnas de C es igual al de B. En otras palabras, si A es una
matriz de pq y B es una matriz de pr, entonces C será una
matriz de pr. Obviamente si A y B son matices cuadradas del
mismo tamaño, C también será una matriz cuadrada del mismo
tamaño. En general, el producto AB no es igual a BA. Si AB
= BA, se dice que las matrices A y B son conmutativas.

1 2  1 5  2 1  7 
A continuación, veamos 5 
C  z  4 3     4  5  3 1  23
 
algunos ejemplos: 1
0 2 0  5  2 1 2 
1 2 
u C  2 1 7 4 3  2 1  1 4  7  0 2  2  1 3  7  2  6 21
0 2

1 2 
8 1 3    8 1  1 4  3  0 8  2  1 3  3  2  12 25
DC     4 3      
1 5 2  0 2   1  1  5  4  2  0 1  2  5  3  2  2   21 21
 
1 2  1 8  2 1 11  2  5 1 3  2  2  10 11 7 
  8 1 3     35 19 18
C  D  4 3    
  4  8  3  1 4  1  3  5 4  3  3  2   
0 2 1 5 2  0  8  2 1 0 1  2  5 0  3  2  2  2 10 4 

1 2 4 7 3 1  1 7  2  2  4  8 1 3  2  3  4 1 11  2  5  4  6 43 13 35 


A  B  3 1 2   2 3 5  3  7  1 2  2  8 3  3  1 3  2 1 3 1  1 5  2  6   39 14 20
4 1 3  8 1 6  4  7  1 2  3  8 4  3  1 3  3 1 4 1  1 5  3  6  54 18 27

7 3 1  1 2 4 20 18 37  1 2 4 1  11  2  4  4  2 17


B  A  2 3 5  3 1 2   31 12 29  A  x  3 1 2   4  3 1  1 4  2  2   11
8 1 6  4 1 3  35 23 52 4 1 3  2 4 1  1 4  3  2  11
Transpuesta de Matrices y Vectores
La transpuesta de una matriz o un vector es otra matriz o
vector cuyas filas o columnas han sido intercambiadas por las
correspondientes columnas o filas:
1 2 4 1 3 4  1 
A  3 1 2  A'  2 1 1  x  4 x'  x t  1 4 2
4 1 3  4 2 3 2

Inversa de Matrices
Cuando dos matrices cuadradas A y B satisfacen: AB = I, ó BA
= 1; donde I es la matriz identidad y A y B están en relación
inversa; es decir A es el inverso de B y B el inverso de A. Por
ejemplo, para el caso de las matrices A y B:

1 6  0.0714 0.2143  1 0
A  B  A B  B  A   
5 2   0.1786  0.0357  0 1 
Generación de Vectores y Matrices en MATLAB

>> x=1:5 >> z=6:-1:1

x= z=
1 2 3 4 5 6 5 4 3 2 1

>> y=0:pi/4:pi

y=
0 0.7854 1.5708 2.3562 3.1416

>> k=linspace(0,1,6)

k=
0 0.2000 0.4000 0.6000 0.8000 1.0000
Suma y Resta de Matrices y Vectores en MATLAB

>> A=[1 2 4;3 1 2;4 1 3] >> B=[7 3 1;2 3 5;8 1 6]

A= B=

1 2 4 7 3 1
3 1 2 2 3 5
4 1 3 8 1 6

>> A+B >> A-B

ans = ans =

8 5 5 -6 -1 3
5 4 7 1 -2 -3
12 2 9 -4 0 -3
>> x=[1;4;2] >> y=[3;9;4] >> z=[3 4 9]
x= y= z=
1 3
4 9 3 4 9
2 4

>> x+y >> x-y


>> x+z
??? Error using ==> +
ans = ans = Matrix dimensions must agree.

4 -2 >> x-z
13 ??? Error using ==> -
-5
6 Matrix dimensions must agree.
-2
Multiplicación de Matrices y Vectores en MATLAB

>> A=[1 2 4;3 1 2;4 1 3] >> B=[7 3 1;2 3 5;8 1 6]

A= B=

1 2 4 7 3 1
3 1 2 2 3 5
4 1 3 8 1 6

>> A*B >> B*A

ans = ans =

43 13 35 20 18 37
39 14 20 31 12 29
54 18 27 35 23 52
>> A=[1 2 4;3 1 2;4 1 3] >> x=[1;4;2] >> z=[3 4 9]

A= x= z=
1
1 2 4 4 3 4 9
3 1 2 2
4 1 3

>> A*x >> x*A >> z*A


??? Error using ==> *
Inner matrix dimensions
ans = must agree.
ans =

17 >> A*z 51 19 47
11 ??? Error using ==> *
Inner matrix dimensions
14 must agree.
División de Matrices en MATLAB

>> A=[1 2 4;3 1 2;4 1 3] >> B=[7 3 1;2 3 5;8 1 6]

A= B=

1 2 4 7 3 1
3 1 2 2 3 5
4 1 3 8 1 6

>> X=A/B >> X=A\B

X= X=

-0.1242 0.7778 0.0392 -0.6000 0.6000 1.8000


0.1503 0.1111 0.2157 -9.4000 6.4000 1.2000
0.0915 0.1111 0.3922 6.6000 -2.6000 -0.8000
Operaciones diversas de Matrices en MATLAB

>> A=[1 2 4;3 1 2;4 1 3] >> B=[7 3 1;2 3 5;8 1 6]

A= B=

1 2 4 7 3 1
3 1 2 2 3 5
4 1 3 8 1 6

>> A^3 >> X=inv((A/B)')

ans = X=

127 74 168 -0.6000 1.2000 -0.2000


121 57 134 9.2000 1.6000 -2.6000
163 77 181 -5.0000 -1.0000 4.0000
Transpuesta e Inversa de Matrices

>> A=[1 2 4;3 1 2;4 1 3] >> inv(A)

A= ans =

1 2 4 -0.2000 0.4000 -0.0000


3 1 2 0.2000 2.6000 -2.0000
4 1 3 0.2000 -1.4000 1.0000

>> A' >> A*inv(A)

ans = ans =

1 3 4 1.0000 0 0
2 1 1 -0.0000 1.0000 0
4 2 3 0 0 1.0000
DETERMINANTE DE UNA MATRIZ

El determinante es una cantidad importante asociada a una


matriz cuadrada y juega un papel importante cuando se
calculan los valores propios de una matriz, así como en la
identificación de matrices singulares (que no pueden
invertirse) cuando su determinante es cero.

 a11 a12 
det( A)  det    a11a22  a21a12
a21 a22 

 a11 a12 a13 


det( A)  det a21 a22 a23   a11a22a33  a21a32a13  a31a12a23
a31 a32 a33  - a11a32a23  a21a12a33  a31a22a13
1 2 4 
det( A)  det 3 1 2  11 3  3 1 4  4  2  2  11 2  3  2  3  4 1 4  5
4 1 3

>> A=[1 2 4;3 1 2;4 1 3]


>> det(A)
A=
ans =
1 2 4
3 1 2 -5
4 1 3
SISTEMA LINEAL DE ECUACIONES

El objetivo es examinar los aspectos numéricos


que se presentan al resolver sistemas de
ecuaciones lineales de n ecuaciones con n
incógnitas x1, x2, x3, ..., xn. Los elementos aij y bi se
supone que son números reales y 1i n
a11x1  a12 x2   a1n xn  b1
a x  a22 x2   a2 n xn  b2
 21 1 m n


  
  aij x j  bi
aij x1  aij x2   ain xn  bi
i 1 j 1
   

am1 x1  a m 2 x2  amn xn  bm
a11 a12 a13 ... a1n   x1  b1 
a     
a22 a23 ... a2 n   x2  b2 
 21   Ax   b
· · · ·  .  . 
    
am1 am 2 am3 ... amn   xn  bn 

Caso 1: m=n
Caso 2: m < n (ecuación subdeterminada)
Caso 2: m > n (ecuación sobredeterminada)

Caso 1: número de incógnitas igual al número de ecuaciones


Caso 2: número de incógnitas menor al número de ecuaciones
Caso 3: número de incógnitas mayor al número de ecuaciones
En el caso 1 la matriz es cuadrada y para obtener la
solución con MATLAB, escribimos: x=A\b

Un mecanismo equivalente es: x=inv(A)*b . Sin


embargo el primer método es el más eficiente
desde el punto de vista computacional y ahorra
aproximadamente el 50% de tiempo de cómputo en
relación al segundo método.

Las ecuaciones lineales, también se pueden


escribir de la forma: Atxt = bt; por lo tanto la solución
en MATLAB será: z=b’/A’. Las siguientes
expresiones son iguales:
inv(A)*b = A^(-1)*b = b’*inv(A’) = A\b
Ejemplos:

3 2   x1   1
Ax  b       
1  1  x2   1 

>> A=[3 2;1 -1]; >> A=[3 2;1 -1];


>> b=[-1;1]; >> b=[-1;1];

>> x=A\b >> z=b'/A'

x= z=

0.2000 0.2000 -0.8000


-0.8000
Aplicación a Circuitos Eléctricos

h
i La corriente eléctrica i del
g
nodo a al b, denotada por iab,
está relacionada con los
b a f voltajes (e) y resistencias (r)
mediante:
ea  eb
c
d
e
iab 
Un nodo conectado a rab
resistencias

La suma las corrientes que salen del nodo a debe ser cero
ea  e j

j b ,c , d ,...,i
iaj  
j b ,c , d ,...,i raj
0
En la siguiente figura, se muestra un circuito eléctrico
conectada a tres terminales con voltajes conocidos.
Obtenga los valores de voltajes en los nodos a, b y c.
2 ohms 4 ohms 3 ohms
a b
20 v

3 ohms 5 ohms

5v
c
3 ohms

ea  e20 ea  eb ea  ec 1 1 1 1 1 20
  0    ea  eb  ec 
2 4 3  2 4 3 4 3 2
eb  ea eb  0 eb  ec 1 1 1 1 1
 ea     eb  ec  0
  0
4 3 5 4  4 3 5 5
ec  5 ec  ea ec  eb 1 1 1 1 1 5
  0  ea  eb     ec 
3 3 5 3 5 3 3 5 3
>> clear
>> a(1,1)=1/2+1/4+1/3;a(1,2)=-1/4;a(1,3)=-1/3;
>> a(2,1)=a(1,2);a(2,2)=1/4+1/3+1/5;a(2,3)=-1/5;
>> a(3,1)=a(1,3);a(3,2)=a(2,3);a(3,3)=1/3+1/3+1/5;
>> b(1)=20/2;b(2)=0;b(3)=5/3;
>> x=a\b'

x=
13.3453
6.4401
8.5420

Los resultados obtenidos son, respectivamente,


ea, eb y ec en voltios
Eliminación Simple de Gauss
Cuando en número de incógnitas es igual al número de
ecuaciones (n = m), se tiene:
a11x1  a12 x2  a13 x3  ...  a1n xn  b1
a21x1  a22 x2  a23 x3  ...  a2 n xn  b2
a31x1  a32 x2  a33 x3  ...  a3n xn  b3
.......
an1 x1  an 2 x2  an 3 x3  ...  ann xn  bn

(i) Eliminación hacia delante: la primera ecuación


multiplicada por a21/a11 se resta de la segunda ecuación.
De forma similar, el primer término de cada una de las
ecuaciones subsecuentes, i>2, se elimina restando la
primera ecuación multiplicada por ai1/a11. Una vez hecho
esto, las ecuaciones deberán verse así:
a11x1  a12 x2  a13 x3  ...  a1n xn  b1 Donde:
'
a22 x2  a23
'
x3  ...  a2' n xn  b2'  ai1 
a  aij   a1 j
'
ij
'
a32 x2  a33
'
x3  ...  a3' n xn  b3'  a11 
.......  ai1 
b  ai   b1
'

an' 2 x2  an' 3 x3  ...  ann


'
xn  bn' i
 a11 
Luego se elimina el término inicial de todas las ecuaciones desde la 3ra
hasta la última restando a cada ecuación la 2da ecuación multiplicada por
a’i2/a’22. Al final del proceso se tiene:

a11x1  a12 x2  a13 x3  ...  a1n xn  b1


'
a22 x2  a23
'
x3  ...  a2' n xn  b2'
''
a33 x3  ...  a3' n xn  b3''
.......
n 1 n 1
ann xn  bnn
(ii) Sustitución hacia atrás: El procedimiento de sustitución
comienza con la última ecuación. La solución de xn se
obtiene de la última ecuación por:
n 1
b
xn  n
n 1
a nn

Y la solución de las ecuaciones anteriores por:

 n

 b1   a1,i xi 
xn 1 
n2
b
n 1
n2
a x
n 1, n n  x1   i 2 
n2
an 1,n 1 a1,1
Eliminación de Gauss con pivoteo

La eliminación simple se aplica a casos donde ningún


pivote (coeficiente diagonal) ai,i, se convierte en cero. El
pivoteo evita esto y mejora la exactitud de la solución.

El pivoteo consiste en intercambiar el orden de las


ecuaciones de modo que el coeficiente del pivote, ai,i,tenga
una magnitud mayor que cualquier otro coeficiente que esté
debajo de el en la misma columna y que por tanto vaya a
ser eliminado. El primer pivote, a1,1, se compara con los
coeficientes iniciales de cada una de las ecuaciones que
están abajo. Si |a1,1| ≥ |ai,1| no es necesario pivotear. En
caso contrario, la primera ecuación se intercambiará con la
que tiene |ai,1| más grande. El segundo pivoteo puede
efectuarse antes de iniciar el segundo proceso de
eliminación. Esto se repite con cada pivote hasta completar
la eliminación hacia adelante.
Ejemplo Numérico
 06 x1  02 x2  02 x3  04 x4  16
 12 x  08 x  06 x  10 x  26
Paso 1: Resolver la siguiente
 1 2 3 4
ecuación mediante la 
eliminación simple de Gauss.  03x1  13x2  09 x3  03x4  19
 06 x1  04 x2  01x3  18 x4  34
Paso 2: Restar 2 veces la 1ra  06 x1  02 x2  02 x3  04 x4  16
de la segunda; restar 0.5   04 x2  02 x3  02 x4  06
veces la 1ra de la tercera y 

restar -1 veces la 1ra
  12 x2  08 x3  01x4  27
ecuación de la cuarta. La 1ra
ecuación es el pivote.   02 x2  03x3  14 x4  18
Paso 3: Restar 3 veces la  06 x1  02 x2  02 x3  04 x4  16
segunda ecuación de la   04 x2  02 x3  02 x4  06
tercera y -0.5 veces la 

segunda de la cuarta
  02 x3  05 x4  09
ecuación. La segunda
ecuación es el nuevo pivote.   04 x3  13x4  21
Paso 4: El paso final consiste  06 x1  02 x2  02 x3  04 x4  16
  04 x2  02 x3  02 x4  06
en restar 2 veces la tercera 
ecuación de la cuarta 
ecuación. El pivote ahora es   02 x3  05 x4  09
la tercera ecuación.   03x4  03

La sustitución hacia atrás empieza desde la última ecuación:

3
x4  1
3
4
2 x3  5  9  x3   2
2
Finalmente: x1 = 3 x2 = 1 x3 = -2 x4 = 1
Solución con MATLAB (Eliminación simple de Gauss)

>> a=[6 -2 2 4 16;12 -8 6 10 26;3 -13 9 3 -19;-6 4 1 -18 -34]


a=
6 -2 2 4 16
12 -8 6 10 26
3 -13 9 3 -19
-6 4 1 -18 -34

>> a(2,:)=a(2,:)-a(1,:)*a(2,1)/a(1,1);
>> a(3,:)=a(3,:)-a(1,:)*a(3,1)/a(1,1);
>> a(4,:)=a(4,:)-a(1,:)*a(4,1)/a(1,1)
a=
6 -2 2 4 16
0 -4 2 2 -6
0 -12 8 1 -27
0 2 3 -14 -18
>> a(3,:)=a(3,:)-a(2,:)*a(3,2)/a(2,2);
>> a(4,:)=a(4,:)-a(2,:)*a(4,2)/a(2,2)
a=
6 -2 2 4 16
0 -4 2 2 -6
0 0 2 -5 -9
0 0 4 -13 -21

>> a(4,:)=a(4,:)-a(3,:)*a(4,3)/a(3,3)
a=
6 -2 2 4 16
0 -4 2 2 -6
0 0 2 -5 -9
0 0 0 -3 -3
Solución con MATLAB
(Eliminación de Gauss con pivoteo)

>> a=[6 -2 2 4 16;12 -8 6 10 26;3 -13 9 3 -19;-6 4 1 -18 -34]


a=
6 -2 2 4 16
12 -8 6 10 26
3 -13 9 3 -19
-6 4 1 -18 -34

>> tempo=a(2,:);a(2,:)=a(1,:);a(1,:)=tempo
a=
12 -8 6 10 26
6 -2 2 4 16
3 -13 9 3 -19
-6 4 1 -18 -34
>> a(2,:)=a(2,:)-a(1,:)*a(2,1)/a(1,1);
>> a(3,:)=a(3,:)-a(1,:)*a(3,1)/a(1,1);
>> a(4,:)=a(4,:)-a(1,:)*a(4,1)/a(1,1)

a=
12.0000 -8.0000 6.0000 10.0000 26.0000
0 2.0000 -1.0000 -1.0000 3.0000
0 -11.0000 7.5000 0.5000 -25.5000
0 0 4.0000 -13.0000 -21.0000

>> tempo=a(3,:);a(3,:)=a(2,:);a(2,:)=tempo

a=
12.0000 -8.0000 6.0000 10.0000 26.0000
0 -11.0000 7.5000 0.5000 -25.5000
0 2.0000 -1.0000 -1.0000 3.0000
0 0 4.0000 -13.0000 -21.0000
>> a(3,:)=a(3,:)-a(2,:)*a(3,2)/a(2,2);
>> a(4,:)=a(4,:)-a(2,:)*a(4,2)/a(2,2)
a=
12.0000 -8.0000 6.0000 10.0000 26.0000
0 -11.0000 7.5000 0.5000 -25.5000
0 0 0.3636 -0.9091 -1.6364
0 0 4.0000 -13.0000 -21.0000

>> tempo=a(4,:);a(4,:)=a(3,:);a(3,:)=tempo
a=
12.0000 -8.0000 6.0000 10.0000 26.0000
0 -11.0000 7.5000 0.5000 -25.5000
0 0 4.0000 -13.0000 -21.0000
0 0 0.3636 -0.9091 -1.6364

>> a(4,:)=a(4,:)-a(3,:)*a(4,3)/a(3,3)
a=
12.0000 -8.0000 6.0000 10.0000 26.0000
0 -11.0000 7.5000 0.5000 -25.5000
0 0 4.0000 -13.0000 -21.0000
0 0 0 0.2727 0.2727
Solución Directa con MATLAB

>> A=[6 -2 2 4;12 -8 6 10;3 -13 9 3;-6 4 1 -18]

A=
6 -2 2 4
12 -8 6 10
3 -13 9 3
-6 4 1 -18
>> b=[16;26;-19;-34]
>> x=A\b
b=
x=
16
3.0000
26
1.0000
-19
-2.0000
-34
1.0000
Eliminación de Gauss-Jordan e Inversión de Matrices
La eliminación de Gauss-Jordan es una variación de la
eliminación de Gauss mediante la cual se eliminan los
números que están arriba y debajo de un pivote sin distinguir
la eliminación hacia delante de la sustitución hacia atrás. No
obstante el pivoteo sigue siendo necesario por las razones
que ya se han explicado. A continuación un ejemplo:
 0.04 x1  0.04 x2  0.12 x3  3  0.04  0.04  0.12  x1  3
  0.56  1.56  0.32  x   1
 0.56 x1  1.56 x2  0.32 x3  1    2   
 0.24 x  1.24 x  0.28 x  0  0.24  1.24  0.28  x3  0
 1 2 3

>> clear
% Introducción de datos
a=[-0.04 0.04 0.12 3;0.56 -1.56 0.32 1;-0.24 1.24 -0.28 0]
a=
-0.0400 0.0400 0.1200 3.0000
0.5600 -1.5600 0.3200 1.0000
-0.2400 1.2400 -0.2800 0
>> % Primer pivoteo
tempo=a(2,:);a(2,:)=a(1,:);a(1,:)=tempo
a=
0.5600 -1.5600 0.3200 1.0000
-0.0400 0.0400 0.1200 3.0000
-0.2400 1.2400 -0.2800 0
>> % Normalización de la primera fila (se divide entre su pivote)
a(1,:)=a(1,:)/a(1,1)
a=
1.0000 -2.7857 0.5714 1.7857
-0.0400 0.0400 0.1200 3.0000
-0.2400 1.2400 -0.2800 0
>> % Los elementos debajo de a(1,1) se eliminan
for i=2:3;a(i,:)=a(i,:)-a(i,1)*a(1,:);end;a
a=
1.0000 -2.7857 0.5714 1.7857
0 -0.0714 0.1429 3.0714
0 0.5714 -0.1429 0.4286
>> % Segundo pivoteo
tempo=a(3,:);a(3,:)=a(2,:);a(2,:)=tempo;a
a=
1.0000 -2.7857 0.5714 1.7857
0 0.5714 -0.1429 0.4286
0 -0.0714 0.1429 3.0714
>> % Normalizacion de la segunda fila
a(2,:)=a(2,:)/a(2,2);a
a=
1.0000 -2.7857 0.5714 1.7857
0 1.0000 -0.2500 0.7500
0 -0.0714 0.1429 3.0714
>> % Eliminacion de elementos por encima y por debajo del 2do pivote
for i=1:3;if i~=2, a(i,:)=a(i,:)-a(i,2)*a(2,:);end;
end;a
a=
1.0000 0 -0.1250 3.8750
0 1.0000 -0.2500 0.7500
0 0 0.1250 3.1250
>> % Normalizacion de la tercera fila
a(3,:)=a(3,:)/a(3,3)

a=
1.0000 0 -0.1250 3.8750
0 1.0000 -0.2500 0.7500
0 0 1.0000 25.0000

>> % Eliminacion de todos los elementos por encima y por debajo


del tercer pivote
for i=1:3;if i~=3, a(i,:)=a(i,:)-a(i,3)*a(3,:);end;
end;a

a=

1.0000 0 0 7.0000
0 1.0000 0 7.0000
0 0 1.0000 25.0000
Para la inversión de matrices, mediante la eliminación de
Gauss-Jordan, se escribe la matriz aumentada en que las
tres primeras columnas son la matriz original, A, y las tres
siguientes columnas la matriz identidad. Luego se procede
exactamente como en el ejemplo anterior:
 0.04  0.04  0.12
 0.56  1.56  0.32
Matriz Original  
 0.24  1.24  0.28

 0.04  0.04  0.12 1.00 0.00 0.00


 
Matriz Aumentada   0.56  1.56  0.32 0.00 1.00 0.00 
 0.24  1.24  0.28 0.00 0.00 1.00 

1.00 0.00 0.00 1.00 4.00 5.00


 
Matriz Invertida  0.00 1.00 0.00 2.00 1.00 2.00 
0.00 0.00 1.00 8.00 1.00 1.00 
Descomposición LU
El procedimiento de descomposición LU transforma una matriz A en un
producto de dos matrices: A = LU; donde L es una matriz triangular inferior
y U es una matriz triangular superior. Cuando todas las matrices de
coeficientes son iguales pero los términos no homogéneos (lado derecho)
son distintos, la solución de las ecuaciones utilizando la descomposición
LU tiende a ser más eficiente que la eliminación de Gauss.
La descomposición LU para una matriz de 3×3 se ilustra de la manera
siguiente. Se observa que los elementos de la diagonal de L valen 1.

 a1,1 a1, 2 a1,3   1 0 0 u1,1 u1, 2 u1,3 


     
A  L  U  a2,1 a2 , 2 a2,3   l2,1 1 0   0 u 2 , 2 u 2,3 
 a3,1 a3, 2 a3,3  l3,1 l3, 2 1  0 0 u3,3 
Para evaluar ui,j y li,j sin pivoteo, primero multiplicamos el primer renglón de L
por cada columna de U y comparamos el resultado con el primer renglón de
A. Tenemos entonces que el primer renglón de U es idéntico al de A.
u1,j = a1,j j=1a3
Multiplicamos el segundo y tercer renglón de L por la primera
columna de U respectivamente, y lo comparamos con el lado
izquierdo para obtener:
a2,1 = l2,1u1,1 a3,1 = l3,1u1,1 ó l2,1 = a2,1/u1,1 l3,1 = a3,1/u1,1

Multiplicamos el segundo renglón de L por la segunda y tercera


columna de U y las comparamos con el lado izquierdo para obtener:
a2,2 = l2,1u1,2 + u2,2 a2,3 = l2,1u1,3 + u2,3
o bien: u2,2 = a2,2 - l2,1u1,2 u2,3 = a2,3 - l2,1u1,3

Multiplicamos el tercer renglón de L por la segunda columna de U:


a3,2 = l3,1u1,2 + l3,2u2,2  l3,2 = [a3,2 - l3,1u1,2]/u2,2

Finalmente l3,3 se obtiene multiplicando la última columna de U por


el último renglón de L y lo igualamos a a3,3 como sigue:
l3,1u1,3 + l3,2u2,3 + u3,3 = a3,3  u3,3 = a3,3 - l3,1u1,3 - l3,2u2,3
Ejemplo:  2 1  3

A   1 3 2  
Descomponer la siguiente matriz
en matrices L y U:  3 1  3

Solución:

Siguiendo el procedimiento se obtiene:

u1,1 = 2 u1,2 = 1 u1,3 = -3


l2,1 = -0.5 l3,1 = 1.5
u2,2 = 3 – (-0.5)(1) = 3.5
u2,3 = 2 – (-0.5)(-3) = 0.5
l3,2 = [1 – (1.5)(1)]/3.5 = -0.142857
u3,3 = -3 – (1.5)(-3) – (-0.142857)(-0.5) = 1.57142
Entonces:

 1 0 0 2 1 3 
 
L   0.5 1 0 U  0 3.5 0.5 
 1.5  0.1428 1 0 0 1.5714
Para la solución de ecuaciones simultáneas la ecuación Ax = b se puede
escribir también así: LUx = b. Esta ecuación se resuelve haciendo: Ux = z y
Lz = b. La solución de la ecuación anterior es fácil gracias a la forma
triangular de L. Una vez obtenida z, se obtiene x.

Ejemplo:  2 1  3  x1  2
Resolver la siguiente Ax  b   1 3 2   x2   0
ecuación lineal por
descomposición LU:  3 1  3  x3  1
Solución:
 1 0 0 2 1 3 
Del ejemplo anterior L   0.5 1 0 U  0 3.5 0.5 
 1.5  0.1428 1 0 0 1.5714

 1 0 0  z1  2
Primero resolvemos Lz = b, o sea: Lz  b   0.5 1 0  z 2   0
    
 1.5  0.1428 1  z 3  1
La solución es: z1 = 2; z2 = 0 – 2(-0.5) = 1; z3 = 1- 2(1.5) – (-0.1428) =-1.8572

2 1  3   x1   2 
Entonces Ux = z
se convierte en: Ux  z  0 3.5 0.5   x 2    1 
0 0 1.5714  x 3   1.8572
La solución para x es:

1  0.5 x3 2  x 2  3 x3
 1.8572 x2   0.4545 x1   1
x3   1.1818 3.5 2
1.5714
Una matriz puede descomponerse en L y U mediante eliminación de Gauss.
De hecho, la matriz que tenemos después de la eliminación hacia delante
es la matriz U. Primero suponemos que no hay necesidad de pivotear. La
eliminación hacia delante puede considerarse como una transformación de
la matriz A en U, y una forma equivalente de representar la transformación
es mediante multiplicación previa por una matriz F: FA = U y A = F-1U.

La matriz F se encuentra aplicando la misma operación de eliminación


hacia adelante a una matriz identidad. Para ilustrar lo anterior, escribimos
primero una matriz A, junto con una matriz identidad:

 2 1  3 1 0 0
A   1 3 2  I  0 1 0
 3 1  3 0 0 1

Si aplicamos la eliminación hacia delante a la primera matriz y realizamos la misma


operación con la matriz identidad, los resultados serían:

2 1 3   1 0 0
FA  U  0 3.5 0.5  FI  F   0.5 1 0
0 0 1.5714  1.4286 0.1428 1
La primera matriz es FA = U y la segunda matriz es el resultado de F
multiplicada por una matriz identidad, I, lo que es igual a F. si comparamos
A = F-1U, con A = LU; F deberá ser igual al inverso de L, es decir, F = L-1.
Por lo tanto, podemos obtener L si calculamos el inverso de F. La obtención
del inverso de una matriz triangular es fácil y rápida. El inverso de una
matriz triangular inferior es siempre una matriz triangular inferior.

Cómo el pivoteo afecta a la matrices L y U. La eliminación de Gauss el


pivoteo modifica el orden de las filas. Si conocemos los cambios en el orden
antes de la eliminación de Gauss, podemos expresar el efecto de los
cambios mediante un operador P, donde P es una matriz unitaria. Si
multiplicamos previamente la ecuación original Ax = b, por P tenemos:

PAx = Pb lo que es equivalente a: Cx = d; donde C = PA y d = Pb

Si aplicamos la eliminación de Gauss a C, no será necesario pivotear.


Asimismo, si descomponemos C en L y U, no habrá que pivotear. En la
eliminación de Gauss con pivoteo, la matriz después de la eliminación hacia
delante es la matriz U de C. La matriz P puede obtenerse aplicando el
pivoteo a una matriz de identidad del mismo modo que hicimos en la
eliminación de Gauss.
La descomposición LU puede realizarse con lu en MATLAB. La orden
puede escribirse con dos formatos, el primero de los cuales es: [l,u,p] =
lu(A). A es la matriz que se va a descomponer; l, u y p corresponde,
respectivamente, a L, U y P de la explicación anterior. Por ejemplo:
>> A=[2 1 -3;-1 3 2;3 1 -3];
>> [l,u,p]=lu(A)
l=
1.0000 0 0
-0.3333 1.0000 0
0.6667 0.1000 1.0000
u=
3.0000 1.0000 -3.0000
0 3.3333 1.0000
0 0 -1.1000
p=
0 0 1
0 1 0
1 0 0
La descomposición LU puede realizarse con lu en MATLAB. La orden
puede escribirse con dos formatos, el primero de los cuales es: [l,u,p] =
lu(A). A es la matriz que se va a descomponer; l, u y p corresponde,
respectivamente, a L, U y P de la explicación anterior. Por ejemplo:
>> A=[2 1 -3;-1 3 2;3 1 -3];
>> [l,u,p]=lu(A)
l= Aquí, l es la matriz triangular inferior, u es
1.0000 0 0 la matriz triangular superior y p es la
-0.3333 1.0000 0 matriz unitaria que representa el pivoteo.
0.6667 0.1000 1.0000 Las matrices L y U así obtenidas
satisfacen:
u=
3.0000 1.0000 -3.0000
PA = LU
0 3.3333 1.0000
0 0 -1.1000 Es decir, LU es la descomposición de PA
y no de A. Por tanto, la ecuación lineal
p=
original se escribe primero como:
0 0 1
0 1 0
PAx =Pb y luego LUx = Pb
1 0 0
La matriz original A puede recuperarse a partir de L, U y P mediante P-1 LU:
>> p^(-1)*l*u
ans =
2 1 -3
-1 3 2
3 1 -3
El segundo formato es:
>> [l,u]=lu(A)
l=
0.6667 0.1000 1.0000
-0.3333 1.0000 0
1.0000 0 0
u=
3.0000 1.0000 -3.0000
0 3.3333 1.0000
0 0 -1.1000
Donde l es igual a P-1L y u es igual a U, así que (P-1L)U = A
VALORES PROPIOS DE MATRICES
Suponga que A es una matriz de n por n. Entonces, la función definida por:

   
es conocido como el polinomio característico de la
f   det A  I matriz A. La función f() es un polinomio de  orden n.

  1  3
Por ejemplo, para: A 
  1  2 
f(x) se convierte en: det A  I   1   2     3  2  3  5

Por tanto, la ecuación se reduce a: f    2  3  5


Las soluciones de f() = 0 se denominan valores características y son
idénticos a los valores propios de la matriz A.

En MATLAB, los coeficientes del polinomio se calcula con: c = poly(A),


donde A es la matriz y c es un arreglo de coeficientes polinómicos. Los
valores característicos se calculan entonces mediante: roots(c). Podemos
calcular de forma más directa los valores propios de la matriz A con: eig(A);
Desde luego, las respuestas de roots(c) y de eig(A) son idénticas.
Ejemplo:
3 4 - 2 Obtener los valores propios
A  3 - 1 1 
Dada la matriz: directamente con eig, expandir A a
su polinomio característico y obtener
2 0 5 las raíces del polinomio con roots.

Solución:
Los valores propios se calculan con
MATLAB, como:
>> A=[3 4 -2;3 -1 1; 2 0 5]; Las raíces se calculan como:
>> eig(A)
ans = >> roots(c)
-2.7503 ans =
4.8751 + 1.4314i 4.8751 + 1.4314i
4.8751 - 1.4314i 4.8751 - 1.4314i
>> c=poly(A) -2.7503
c=
1.0000 -7.0000 -1.0000 71.0000 Las raíces de las ecuaciones
características son idénticas a
La ecuación característica es: los valores propios calculados
f ( )  det( A  I )  3  72    71 con el comando eig.
Ejemplo:
d2
En el sistema formado por masas y m1 2 y1 t   k 01  k12  y1  k12 y 2
dt
resortes de la siguiente figura; encontrar
las frecuencias de las oscilaciones
d2
m2 2 y 2 t   k12 y1  k12 y 2
armónicas, si el desplazamiento está
dado por las siguientes ecuaciones:
dt

Solución:

Para las oscilaciones armónicas,


la solución puede escribirse como:

y k t   e 2jt f k , k  1, 2

donde  es la frecuencia y j = 1

Si introducimos esta ecuación en


la anterior, tenemos:
 k 01  k12  k12 k12 k12
 f1    f1  f2  f 2  f1  f2
 m1  m1 m2 m2

donde  = (2)2. Las dos ecuaciones anteriores pueden escribirse en forma


de matriz como: Af = f, con:

k 01  k12  m1  k12 m1  0.3  0.1 0.1  0.1 0.1  4 - 1   y1 


A     f  
  k12 m 2 k12 m 2    0.1 0.2 0 .1 0.2   - 0.5 0.5  y2 

Ahora obtenemos los valores propios de A como:

>> eig([4,-1;-0.5,0.5])
ans =
4.1375
0.3625

Si utilizamos la definición anterior,  = (2)2

las frecuencias son  = 0.3237 y 0.0958 Hz.


Ejemplo: Dada la siguiente matriz; M=
hallar los autovalores y el polinomio
característico. 2/3 2/5 2/7 2/9 2/11
2/5 2/7 2/9 2/11 2/13
>>M=[2/3,2/5,2/7,2/9,2/11;2/5,2/7,2/9,2/ 2/7 2/9 2/11 2/13 2/15
11,2/13;2/7,2/9,2/11,2/13,2/15;2/9,2/11, 2/9 2/11 2/13 2/15 2/17
2/13,2/15,2/17;2/11,2/13,2/15,2/17,2/19] 2/11 2/13 2/15 2/17 2/19

>> format short Los autovectores son las columnas de la matriz V y


>> [V,E]=eig(M) los autovalores son los elementos de la diagonal E.

V= E=
-0.0102 0.0697 0.2756 -0.6523 0.7026 0.0000 0 0 0 0
0.1430 -0.4815 -0.7052 0.1593 0.4744 0 0.0001 0 0 0
-0.5396 0.6251 -0.2064 0.3790 0.3629 0 0 0.0059 0 0
0.7526 0.2922 0.2523 0.4442 0.2954 0 0 0 0.1244 0
-0.3490 -0.5359 0.5661 0.4563 0.2496 0 0 0 0 1.2423

>> poly(M)
ans =
1.0000 -1.3728 0.1628 -0.0009 0.0000 -0.0000

El polinomio característico de la matriz M es: X5 – 1.3728x2 + 0.1628x3 – 0.0009x2

You might also like