Vous êtes sur la page 1sur 10

UNIVERSIDAD DE EL SALVADOR.

FACULTAD DE INGENIERIA Y ARQUITECTURA.


CURSO DE MATLAB/ OCTAVE PARA ING. QUIMICA
E ING. DE ALIMENTOS.
CMO-015.

PRACTICA N 2
Uso de Vectores y Matrices.
-Creacin de vectores:
Los vectores o matrices en Octave y Matlab, pueden declararse acomodando
los datos entre corchetes, separados por una coma. Ejemplo:
>>A= [1, 2, 3]
A=
1

Dicho vector, puede transformarse verticalmente como sigue:


>> A=transpose(A)
A=
1
2
3

-linspace (): Este comando nos permite crear arrays (vectores) de una manera
mucho ms prctica cuando se quiera generar un nmero de datos dentro de
un rango definido. Consiste en definir un valor de inicio, uno de fin y la cantidad
de elementos deseados, de la forma que sigue:
>>A=linspace(0,10,6)
A=
0

8 10

El 'lin' es por ser una distribucin lineal, por tanto logspace(a, b, n) crear un
array en base logartmica. Devuelve un vector fila con n elementos
espaciados exponencialmente entre 10a y 10b.
>>logspace(1,100,10)
Una variante a los comandos 'espace' es el uso de 'range' o rangos, de la
manera siguiente:
Vector=inicio: salto: final

>>A=1:2:10
A=
0

8 10

-Creacin de Matrices:

La declaracin de matrices en Octave y Matlab se


realiza de la forma siguiente:

>> M= [1, 0.2, 0; 2, 0.4, 0; 3, 0.6, 0]


-Zeros(n): Esta funcin nos permite crear una matriz nxn compuesta,
completamente de ceros. Ejemplo:
>>B=zeros(3)
B=
0 0 0
0 0 0
0 0 0
-Ones(n): Permite crear una matriz nxn conformada en su totalidad por unos.
>>B=ones(3)
B=

1
1
1

1
1
1

1
1
1

-Eye(n): Este comando permite crear una matriz identidad nxn. La matriz
identidad es aquella matriz m que multiplicada por cualquier otra matriz, da
como resultado la matriz m sin alterar.

-Los arrays (vectores) como representacin de datos experimentales.

Los arrays, son considerablemente usados a lo largo de la carrera;


especialmente para representar datos, ya sea experimentales o tericos, a fin
de modelar un sistema. Los arrays pueden almacenar datos, ya sean, sets de
calores, temperaturas, presiones, humedades relativas, masas, etc. Que
cambian respecto a otras variables (en la mayor parte de los casos el tiempo).
Podemos por ejemplo, introducir datos de Volumen, para modelar un sistema
en base a la ecuacin de los gases ideales, hasta representar datos
experimentales para introducirlos en

-Notacin con punto para operaciones con arrays.


Ahora bien, para poder operar un vector o una matriz, elemento por elemento,
nos podemos valer de una notacin especial llamada: notacin punto. Esto es
especialmente til cuando trabajamos con datos experimentales y los
introducimos en forma de un array, y se usa para hacer productos, divisiones,
potencias, entre escalares o matrices, elemento por elemento. Ejemplo:
V=[8.0, 7.3, 5.2, 4.0, 2.0]
R=8.314
T=273.15
P=R*T./V

-Operaciones bsicas con arrays: suma, producto, indexacin


-Suma:
>>A=linspace(1,10,5);
>>B=1:2:10;
El punto y coma sirve para que el resultado de una operacin no se muestre
en pantalla.
>>C=A+B

C=
2.0000

6.2500 10.5000 14.7500 19.0000

-Resta:
>> C=A-B
C=
0

0.2500

0.5000

0.7500

1.0000

>>C=5-B
C=
4

-2

-4

-Producto:
>>C=A.*B
C=
1.0000

9.7500 27.5000 54.2500 90.0000

>> C=5*A
C=
5.0000 16.2500 27.5000 38.7500 50.0000
-Potencias:
>> C=A.^B
C=
1

34.328

6561

5032.8 1.6792e+06

1e+09

>> C=B.^8
C=
390625

5764801

43046721

-Indexacin: consiste en manipular los vectores a travs de sus


subndices, recordemos que cada elemento del array tiene asignado un ndice.
Por ejemplo:
>> C=A(2)*B(3)
C=
16.2500

Tambin nos podemos valer de esta caracterstica, para crear otros vectores:
>>B =[ 1,

3,

5,

7,

9] podemos hacer:

>>vector=B(2:5)
Vector =
3

En este ejemplo, hemos seleccionado los elementos del vector B, desde el


elemento 2 al elemento 5. Podemos notar que el subndice correspondiente al
primer elemento es B(1)=1 y no 0 como en el lenguaje de programacin C.

-Operaciones bsicas con matrices: transpuesta, determinante,


indexacin, etc.
Al igual que en el caso de vectores, podemos usar la indexacin en las
matrices de la forma:
>>M=eye(3);
>> M(2,3) %devuelve la componente (2,3)
>> M(:,3) %devuelve la 3a columna
>> M(2,:) %devuelve la 2a fila
NOTA: El uso del smbolo de porcentaje(%) dentro de un programa es pasado
por alto por Matlab y Octave; es decir lo que se encuentre escrito a la derecha
del % ser tomado como comentario sobre cierta lnea de cdigo y no se
ejecutar.

