Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manejo de matrices
El poder y versatilidad de MATLAB frente a los dems lenguajes de
programacin reside principalmente en la forma como maneja las matrices
mediante sus mtodos de definicin e indexacin de matrices.
Cuando estamos desarrollando un programa que implica muchos
clculos, como por ejemplo, balances de materia que contienen parmetros
variables, a veces solo necesitamos tomar uno o varios elementos de una
matriz que hemos definido, y en algunos casos, hasta secciones completas de
estas. La estructura operacional que MATLAB nos proporciona, llega a ser
suficientemente para realizar este tipo de acciones de una manera muy
sencilla y con una sintaxis bastante clara.
MATLAB contiene una gran cantidad de mtodos que nos permite
combinar matrices, extraer informacin de ellas, cambiar sus valores cuando lo
deseamos y otras caractersticas que nos ayudaran a realizar tareas de
programacin ms complejas.
2.1 Indexacin
Los elementos que contiene una matriz se encuentran localizados e
identificados por un nmero o par de nmeros ndice. De esta forma, podremos
decir que la posicin de un elemento en una matriz tiene un ndice
determinado, y por lo tanto, es nico y caracterstico. Si por ejemplo escribimos:
A=[7 5 3 8 2];
1
Manejo de matrices
A(2)
Ans=
5
Note que hemos pedido a MATLAB que nos regrese el segundo elemento
del vector A. de hecho, podemos cambiar los valores los elementos en una
matriz mediante indexacin:
A(3)=7
A=
7
66
66
13
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
De esta forma creamos un vector que va del 1 al 4 con saltos de 0.5. Note
que el valor que queda dentro de los dos puntos corresponde al espaciamiento
entre elementos, mientras que los valores extremos marcan el valor inicial y
final del vector.
3
Manejo de matrices
Con el uso del operador dos puntos tambin podremos extraer filas y
columnas de una matriz, por ejemplo:
x=[ 3 8 7 6
3298
7 1 4 3];
x(:,3)
ans =
7
9
4
De esta forma, le hemos indicado a MATLAB que nos proporcione todos
los elementos de la fila 3. La notacin x(:,3) debe ser leda como todos los
elementos de la columna 3 de la matriz x. Ahora, si por ejemplo queremos
sustraer la segunda fila, usamos la notacin x(2,:) indicndole a MATLAB que
queremos todos los elementos de la fila 2:
x(2,:)
ans =
3
ans =
1
8
3
Por ltimo, si deseamos crear una columna que contenga todos los
elementos de la matriz podemos usar la siguiente sintaxis:
x(:)
ans =
3
3
7
8
2
1
7
9
4
6
8
3
Al ejecutar el anterior cdigo, los elementos de esta columna fueron
ordenados de columna en columna, es decir, una vez se incluyeron los trminos
de una columna, los siguientes elementos eran los de la columna consecuente.
Hasta este punto, el lector
debe notar que MATLAB opera
preferentemente sobre columnas y no sobre filas como muchos esperaran.
2.3 Concatenacin
5
Manejo de matrices
3
7
9
6
2
6
y=[1 2 3];
z=[9
2
7
2];
w=[[x;y],z]
w=
8
4
2
1
3
7
9
2
6
2
6
3
9
2
7
2
2
4
9
x(:,:,2) =
2
7
1
3
2
9
x(:,:,3) =
9
3
2
8
6
4
Manejo de matrices
P1
P2
T1
V11
V21
T2
V12
V22
T3
V13
V23
T4
V14
V24
4
8
4
8
4
8
4.7833
2.3917
5.4667
2.7333
6.1500
3.0750
Manejo de matrices
Por ejemplo:
A=zeros(3)
A=
0
0
0
0
0
0
0
0
0
>> B=zeros(2,3)
B=
0
0
0
0
0
0
1
1
1
1
1
1
ones(2,3)
ans =
1
1
1
1
1
1
7
10
0
3
0
0
0
0
7
0
0
0
0
5
9
0
0
0
0
0
3
0
0
0
0
0
7
0
0
0
0
0
5
0
>> z2=diag(x,-1)
z2 =
0
9
0
0
0
0
0
3
0
0
0
0
0
7
0
0
0
0
0
5
0
0
0
0
0
Fjese, que el valor de la segunda entrada del comando diag indica la diagonal
especfica que queremos crear, sea por encima de la diagonal principal para el
cual el valor es positivo, o por debajo de la diagonal principal, para el cual el
valor es negativo.
11
Manejo de matrices
Ahora, si queremos crear la muy popular matriz tridiagonal, solo basta sumar
las matrices que contienen la informacin, por ejemplo:
x=[1 2 3 4 5];
y=[10 20 30 40];
z=[-10 -20 -30 -40];
w=diag(x)+diag(y,1)+diag(z,-1)
w=
1 10
-10 2
0 -20
0
0
0
0
0
0 0
20 0 0
3 30 0
-30 4 40
0 -40 5
( ) es la matriz inversa de .
En MATLAB podemos hallar la inversa de una matriz con solo usar el comando
inv(A).
Analicemos por ejemplo, el siguiente sistema de ecuaciones lineales
12
13
Manejo de matrices
Ejemplo de aplicacin 2.1
En cierta planta de produccin qumica se producen 10kmol/h de una
sustancia a partir de un reactivo . La nica reaccin que se lleva a cabo en
el reactor es la siguiente:
Resuelva los balances de materia del proceso y construya una tabla que reporte
la informacin del sistema en ocho columnas. La primera enumera las
corrientes, la segunda el flujo molar total de la corriente respectiva, de la
tercera a la quinta los flujos molares de A B e I en kmol/h, y de la sexta a la
octava las fracciones molares de los componentes A B e I. Calcule la conversin
global del sistema.
14
Moles de A en la corriente 2:
Moles de A en la corriente 3:
(
Moles de A en las corrientes 4,6,5 y 1:
15
Manejo de matrices
Conversin global del sistema:
16