métodos matriciales para ingenieros con matlab
TRANSCRIPT
Facultad de Ingeniería
Juan Carlos Herrera Sánchez, Ph.D.
Métodos Matricialespara ingenieros
con MATLAB
Rector: Jorge Humberto Peláez Piedrahita, S.J.Vicerrector Académico: Antonio de Roux RengifoVicerrector del Medio Universitario: Luis Fernando Granados Ospina, S.J.
Facultad de IngenieríaDecano Acádemico: Mauricio Jaramillo AyerbeDecano del Medio Universitario: Alberto Benavides HerránDirector Depto de Ciencias e Ingeniería de la Producción: Alvaro Figueroa Cabrera Ciencias e Ingeniería de la Producción: Álvaro Figueroa Cabrera
Título: Métodos Matriciales para ingenieros con MATLABAutor: Juan Carlos Herrera Sánchez, Ph.D.
ISBN: 978-958-8347-52-3
Coordinador Editorial: Ignacio Murgueitio Restrepoe-mail: [email protected]
© Derechos Reservados© Sello Editorial Javeriano
Correspondencia, suscripciones y solicitudes de canje:Calle 18 # 118-250Santiago de Cali, Valle del CaucaPontificia Universidad Javeriana CaliFacultad de Ciencias de la SaludTeléfono 3218200 ext. 493 - 533www.javerianacali.edu.co
Formato: 17 x 25 cms
Concepto Gráfico: Edith Valencia F.
Edición: agosto de 2011
Juan Carlos Herrera Sánchez, Ph.D.
Métodos Matricialespara ingenieros
con MATLAB
Herrera Sánchez, Ph.D., Juan CarlosMétodos Matriciales para ingenieros con MATLAB / Juan Carlos Herrera Sánchez, Ph.D. -- Santiago de Cali: Pontificia Universidad Javeriana, Sello Editorial Javeriano, 2011.p. 154 : il.; 17 x 25 cm.
Incluye referencias bibliográficas.
ISBN: 978-958-8347-52-3
1. Matrices (Matemáticas) 2. MATLAB 3. Determinantes 4. Ecuaciones lineales I. Pontificia Universidad Javeriana (Cali). Facultad de Ingeniería. ngeniería. Departamento de Ciencias e Ingeniería de la Producción.SCDD 512.9434 ed.21 658.514 ed.21 BPUJC arm/11
Prefacio
El presente texto está orientado hacia los cursos de pregrado de Análisis de Estructuras, Análisis Matricial y Dinámico de Estructuras y Análisis Numérico, ofrecidos para Ingeniería Civil. También será de referencia en cursos de postgrado tales como Método de Elementos Finitos. No obstante, será útil como texto de referencia para estudiantes de otras áreas de la ingeniería ofrecidas por la Facultad. En el Capítulo 1 se presentan los conceptos básicos del álgebra de matrices así como al manejo de vectores y matrices con MATLAB. En éste capítulo y a lo largo del texto se presentan numerosos ejemplos usando el software citado, para que sirvan de complemento a los aspectos teóricos presentados. En el Capítulo 2 se tratan las operaciones fundamentales con matrices. El Capítulo 3 está dedicado al tema de inversión de matrices y al cálculo de determinantes. En el Capítulo 4 se presentan los métodos tradicionales para la solución de sistemas de ecuaciones lineales. Finalmente, en el Anexo, se presenta una introducción a al tópico sobre integración y diferenciación de matrices usando MATLAB. El texto es de carácter introductorio, y por tanto será de utilidad tanto a estudiantes de pregrado de ingeniería, como a profesionales de ingeniería.
El Autor
7
Tabla de contenido
Capítulo 1. Tipos de matrices…………………….……………
1.1 Definiciones.…………………………………………….………1.2 Manipulación de vectores y matrices en MATLAB.....……1.3 Clases de matrices………………………………………........1.4 Referencias bibliográficas…………..……………………..…1.5 Problemas……………….…………………………………….
Capítulo 2. Operaciones con matrices...……………………….
2.1 Producto de un número real por una matriz………………2.2 Suma de matrices…………………………………………….2.3 Multiplicación de matrices………………………………..…2.4 Partición de matrices.………………………………………2.5 Referencias bibliográficas..………..…………………………2.6 Problemas………………………………………………….…
Capítulo 3. Determinantes e inversión de matrices...……….
3.1 Determinante de una matriz……………………………..…3.2 Expansión de Laplace……………………………………… 3.3 Peterminante por Condensaciónn Pivotal...………………3.4 Inversión usando la matriz adjunta.…………….…………3.5 Método de Gauss-Jordan..………………………..…………3.6 Inversa de una matriz por medio de partición……………3.7 Referencias bibliográficas……….………………….……… 3.8 Problemas …………………………………………….………
9
910204141
43
434452586363
65
6567777982919898
8
Capítulo 4. Solución de sistemas de ecuaciones lineales.…….
4.1 Forma matricial de las ecuaciones………………………… 4.2 Solución por inversión de matrices………………………… 4.3 Regla de Cramer………………………………………..…… 4.4 Método de eliminación de Gauss…………………………… 4.5 Método de Gauss-Jordan………………………………...…. 4.6 Método de Cholesky……………………………………....…. 4.7 Factorización LU……………………………………........…. 4.8 Referencias bibliográficas ………..…………………...……4.9 Problemas…………………………………………………..…
Anexo. Diferenciación e integración de matrices con MATLAB…………...................................................................
101
101102106109127137142146146
149
9
Capítulo 1
Tipos de matrices
1.1 Definiciones
Una matriz se define como un conjunto de elementos ordenados en un número de filas m y un número de columnas n. En este caso la matriz se dice que es de orden (m x n). La matriz [A]
m x n
se define por:z
11
[ ]ij i mj n
A a ≤ ≤≤ ≤
=
11 12 1
21 22 2
2
n
n
ij in
mn m mj mn
a a a
a a aA
a a
a a a a
=
L
L
M M
La i-ésima fila de [A] tiene n elementos:
[ ]1 2 1i i in xna a aL
La j-ésima columna de [A] tiene m elementos:
1
2
j
j
mj
a
a
a
M
10
JUAN CARLOS HERRERA SÁNCHEZ
En la matriz anterior cada aij indica el elemento ubicado en la fila
“i” y la columna “j”. Por ejemplo: el elemento a32 es el elemento de la fila 3 y columna 2.
Una matriz de orden (1 x n), tiene 1 sola fila, es un vector fila. Se puede escribir:
[ ] [ ]1 2 nc c c c= L
Una matriz de orden (m x 1), tiene 1 sola columna y m filas, se denomina vector columna.
1.2 Manipulación de vectores y matrices en MATLAB
Para crear un vector fila en MATLAB, se escribe el conjunto de elementos entre corchetes. Se separan por espacios o una coma (,) para delimitar los números.
>> va=[-1 0 1]
va =
-1 0 1
Si se usan comas:
>> va=[-1, 0, 1]
va =
-1 0 1
Vector columna: Para crear un vector columna, se escribe el conjunto de números entre corchetes y se separan por punto y coma (;):
>> vc=[1;2;4;16]
11
TIPOS DE MATRICES
vc =
1
2
4
16
Transpuesta de un vector:Un vector fila se puede convertir a un vector columna calculando su transpuesto. Se usa el comando transpose(V)o la comilla(´).
Ejemplo:
Obtener un vector columna del vector va=[-1 0 1].
>> vc=va’
vc =
-1
0
1
>> vc=transpose(va)
vc =
-1
0
1
Calculemos un vector fila, usando el vector columna [vc]:
>> vc=[1;2;4;16]
vc =
1
2
4
16
>> vf=vc’
vf =
1 2 4 16
12
JUAN CARLOS HERRERA SÁNCHEZ
Para definir un vector igualmente espaciado se da el comando:
x=[vi : i: vf]
Donde :vi: valor inicialvf: valor finali: incremento
Para generar el vector a=[0 1 2 ….9] se escribe en MATLAB:
>> a=[0:1:9]
a =
0 1 2 3 4 5 6 7
8 9
Creemos el vector x=[0 , 0.25, 0.5, …,1.75, 2]T, con incrementos de 0.25,
>> x=[0:0.25:2]’
x =
0
0.2500
0.5000
0.7500
1.0000
1.2500
1.5000
1.7500
2.0000
Otra forma es usar el comando linspace (X1, X2, N). Este comando genera N puntos entre los valores X
1 and X
2.
Para crear el vector x=[0 , 0.25, 0.5, …,1.75, 2]T se escribe en MATLAB:
>> B=linspace(0,2,9)’
13
TIPOS DE MATRICES
B =
0
0.2500
0.5000
0.7500
1.0000
1.2500
1.5000
1.7500
2.0000
Para definir una matriz se escriben las filas separadas por “;”. Para definir la matriz [B] de 2 filas y 3 columnas, se escribe:
>> B=[1 2 3;4 5 6]
B =
1 2 3
4 5 6
La otra forma es introducir la primera fila y luego dar enter (←).
>> B=[1 2 3←
4 5 6]
B =
1 2 3
4 5 6
Para definir una matriz también se puede separar cada fila por “;...”
14
JUAN CARLOS HERRERA SÁNCHEZ
>>ml=[2 0 0 6 0 0;...
0 156 22 0 54 -13;...
0 22 4 0 13 -3;...
6 0 0 12 0 0;...
0 54 13 0 56 -22;...
0 -13 -3 0 -22 4];
ml =
2 0 0 6 0 0
0 156 22 0 54 -13
0 22 4 0 13 -3
6 0 0 12 0 0
0 54 13 0 56 -22
0 -13 -3 0 -22 4
Para indicar el elemento b12
escribimos:
>> b12=B(1,2)
b12 = 2
De igual forma para indicar el elemento b23
escribimos:
>> b23=B(2,3)
b23 = 6
El orden de [B] es (2 x 3). En MATLAB para obtener el orden de una matriz es el comando size.
>> size(B)
ans =
2 3
15
TIPOS DE MATRICES
El comando size indica el numero de filas y columnas de la matriz. Otra forma usar este comando es:
>> [m,n]=size(B)
m = 2
n = 3
La siguiente instrucción retorna el vector {Vb} con el número de filas y columnas de la matriz [B].
>> Vb=size(B)
Vb =
2 3
Ejemplo:
Para definir la matriz fila [A] de 1 fila y 3 columnas, se escribe:
>> A=[1 2 3]
A =
1 2 3
>> [m,n]=size(A)
m =
1
n =
3
16
JUAN CARLOS HERRERA SÁNCHEZ
Para obtener el número de filas de un vector columna, o el número de columnas de un vector fila en MATLAB, se usa el comando length(V)
>> length(A)
ans =
3
Ejemplo:
Para definir un vector columna [A] de 3 filas, se escribe los elementos separados por “;”:
>> A=[2;4;6]
A =
2
4
6
>> length(A)
ans =
3
>> [m,n]=size(A)
m =
3
n =
1
17
TIPOS DE MATRICES
Para obtener la columna j-ésima de una matriz [A] se da la instrucción A(:,j).
Ejemplo:
>> A
A =
1 2 3
4 5 6
6 5 4
Así para definir un vector, con la primera columna de la matriz [A], escribimos:
>> NV=A(:,1)
NV =
1
4
6
>> NV=A(:,3)
NV =
3
6
4
Para definir un vector, con los elementos de la k-ésima fila de la matriz [A], se da la instrucción A(k,:).
18
JUAN CARLOS HERRERA SÁNCHEZ
Ejemplo:
Para definir un vector fila, con la primera fila de la matriz [A], se da la instrucción:
>> vf=A(1,:)
vf =
1 2 3
De la misma forma para obtener un vector de la fila k-ésima de una matriz [A] y las columnas de la m a p, se da la instrucción A(k,m:p).
Ejemplo:
>> A
A =
1 4 3 5
4 5 6 8
6 5 4 7
5 6 7 9
Para formar el vector de la fila 3, columnas de la 2 a la 4, se da la instrucción:
>> vf=A(3,2:4)
vf =
5 4 7
19
TIPOS DE MATRICES
Para formar el vector de la columna 2, filas de la 2 a la 4, se da la instrucción:
>> vc=A(2:4,2)
vc =
5
5
6
Ejemplo: generar la matriz [B1] con los elementos de la filas 2 a 5 y columnas 3 a 5 de [B].
>> B=5*eye(5)
B =
5 0 0 0 0
0 5 0 0 0
0 0 5 0 0
0 0 0 5 0
0 0 0 0 5
>> B1=B(2:5,3:5)
B1 =
0 0 0
5 0 0
0 5 0
0 0 5
Para borrar la segunda columna de B se escribe:
B(:,2) = []
20
JUAN CARLOS HERRERA SÁNCHEZ
B =
5 0 0 0
0 0 0 0
0 5 0 0
0 0 5 0
0 0 0 5
1.3 Clases de matrices
Matriz nula
Una matriz de orden (m x n), con todos sus elementos iguales a cero se define como matriz nula. Así por ejemplo, la matriz [0]
3x3,
se define:
0 0 0
[0] 0 0 0
0 0 0
=
Ejemplo:
Para definir una matriz nula en MATLAB se usa el comando zeros(m,n) donde m es el número de filas y n el número de columnas.
>> B=zeros(3,3)
B =
0 0 0
0 0 0
0 0 0
21
TIPOS DE MATRICES
La matriz [B] creada es de orden (3 x 3)
Para crear una matriz nula de orden (4 x 3) damos la instrucción:
>> C=zeros(4,3)
C =
0 0 0
0 0 0
0 0 0
0 0 0
Para generar un vector fila nulo se escribe:
>> v=zeros(1,4)
v =
0 0 0 0
Para generar una vector columna nulo se escribe:
>> vo=zeros(4,1)
vo =
0
0
0
0
22
JUAN CARLOS HERRERA SÁNCHEZ
Matriz transpuesta
Si la matriz [A] se define por:
11
[ ]ij i mj n
A a ≤ ≤≤ ≤
=
Se define la matriz transpuesta como:
11
[ ]T
ij i mj n
A a ≤ ≤≤ ≤
=
[ ]
11 21 1
12 22 2
1 2
m
T m
n n mn
a a a
a a aA
a a a
=
L
L
M M O M
L
Ejemplo:
Si se define [A] por:
[ ]p s t
A u v w
x y z
=
Entonces la transpuesta de [A] es:
[ ]Tp u x
A s v y
t w z
=
23
TIPOS DE MATRICES
Propiedades:
([A]T)T = [A] ([A] ± [B]) T = [A]T ±[B]T
([A][B]) T = [B]T[A]T
([A][B][C]) T = [C]T[B]T[A]T
Ejemplo:
Para obtener la transpuesta de una matriz en MATLAB se usa el comando tranpose(A) o simplemente A’.
Definamos la matriz [A] como:
>> A=[ 2 4 -6 8;4 4 8 0;-5 10 3 2;8 10 12 -6]
A =
2 4 -6 8
4 4 8 0
-5 10 3 2
8 10 12 -6
>> AT=transpose(A)
AT =
2 4 -5 8
4 4 10 10
-6 8 3 12
8 0 2 -6
También se puede dar la instrucción:
>> AT=A’
24
JUAN CARLOS HERRERA SÁNCHEZ
AT =
2 4 -5 8
4 4 10 10
-6 8 3 12
8 0 2 -6
Para comprobar ([A]T)T = [A] , calculamos la transpuesta de [AT]:
>> AT’
ans =
2 4 -6 8
4 4 8 0
-5 10 3 2
8 10 12 -6
Matriz cuadrada
Es una matriz que tiene el número de columnas igual al de filas, m = n. La matriz se dice que es cuadrada de orden n x n.
[ ]
11 12 1
21 22 2
1 2
n
n
ij in
n n nj nn
a a a
a a aA
a a
a a a a
=
L
L
M M
La diagonal principal de una matriz cuadrada son los elementos a
11,a
22, …a
nn. La diagonal secundaria es la formada por los
elementos a1n,a
2,n-1,…,a
n1.
25
TIPOS DE MATRICES
Ejemplo:
[ ]2 6 1
6 4 6
0 6 8
A
= − −
La diagonal principal está formada por 2,4,8 y la diagonal secundaria por 1,4,0.
Traza de una matriz cuadrada: es la sumatoria de los elementos de la diagonal principal.
11 221
( ) ...n
ii nn
i
Tr A a a a a=
= = + + +∑
Ejemplo:
[ ]2 6 0
6 4 6
0 6 8
B
= − −
El valor de Tr(B)= 2+4+8= 14
Propiedades:
1) Tr ([A] ± [B]) = Tr([A]) ± Tr([B]) 2) Tr (λ[A])= λ Tr([A]) , λ: constante3) Tr (λ([A]+[B]))= λ Tr ([A])+λ Tr ([B]) 4) Tr ([A][B])= Tr ([B][A])
La traza se calcula en MATLAB, con el comando trace(A).
26
JUAN CARLOS HERRERA SÁNCHEZ
Ejemplo:
>> B=[2 6 8;6 4 -6;0 -6 8]
B =
2 6 8
6 4 -6
0 -6 8
>> tB=trace(B)
tB =
14
Si k=10, entonces tr(k*B)=10*14=140En MATLAB:
>> k=10;
>> trace(k*B)
ans =
140
Matriz diagonal
Si [A] es una matriz cuadrada, en donde 0ija = para i j≠ , entonces se dice que [A] es una matriz diagonal. La diagonal puede contener elementos nulos o no.
[ ]
11
22
0 0 0
0 0 0
0 0 0
0 0 0 nn
a
aA
a
=
O
27
TIPOS DE MATRICES
Matriz identidad
Es una matriz diagonal con todos los elementos de la diagonal principal iguales a 1. También se denomina matriz unidad. Se representa generalmente por [I].
Se puede escribir mediante la ecuación:
1,{0,ij
i ja
i j
==
≠
Matriz escalar
Si [A] es una matriz diagonal, en donde iia λ= para i=1,…,n, entonces se dice que [A] es una matriz escalar. Por ejemplo:
Ejemplos en MATLAB:
Crear la matriz [ ]1 2 3
4 5 6
6 5 4
A
=
[ ]
1 0 0 0
0 1 0 0
0 0 0
0 0 0 1
I
=
O
[ ]0 0
0 0
0 0
A
λλ
λ
=
28
JUAN CARLOS HERRERA SÁNCHEZ
En MATLAB se escribe:
>> A=[1 2 3;4 5 6;6 5 4]
A =
1 2 3
4 5 6
6 5 4
>> [m,n]=size(A)
m =
3
n =
3
La diagonal principal, en forma de vector, se obtiene con el comando diag.
>> d=diag(A)
d =
1
5
4
>> n=length(d)
n =
3
El vector diagonal es de orden n=3
29
TIPOS DE MATRICES
Ejemplo:
Para obtener la traza en MATLAB se usa el comando trace(A)
>> Tra=trace(A)
Tra =
10
Ejemplo:
Para generar una matriz identidad de orden n=5, se usa el comando de MATLAB eye(N)
>> A=eye(5)
A =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
Calculemos la traza:
>> trace(A)
ans =
5
30
JUAN CARLOS HERRERA SÁNCHEZ
Ejemplo:
Para generar una matriz identidad de orden n=4, usamos los comandos ones y diag. Primero se crea un vector mediante la instrucción:
>> V=ones(4,1)
V =
1
1
1
1
Luego generamos la matriz diagonal MI con el vector V
>> MI=diag(V)
MI =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
De manera simplificada, también se puede escribir:
>> MI=diag(ones(4,1))
MI =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
31
TIPOS DE MATRICES
Ejemplo:
Para obtener la matriz [E]=c[I], con el valor c=10, se dan las instrucciones:>> c=10;
>> E=c*eye(5)
E =
10 0 0 0 0
0 10 0 0 0
0 0 10 0 0
0 0 0 10 0
0 0 0 0 10
Otra forma es generar un vector, mediante la instrucción siguiente:
>> V=10*ones(5,1)
V =
10
10
10
10
10
Luego se genera la matriz con el vector anterior:
>> C=diag(V)
C =
10 0 0 0 0
0 10 0 0 0
0 0 10 0 0
0 0 0 10 0
0 0 0 0 10
32
JUAN CARLOS HERRERA SÁNCHEZ
Ejemplo:
Para generar una matriz diagonal cuyos elementos van de -3 a 3 se da la instrucción en MATLAB:
>>m=3;
>> diag(-m:m)
ans =
-3 0 0 0 0 0 0
0 -2 0 0 0 0 0
0 0 -1 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 2 0
0 0 0 0 0 0 3
Ejemplo: verificar en MATLAB [I]=[I]T , [E]=[E]T
>> I=transpose(MI)
I =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> ET=transpose(E)
ET =
10 0 0 0 0
0 10 0 0 0
0 0 10 0 0
0 0 0 10 0
0 0 0 0 10
33
TIPOS DE MATRICES
Es una matriz cuadrada [A] en que se cumple aij = a
ji para todo
1 i≤ , j n≤ . Toda matriz simétrica satisface [A]= [A]T
Ejemplo:
Su transpuesta es:
Matriz antisimétrica
Es una matriz cuadrada [A] en que se cumple aij = -a
ji. Toda
matriz antisimétrica satisface [A]=-[A]T. Los elementos de la diagonal principal son ceros.
Ejemplo:
Su transpuesta es:
[ ]2 0
2 4 6
0 6 8
k k
K k k k
k k
− = − − −
[ ]2 0
2 4 6
0 6 8
T
k k
K k k k
k k
− = − − −
[ ]0 2
2 0 6
6 0
k k
Ka k k
k k
= − − −
[ ]0 2
2 0 6
6 0
T
k k
Ka k k
k k
− − = −
Matriz simétrica
34
JUAN CARLOS HERRERA SÁNCHEZ
Se verifica que [A]=-[A]T
Matriz opuesta
La matriz opuesta de una matriz [B] es la que resulta de sustituir cada elemento por su inverso aditivo. La opuesta de [B] es -[B]. Cada elemento de la matriz opuesta es -b
ij
Ejemplo:
[ ]2 6
9 7
7 8
B
− − − = − −
Matrices ortogonales
Dos matrices [A] y [B] son ortogonales entre si cuando se verifica:
[ ] [ ] [ ] [ ] [ ]T TA B B A I= =
Una matriz cuadrada [A]nxn
se dice que es ortogonal cuando multiplicada por su transpuesta da como resultado la matriz identidad:
[ ]0 2
2 0 6
6 0
T
k k
Ka k k
k k
− = − − −
[ ]2 6
9 7
7 8
B
= − −
35
TIPOS DE MATRICES
[ ][ ] [ ] [ ] [ ]T TA A A A I= =
Ejemplo:
Verificar si las matrices
[ ]1 1
1 2
1 2
A
= − −
; [ ]2 1
1 1
0 2
B
− =
son ortogonales.
Calculando primero el producto [A]T[B]:
[ ] [ ]2 1
1 1 11 1
1 2 20 2
TA B
− − = −
[ ] [ ]2(1) 1( 1) 0 2(1) 1( 2) 0 1 0
1(1) 1( 1) 2(1) 1(1) 1( 2) 2(2) 0 1
TA B
+ − + + − + = = − + − + − + − +
Ahora se calcula el producto [B]T[A]:
[ ] [ ]1 1
2 1 01 2
1 1 21 2
TB A
= − − −
[ ] [ ]2(1) 1( 1) 0 2(1) 1( 2) 0 1 0
1(1) 1( 1) 2(1) 1(1) 1( 2) 2(2) 0 1
TB A
+ − + + − + = = − + − + − + − +
36
JUAN CARLOS HERRERA SÁNCHEZ
Ejemplo:
Verificar que la siguiente matriz [C] es ortogonal.
La matriz transpuesta es:
por tanto:
[ ][ ] [ ] [ ]1 0
0 1
T TC C C C
= =
Matriz triangular
Matriz Triangular Superior: es una matriz cuadrada que tiene todos los elementos debajo de la diagonal principal nulos.
[ ]
3 1
2 2
1 3
2 2
C
= −
[ ]
3 1
2 2
1 3
2 2
TC
−
=
[ ][ ]
3 1 3 1
2 2 2 2
1 3 1 3
2 2 2 2
TC C
−
= −
[ ]
11 12 1
22 20
0 0 0
n
n
ij in
nn
a a a
a aA
a a
a
=
L
L
M M
37
TIPOS DE MATRICES
Ejemplo:
Matriz Triangular Inferior: es una matriz cuadrada que tiene todos los elementos sobre la diagonal principal iguales a cero.
Ejemplo:
[ ]0 0
2 4 0
6 8
k
L k k
k k k
=
Matriz inversa
Una matriz [A] cuadrada de orden n es una matriz invertible, si existe una matriz [B] de orden n, tal que:
[A][B] = [B][A]=[I]
[B] se denomina matriz inversa de [A]. Se usa la notación [B]=[A]-1
[ ]2
0 4 6
0 0 8
k k k
U k k
k
− = −
[ ]
11
21 22
1 2
0 0
0
0ij
n n nj nn
a
a aA
a
a a a a
=
L
L
M M
38
JUAN CARLOS HERRERA SÁNCHEZ
Para una matriz diagonal [D],
[ ]
11
22
0 0 0
0 0 0
0 0 0
0 0 0 nn
d
dD
d
=
O , 0iid ≠ 1, 2,...i n∀ =
su inversa [D]-1 se define por:
[ ]
11
122
1 0 0
10 0
10 0nn
d
dD
d
−
=
L
L
L L O L
L
Propiedades:
1) ([A]-1)-1 = [A]
2) (c[A]) -1 = [A]-1/c , c≠ 0
3) ([A][B]) -1 = [B]-1[A]-1
4) ([A]T) -1 = ([A]-1)T
Para el producto de varias matrices:
([B1][B
2]…[B
n]) -1 = [B
n ]-1[B
n-1 ]-1[B
n-2 ]-1…[B
1 ]-1
39
TIPOS DE MATRICES
Ejemplo:
[ ]1 2
1 1A
=
[ ] 1 1 2
1 1A
− − = −
Se verifica que:
[ ][ ] 1 1 0
0 1A A
− =
[ ] [ ]1 1 0
0 1A A
− =
Para obtener la inversa de una matriz en MATLAB se usa el comando inv(A)
Ejemplo:
Dada la matriz [A]:
a) Calcular [A]-1
>> A=[2 4 6;4 4 0;6 2 8]
A =
2 4 6
4 4 0
6 2 8
>> AI=inv(A)
40
JUAN CARLOS HERRERA SÁNCHEZ
AI =
-0.2000 0.1250 0.1500
0.2000 0.1250 -0.1500
0.1000 -0.1250 0.0500
Para obtener la inversa de una matriz en MATLAB otra opción es dar el comando se usa el comando A^(-1)
>> A^(-1)
ans =
-0.2000 0.1250 0.1500
0.2000 0.1250 -0.1500
0.1000 -0.1250 0.0500
b) Verificar con MATLAB ([A]-1)-1 = [A]
>> (inv(A))^(-1)
ans =
2.0000 4.0000 6.0000
4.0000 4.0000 0
6.0000 2.0000 8.0000
b) Verificar con MATLAB que ([A]T) -1 = ([A]-1)T
>> A1=inv(transpose(A))
A1 =
-0.2000 0.2000 0.1000
0.1250 0.1250 -0.1250
0.1500 -0.1500 0.0500
>> A2=transpose(inv(A))
41
TIPOS DE MATRICES
A2 =
-0.2000 0.2000 0.1000
0.1250 0.1250 -0.1250
0.1500 -0.1500 0.0500
1.4 Referencias bibliográficas
Etter, Delores M. Solución de problemas de ingeniería con MATLAB. México, D.F.: McGraw-Hill Interamericana, 1998.
Hsieh, Y. Teoría elemental de estructuras. Prentice Hall Hispanoamericana, México, D.F., 1970.
Kiusalaas, J. Numerical Methods in Engineering with MATLAB. Cambridge University Press, 2009.
Kolman, B. Algebra lineal con aplicaciones y Matlab. Prentice Hall Hispanoamericana, México, D.F., 1999.
Laub, A. Matrix Analysis for Scientists and Engineers. SIAM: Society for Industrial and Applied Mathematics. Philadelphia, 2004.
Mathews J, Fink, K. Métodos numéricos con MATLAB, Madrid, Prentice Hall, 2000.
Uribe, J. Microcomputadores en ingeniería estructural. Ecoe Ediciones, Colombia, 1995.
Yang, W. Y et. Al. Applied Numerical Methods Using MATLAB. Wiley-Interscience, 2005.
1.5 Problemas
1) Calcular la traza de [B]
[ ]1 6 0
6 3 6
0 6 8
B
= − − −
42
JUAN CARLOS HERRERA SÁNCHEZ
2) Usando la matriz anterior calcule tr(k[B]), con k=3.
3) Dada la matriz [K], determine [K]T
[ ]2 6
4 6
4 6 8
k k k
K k k k
k k k
− = − − −
4) Verificar si la siguiente matriz [C] es ortogonal.
5) Calcular la inversa de la matriz
[ ]0 0
0 4 0
0 0 8
k
D k
k
=
[ ]
3 1
2 2
1 3
2 2
C
−
=
43
Capítulo 2
Operaciones con matrices
2.1 Producto de un número real por una matriz
Dada una matriz [A] para evaluar el producto β[A], donde β es un escalar, se multiplica cada elemento a
ij por β .
Entonces,
Propiedades:
1)( β+ λ )[A]= β[A]+ λ[A]
2) λ([A]+[B])= λ[A]+ λ[B]
3) λ(β [A])= (λβ)[A]
β, λ: constantes
Ejemplo:
Dadas [A] y [B] , β=2, λ=1.5, calcular β[A] + λ[B]
11 12 1
21 22 2
2
[ ]
n
n
ij in
mn m mj mn
a a a
a a aA
a a
a a a a
=
L
L
M M
11 12 1
21 22 2
2
[ ]
n
n
ij in
mn m mj mn
a a a
a a aA
a a
a a a a
β β ββ β β
ββ β
β β β β
=
L
L
M M
44
JUAN CARLOS HERRERA SÁNCHEZ
2.2 Suma de matrices
La adición de matrices o suma de matrices entre la matriz [A]mxn
y la matriz [B]
rxs se puede realizar sólo cuando ambas matrices
tienen la misma dimensión, es decir m=r y n=s.
El resultado de la adición de dos matrices es otra matriz [S]mxn
de la misma dimensión, cuyo elemento s
ij=(a
ij + b
ij)
Dadas las matrices,
[ ] 11 12
21 22
a aA
a a
=
[ ] 11 12
21 22
b bB
b b
=
1 5
[ ] 3 4
1 0
A
= −
[ ]2 3
2 7
0 4
B
=
2 10 3 4.5
[ ] [ ] 6 8 3 10.5
2 0 0 6
A Bβ λ + = + −
6 14.5
[ ] [ ] 9 18.5
2 6
A Bβ λ + = −
45
OPERACIONES CON MATRICES
La suma de [A]+[B] es:
[ ] 11 11 12 12
21 21 22 22
a b a bS
a b a b
+ + = + +
Análogamente, la resta se expresa:
[ ] [ ] [ ]D A B= −
[ ] 11 11 12 12
21 21 22 22
a b a bD
a b a b
− − = − −
Cualquier matriz cuadrada se puede expresar como la suma de una matriz simétrica y de una antisimétrica. Si [C] es una matriz cuadrada, entonces:
[ ] [ ] [ ] [ ] [ ]
2 2
T TC C C CC
+ −= +
En la expresión anterior, el primer término es una matriz simétrica y el segundo una matriz antisimétrica. Dado que:
[ ] [ ]
2 2
Tjk kjc cC C + +
=
[ ] [ ]
2 2
Tjk kjc cC C − −
=
En las expresiones anteriores, el intercambio de j y k no genera cambio en la primera ecuación, pero si cambia el signo de la segunda ecuación. Por ejemplo, si
46
JUAN CARLOS HERRERA SÁNCHEZ
de modo que,
y
Ejemplo:
Dada [C] verificar las expresiones anteriores.
[ ]2 7
4 6C
=
[ ]2 4
7 6
TC
=
[ ] 11 12
21 22
c cC
c c
=
[ ] 11 21
12 22
T c cC
c c
=
12 2111
21 1222
[ ] [ ] 22
2
T
c cc
C C
c cc
+ +
= +
12 21
21 12
0[ ] [ ] 2
20
2
T
c c
C C
c c
− −
= −
7 42
[ ] [ ] 24 72
62
TC C
+ +
= +
47
OPERACIONES CON MATRICES
Por tanto,
Ejemplo:
Dada [C] verificar las expresiones anteriores en MATLAB.
>> C=[2 7;4 6]
C =
2 7
4 6
>> CT=C’
CT =
2 4
7 6
>> C1=(C+CT)./2
C1 =
2.0000 5.5000
5.5000 6.0000
7 40
[ ] [ ] 24 72
02
TC C
− −
= −
2 5.5 0 1.5[ ] [ ] [ ] [ ]
5.5 6 1.5 02 2
2 7[ ] [ ] [ ] [ ]
4 62 2
T T
T T
C C C C
C C C C
+ −+ = + −
+ −+ =
48
JUAN CARLOS HERRERA SÁNCHEZ
>> C2=(C-CT)./2
C2 =
0 1.5000
-1.5000 0
>> C1+C2
ans =
2 7
4 6
Ejemplo:
a) Calcular [A] + [B]
1 5
[ ] 3 4
1 0
A
= −
[ ]2 3
2 7
0 4
B
=
1 2 5 3
[ ] [ ] 3 2 4 7
1 0 0 4
A B
+ + + = + + − + +
3 8
[ ] [ ] 5 11
1 4
A B
+ = −
49
OPERACIONES CON MATRICES
b) Calcular [A] - [B]
1 2 5 3
[ ] [ ] 3 2 4 7
1 0 0 4
A B
− − − = − − − − −
1 2
[ ] [ ] 1 3
1 4
A B
− − = − − −
Propiedades:
1) [A]+([B]+[C]) = ([A]+[B])+[C]
2) [A]+[B] = [B]+[A]
3) [0]+[A] = [A]+[0]= [A]
4) [A] + (-[A]) = (-[A]) + [A] = [0]
5) c(k[A])=(ck)[A]
6) k([A] + [B]) = k[A] + k[B]
7) (c + k)[A] = c[A] + k[A]
Ejemplos en MATLAB:
>> A=[2 6 8;6 4 -6;0 -6 8]
A =
2 6 8
6 4 -6
0 -6 8
>> B=[1 4 8;5 4 -5;0 -6 9]
50
JUAN CARLOS HERRERA SÁNCHEZ
B =
1 4 8
5 4 -5
0 -6 9
a) Cálculo de [A] + [B]
>> A+B
ans =
3 10 16
11 8 -11
0 -12 17
b) Cálculo de [B] + [A]
>> B+A
ans =
3 10 16
11 8 -11
0 -12 17
c) Cálculo de [A] - [B]
>> A-B
ans =
1 2 0
1 0 -1
0 0 -1
>> k=10
k =
10
51
OPERACIONES CON MATRICES
d) Cálculo de k([A] + [B])
>> k*(A+B)
ans =
30 100 160
110 80 -110
0 -120 170
e) Cálculo de k([B] + [A])
>> k*(B+A)
ans =
30 100 160
110 80 -110
0 -120 170
>> c=5
c =
5
f) Cálculo de (c + k)[A]
>> (c+k)*A
ans =
30 90 120
90 60 -90
0 -90 120
>> c*A
52
JUAN CARLOS HERRERA SÁNCHEZ
ans =
10 30 40
30 20 -30
0 -30 40
>> k*A
ans =
20 60 80
60 40 -60
0 -60 80
>> c*A+k*A
ans =
30 90 120
90 60 -90
0 -90 120
2.3 Multiplicación de matrices
Antes de definir la multiplicación de matrices, considérese el producto interno de dos vectores de tamaño n.
El vector fila [p] tiene n elementos:
[ ] [ ]1 2 np p p p= L
El vector columna [c] tiene n elementos:
[ ]
1
2
n
c
cc
c
=
M
53
OPERACIONES CON MATRICES
El producto interno [p][c] se define
Dada una matriz [A] de dimensión (m x n) y una matriz [B] de dimensión (nxr), la multiplicación queda definida por:
[ ] [ ][ ]mxn nxr mxrA B C=
donde el elemento cij esta dado por:
Es decir, cada fila de [A] se multiplica por cada columna de [B]. El número de columnas de [A] debe ser igual al número de filas de [B].
La multiplicación esta dada por:
[ ]11 12 13 11 12
21 22 23 21 223 2
31 32 33 31 32
x
a a a b b
C a a a b b
a a a b b
=
[ ]11 11 12 21 13 31 11 12 12 22 13 32
21 11 22 21 23 31 21 12 22 22 23 323 2
31 11 32 21 33 31 31 12 32 22 33 32
( ) ( )
( ) ( )
( ) ( )x
a b a b a b a b a b a b
C a b a b a b a b a b a b
a b a b a b a b a b a b
+ + + + = + + + + + + + +
[ ][ ] 1 1 2 21
n
i i i i
i
p c p c p c p c p c=
= = + + +∑ L
1 1 2 21
n
ij ik kj i j i j in nj
k
c a b a b a b a b=
= = + + +∑ L
[ ]11 12 13
21 22 23
31 32 33
a a a
A a a a
a a a
=
[ ]11 12
21 22
31 32
b b
B b b
b b
=
54
JUAN CARLOS HERRERA SÁNCHEZ
Cada elemento cij es el producto interno de la i-ésima fila de [A]
con la j-ésima columna de [B]. Por ejemplo, el elemento c31 es:
[ ]11
31 31 32 33 21
31
b
c a a a b
b
=
31 31 11 32 21 33 31c a b a b a b= + +
Ejemplo: dadas [A] y [B], calcular [A][B].
1 5
[ ] 3 4
1 0
A
= −
[ ]2 3
4 7B
=
1(2) 5(4) 1(3) 5(7)
[ ][ ] 3(2) 4(4) 3(3) 4(7)
1(2) 0(4) 1(3) 0(7)
A B
+ + = + + − + − +
22 38
[ ][ ] 22 37
2 3
A B
= − −
55
OPERACIONES CON MATRICES
Ejemplo:
Verificar ([A][B])T = [B]T[A]T
( )22 22 2
[ ][ ]38 37 3
TA B
− = −
[ ] [ ]2 4 1 3 1
3 7 5 4 0
T TB A
− =
[ ] [ ]22 22 2
38 37 3
T TB A
− = −
Propiedades:
1) ([A][B])[C] = [A]([B][C])
2) [A]([B]+[C]) = [A][B]+ [A][C]
3) λ[A]([B]+[C]) = λ[A][B]+ λ[A][C]
4) [A][B] ≠ [B][A]
5) [A][I] = [I][A] = [A]
6) [A][0] = [0][A]= [0]
Ejemplos en MATLAB:
>> A=[2 6 8;6 4 -6;0 -6 8]
A =
2 6 8
6 4 -6
0 -6 8
56
JUAN CARLOS HERRERA SÁNCHEZ
>> B=[1 4 8;5 4 -5;0 -6 9]
B =
1 4 8
5 4 -5
0 -6 9
>> C=[2 3 5;3 8 6;1 -2 5]
C =
2 3 5
3 8 6
1 -2 5
a) Cálculo con MATLAB de [A][B]
>> A*B
ans =
32 -16 58
26 76 -26
-30 -72 102
b) Cálculo con MATLAB de [B][A]
>> B*A
ans =
26 -26 48
34 76 -24
-36 -78 108
c) Verificación con MATLAB de [A]([B]+[C])= [A][B]+ [A][C]
>> A*(B+C)
57
OPERACIONES CON MATRICES
ans =
62 22 144
44 138 -2
-40 -136 106
>> A*B+A*C
ans =
62 22 144
44 138 -2
-40 -136 106
d) Verificación con MATLAB de ([A][B])T = [B]T[A]T
>> transpose(A*B)
ans =
32 26 -30
-16 76 -72
58 -26 102
>> (B’)*(A’)
ans =
32 26 -30
-16 76 -72
58 -26 102
d) Verificación con MATLAB de ([A][B])-1 = [B]-1[A]-1
>> inv(A*B)
58
JUAN CARLOS HERRERA SÁNCHEZ
ans =
0.0243 -0.0105 -0.0165
-0.0077 0.0207 0.0097
0.0017 0.0115 0.0118
>> inv(B)*inv(A)
ans =
0.0243 -0.0105 -0.0165
-0.0077 0.0207 0.0097
0.0017 0.0115 0.0118
2.4 Partición de matrices
En muchas aplicaciones, es conveniente subdividir una matriz en sub-matrices para reducir cálculos. Para una matriz [A] la subdivisión o partición de matrices se puede realizar de muchas formas.
Donde:
11 1211
21 22
a aA
a a
=
31 3221
41 42
a aA
a a
=
11 12 13 14
21 22 23 24 11 12
31 32 33 34 21 22
41 42 43 44
a a a a
a a a a A AA
a a a a A A
a a a a
= =
59
OPERACIONES CON MATRICES
También la matriz [A] se puede particionar:
Donde ahora:
13 1412
23 24
a aA
a a
=
33 3422
43 44
a aA
a a
=
[ ]
11 12 13 14
21 22 23 2411 12 13 14
31 32 33 34
41 42 43 44
a a a a
a a a aA A A A A
a a a a
a a a a
= =
11
2111
31
41
a
aA
a
a
=
12
2212
32
42
a
aA
a
a
=
13
2313
33
43
a
aA
a
a
=
14
2414
34
44
a
aA
a
a
=
El producto de dos matrices [A] y [B] también se puede expresar como el producto de sub-matrices. Dada la matriz [A], se puede subdividir de la forma siguiente:
60
JUAN CARLOS HERRERA SÁNCHEZ
donde:
11 1211
21 22
a aA
a a
=
13
1223
aA
a
=
[ ]21 31 32A a a= [ ]22 33A a=
La matriz [B] se puede particionar de la forma:
donde:
11 1211
21 22
b bB
b b
=
[ ]21 31 32B b b=
De tal manera que el producto [A][B] queda:
[ ][ ] 11 11 12 21
21 11 22 21
A B A BA B
A B A B
+ = +
[ ]11 12 13
11 1221 22 23
21 2231 32 33
a a aA A
A a a aA A
a a a
= =
[ ]11 12
1121 22
2131 32
b bB
B b bB
b b
= =
61
OPERACIONES CON MATRICES
Ejemplo: dadas [A] y [B] calcular [A][B]
La matriz [A] se puede particionar de la forma:
11
2 5
6 7A
= −
12
6
1A
=
[ ]21 3 4A = [ ]22 2A =
La matriz [B] se puede particionar de la forma:
[ ] 11
21
BB
B
=
donde:
11
1 3
2 6B
− =
[ ]21 0 4B =
11 11
2 5 1 3 8 36
6 7 2 6 20 24A B
− = = −
[ ]12 21
6 0 240 4
1 0 4A B
= =
[ ] [ ]21 11
1 33 4 5 33
2 6A B
− = =
[ ]2 5 6
6 7 1
3 4 2
A
= −
[ ]1 3
2 6
0 4
B
− =
62
JUAN CARLOS HERRERA SÁNCHEZ
[ ][ ] [ ]22 21 2 0 4 0 8A B = =
Reemplazando los anteriores valores se obtiene finalmente:
Ejemplo:
Resolver el problema anterior con MATLAB
>> A=[2 5 6;-6 7 1;3 4 2]
A =
2 5 6
-6 7 1
3 4 2
>> B=[-1 3;2 6;0 4]
B =
-1 3
2 6
0 4
>> A11=A(1:2,1:2);
>> A12=A(1:2,3);
>> A21=A(3,1:2);
>> A22=A(3,3);
[ ][ ] 11 11 12 21
21 11 22 21
8 60
20 28
5 41
A B A BA B
A B A B
+
= = +
63
OPERACIONES CON MATRICES
>> B11=B(1:2,:);
>> B21=B(3,:);
>> AB=[A11*B11+A12*B21 ; A21*B11+A22*B21]
AB =
8 60
20 28
5 41
2.5 Referencias bibliográficas
Etter, Delores M. Solución de problemas de ingeniería con MATLAB. México, D.F.: McGraw-Hill Interamericana, c1998.
Kiusalaas, J. Numerical Methods in Engineering with MATLAB. Cambridge University Press, 2009.
Kolman, B. Algebra lineal con aplicaciones y Matlab. Prentice Hall Hispanoamericana, México, D.F., 1999.
Laub, A. Matrix Analysis for Scientists and Engineers. SIAM: Society for Industrial and Applied Mathematics. Philadelphia, 2004.
Mathews J, Fink, K. Métodos numéricos con MATLAB, Madrid, Prentice Hall, 2000.
Hsieh, Y. Teoría elemental de estructuras. México, D.F.: Prentice Hall Hispanoamericana, 1970.
Uribe, J. Microcomputadores en ingeniería estructural. Ecoe Ediciones, Colombia, 1995.
Yang, W. Y et. Al. Applied Numerical Methods Using MATLAB. Wiley-Interscience, 2005.
2.6 Problemas
1) Dadas las matrices [A] y [B] calcular:
64
JUAN CARLOS HERRERA SÁNCHEZ
a) [A]+[B] b) 2[A] + 3[B] c) 4[A] – 3[B]
2) Dadas las matrices [A] y [B] calcular:
a) [B]–[A] b) 4[A] – 3[B] c) 5([A]+[B])
3) Dadas las matrices [B] y [C] calcular:
a) [B][C] b) [B][C]T c) [C][B]T
d) [C][B]T [C]
4) Dadas [A] y [B] calcular [A][B], usando partición de matrices.
[ ]1 2
3 4
1 0
A
= −
[ ]1 3
2 6
0 4
B
− =
[ ]2 5 6
6 7 1
3 4 2
A
= −
[ ]5 2 7
3 4 8
2 9 7
B
− = − − − −
[ ]5 1 7
3 4 8
2 9 7
B
= − − − −
[ ]2 5 0
6 7 1
3 4 2
C
=
[ ]1 5 4
6 5 1
3 4 2
A
= −
[ ]1 4
2 6
0 2
B
=
65
Capítulo 3
Determinantes e inversión de matrices
3.1 Determinante de una matriz
Si [A] es una matriz cuadrada de orden n, el determinante de
[A] se denota por y se define como el escalar o polinomio que
resulta de obtener todos los productos posibles de una matriz
de acuerdo a una serie de restricciones. El determinante de una
matriz de orden 2, de define como:
11 1211 22 12 21
21 22
a aA a a a a
a a= = −
Para definir el determinante de una matriz de orden mayor que 2 es necesario introducir algunos conceptos. Dada una matriz cuadrada [A] de orden n, definimos el menor, M
ij como el determinante de
la submatriz de orden (n-1) × (n-1) que se obtiene eliminando la i-esima fila y la j-esima columna de la matriz [A] de orden n.
El cofactor ijA asociado al menor Mij en una matriz [A] se define
como:
( 1)i j
ij ijA M+= −
Por ejemplo:
11 12 13
21 22 23
31 32 33
[ ]
a a a
A a a a
a a a
=
A
66
JUAN CARLOS HERRERA SÁNCHEZ
El menor M21 se obtiene eliminando fila 2 y la columna 1 de [A]:
12 1321
32 33
a aM
a a
=
por tanto,
( )
( )
12 13( )
32 33
12 13(2 1)21
32 33
21 12 33 13 32
21 13 32 12 33
( 1)
( 1)
( 1)
i j
ij
a aA
a a
a aA
a a
A a a a a
A a a a a
+
+
= −
= −
= − −
= −
Ejemplo: El menor M
11 de la siguiente matriz se obtiene al calcular el
determinante de la matriz resultante de eliminar la fila 1 y la columna 1.
[ ]2 5 6
6 7 1
3 4 2
A
= −
21
21
7 114 4
4 2
10
M
M
= = −
=
67
DETERMINANTES E INVERSIÓN DE MATRICES
El cofactor asociado se calcula como:
1 111 11
211
( 1)
( 1) (10) 10
A M
A
+= −
= − =
3.2 Expansión de Laplace
Dada una matriz cuadrada [A] de orden n se define su determinante como la suma del producto de los elementos de una fila (o columna) cualquiera de la matriz, por sus correspondientes cofactores. De acuerdo a la expansión de Laplace, el determinante de una matriz [A] cuadrada de orden n, está definido por:
1
n
ik ik
k
A a A=
= ∑ , i=1…nó
1
n
kj kj
k
A a A=
= ∑ , j=1…n
Para la matriz [A] si se selecciona la columna j=2, entonces:
21 21 11 13 11 131 2 2 2 3 212 22 32
31 33 31 33 21 23
( 1) ( 1) ( 1)a a a a a a
A a a aa a a a a a
+ + += − + − + −
Para la expansión por cofactores, se cumple que la suma de los productos de cualquier elemento a
ij de una fila (o columna) de una
matriz [A], multiplicado por el cofactor de otra fila (o columna) de [A] es cero. Esto es:
11 12 13 3
21 22 23 2 21
31 32 33
k k
k
a a a
A a a a a A
a a a=
= =∑
68
JUAN CARLOS HERRERA SÁNCHEZ
1
0n
ik jk
k
a A=
=∑ , i j≠
1
0n
kj ki
k
a A=
=∑ , j i≠
Se define la matriz cofactor [ ]A como:
Ejemplo:
Calcular la matriz cofactor [ ]A dada la siguiente matriz:
Solución.
Procedemos a calcular los valores de los cofactores ijA
(1 2) (3)12 12
1 7( 1) ( 1) 4
0 4A M+= − = − = −
(1 3) (4)13 13
1 1( 1) ( 1) 3
0 3A M+= − = − = −
−
11 12 1
21 22 2
1 2
n
n
ij in
n n nj nn
A A A
A A AA
A A
A A A A
=
L
L
M M
[ ]1 5 2
1 1 7
0 3 4
A
= −
(1 1) (2)11 11
1 7( 1) ( 1) 25
3 4A M+= − = − =
−
69
DETERMINANTES E INVERSIÓN DE MATRICES
Reemplazando en la ecuación para [ ]A :
Ejemplo: Calcular el determinante usando la expansión de Laplace de la matriz [A] que se da a continuación:
(2 1) (3)21 21
(2 2) (4)22 22
(2 3) (5)23 22
5 2( 1) ( 1) 26
3 4
1 2( 1) ( 1) 4
0 4
1 5( 1) ( 1) 3
0 3
A M
A M
A M
+
+
+
= − = − = −−
= − = − =
= − = − =−
(3 1) (4)31 31
(3 2) (5)32 32
(3 3) (6)33 32
5 2( 1) ( 1) 33
1 7
1 2( 1) ( 1) 5
1 7
1 5( 1) ( 1) 4
1 1
A M
A M
A M
+
+
+
= − = − =
= − = − = −
= − = − = −
25 4 3
26 4 3
33 5 4
A
− − = − − −
[ ]2 4 11
1 3 16
2 0 21
A
− = − −
70
JUAN CARLOS HERRERA SÁNCHEZ
Solución.
Si se selecciona la 2ª columna, entonces j=2.
3
2 2 12 12 22 22 32 321
k k
k
A a A a A a A a A=
= = + +∑
Si se selecciona la 1ª columna, ahora j=1.
3
1 1 11 11 21 21 31 311
k k
k
A a A a A a A a A=
= = + +∑
( ) ( ) ( )
(1 1) (2 1) (3 1)3 16 4 11 4 112( 1) 1( 1) 2( 1)
0 21 0 21 3 16
2 63 84 2 64 33 148
A
A
+ + +− − −= − − − + −
−
= + + − + =
Verificación de cálculo en MATLAB:
>> A=[2 4 -11;-1 3 -16;2 0 21]
( ) ( )
(1 2) (2 2)
2 4 111 16 2 11
1 3 16 4( 1) 3( 1) 02 21 2 21
2 0 21
2 4 11
1 3 16 4 21 32 3 42 22 148
2 0 21
A
A
+ +
−− − −
= − − = − + − +
−
= − − = − − + + + =
71
DETERMINANTES E INVERSIÓN DE MATRICES
A =
2 4 -11
-1 3 -16
2 0 21
>> det(A)
ans =
148
Propiedades.
1) Si todos los elementos de una fila (o una columna) de una matriz cuadrada [A] son cero, entonces:
0A =
Por ejemplo, si la columna j=2, es cero:
Ejemplo:
11 13 1
21 23 1
1 3
0
00
0
n
n
n n nn
a a a
a a aA
a a a
= =
K
K
K K K K K
K
[ ]0 4 3
0 3 1
0 5 6
A
=
72
JUAN CARLOS HERRERA SÁNCHEZ
Expandiendo la primera fila:
2) Si la fila i o la columna j de [A] se multiplican por una constante
λ, entonces el nuevo determinante es Aλ .
Ejemplo:
1 2 1 30 1 0 30 4( 1) 3( 1) 0
0 6 0 5A + += + − + − =
(1 2) (2 2)
2 4 1116 2 11
3 16 4( 1) 3( 1) 02 21 2 21
2 0 21
2 4 11
3 16 4 ( 21 32) 3 (42 22) (192 44)
2 0 21
B
B
λλ λ
λλ λ
λ
λλ λ λ λλ
+ +
−− − −
= − − = − + − +
−
= − − = − − + + + = −
148B λ=
Ejemplo de cálculo en MATLAB: para el caso anterior usar
2λ =
>> A=[2 4 -11;-1 3 -16;2 0 21]
A =
2 4 -11
-1 3 -16
2 0 21
>> lambda=2;
73
DETERMINANTES E INVERSIÓN DE MATRICES
>> A(:,1)=lambda*A(:,1)
A =
4 4 -11
-2 3 -16
4 0 21
>> det(A)
ans =
296
3) Si dos filas (o columnas) de una matriz se intercambian, el determinante de la matriz cambia de signo.
Ejemplo:
Para la matriz [A] intercambiar la primera y segunda columna.
, 148A =
la nueva matriz es:
[ ]2 4 11
1 3 16
2 0 21
A
− = − −
[ ]4 2 11
3 1 16
0 2 21
A
− = − −
( ) ( )
(1 1) (2 1)1 16 2 114( 1) 3( 1) 0
2 21 2 21
4 21 32 3 42 22 148
A
A
+ +− − −= − + − +
= − + − + = −
74
JUAN CARLOS HERRERA SÁNCHEZ
4) Si dos filas (o columnas) de una matriz [A] son iguales, entonces
0A =
Ejemplo:
2(6) 2(6) 0A = − + =
4) Si una fila (o columna) de una matriz [A] es múltiplo de otra,
entonces 0A =
Ejemplo:
Para la matriz dada [A], la tercera fila
[ ]
(1 2) (2 2)
2 2 2
2 2 2
3 0 6
2 2 2 22( 1) 2( 1) 0
3 6 3 6
A
A + +
=
= − + − +
[ ]
(2 1) (2 2)
2 6 3
2 1 0
4 12 6
6 3 2 32( 1) 1( 1)
12 6 4 6
2(0) 1(0) 0
A
A
A
+ +
=
= − + −
= − + =
75
DETERMINANTES E INVERSIÓN DE MATRICES
5) El determinante de la transpuesta de una matriz [A] es igual
al determinante de la matriz. ( TA A= )
Ejemplo:
[ ]
(1 3) (3 3)
2 2 3
2 2 0
2 2 6
2 2 2 23( 1) 0 6( 1)
2 2 2 2
T
T
A
A + +
=
= − + + −
0TA =
Ejemplo de cálculo en MATLAB:
>> A=[2 4 3;2 2 0 ;2 2 6]
A =
2 4 3
2 2 0
2 2 6
>> det(A)
ans =
-24
>> det(transpose(A))
ans =
-24
76
JUAN CARLOS HERRERA SÁNCHEZ
6) El determinante del producto de dos matrices [A] y [B] es igual
al producto de sus determinantes. ( AB A B B A= = )
Ejemplo:
[ ]2 5
6 7
14 30 44
A
A
= − = + =
[ ]1 3
2 6
6 6 12
B
B
− =
= − − = −
[ ][ ]8 36
20 24
192 720 528
A B
AB
=
= − = −
44( 12) 528A B = − = −
Ejemplo de cálculo en MATLAB:
>> A=[2 4;6 8];
>> B=[-2 5;0 7];
>> det(A)*det(B)
77
DETERMINANTES E INVERSIÓN DE MATRICES
ans =
112
>> det(A*B)
ans =
112
>> det(B*A)
ans =
112
3.3 Determinante por condensación pivotal
En este método se deben convertir a cero todos los elementos de una fila (o columna), excepto uno mediante transformaciones elementales de filas y columnas.
La transformación elemental de una fila se representara por:
j j iF F F→ +
lo cual representa “la fila j se reemplaza por la fila j mas la fila i”
La fórmula para hacer ceros una columna es:
* jp
j j p
op
aF F F
a= −
Fj es la fila original, a
op es el pivote y F
p la fila donde se ubica el
pivote
78
JUAN CARLOS HERRERA SÁNCHEZ
Ejemplo:
Calcule por condensación pivotal el determinante de [B]:
En este caso el pivote será el elemento b12, por facilidad.
Paso 1:
2 2 22 1
2 2 12
F F b F
F F F
→ −
→ +
Los elementos de la fila 2 quedan:
b21=1+2(2)=5
b22=-2+2(1)=0
b23=4+2(0)=4
b24=5+2(-3)=-1
Ahora, se reduce a cero el elemento b42, mediante la
transformación:
4 4 42 1
4 4 12
F F a F
F F F
→ −
→ −
2 1 0 3
1 2 4 5
3 0 1 4
3 2 4 1
B
−
−=
−
2 1 0 3
5 0 4 1
3 0 1 4
3 2 4 1
B
−
−=
−
79
DETERMINANTES E INVERSIÓN DE MATRICES
Efectuando la expansión de la segunda columna, se obtiene:
3.4 Inversión usando la matriz adjunta
Se define la matriz adjunta como la transpuesta de la matriz
cofactor
2 1 0 3
5 0 4 1
3 0 1 4
6 0 3 7
A
−
−=
−
( )
1 2
5 4 1
( 1) 3 1 4
6 3 7
35 96 6 60 84 220
A
A
+
−
= −
−
= − − − − − =
( )
11 21 1
12 22 2
1 2
[ ]
n
T n
ni
n n jn nn
A A A
A A AAdj A A
A
A A A A
= =
L
L
M M O
La matriz inversa [A]-1 se puede calcular usando cofactores mediante:
A
80
JUAN CARLOS HERRERA SÁNCHEZ
[ ] ( )
[ ]
1
11 21 1
12 22 2
1 1 2
[ ]T
n
n
ni
n n jn nn
AAdj AA
A A
A A A
A A A
A
A A A AA
A
−
−
= =
=
L
L
M M O
Ejemplo:
Calcular la inversa de la siguiente matriz:
Primero calculemos el determinante, usando expansión por cofactores:
3
1 1 11 11 21 21 31 311
k k
k
A a A a A a A a A=
= = + +∑
[ ]1 5 2
1 1 7
0 3 4
A
= −
3
1 11
3
1 11
1 7 5 2 1 1 0
3 4 3 4
1(25) 1(26) 1
k k
k
k k
k
A a A
A a A
=
=
= = − +− −
= = − = −
∑
∑
81
DETERMINANTES E INVERSIÓN DE MATRICES
La matriz A se calculó en el ejemplo pasado:
( )
25 4 3
26 4 3
33 5 4
25 4 3
[ ] 26 4 3
33 5 4
T
T
A
Adj A A
− − = − − −
− − = = − − −
( )25 26 33
[ ] 4 4 5
3 3 4
T
Adj A A
− = = − − − −
Usando la ecuación:
[ ] 1
25 26 33
4 4 5
3 3 4
A−
− − = − −
[ ] ( )
[ ]
1
1
[ ]
25 26 33
4 4 5
3 3 4
1
T
AAdj AA
A A
A
−
−
= =
− − − − − =
−
82
JUAN CARLOS HERRERA SÁNCHEZ
Ejemplo: repetir el cálculo usando MATLAB >> A=[1 5 2;1 1 7;0 -3 4]
A =
1 5 2
1 1 7
0 -3 4
a) Cálculo de A
>> det(A)
ans =
-1
b) Cálculo de [ ] 1A
−
>> inv(A)
ans =
-25 26 -33
4 -4 5
3 -3 4
3.5 Método de Gauss-Jordan
El Método de Gauss-Jordan se basa en operaciones fundamentales en filas de matrices. Las operaciones son:
1. Multiplicación de una fila (columna) por un escalar distinto de cero.
2. Intercambio de dos renglones (o columnas).
83
DETERMINANTES E INVERSIÓN DE MATRICES
3. Reemplazo de la fila j por la suma de la fila j más λ veces la fila k donde λ es cualquier escalar
El procedimiento general es partir de una matriz ampliada [ ]A I y mediante operaciones fundamentales, obtener la inversa:
[ ] 1A I I A− ⇒
Se deben efectuar los pasos siguientes para k=1,…,n (n: orden de la matriz [A])
i) Dividir la fila k por ak,k .
ii) Hacer ceros sobre la columna k mediante operaciones fundamentales.
Ejemplo:
El primer paso es obtener la matriz aumentada:
El primer pivote será el elemento a11=-4
[ ]4 7 8
10 6 8
5 7 6
A
− = − − −
[ ]4 7 8 1 0 0
10 6 8 0 1 0
5 7 6 0 0 1
A I
− = − − −
1 111
1 1
1
1
4
F Fa
F F
→
→ −
84
JUAN CARLOS HERRERA SÁNCHEZ
La siguiente operación fundamental es:
( )( )
2 2 1 21
2 2 1 10
F F F a
F F F
→ −
→ −
[ ]
7 11 2 0 0
4 410 6 8 0 1 0
5 7 6 0 0 1
A
− − −
= − − −
[ ]
7 11 2 0 0
4 423 5
0 12 1 02 2
5 7 6 0 0 1
A
− − − = −
La operación el la fila 3 es:
( )( )
3 3 1 31
3 3 1 5
F F F a
F F F
→ −
→ − −
[ ]
7 11 2 0 0
4 423 5
0 12 1 02 27 5
0 4 0 14 4
A
− − − = − − −
85
DETERMINANTES E INVERSIÓN DE MATRICES
Ahora el pivote es el elemento a22=
23
2
[ ]
7 11 2 0 0
4 424 5 2
0 1 023 23 23
7 50 4 0 1
4 4
A
− − − = − − −
Ahora se debe hacer cero el elemento a12
( )1 1 2 12
1 1 2
7
4
F F F a
F F F
→ −
− → −
[ ]
4 3 71 0 0
23 23 4624 5 2
0 1 023 23 23
7 50 4 0 1
4 4
A
− = − − −
2 222
2 2
1
2
23
F Fa
F F
→
→
86
JUAN CARLOS HERRERA SÁNCHEZ
Procedemos a hacer cero el elemento a32
[ ]
4 3 71 0 0
23 23 4624 5 2
0 1 023 23 2350 20 7
0 0 123 23 46
A
− = −
Ahora el pivote es el elemento a33=
50
23
( )3 3 2 32
3 3 2
7
4
F F F a
F F F
→ −
− → −
[ ]
4 3 71 0 0
23 23 4624 5 2
0 1 023 23 23
2 230 0 1 7 /100
5 50
A
− = − −
3 333
3 3
1
23
50
F Fa
F F
→
→
87
DETERMINANTES E INVERSIÓN DE MATRICES
Ahora se debe hacer cero el elemento a13
[ ]
1 7 21 0 0
5 50 2524 5 2
0 1 023 23 23
2 7 230 0 1
5 100 50
A
− = − −
Ahora se debe hacer cero el elemento a23
1
1 7 21 0 0
5 50 251 4 12
0 1 05 25 252 7 23
0 0 15 100 50
I A−
−
− = − −
( )1 1 3 13
1 1 3
4
23
F F F a
F F F
→ −
− → −
( )2 2 3 23
2 2 3
24
23
F F F a
F F F
→ −
→ −
88
JUAN CARLOS HERRERA SÁNCHEZ
Por tanto,
Finalmente se puede comprobar:
1 7 2
5 50 254 7 8 1 0 01 4 12
10 6 4 0 1 05 25 25
5 7 6 0 0 12 7 23
5 100 50
−
− − − − =
− − −
[ ] 1
1 7 2
5 50 251 4 12
5 25 252 7 23
5 100 50
A−
− − = − −
[ ][ ] [ ]1A A I
−=
89
DETERMINANTES E INVERSIÓN DE MATRICES
En el cuadro 3.1 se presenta un programa para la inversión de matrices por el Método de Gauss-Jordan.
% Inversión de matrices%% Metodo de Gauss_Jordan % % close all; clear all
% Definición de la matriz [A]
A=[1 5 2; 1 1 7 ;0 -3 4 ];
[p,k]=size(A);
I=eye(p);
% Definición de la matriz aumentada [M]=[A I]
M = [A I];
for i=1:p
M(i,:)=M(i,:)/M(i,i)
for j=1:p if i~=j M(j,:) = M(j,:)-M(i,:)*M(j,i) end endend
% Matriz Inversa MI
MI = M(:,p+1:p+k)
Cuadro 3.1: Programa en MATLAB del Método de Gauss-Jordan.
90
JUAN CARLOS HERRERA SÁNCHEZ
Ejemplo:
Calcular la inversa de la siguiente matriz:
Solución:
M =
1 5 2 1 0 0
1 1 7 0 1 0
[ ]1 5 2
1 1 7
0 3 4
A
= −
0 -3 4 0 0 1
M =
1 0 0 -25 26 -33
0 1 0 4 -4 5
0 0 1 3 -3 4
MI =
-25 26 -33
4 -4 5
3 -3 4
>> A*MI
M =
1.0000 0 0 -25.0000 26.0000 -33.0000
0 1.0000 -1.2500 0.2500 -0.2500 0
0 0 1.0000 3.0000 -3.0000 4.0000
91
DETERMINANTES E INVERSIÓN DE MATRICES
ans =
1 0 0
0 1 0
0 0 1
3.6 Inversa de una matriz por medio de partición
Para una matriz [A] de orden nxn, su partición se puede expresar de la forma:
[ ][ ]
[ ][ ]
11 12
21 22
rxr rxs
sxr sxr
Α Α Α Α
La ecuación [A][A]-1=[I], se reemplaza por [A][B]-1=[I]. La partición de [B] debe ser igual a la de la matriz [A]. Por tanto:
La ecuación anterior se puede expresar como:
[ ][ ] [ ][ ] [ ]11 11 12 21 1Α Β + Α Β = Ι
[ ][ ] [ ][ ] [ ]11 12 12 22 0Α Β + Α Β =
[ ][ ] [ ][ ] [ ]21 11 22 21 0Α Β + Α Β =
[ ][ ] [ ][ ] [ ]21 12 22 22 2Α Β + Α Β = Ι
[ ][ ]
[ ][ ]
[ ][ ]
[ ][ ]
[ ][ ]
[ ][ ]
11 12 11 12
21 22 21 22
1
2
0
0
rxr rxs rxr rxs
sxr sxr sxr sxr
rxr rxs
sxr sxr
B B
B B
I
I
Α Α Α Α
=
92
JUAN CARLOS HERRERA SÁNCHEZ
De la ecuación tercera ecuación se obtiene:
[ ] [ ] [ ][ ]1
21 22 21 11
−Β = − Α Α Β
Reemplazando en la primera ecuación se obtiene:
[ ][ ] [ ][ ] [ ][ ] [ ]1
11 11 12 22 21 11 1
−Α Β − Α Α Α Β = Ι
Factorizando,
[ ] [ ][ ] [ ] [ ] [ ]1
11 12 22 21 11 1
− Α − Α Α Α Β = Ι
[ ] [ ] [ ][ ] [ ]11
11 11 12 22 21
−− Β = Α − Α Α Α
De la ecuación segunda se puede despejar:
[ ] [ ] [ ][ ]1
12 11 12 22
−Β = − Α Α Β
Reemplazando en la cuarta se obtiene:
De expresión anterior se obtiene:
[ ] [ ] [ ][ ] [ ]11
22 22 21 11 12
−− Β = Α − Α Α Α
Con esta matriz se determina [B12]:
[ ] [ ] [ ][ ]1
12 11 12 22B−
Β = − Α Α
[ ] [ ] [ ][ ] [ ][ ] [ ]
[ ] [ ][ ] [ ] [ ] [ ]
1
21 11 12 22 22 22 2
1
22 21 11 12 22 2
B A I
A I
−
−
Α − Α Α + Β =
− Α Α Α Β =
93
DETERMINANTES E INVERSIÓN DE MATRICES
Finalmente la inversa de [A] se expresa:
Ejemplo:
Calcular la inversa de la matriz [A] usando partición
Efectuando la siguiente partición
Las sub-matrices se definen por:
Calculando el producto:
[ ]1 3 1
2 4 2
3 7 1
− Α = − −
[ ]2 6 1
2 4 2
3 7 1
−
Α = − −
[ ] [ ]
[ ] [ ] [ ] [ ]
11 12
21 22
2 6 1;
2 4 2
3 7 ; 1
− Α = Α = −
Α = − Α =
[ ][ ] [ ] [ ][ ]
[ ][ ] [ ]
1
12 22 21
1
12 22 21
11 3 7
2
3 7
6 14
−
−
Α Α Α = −
− Α Α Α == −
[ ] 1 11 12
21 22
− Β Β Α = Β Β
94
JUAN CARLOS HERRERA SÁNCHEZ
Usando la ecuación para [ ]11Β :
[ ] [ ] [ ][ ] [ ]11
11 11 12 22 21
−− Β = Α − Α Α Α
[ ]1
11
2 6 3 7
2 4 6 14
− − −
Β = − − −
[ ]
[ ]
1
11
92
11 12
2 4
8 18
1
2
−−
Β = − −
Β = −
Empleando la ecuación para [ ]21Β :
Ahora se debe calcular [ ] 1
11
−Α :
[ ]3
1 2
11 12
4 2 21
3 1 12
Τ− − −
Α = = − −−
[ ] [ ][ ]
[ ] [ ]
[ ] [ ]
92
21 12
92
21 12
1 12 221
11 3 7
2
13 7
2
− Β = − − −
− Β = − −
Β = −
95
DETERMINANTES E INVERSIÓN DE MATRICES
Calculamos el producto:
Ahora se calcula [ ]12Β :
[ ] [ ] [ ][ ]1
12 11 12 22B−
Β = − Α Α
[ ]3 5
2 21212 1
2
2 1
1 2 1
− Β = = −
La inversa se obtiene como:
Ejemplo:
Como ejemplo didáctico del manejo de partición de matrices en MATLAB, se repetirá el procedimiento anterior para invertir la matriz:
[ ][ ] [ ] [ ]
[ ] [ ]
[ ] [ ] [ ]{ } [ ]
31 2
21 11 12 12
11
222
2 13 7
1 2
53 7 1
2
1 1
−
−
− − Α Α Α = − = − −
− = − = − −
Β = − − =
[ ]9 5
2 21 11 12 1
2
21 22 1 1 12 2 2
1
2 1−
−Β Β
Α = = − Β Β −
[ ]1 5 2
1 1 7
0 3 4
A
= −
96
JUAN CARLOS HERRERA SÁNCHEZ
Solución:
>> A=[1 5 2;1 1 7 ;0 -3 4 ]
A =
1 5 2
1 1 7
0 -3 4
>> A11=A(1:2,1:2)
A11 =
1 5
1 1
>> A12=A(1:2,3)
A12 =
2
7
>> A21=A(3,1:2)
A21 =
0 -3
>> A22=A(3,3)
A22 =
4
Cálculo de [ ] [ ] [ ][ ] [ ]11
11 11 12 22 21
−− Β = Α − Α Α Α
97
DETERMINANTES E INVERSIÓN DE MATRICES
>> B11=inv(A11-A12*inv(A22)*A21)
B11 =
-25 26
4 -4
Cálculo de [ ] [ ] [ ][ ]1
21 22 21 11
−Β = − Α Α Β
>> B21=-inv(A22)*A21*B11
B21 =
3 -3
Cálculo de [ ] [ ] [ ][ ] [ ]11
22 22 21 11 12
−− Β = Α − Α Α Α
>> B22=inv(A22-A21*inv(A11)*A12)
B22 =
4
Cálculo de [ ] [ ] [ ][ ]1
12 11 12 22B−
Β = − Α Α
>> B12=-inv(A11)*A12*B22
B12 =
-33
5
98
JUAN CARLOS HERRERA SÁNCHEZ
Cálculo de [ ] 1 11 12
21 22
− Β Β Α = Β Β
>> AI=[B11 B12;B21 B22]
AI =
-25 26 -33
4 -4 5
3 -3 4
3.7 Referencias bibliográficas
Kiusalaas, J. Numerical Methods in Engineering with MATLAB. Cambridge University Press, 2009.
Kolman, B. Algebra lineal con aplicaciones y Matlab. Prentice Hall Hispanoamericana, México, D.F., 1999.
Laub, A. Matrix Analysis for Scientists and Engineers.
SIAM: Society for Industrial and Applied Mathematics. Philadelphia, 2004.
Mathews J, Fink, K. Métodos numéricos con MATLAB, Madrid, Prentice Hall, 2000.
Hsieh, Y. Teoría elemental de estructuras. Prentice Hall Hispanoamericana, México, D.F., 1970.
Uribe, J. Microcomputadores en ingeniería estructural. Ecoe Ediciones, Colombia, 1995
Watkins, D. Fundamentals of Matrix Computations.Wiley Interscience, New York, 2002.
Yang, W. Y et. al. Applied Numerical Methods Using MATLAB. Wiley-Interscience, 2005.
3.8 Problemas
1) Calcular la matriz cofactor [ ]A dada la siguiente matriz:
99
DETERMINANTES E INVERSIÓN DE MATRICES
2) Calcular el determinante usando la expansión de Laplace de la matriz [A] que se da a continuación:
3) Calcule por condensación pivotal el determinante de [A]:
4) Calcular la inversa de la siguiente matriz usando la matriz adjunta.
5) Use el programa en MATLAB del Método de Gauss-Jordan del cuadro 3.1, para calcular la inversa de la siguiente matriz:
6) Verificar el resultado del problema anterior usando MATLAB.
[ ]2 7 2
1 1 7
4 3 0
A
= −
[ ]2 8 11
1 6 16
2 0 21
A
− = − −
2 1 0 6
1 2 4 10
3 0 1 8
3 2 4 2
A
−
−=
−
[ ]4 5 2
4 1 7
0 3 4
A
= −
[ ]4 7 8
10 6 8
5 7 6
A
− = − − −
101
Capítulo 4
Solución de sistemas de ecuaciones lineales
Dentro de las muchas aplicaciones del algebra matricial en ingeniería, esta la solución de sistemas de ecuaciones lineales para problemas encontrados en diferentes disciplinas como análisis de estructuras, circuitos eléctricos, flujos en redes, conducción de calor, distribución de recursos, etc.
4.1 Forma matricial de las ecuaciones
Un sistema de n ecuaciones lineales simultáneas con n incógnitas de la forma:
se puede escribir en forma matricial como:
Las ecuaciones anteriores se pueden expresar como:
[ ][ ] [ ]x bΑ =
11 1 12 2 1 1
21 1 22 2 2 2
1 1 2 2
n n
n n
n n nn n n
a x a x a x b
a x a x a x b
a x a x a x b
+ + + =
+ + + =
+ + + =
L
L
M
L
11 12 1 1 1
21 22 2 2 2
1 2
n
n
n n nn n n
a a a x b
a a a x b
a a a x b
=
L
L
M M O M M M
L
102
JUAN CARLOS HERRERA SÁNCHEZ
Donde,
[ ]
1
2
n
x
xx
x
=
M
[ ]
1
2
n
b
bb
b
=
M
La solución del sistema de ecuaciones [ ][ ] [ ]x bΑ = en MATLAB se calcula por medio de la instrucción A\b.
4.2 Solución por inversión de matrices
Un sistema de n ecuaciones lineales simultáneas se puede resolver usando la inversa de la matriz de coeficientes [A], si .
Dado el sistema:
[ ][ ] [ ]x bΑ =
pre-multiplicando ambos lados de la ecuación por [A]-1
[ ]
11 12 1
21 22 2
1 2
n
n
n n nn
a a a
a a aA
a a a
=
L
L
M M O M
L
[ ] [ ][ ] [ ] [ ][ ][ ] [ ] [ ]
1 1
1
A x A b
I x A b
− −
−
Α =
=
0A ≠
103
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
El vector de incógnitas se calcula entonces por:
[ ] [ ] [ ]1x A b
−=
Ejemplo:
Solucionar el sistema de ecuaciones siguiente usando inversión
Las ecuaciones anteriores se pueden escribir:
Primero, calculamos A :
La matriz cofactor [ ]A se calcula como:
1 2 3
1 3
2 3
5 2
4 2 6
4
x x x
x x
x x
+ + =
+ =
+ =
1
2
3
1 5 1 2
0 4 2 6
0 1 1 4
x
x
x
=
2 4 2(1) 1(4 2)
1 1
2
A
A
= = −
=
2 0 0
4 1 1
6 2 4
A
= − − −
104
JUAN CARLOS HERRERA SÁNCHEZ
Luego se calcula la matriz ( )[ ]Adj A :
( )2 4 6
[ ] 0 1 2
0 1 4
Adj A
− = − −
Finalmente la inversa se calcula por:
( )2 0 0
[ ] 4 1 1
6 2 4
T
T
Adj A A
= = − − −
[ ] ( )
[ ]
1
1
[ ]
2 4 6
0 1 2
0 1 4
2
T
AAdj AA
A A
A
−
−
= =
− − − =
[ ] 1
1 2 3
0 0.5 1
0 0.5 2
A−
− = − −
105
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
La solución del sistema es:
Ejemplo:
Verificar la solución anterior en MATLAB.
>> A=[1 5 1;0 4 2;0 1 1]
A =
1 5 1
0 4 2
0 1 1
>> b=[2 6 4]’
b =
2
6
4
>> % solución
>> x=A\b
[ ] [ ] [ ]
[ ]
1
1 2 3 2
0 0.5 1 6
0 0.5 2 4
x A b
x
−=
− = − −
[ ]2
1
5
x
= −
106
JUAN CARLOS HERRERA SÁNCHEZ
x =
2
-1
5
4.3 Regla de Cramer
El Método de Cramer para resolver un sistema de ecuaciones, hace uso del desarrollo de determinantes para obtener la inversa de una matriz.
[ ] [ ] [ ]1x A b
−=
Recordando que:
Entonces,
Dado que:
{ } ( ) [ ]
{ } [ ]
[ ]
T
Adj Ax b
A
Ax b
A
=
=
11 21 1
12 22 2
1 2
n
T n
ni
n n jn nn
A A A
A A AA
A
A A A A
=
L
L
M M O
[ ] ( )1 [ ]T
AAdj AA
A A
− = =
107
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
Entonces la solución del sistema se obtiene como:
Efectuando el producto de la derecha se obtiene:
Despejando los valores de xi
El numerador de cada ecuación corresponde a la expansión de un determinante por cofactores, la cual se puede escribir como:
11 21 11 1
12 22 22 2
1 2
1
n
n
ni
n n jn nnn n
A A Ax b
A A Ax b
AA
A A A Ax b
=
L
L
M M OK K
1 1 11 2 21 1
2 1 12 2 22 2
1 1 2 2
1n n
n n
n n n n nn
x b A b A b A
x b A b A b A
x b A b A b A
+ + + + = Α
+ +
K K K K K K
1 11 2 21 11
1 12 2 22 22
1 1 2 2
n n
n n
i
n n n nnn
b A b A b Ax
b A b A b Ax
x
b A b A b Ax
+ + +=
Α
+ + +=
Α
=
+ + +=
Α
K
K
KKKKKKKKKK
K
1 12 13 1
2 22 23 2
1 31
n
n
n n n n
b a a a
b a a a
b a a bx =
Α
K
K
K K K K K
K
108
JUAN CARLOS HERRERA SÁNCHEZ
Ejemplo:
Resolver por la regla de Cramer el sistema [ ][ ] [ ]A x b=
Solución:
11 1 13 1
21 2 23 2
1 32
n
n
n n n nn
a b a a
a b a a
a b a ax =
Α
K
K
K K K K K
K
11 12 13 1
21 22 23 2
1 2 3n n n n
n
a a a b
a a a b
a a a bx =
Α
K
K
K K K K K
K
[ ] [ ]2 4 1 11
1 3 2 16
2 3 5 21
b
− Α = − − = − −
1
11 4 1
16 3 2
21 3 5 382
2 4 1 19
1 3 2
2 3 5
x
−
− −
−= = =
− −
−
109
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
4.4 Método de Eliminación de Gauss
Otro procedimiento para resolver sistemas de ecuaciones lineales que también se basa en transformaciones fundamentales sobre filas de una matriz, es el clásico Método de Eliminación de Gauss. El procedimiento general para la solución de sistemas de ecuaciones, consta básicamente de dos pasos:
1) Reducir la matriz de coeficientes de un sistema dado de ecuaciones a una matriz triangular superior usando las transformaciones fundamentales.
2) Hallar la solución del sistema de ecuaciones resolviendo el sistema triangular superior obtenido en el paso anterior. Después de la primera etapa se obtiene una matriz aumentada de la forma:
2
2 11 1
1 16 2
2 21 5 764
19 19x
−
− − −
−= = = −
3
2 4 11
1 3 16
2 3 21 191
19 19x
−
− −
−= = =
[ ]
11 12 1 1
21 22 2 2
1 2
n
n
n n nn n
A A A b
A A A bA b
A A A b
′ ′ ′ = ′
L
L
M M M
L
110
JUAN CARLOS HERRERA SÁNCHEZ
La ultima ecuación, da como resultado:
Se puede determina xk de la k-ésima ecuación:
( ), 1 1
1k k k k k kn n
kk
x b A x A xA
+ +′= − − −L
La expresión anterior se puede escribir como:
1
1 n
k k kj j
j kkk
x b A xA = +
′= −
∑ , 1, 2, ,1k n n= − − L
Ejemplo:
Resolver el sistema de ecuaciones:
Las ecuaciones anteriores se pueden escribir:
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
2 3 2 15
2 2 13
4
3 2 3
x x x x
x x x x
x x x x
x x x x
− − + =
− + + − = −
− + + =
+ − − =
1
2
3
4
2 3 1 2 15
1 1 2 2 13
1 1 1 1 4
3 2 1 1 3
x
x
x
x
− − − − − = − − −
, 1 1kk k k k k kn n kA x A x A x b+ + ′+ + + =L
nn
nn
bx
A
′=
111
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
El cual tiene la forma:
Primero se obtiene la matriz aumentada:
2 3 1 2 15
1 1 2 2 13
1 1 1 1 4
3 2 1 1 3
− − − − − − − −
La primera operación es convertir a la unidad el elemento a11
3 1 151 1
2 2 21 1 2 2 13
1 1 1 1 4
3 2 1 1 3
− − − − − −
− −
La siguiente operación fundamental es:
[ ][ ] [ ]A x b=
[ ]A b
1 111
1 1
1
1
2
F Fa
F F
→
→
( )( )
2 2 1 21
2 2 1 1
F F F a
F F F
→ −
→ − −
112
JUAN CARLOS HERRERA SÁNCHEZ
Las operaciones en las fila 3 y 4 son:
3 1 151 1
2 2 21 3 11
0 12 2 21 3 7
0 02 2 2
3 2 1 1 3
− −
− − − − − −
3 1 151 1
2 2 21 3 11
0 12 2 2
1 1 1 1 4
3 2 1 1 3
− −
− − − − − − −
( )( )
3 3 1 31
3 3 1 1
F F F a
F F F
→ −
→ −
( )( )
4 4 1 41
4 4 1 3
F F F a
F F F
→ −
→ −
3 1 151 1
2 2 21 3 11
0 12 2 21 3 7
0 02 2 2
13 1 390 4
2 2 2
− −
− − − − −
−
113
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
Ahora en la diagonal principal se convierte a uno el elemento a
22:
3 1 151 1
2 2 20 1 3 2 11
1 3 70 0
2 2 213 1 39
0 42 2 2
− −
− − −
−
Ahora se deben hacer cero los elementos a32 y a
42
3 1 151 1
2 2 20 1 3 2 11
0 0 3 1 9
13 1 390 4
2 2 2
− −
− − −
− −
( )
2 222
2 2
1
2
F Fa
F F
→
→ −
( )3 3 1 32
3 3 1
1
2
F F F a
F F F
→ −
→ −
114
JUAN CARLOS HERRERA SÁNCHEZ
La operación para la fila 4 es:
3 1 151 1
2 2 20 1 3 2 11
0 0 3 1 9
0 0 20 17 91
− −
− − −
− −
Ahora se reduce a la unidad el elemento a33
3 1 151 1
2 2 20 1 3 2 11
10 0 1 3
30 0 20 17 91
− −
− −
− − −
Finalmente se debe hacer cero el elemento a43
( )( )
4 4 1 41
4 4 1 3
F F F a
F F F
→ −
→ −
3 333
3 3
1
1
3
F Fa
F F
→
→
( )( )
4 4 3 43
4 4 3 20
F F F a
F F F
→ −
→ −
115
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
Ahora la solución se obtiene usando sustitución hacia atrás. Debemos resolver el sistema:
En forma de ecuaciones se tiene:
Al resolver usando sustitución hacia atrás, obtenemos:
3 1 151 1
2 2 20 1 3 2 11
10 0 1 3
331
0 0 0 313
− −
− −
− −
−
3 1 1512 2 2
2
133
3143
1 1
0 1 3 2 11
0 0 1 3
0 0 0 31
x
x
x
x
− −
−
−
− = −
−
3 1511 2 3 42 2 2
2 3 4
13 43
3143
2 2
3 2 11
3
31
x x x x
x x x
x x
x
− − + =
− + =
− = −
− = −
3143
4
31
3
x
x
− = −
=
116
JUAN CARLOS HERRERA SÁNCHEZ
Ahora resolviendo la tercera ecuación:
Se resuelve la segunda ecuación usando los valores de x3 y x
4 :
Finalmente resolvemos la primera ecuación:
Ejemplo:
Resolver el sistema de ecuaciones:
13 43
13 3
3
3
(3) 3
2
x x
x
x
− = −
− = −
= −
2 3 4
2
2
3 2 11
3( 2) 2(3) 11
1
x x x
x
x
− + =
− − + =
= −
3 1511 2 3 42 2 2
3 1511 2 2 2
1
2 2
2 ( 1) ( 2) 2(3)
2
x x x x
x
x
− − + =
− − − − + =
=
1 2 3
1 2 3
1 2 3
2 1
1
5 3 3
x x x
x x x
x x x
− + =
+ − = −
− + =
117
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
La matriz aumentada es:
1 2 1 1
1 1 1 1
1 5 3 3
− − − −
El rango de [A] es 2 y el rango de la matriz aumentada también es 2, por tanto no existe una solución única del sistema. Se puede obtener la solución para dos de las incógnitas en términos de una tercera incógnita.
Para convertir en cero los elementos a21 y a
31 las operaciones
son:
( )( )
2 2 1 21
2 2 1 1
F F F a
F F F
→ −
→ − −
1 2 1 1
0 3 2 2
1 5 3 3
− − − −
( )( )
3 3 1 31
3 3 1 1
F F F a
F F F
→ −
→ −
1 2 1 1
0 3 2 2
0 3 2 2
− − − −
[ ]A b
118
JUAN CARLOS HERRERA SÁNCHEZ
En la diagonal principal se convierte a uno el elemento a22:
1 2 1 1
2 20 1
3 30 3 2 2
− − − −
Ahora se deben hacer cero el elemento a32 :
1 2 1 1
2 20 1
3 30 0 0 0
− − −
Una solución para x1 y x
2 en términos de x
3 se puede obtener
como:
2 222
2 2
1
1
3
F Fa
F F
→
→
( )( )
3 3 1 32
3 3 1 3
F F F a
F F F
→ −
→ − −
1 2 3
2 3
2 1
2 2
3 3
x x x
x x
− + =
− = −
119
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
De las ecuaciones anteriores se obtiene:
Sustituyendo la solución para x2 se obtiene x
1
1 3
1 1
3 3x x
= −
En el Cuadro 4.1 se presenta el programa en MATLAB para la solución de un sistema de ecuaciones por el Método de Eliminación de Gauss.
2 3
1 2 3
2 2
3 3
2 1
x x
x x x
= −
= − +
( )
2 3
21 3 33
2 2
3 3
22 1
3
x x
x x x
= −
= − − +
120
JUAN CARLOS HERRERA SÁNCHEZ
% Método de Eliminación de Gauss %%% Solución del sistema de ecuaciones lineales:% % [A]{x}={b}%% Definición de la matriz [A] y vector [b]
A=[15 -5 0;-5 15 -5;0 -5 20]b=[20 0 0]’
% Definición de la matriz aumentada [M]=[A b]
M = [A b];p = size(M,1);
for i=1:p for j=i+1:p
M(j,:) = M(j,:)-M(i,:)*M(j,i)/M(i,i) endend
for i=p:-1:1
M(i,:) = M(i,:)/M(i,i)
for j=i-1:-1:1 M(j,:) = M(j,:)-M(i,:)*M(j,i)
endend
% Solución {x}
x = M(:,p+1)
Cuadro 4.1: Programa en MATLAB del Método de Eliminación de Gauss.
121
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
Ejemplo:
Utilizar el programa anterior de MATLAB, para resolver el sistema
Solución:
M =
-4 7 8 1
10 -6 -8 0
-5 7 6 0
M =
1.0000 0 0 0.2000
0 1.0000 0 -0.2000
0 0 1.0000 0.4000
x =
0.2000
-0.2000
0.4000
Solución para múltiples vectores.
En ocasiones se debe resolver ecuaciones de la forma [ ][ ] [ ]A X b= para diferentes vectores [b]. En general se tienen m vectores definidos por ,…, y sus soluciones definidas por ,…, -----. El conjunto de múltiples ecuaciones se puede escribir como:
1
2
3
4 7 8 1
10 6 8 0
5 7 6 0
x
x
x
− − − = −
[ ]1b [ ]m
b 1[ ]x
[ ]mx
122
JUAN CARLOS HERRERA SÁNCHEZ
[ ][ ] [ ]A X B=
Donde,
[ ]X y [ ]B son matrices de orden (n×m) cuyas columnas corresponden a los vectores solución y los vectores constantes.
En el Cuadro 4.2 se presenta el programa en MATLAB para la solución de un sistema de ecuaciones con múltiples vectores, por el Método de Eliminación de Gauss.
Ejemplo:
Solucionar el sistema [ ][ ] [ ]A X B=
Donde,
[ ] [ ]
[ ] [ ]
1
1
{ } { }
{ } { }
m
m
X x x
B b b
=
=
L
L
[ ]
[ ]
6 4 1
4 6 4
1 4 6
14 22
36 18
6 7
A
B
− = − − −
− = −
123
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
La matriz aumentada es:
[ ]A B
Las primeras operaciones son:
6 4 1 14 22
10 10 80 100
3 3 3 310 35 25 10
03 6 3 3
− − − − −
Para hacer cero el elemento a32
3 3 2F F F→ +
6 4 1 14 22
4 6 4 36 18
1 4 6 6 7
− − − − − −
2 2 1
2 3 1
2
3
1
6
F F F
F F F
→ +
→ +
6 4 1 14 22
10 10 80 100
3 3 3 35
0 0 35 02
− − − −
124
JUAN CARLOS HERRERA SÁNCHEZ
Para obtener el primer vector solución {x}1, usamos sustitución
hacia atrás:
De la segunda ecuación:
Finalmente,
Se repite para el segundo vector solución {x}2:
3 0x =
3
3
535
2
14
x
x
=
=
2 3
2
10 10 80
3 3 3
3 80 1014 22
10 3 3
x x
x
− =
= + =
[ ]
1 2 3
1 2 3
1
6 4 14
14 4
114 4(22) 14 10
6
x x x
x x x
x
− + = −
= − + −
= + − =
125
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
De la segunda ecuación:
Finalmente, de la primera ecuación:
1 2 36 4 22x x x− + =
[ ]1 2 3
122 4
6x x x= + −
[ ]1
122 4( 1) 3
6x = + − =
2 3
2
10 10 10
3 3 3
3 100 1
10 3
x x
x
− = −
= − + = −
% Método de Eliminación de Gauss %%% Solución del sistema de ecuaciones lineales:% Vectores múltiples %% % [A][X]=[B]%%close all; clear all
% Definición de [A] , [B]
A=[-4 7 8; 10 -6 -8;-5 7 6]B=[5 0 0;10 0 0;15 0 0]’
126
JUAN CARLOS HERRERA SÁNCHEZ
% Definición de la matriz aumentada [M]=[A B]
M = [A B];[p,k]=size(b);
for i=1:p for j=i+1:p
M(j,:) = M(j,:)-M(i,:)*M(j,i)/M(i,i) endend
for i=p:-1:1 M(i,:) = M(i,:)/M(i,i)
for j=i-1:-1:1 M(j,:) = M(j,:)-M(i,:)*M(j,i) endend
% Solución [X]
X = M(:,p+1:p+k)
Cuadro 4.2: Programa del Método de Eliminación de Gauss: vectores múltiples.
127
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
Ejemplo:
Utilizar el programa anterior de MATLAB, para resolver el sistema
Solución:
M =
-4 7 8 1 10
10 -6 -8 0 0
-5 7 6 0 0
M =
1.0000 0 0 0.2000 2.0000
0 1.0000 0 -0.2000 -2.0000
0 0 1.0000 0.4000 4.0000
X =
0.2000 2.0000
-0.2000 -2.0000
0.4000 4.0000
4.5 Método de Gauss-Jordan
El Método de Gauss-Jordan es similar al Método de Eliminación de Gauss, pero primero hace el pivote igual a 1, y luego hace ceros en toda la columna del pivote. En el Método de Gauss-Jordan primero se hace el pivote igual a uno, después se hacen cero los
1
2
3
4 7 8 1 10
10 6 8 0 0
5 7 6 0 0
x
x
x
− − − = −
128
JUAN CARLOS HERRERA SÁNCHEZ
elementos arriba y abajo del pivote. En la etapa de eliminación, se crea una matriz identidad. De esa forma, la solución del sistema de ecuaciones queda en la última columna de la matriz aumentada
Ejemplo:
Resolver el sistema de ecuaciones
El primer paso es obtener la matriz aumentada:
El primer pivote será el elemento a11=-4
[ ]
7 11 24 410 6 8 0
5 7 6 0
A b
− − − = − − −
1
2
3
4 7 8 1
10 6 8 0
5 7 6 0
x
x
x
− − − = −
[ ]4 7 8 1
10 6 4 0
5 7 6 0
A b
− = − − −
1 111
1 1
1
1
4
F Fa
F F
→
→ −
129
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
( )( )
2 2 1 21
2 2 1 10
F F F a
F F F
→ −
→ −
La siguiente operación fundamental es:
La operación el la fila 3 es:
[ ]
7 11 24 423 50 122 2
7 50 44 4
A b
− − − = − − −
Ahora el pivote es el elemento a22=
23
2
[ ]
7 11 24 423 50 122 2
5 7 6 0
A b
− − − = −
( )( )
3 3 1 31
3 3 1 5
F F F a
F F F
→ −
→ − −
2 222
2 2
1
2
23
F Fa
F F
→
→
130
JUAN CARLOS HERRERA SÁNCHEZ
Ahora se debe hacer cero el elemento a12
[ ]
341 0 23 235240 1 23 23
7 50 44 4
A b
− − = − − −
Ahora se debe hacer cero el elemento a32
[ ]
7 11 24 45240 1 23 23
7 50 44 4
A b
− − − = − − −
( )1 1 2 12
1 1 2
7
4
F F F a
F F F
→ −
− → −
[ ]
341 0 23 235240 1 23 23
50 200 0 23 23
A b
− − = −
( )3 3 2 32
3 3 2
7
4
F F F a
F F F
→ −
− → −
131
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
Ahora el pivote es el elemento a33=
50
23
[ ]
341 0 23 235240 1 23 2320 0 1 5
A b
− − =
Ahora se debe hacer cero el elemento a13
[ ]
11 0 0 55240 1 23 2320 0 1 5
A b
=
Ahora se debe hacer cero el elemento a23
3 333
3 3
1
23
50
F Fa
F F
→
→
( )1 1 3 13
1 1 3
4
23
F F F a
F F F
→ −
− → −
( )2 2 3 23
2 2 3
24
23
F F F a
F F F
→ −
→ −
132
JUAN CARLOS HERRERA SÁNCHEZ
La solución por tanto es:
En el cuadro 4.3 se presenta el programa en MATLAB para la solución de un sistema de ecuaciones por el Método de Gauss-Jordan.
*
11 0 0 510 1 0 5
20 0 1 5
I b
= −
1
2
3
15
15
25
x
x
x
=
= −
=
133
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
% Método de Gauss_Jordan %%% Solución del sistema de ecuaciones lineales:% % [A]{x}={b}%close all; clear all
% Definicion de la matriz [A] y vector [b]
A=[-4 7 8; 10 -6 -8;-5 7 6];b=[1 0 0]’;
% Matriz aumentada [M]=[A b]
M = [A b];p = size(M,1);
for i=1:p
M(i,:)=M(i,:)/M(i,i)
for j=1:p if i~=j M(j,:) = M(j,:)-M(i,:)*M(j,i) end endend
% Solución {x}
x = M(:,p+1)
Cuadro 4.3: Programa en MATLAB del Método Gauss-Jordan.
134
JUAN CARLOS HERRERA SÁNCHEZ
Ejemplo:
La siguiente es la solución paso a paso del problema anterior.
M =
1.0000 -1.7500 -2.0000 -0.2500
10.0000 -6.0000 -8.0000 0
-5.0000 7.0000 6.0000 0
M =
1.0000 -1.7500 -2.0000 -0.2500
0 11.5000 12.0000 2.5000
-5.0000 7.0000 6.0000 0
M =
1.0000 -1.7500 -2.0000 -0.2500
0 11.5000 12.0000 2.5000
0 -1.7500 -4.0000 -1.2500
M =
1.0000 -1.7500 -2.0000 -0.2500
0 1.0000 1.0435 0.2174
0 -1.7500 -4.0000 -1.2500
M =
1.0000 0 -0.1739 0.1304
0 1.0000 1.0435 0.2174
0 -1.7500 -4.0000 -1.2500
135
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
M =
1.0000 0 -0.1739 0.1304
0 1.0000 1.0435 0.2174
0 0 -2.1739 -0.8696
M =
1.0000 0 -0.1739 0.1304
0 1.0000 1.0435 0.2174
0 0 1.0000 0.4000
M =
1.0000 0 0 0.2000
0 1.0000 1.0435 0.2174
0 0 1.0000 0.4000
M =
1.0000 0 0 0.2000
0 1.0000 0 -0.2000
0 0 1.0000 0.4000
x =
0.2000
-0.2000
0.4000
El programa del cuadro 4.3 (Método de Gauss-Jordan) se puede extender para solucionar sistemas con múltiples vectores, el cual se presenta en el cuadro 4.4.
136
JUAN CARLOS HERRERA SÁNCHEZ
% Metodo de Gauss_Jordan %%% Solucion del sistema de ecuaciones lineales:% % [A][X]=[B]%
close all; clear all
% Definición de las matrices [A], [B]
A=[-4 7 8; 10 -6 -8;-5 7 6];
B=[10 0 0;0 5 0]’;
% Matriz aumentada [M]=[A B]
M = [A B];
[p,k]=size(B);
for i=1:p
M(i,:)=M(i,:)/M(i,i)
for j=1:p if i~=j M(j,:) = M(j,:)-M(i,:)*M(j,i) end endend
% Solución [X]
X = M(:,p+1:p+k)
Cuadro 4.4: Programa del Método de Gauss-Jordan: vectores múltiples.
137
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
Ejemplo:
Utilizar el programa anterior de MATLAB, para resolver el sistema
>>
M =
-4 7 8 0 5
10 -6 -8 10 10
-5 7 6 0 0
M =
1.0000 0 0 1.4000 2.4000
0 1.0000 0 1.6000 0.6000
0 0 1.0000 -0.7000 1.3000
X =
1.4000 2.4000
1.6000 0.6000
-0.7000 1.3000
4.6 Método de Cholesky
En ciertas aplicaciones de ingeniería para la solución de grandes sistemas de ecuaciones, se presentan algunas propiedades de matrices, que son de gran utilidad en la solución del problema. Es el caso de ecuaciones encontradas en Ingeniería Estructural. Este tipo especial de matrices son de banda, reales, simétricas y definida-positivas.
1
2
3
4 7 8 0 5
10 6 8 10 10
5 7 6 0 0
x
x
x
− − − = −
138
JUAN CARLOS HERRERA SÁNCHEZ
Si una matriz [A]nxn
es simétrica, y definida-positiva, se puede descomponer de la forma:
[ ][ ][ ]T
A G G=
Donde:
[ ]nxnG : Matriz triangular inferior
[ ]T
nxnG : Matriz triangular superior
Por tanto la solución del sistema [ ][ ] [ ]A X B= se simplifica computacionalmente re-escribiendo:
[ ][ ] [ ] [ ]TG G X B=
La anterior ecuación se puede resolver por un par de ecuaciones expresadas de la forma:
[ ][ ] [ ]G Y B=
[ ] [ ] [ ]TG X Y=
Ejemplo:
Resolver el sistema
[ ][ ] [ ]A X B=
Donde,
[ ]
1 1 1 2
1 5 3 0
1 3 3 0
2 0 0 7
A
− − − − = −
[ ]
1
2
3
4
x
xX
x
x
=
[ ]
2
4
4
1
B
− =
139
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
a) El primer paso es obtener la matriz [G]:
11 11 1 1g a= = =
2121 1
1
ag = = −
3131 1
1
ag = =
4141 2
1
ag = =
222 22 21 5 1 2g a g= − = − =
( )( )32 31 2132
22
3 1 11
2
a g gg
g
− − −−= = = −
( )( )42 41 2142
22
0 2 11
2
a g gg
g
− −−= = =
( ) ( )2 233 33 31 32 3 1 1 1g a g g= − + = − + =
43 41 31 42 3243
33
a g g g gg
g
− −=
( )( ) ( )( )43
0 2 1 1 11
1g
− − −= = −
140
JUAN CARLOS HERRERA SÁNCHEZ
La matriz que se obtiene es:
b) A continuación se debe resolver:
[ ][ ] [ ]G Y B=
La matriz aumentada es:
Resolviendo para 1y :
1 2y =
Resolviendo la segunda ecuación:
2 1
2
2 4 4 2 2
1
y y
y
= − + = − + = −
= −
( )
( )
2 2 244 44 41 42 43
44 7 1 1 4 1
g a g g g
g
= − + +
= − + + =
[ ]
1 0 0 0
1 2 0 0
1 1 1 0
2 1 1 1
G
− = − −
1 0 0 0 2
1 2 0 0 4
1 1 1 0 4
2 1 1 1 1
− − − −
141
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
Resolviendo la tercera ecuación :
Y finalmente se resuelve la última ecuación:
c) El tercer paso es resolver la ecuación:
[ ] [ ] [ ]TG X Y=
La matriz aumentada que se obtiene es:
Resolviendo la cuarta ecuación para 4x :
4 1x = −
Resolviendo la tercera ecuación para 3x , se obtiene:
Resolviendo la segunda ecuación para 2x :
2 3 4
2
2 1 1 0 1
0
x x x
x
= − + − = − + +
=
3 2 1
3
4 4 1 2
1
y y y
y
= + − = − −
=
4 3 2 1
4
1 2 1 1 1 4
1
y y y y
y
= + − − = + + −
= −
1 1 1 2 2
0 2 2 1 1
0 0 1 1 1
0 0 0 1 1
− − − −
−
3 4
3
1 1 1
0
x x
x
= + = −
=
142
JUAN CARLOS HERRERA SÁNCHEZ
Finalmente,
La solución es:
4.7 Factorización LU
Si la matriz [A] es de orden m × n y se puede escribir como el producto de dos matrices:
[ ] [ ][ ]A L U=
donde [L] es una matriz triangular inferior de orden m×m y [U] es una matriz triangular superior de orden m×n. Para una matriz de orden 3x3 tiene la forma:
y una matriz inferior
Considérese el sistema [ ][ ] [ ]L x c=
1 2 3 4
1
2 2 2 0 0 2
4
x x x x
x
= + − − = + + +
=
1
2
3
4
4
0
0
1
x
x
x
x
=
=
=
= −
11 12 13
22 23
33
[ ] 0
0 0
U U U
U U U
U
=
11
21 22
31 32 33
0 0
[ ] 0
L
L L L
L L L
=
143
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
Si se resuelven las ecuaciones comenzando por la primera, las soluciones toman la forma:
11
11
cx
L=
2 2 21 122
1( )x c L x
L= −
3 3 31 1 32 233
1( )x c L x L x
L= − +
El procedimiento anterior se conoce como substitución hacia adelante, y es similar al proceso de substitución hacia atrás o regresiva usado en el Método de Eliminación de Gauss.
Dado un sistema de ecuaciones:
[ ][ ] [ ]A x f=
se puede escribir la anterior ecuación:
Si se define [ ] [ ][ ]y U x= entonces,
11 1 1
21 1 22 2 2
31 1 32 2 33 3 3
L x c
L x L x c
L x L x L x c
=
+ =
+ + =
[ ][ ] [ ] [ ][ ][ ] [ ][ ]( ) [ ]
([ ][ ])
[ ]
A x L U x f
A x L U x f
= =
= =
144
JUAN CARLOS HERRERA SÁNCHEZ
[ ][ ] [ ][ ] [ ]A x L z f= =
Como [L] es una matriz triangular superior este sistema puede resolverse mediante una sustitución hacia abajo. Una vez se calcula [z], se puede obtener el vector de incógnitas [x]:
[ ][ ] [ ]U x z=
Como la matriz [U] es triangular superior, el sistema de ecuaciones se puede resolver mediante sustitución hacia atrás.
Ejemplo:
Dada la matrices [K], [L], [U] y [f] aplique la descomposición LU,
para resolver el sistema de ecuaciones [ ][ ] [ ]K x f=
[ ]1 0 0 4 2 1
[ ][ ] 5 1 0 0 3 7
2 3 1 0 0 2
K L U
− = = − −
Primero se debe resolver [ ][ ] [ ][ ] [ ]A x L z f= =
1
2
3
4 2 1 10
20 7 12 65
8 13 17 15
x
x
x
− − = −
1
2
3
1 0 0 10
5 1 0 65
2 3 1 15
z
z
z
= −
145
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
Por eliminación, nos queda:
z1=10
z2=65-5(10)=15
z3=15+2(10)-3(15)=-10
Ahora debemos resolver el sistema [ ][ ] [ ]U x z=
En forma de ecuaciones queda:
4 x1 − 2 x
2 + x
3 = 10
3 x2 + 7 x
3 = 15
− 2 x3 = −10
Al resolver usando sustitución hacia atrás, obtenemos:
x3 = 5.0
x2 = 5-7(5)/3=-6.667
x1 = 2.5 -5/4+2(-6.667)/4=-2.084
1
2
3
4 2 1 10
0 3 7 15
0 0 2 10
x
x
x
− = − −
146
JUAN CARLOS HERRERA SÁNCHEZ
4.8 Referencias
Beaufait, F. W. y Cliff, W. Computer Methods of Structural
Analysis. Prentice Hall, 1970.Kiusalaas, J. Numerical Methods in Engineering with MATLAB.
Cambridge University Press, 2009.Laub, A. Matrix Analysis for Scientists and Engineers.
SIAM: Society for Industrial and Applied Mathematics. Philadelphia, 2004.
Mathews J, Fink, K. Métodos Numéricos con MATLAB, Madrid, Prentice Hall, 2000.
Hsieh, Y. Teoría Elemental de Estructuras. Prentice Hall Hispanoamericana, México, D.F., 1970.
Uribe, J. Microcomputadores en Ingeniería Estructural. Ecoe Ediciones, Colombia, 1995.
Watkins, D. Fundamentals of Matrix Computations.Wiley Interscience, New York, 2002.
Yang, W. Y et. Al. Applied Numerical Methods Using MATLAB. Wiley-Interscience, 2005.
4.9 Problemas
1) Solucionar el sistema de ecuaciones siguiente usando inversión. Verificar la solución usando MATLAB.
2) Resolver por la regla de Cramer el sistema [ ][ ] [ ]A x b=
1 2 3
1 3
2 3
5 1
4 2 3
2
x x x
x x
x x
+ + =
+ =
+ =
[ ] [ ]2 4 1 10
1 3 2 5
2 3 5 0
b
Α = − − = −
147
SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES
3) Resolver el problema 2 por el Método de Eliminación de Gauss.
4) Resolver el sistema de ecuaciones, por el Método de Eliminación de Gauss.
5) Resolver por el Método de Gauss-Jordan el sistema
[ ][ ] [ ]A x b=
[ ] [ ]15 5 0 10
5 15 5 0
0 5 20 0
b
− Α = − = −
6) Resolver por el Método de Gauss-Jordan el sistema
[ ][ ] [ ]A X B=
[ ] [ ]15 5 0 5 15 10
5 15 5 0 10 0
0 5 20 0 0 5
B
− Α = − = −
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
2 3 2 30
2 2 26
8
3 2 6
x x x x
x x x x
x x x x
x x x x
− − + =
− + + − = −
− + + =
+ − − =
Anexo
Diferenciación e integración de matrices con MATLAB.
En muchas aplicaciones de Análisis Matricial de Estructuras y en el Método de Elementos Finitos, se deben obtener las derivadas e integrales de matrices. Aquí se presenta una breve introducción a su cálculo en MATLAB.
Ejemplo A1:
Dada el vector fila [N]
[ ] [ ]2N x x=
Se define en MATLAB mediante:
>> syms x
>> N=[x x*2]
N =
[ x, 2*x]
Para calcular la primera derivada de [N] se usa el comando diff
>> diff(N,x)
ans =
[ 1, 2]
150
JUAN CARLOS HERRERA SÁNCHEZ
Para calcular la segunda derivada de [N] se usa la instrucción:
>> diff(N,x,2)
ans =
[ 0, 0]
Para calcular la integral de [N] con MATLAB entre los limites de integración xi y xf se usa la instrucción: int(N,xi,xf)
Entonces, para calcular la integral de [N] entre x=0 y x=1, se usa la instrucción:
>> int(N,0,1)
ans =
[ 1/2, 1]
Ejemplo A2:
Dada la matriz
[ ] 2
0
0
xB
x
=
Se define en MATLAB, mediante la instrucción:
>> syms x
>> B=[x 0;0 x^2]
B =
[ x, 0]
[ 0, x^2]
151
ANEXO
Para calcular la integral de [B], entre x=0 y x=2, se usa la instrucción:
>> BI=int(B,x,0,2)
BI =
[ 2, 0]
[ 0, 8/3]
Ejemplo A3:
Dada la matriz
Se define en MATLAB, mediante la instrucción:
>> syms x L
>> C=[x x/L;0 x*(1/L)]
C =
[ x, x/L]
[ 0, x/L]
Para calcular la integral de [C] entre x=0 y x=L, se usa la instrucción:
>> int(C,x,0,L)
ans =
[ 1/2*L^2, 1/2*L]
[ 0, 1/2*L]
[ ]0
xxL
Cx
L
=
152
JUAN CARLOS HERRERA SÁNCHEZ
Ejemplo A4:
Dada la matriz
Se define en MATLAB como:
>> syms x L
>> C=[x x^2;x^3 x^2]
C =
[ x, x^2]
[ x^3, x^2]
Para calcular la primera, segunda derivada y tercera derivada de [C] se usan las instrucciones:
>> diff(C,x)
ans =
[ 1, 2*x]
[ 3*x^2, 2*x]
>> diff(C,x,2)
ans =
[ 0, 2]
[ 6*x, 2]
[ ]2
3 2
x xC
x x
=
153
ANEXO
>> diff(C,x,3)
ans =
[ 0, 0]
[ 6, 0]
Para calcular la integral de [C] entre x=0 y x=2, se usa la instrucción:
>> int(C,x,0,2)
ans =
[ 2, 8/3]
[ 4, 8/3]
Para calcular la integral de [C] entre x=0 y x=L, se usa la instrucción:
>> int(C,x,0,L)
ans =
[ 1/2*L^2, 1/3*L^3]
[ 1/4*L^4, 1/3*L^3]
Para calcular el producto [C][C]T se da la instrucción:
>> C*transpose(C)
ans =
[ x^2+x^2/L^2, x^2/L^2]
[ x^2/L^2, x^2/L^2]
154
JUAN CARLOS HERRERA SÁNCHEZ
Para calcular la integral de [C][C]T entre x=0 y x=L, se usa la instrucción:
>> int(C*transpose(C),x,0,L)
ans =
[ 1/3*(1+1/L^2)*L^3, 1/3*L]
[ 1/3*L, 1/3*L]
Para calcular la integral de [C]T[C] entre x=0 y x=L, se usa la instrucción:
>> int(transpose(C)*C,x,0,L)
ans =
[ 1/3*L^3, 1/3*L^2]
[ 1/3*L^2, 2/3*L]