Está en la página 1de 6

Álgebra matricial básica con MATLAB

Ing. Jesús Javier Cortés Rosas


M. en A. Miguel Eduardo González Cárdenas
M. en A. Vı́ctor D. Pinilla Morán
Facultad de Ingenierı́a, UNAM*

2006

Resumen

Introducción. Operaciones básicas con matrices con Matlab. Solución de sistemas de ecua-
ciones lineales. Descomposición LU. Polinomios, valores y vectores caracterı́sticos.

1. Introducción

MATrixLABoratory [1] es un superlenguaje de programación cuyos fines son realizar análisis


numérico. Su diseño original se concibió para funcionar en las grandes computadoras (mainframes)
con sistema operativo UNIX. Si bien, actualmente hay versiones disponibles para Windows, éstas
aún conservan el espı́ritu y muchas de las caracterı́sticas de la versión UNIX, particularmente su
estructura de archivos y su ortodoxo estilo de programación.
Estas versiones de MATLAB sobre Windows ofrecen prestaciones muy aceptables en cuanto a
aspectos de exactitud y precisión, siendo su principal desventaja el uso excesivo de recursos tales
como la memoria RAM y su despliegue gráfico.
No obstante, las versiones sobre UNIX son aún muy socorridas y resultan indispensables en las
supercomputadoras de uso actual, ya que las arquitecturas de estos equipos permiten la vectorización
de operaciones lo cual es plenamente coincidente con la filosofı́a matricial de MATLAB; esta cohesión
permite la explotación‘óptima de los recursos de cómputo realizando una cantidad asombrosa de
operaciones matemáticas en intervalos increı́blemente cortos de tiempo.
El presente trabajo parte del conocimiento básico en el manejo de MATLAB por parte del lector.
Este conocimiento básico comprende el uso de la ventana de comandos, de la sintaxis mı́nima de
los comandos, funciones y de la ayuda de MATLAB.
Como su nombre lo indica, MATLAB está diseñado para operar con matrices; de hecho, en su gran
mayorı́a sus variables y funciones están declaradas como matrices y, en los casos en que se desea,
debe indicársele lo contrario. De tal forma, el usuario de MATLAB debe poseer un razonamiento
natural en forma de matrices.
*
Profesores de tiempo completo del Departamento de Matemáticas Aplicadas de la División de Ciencias Básicas

1
Análisis numérico 2

2. Operaciones básicas con matrices.

1. Introducción de matrices. La manera de introducir una matriz es en orden de sus renglones


separados por ; y entre corchetes. Por cuestiones de orden y claridad, se propone que se
utilicen letras mayúsculas para identificar a las variables que contengan matrices. Un ejemplo
de introducción de matriz es:
>>A=[1 2 3;4 5 6;7 8 9]
Obteniéndose como respuesta (por no haber inhibido el echo):
A=
1 2 3
4 5 6
7 8 9

2. Operaciones básicas. Suponiendo que se han ingresado dos matrices compatibles en las vari-
ables A y B. Las operaciones suma, resta, multiplicación y potencia se realizan simplemente
indicándolas:
>>C=A+B
>>D=A-B
>>E=A*B
>>F=A^2

3. Librerı́as con operaciones adicionales. MATLAB posee principalmente dos librerı́as: elmat.m
y matfun.m, mismas que contienen operaciones propias del álgebra matricial. Invocando el
comando de ayuda para cada una de ellas podrán conocerse los comandos que las conforman:
>>help elmat
>>help matfun
Los comandos que se mencionan a continuación se incluyen en estas librerı́as.

4. Matriz inversa. Sea la matriz A no singular:


A =
2 0 5
3 5 9
1 -5 7
La matriz inversa A−1 se obtiene:
>>B=inv(A)
cuyo resultado es:
B =
1.3333 -0.4167 -0.4167
-0.2000 0.1500 -0.0500
-0.3333 0.1667 0.1667
De tal forma que si se hace la operación:
>>C=A*B
Se obtiene
Análisis numérico 3

C =
1.0000 -0.0000 0
0 1.0000 0
0 -0.0000 1.0000

5. Transposición de matrices. Sea la matriz D:


>>D=[1 2 3 4]
Su transpuesta se obtiene por:
>>E=D’
Obteniéndose:
E =
1
2
3
4