-Transpuestas: El carcter ' (apstrofe) denota la transpuesta de la matriz. Si

tenemos la matriz A y llamamos B = A', B es la transpuesta de la matriz A.


-Sumando y Restando Matrices: Las operaciones suma (+) y resta (-) son
definidas para las matrices siempre y cuando stas tengan la misma
dimensin. Es decir, si A y B son matrices 3 x 3, entonces A + B se puede
calcular.
Las operaciones suma y resta tambin estn definidas si uno de los operandos
es un escalar, es decir, una matriz 1 x 1. Ejemplo:
>> x = -1 0 2
>> y = x - 1 resultara:
y=

-2 -1 1
Ejemplo:
>>A=[1,2, 3;4, 5, 6]; B=[6, 5, 4; 3, 2, 1];
>>A+B El resultado de la operacin es por defecto almacenado en la variable
ans e inmediatamente presentado en pantalla:
ans =
7 7 7 7 7 7
-Multiplicando Matrices: La operacin de multiplicacin de matrices est
definida siempre que el nmero de columnas de la primera matriz sea igual al
nmero de filas de la segunda matriz.
-Inversa: Para utilizar el comando inv() de be ser una matriz cuadrada.
>> A=[1,2,3;4,5,6;7,8,9]
A=
1
4
7
>> inv(A)

2
5
8

3
6
9

ans =
-4.5036e+15 9.0072e+15 -4.5036e+15
9.0072e+15 -1.8014e+16

9.0072e+15

-4.5036e+15 9.0072e+15 -4.5036e+15


>> A^-1
ans =
-4.5036e+15

9.0072e+15 -4.5036e+15

9.0072e+15 -1.8014e+16

9.0072e+15

-4.5036e+15 9.0072e+15 -4.5036e+15

Las formas anteriores sirven para determinar la inversa de una matriz


cuadrada. Tener en cuenta que no se coloc el punto antes de realizar la
potencia por qu se quiere la inversa de la matriz y no el inverso de cada
elemento. Ejemplo:

>> A.^-1
ans =
1

0.5

0.25
0.14286

0.33333

0.2

0.16667

0.125

0.11111

-Determinantes: Para matrices cuadradas.


>> det(A)
ans =
6.6613e-16

-Formatos de salida:
>>4/3
a) format short
1.3333
b) format short e
1.3333e+00
c) format long
1.33333333333333
d) format long e
1.33333333333333e00
e) format bank
1.33
f) format hex
3ff5555555555555

NOTA: La notacin punto, para operar elemento por elemento de arrays es


tambin aplicable para matrices.

Ejemplo aplicado:
Sistemas de Ecuaciones Lineales.
Un sistema de ecuaciones lineales,
+

+ +

++

+ +

Con m ecuaciones y n incgnitas se puede escribir en forma matricial,


A*X=b
Donde,

Es decir que para conocer X se despeja de la ecuacin obteniendo:


X=A^-1 * b
Es decir se debe obtener la inversa de la matriz A y luego multiplicar por el
vector b, obtenindose un vector X con n datos.
Ejemplo Aplicado:
Una mezcla liquida, de composicin molar 20% N2, 30% CO2, y 50 % O2 se
separa en una columna de destilacin, dando un flujo de cabeza (90% N2,
CO2) y un flujo de cola (2,5%N2, 35% CO2, y O2). Para una alimentacin de
1000 mol/h calcule los flujos de salida.

Balances de masa.

= +

-Global:

-Balance de N2:

Sustituyendo:

-Balance de O2:

Sustituyendo:

.9 +

+
+

= + (1)
5

. 5

(2)

(3)

Se sabe que en la salida 2 al no haber ms que solo 2 componentes las


fracciones molares estn definidas por:

= .

Por lo que el sistema de ecuaciones queda definido por:


1. + =
2.
.9 +
3.
. +

. 5 =
. 5 =

Uso de Matlab: ya que se tienen 3 ecuaciones y solo dos incgnitas se


seleccionaran las ecuaciones 1 y 2 para resolver el problema ya que as
estara completamente definido.

>> A=[1,1;0.9,0.025]
>> b=[1000,200]
>> C=inv(A)*b
Error using * Inner matrix dimensions must agree.
El error anterior se debe a que La operacin de multiplicacin de arreglos
est definida siempre que el nmero de columnas del primer arreglo sea igual
al nmero de filas del segundo.
Esto se debe a que el vector b solo consta de 1 fila mientras que la matriz A
consta de 2 columnas, por lo que se debe usar el cdigo transpose(b) para
reordenarlo verticalmente obteniendo as un vector de 1 columna y 2 filas.
>> A=[1,1;0.9,0.025]
>> b=[1000,200]
>> b=transpose(b)
>> C=inv(A)*b

X=
200
800
Otra forma de realizarlo sera utilizar la siguiente notacin:
>> A=[1,1;0.9,0.025]
>> b=[1000,200]
>> b=transpose(b)
>> C=A^-1*b
X=
200
800
Otra forma:
>> A=[1,1;0.9,0.025]
>> b=[1000,200]
>> b=transpose(b)
>> C=A\b % uso de divisin inversa
X=
200
800
Por lo que la respuesta al problema sera:
C1= 1000 mol/h
C2= 200 mol/h
C3= 800 mol/h

Vous aimerez peut-être aussi