6. Determinantes. Sea la matriz A no singular definida en el punto 4, su determinante se obtiene


por:
>>f=det(A)
Dando como resultado:
f =
60

3. Solución de sistemas de ecuaciones lineales

Sea el sistema de ecuaciones lineales AX̄ = b̄, donde la matriz A y el vector b̄ se introducen en
MATLAB como:
>>A=[2 0 5; 3 5 9; 1 -5 7]

A =
2 0 5
3 5 9
1 -5 7
>>b=[100 251 301]’

b =
100
251
301

1. Método de Gauss
Análisis numérico 4

>>x=A\b

Resultando:
x =
-96.6667
2.6000
58.6667

2. Método de Gauss-Jordan
>>rref([A b])

Resultando:
ans =
1.0000 0 0 -96.6667
0 1.0000 0 2.6000
0 0 1.0000 58.6667
Este esquema corresponde a la matriz ampliada con la matriz identidad producto de la elim-
inación gaussiana y el vector resultante que corresponde a la solución del sistema.

3. Método de la inversa
>>x=inv(A)*b

Resultando:
x =
-96.6667
2.6000
58.6667

4. Descomposición LU

MATLAB incluye un comando que proporciona las matrices LU con la salvedad que la diagonal
principal de ’1’ está en la matriz L y no sobre U de acuerdo al tema desarrollado.
Sea la matriz:
S=[2 0 0 -1 0; 3 3 1 -4 -2; 0 1 2 -3 0; 0 1 0 0 -1;0 1 0 0 0]

S =
2 0 0 -1 0
3 3 1 -4 -2
0 1 2 -3 0
0 1 0 0 -1
0 1 0 0 0
Análisis numérico 5

>> [L,U]=lu(S)verb

L =

1.0000 0 0 0 0
0.6667 1.0000 0 0 0
0 -0.5000 1.0000 0 0
0 -0.5000 -0.2000 1.0000 0
0 -0.5000 -0.2000 1.0000 1.0000

U =

3.0000 3.0000 1.0000 -4.0000 -2.0000


0 -2.0000 -0.6667 1.6667 1.3333
0 0 1.6667 -2.1667 0.6667
0 0 0 0.4000 -0.2000
0 0 0 0 1.0000

Si se desea obtener las versiones Crout de LU deben programarse las fórmulas matriciales ya desar-
rolladas. Este desarrollo se incluye en el material anexo respectivo.

5. Polinomio caracterı́stico

Sea la matriz A:
>>A=[1 -1 0; 2 0 1; -2 3 -1]

A =
1 -1 0
2 0 1
-2 3 -1
Para obtener el polinomio caracterı́stico se utiliza el comando poly, que es el mismo que se utiliza
para construir un polinomio a partir de sus raı́ces. En este caso, cuando se aplica a una matriz,
proporciona el respectivo polinomio caracterı́stico.
>>poly(A)

Resultando:
ans =
1.0000 0.0000 -2.0000 3.0000

Que corresponde a los coeficientes del polinomio de grado 3: λ3 − 2λ + 3 = 0.


Análisis numérico 6

6. Valores caracterı́sticos

Sea la matriz B:
>>B=[2 2 1; 1 3 1; 1 2 2]

B =
2 2 1
1 3 1
1 2 2
Existen dos formas de obtener los valores caracterı́sticos de esta matriz. La primera consiste en
obtener primeramente el polinomio caracterı́stico y posteriormente sus raı́ces:
>>c=poly(A)
c =
1.0000 -7.0000 11.0000 -5.0000
>>d=roots(c)
Resultando:
d =
5.0000
1.0000
1.0000
La alternativa es utilizar el comando eig de la siguiente forma:
>>e=eig(A)

Resultando:
e =
5.0000
1.0000
1.0000

7. Conclusiones

El debate sobre si los alumnos deben conocer los métodos numéricos y sus algoritmos o si es mejor
que conozcan el comando o la utilerı́a que realiza el cálculo no se ha agotado. Desde el punto de
vista de los autores, los alumnos deben conocer ambos aspectos, ya que de esa forma serán capaces
de reconocer posibles resultados no apropiados que en ocasiones pudieran obtener del uso de las
utilerı́as, o bien, desarrollar sus propias soluciones adaptadas a casos particulares.

Referencias
[1] Matlab version 6.5 release 13.

También podría gustarte