You are on page 1of 11

03 OPERACIONES MATEMATICAS CON ARRAYS Lic.

Amado Malca Villalobos


1

03 OPERACIONES MATEMATICAS CON ARRAYS
Ahora que ya tenemos creados los arrays, se harn operaciones con
ellos, las bsicas son de suma y resta, luego tenemos las de
multiplicacin y divisin que tiene mucho que aportar. Tambien
tenemos la operacin elemento a elemento, que puede tener muchas
aplicaciones que le sorprender.

Suma y resta
Estas operaciones se dan entre arrays que sean conformes, es decir de
la misma dimensin.

En vectores
>> u=[16 21 45 70 90]
u = 16 21 45 70 90
>> v=[45 67 34 89 35]
v = 45 67 34 89 35
>> w=u+v,z=u-v
w = 61 88 79 159 125
z = -29 -46 11 -19 55
>>

En matrices
>> A=[2 4 7 8;3 5 1 9;5 4 6 3]
A = 2 4 7 8
3 5 1 9
5 4 6 3
>> B=[12 44 98 81;56 45 67 34;67 89 62 46]
B = 12 44 98 81
56 45 67 34
67 89 62 46
>> A+B,A-B,B-A
ans = 14 48 105 89
59 50 68 43
72 93 68 49
ans = -10 -40 -91 -73
-53 -40 -66 -25
-62 -85 -56 -43
ans = 10 40 91 73
53 40 66 25
62 85 56 43
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
2
>> A+60
ans =
62 64 67 68
63 65 61 69
65 64 66 63
>> B-50
ans = -38 -6 48 31
6 -5 17 -16
17 39 12 -4
>>

Multiplicacin de arrays
Para efectuar una multiplicacin de arrays (matrices), se debe tener
que el numero de columnas de la primera matriz con el numero de
filas de la segunda matriz deben ser iguales.
Esto es si queremos efectuar A por B,
m p m n n p
C A B

= ,
Donde
1
(Fila i de A) (Columna j de B)=
n
i k i j j k
j
c a b
=
=


Una matriz fila por una matriz columna
>> F=[1 5 8 7]
F = 1 5 8 7
>> C=[15;24;12;56]
C = 15
24
12
56
>> F*C
ans = 623
>> C*F
ans =
15 75 120 105
24 120 192 168
12 60 96 84
56 280 448 392
>>
Dos matrices conformes para el producto

>> A=[15 16 43 76;98 74 62 56;45 67 34 67]
A = 15 16 43 76
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
3
98 74 62 56
45 67 34 67
>> B=[12 44 98 81 92;56 45 67 34 24;67 89 62 46 45;45 89 32 56
67]
B = 12 44 98 81 92
56 45 67 34 24
67 89 62 46 45
45 89 32 56 67
>> P = A*B
P = 7377 11971 7640 7993 8791
11994 18144 20198 16442 17334
9585 13984 13151 11239 11767
>> B*A
??? Error using ==> mtimes
Inner matrix dimensions must agree.

Producto de un escalar por una Matriz
>> 4*A
ans =
60 64 172 304
392 296 248 224
180 268 136 268
>> 3*B
ans =
36 132 294 243 276
168 135 201 102 72
201 267 186 138 135
135 267 96 168 201
>>

Divisin de arrays
La divisin de Matrices tiene que ver con la solucin de un sistema
de ecuaciones lineales, de la forma siguiente:
1 1 n n n n
A X B

=
1 1 n n n n
Y A C

=
En la teora de algebra lineal, Para ello es necesario hablar de inversa
de una matriz y tambin de determinante de la misma, tambin de
matriz identidad. Se sabe que los sistemas antes mencionados tienen
solucin nica, siempre y cuando el determinante de la matriz A sea
no nulo.

Matriz identidad
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
4
La matriz identidad se obtiene con el comando eye de MatLab:
>> A=[12 44 98 81;45 67 34 24;89 62 46 45;89 32 56 67]
A =
12 44 98 81
45 67 34 24
89 62 46 45
89 32 56 67
>> I=eye(4)
I =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> A*I, I*A
ans =
12 44 98 81
45 67 34 24
89 62 46 45
89 32 56 67
ans =
12 44 98 81
45 67 34 24
89 62 46 45
89 32 56 67
>>

Inversa y determinante de una matriz
Dada una matriz cuadrada A, la inversa de A, es aquella matriz que
multiplicada por A, resulta la matriz identidad. La sintaxis en Matlab
es:
( ) inv A
1
A


Ademas el determinante de una matriz cuadrada es: det( ) A


>> A=[1 1 4;2 1 8;1 -1 3],det(A)
A =
1 1 4
2 1 8
1 -1 3
ans = 1
>> B=inv(A)
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
5
B =
11 -7 4
2 -1 0
-3 2 -1
>> C=A^-1
C =
11 -7 4
2 -1 0
-3 2 -1
>> A*B, A*C
ans =
1 0 0
0 1 0
0 0 1
ans =
1 0 0
0 1 0
0 0 1

Divisin de arrays
La divisin izquierda \:
La divisin izquierda se usa en forma equivalente a resolver la
ecuacin matricial
1 1 n n n n
A X B

=

De donde podemos ver que :
1
X A B

=

Asi podemos decir que en MatLab la divisin izquierda es:
1
\ * A B A B

=


La divisin derecha /:
La divisin derecha se usa en forma equivalente a resolver la
ecuacin matricial
1 1 n n n n
Y A C

=

De donde podemos ver que :
1
Y C A

=

Asi podemos decir que en MatLab la divisin izquierda es:
1
/ * C A C A

=


Ejemplos: En la divisin de nmeros, arrays de orden 1 1
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
6
>> 20/4
ans = 5
>> 20/10
ans = 2
>> 20\10
ans = 0.5000
>>

En la solucin de un sistema de ecuaciones:
4 2 6 8
2 8 2 4
6 10 3 0
x y z
x y z
x y z
+ =
+ + =
+ + =

Se convierte en:

4 2 6 8
2 8 2 4
6 10 3 0
x
y
z
| || | | |
| | |
=
| | |
| | |
\ .\ . \ .
o tambin ( ) ( )
4 2 6
2 8 10 8 4 0
6 2 3
x y z
| |
|
=
|
|
\ .

En la primera divisin izquierda, y en la segunda divisin derecha.

>> A=[4 -2 6;2 8 2;6 10 3]
A =
4 -2 6
2 8 2
6 10 3
>> b=[8;4;0]
B =
8
4
0
>> X=A\b
X =
-1.8049
0.2927
2.6341
>> C=[4 2 6;-2 8 10;6 2 3]
C =
4 2 6
-2 8 10
6 2 3
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
7
>> d=[8 4 0]
d = 8 4 0
>> Y=d/C
Y = -1.8049 0.2927 2.6341
>>

Operacin elemento a elemento
En las operaciones de suma y resta de matrices las operaciones se
hacan elemento a elemento, a semejanza de ello se puede realizar: el
producto, la divisin, la potencia y otras que se nos ocurra y que
tengan alguna utilidad.
Para las operaciones elemento a elemento los arrays deben tener la
misma dimensin, y se debe teclear siempre un punto antes de la
operacin.
Sean
i j
m n
A a

( =

y
i j
m n
B b

( =


Entonces
.*
i j i j
m n
A B a b

( =


. / /
i j i j
m n
A B a b

( =


. ^
i j
b
i j
m n
A B a

(
=

. \ \
i j i j
m n
A B a b

( =


. ^
k
i j
m n
A k a

( =



Ejemplos:
>> A=[4 -2 6 2;2 8 2 3;6 10 3 4;1 5 7 2]
A = 4 -2 6 2
2 8 2 3
6 10 3 4
1 5 7 2
>> B=[4 2 3 8;2 2 1 3;2 4 2 2;6 1 3 2]
B = 4 2 3 8
2 2 1 3
2 4 2 2
6 1 3 2
>> A.*B
ans = 16 -4 18 16
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
8
4 16 2 9
12 40 6 8
6 5 21 4
>> A./B
ans = 1.0000 -1.0000 2.0000 0.2500
1.0000 4.0000 2.0000 1.0000
3.0000 2.5000 1.5000 2.0000
0.1667 5.0000 2.3333 1.0000
>> A.\B
ans = 1.0000 -1.0000 0.5000 4.0000
1.0000 0.2500 0.5000 1.0000
0.3333 0.4000 0.6667 0.5000
6.0000 0.2000 0.4286 1.0000
>> A.^B
ans = 256 4 216 256
4 64 2 27
36 10000 9 16
1 5 343 4
>> A.^3
ans = 64 -8 216 8
8 512 8 27
216 1000 27 64
1 125 343 8
>>

Utilizacin de arrays en funciones predefinidas de MatLab
Las funciones predefinidas en MatLab estn preparadas para poder
usar las operaciones elemento a elemento.
a) Con el comando plot para graficar funciones:
| |
3 2
14 29, 10,10 y x x x x = + e

>> x=-10:0.5:10;
>> y=x.^3-x.^2-14*x+29;
>> plot(x,y)

-10 -8 -6 -4 -2 0 2 4 6 8 10
-1000
-800
-600
-400
-200
0
200
400
600
800
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
9
Graficando:
| |
3
2
5
, 10,10
4 10
x x
y x
x
+
= e



b) Las funciones trigonomtricas
>> x=0:pi/6:pi
x = 0 0.5236 1.0472 1.5708 2.0944 2.6180 3.1416
>> y=sin(x)
y = 0 0.5000 0.8660 1.0000 0.8660 0.5000 0.0000
>> y=tan(x)
y = 1.0e+016 * 0 0.0000 0.0000 1.6331 -0.0000 -0.0000 -
0.0000
>>

c) La raz cuadrada
>> x=0:10
x = 0 1 2 3 4 5 6 7 8 9 10
>> y=sqrt(x)
y = 0 1.0000 1.4142 1.7321 2.0000 2.2361 2.4495
2.6458 2.8284 3.0000 3.1623
>>

FUNCIONES PREDEFINIDAS PARA TRABAJAR CON
ARRAYS
Funcin Descripcin Ejemplo
mean(A) Retorna el valor
medio del array A
>> A=[4 8 10;6 11 10;8 14 10]
A = 4 8 10
6 11 10
8 14 10
>> mean(A)
ans = 6 11 10
C=max(A) Retorna el valor
mximo de un
vector o matriz
>> max(A)
ans = 8 14 10
[d,n]=max(A) Retorna el valor
mximo de una
matriz . por
columnas. n es un
vector de las
ubicaciones
>> [d,n]=max(A)
d = 8 14 10
n = 3 3 1
C=min(A)
[d,n]=min(A)
Retorna el valor
mximo de un
vector o matriz
>> min(A)
ans = 4 8 10
sum(A) Suma los >> sum(A)
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
10
elementos del
vector A
ans = 18 33 30
sort(A) Ordena los
elementos del
vector A
>> sort(A)
ans = 4 8 10
6 11 10
8 14 10
median(A) Devuelve la
mediana de los
elementos del
vector A
>> median(A)
ans = 6 11 10
std(A) Devuelve la
desviacin
estndar de los
elementos del
vector A
>> std(A)
ans = 2 3 0
det(A) Devuelve el
determinante de la
matriz cuadrada A
>> det(A)
ans = 0
dot(u,v) Calcula el
producto escalar
de los vectores u
y v.
>> u=[1 4 7]
>> v=[5 8 2]
>> dot(u,v)
ans = 51

>> A=[4 8 10;6 1 10;8 14 10];
>> dot(A,A)
ans = 116 261 300
cross(u,v) Calcula el
producto cruz de
los vectores u y
v en R
3
.
>> cross(u,v)
ans = -48 33 -12
inv(A) Devuelve la
inversa de la
matriz cuadrada A
>> A=[4 8 1;6 1 1;8 14 1]
A = 4 8 1
6 1 1
8 14 1
>> inv(A)
ans =
-0.3250 0.1500 0.1750
0.0500 -0.1000 0.0500
1.9000 0.2000 -1.1000






03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
11
Generacin de nmeros aleatorios
La generacin de nmeros aleatorios es muy necesaria en las reas
que debe realizar algunas simulaciones.
Para ello MatLab tiene dos comandos: rand y randn
Comando Descripcion
Rand Genera un nmero
aleatorio entre 0 y 1.

rand(1,n) Genera una fila de n
nmeros aleatorios
entre 0 y 1.

rand(n) Genera una matriz de
orden nxn de nmeros
aleatorios entre 0 y 1.

Rand(m,n) Genera una matriz de
orden mxn de nmeros
aleatorios entre 0 y 1.

Randperm(n) Genera un vector de n
elementos que son
permutaciones
aleatorias de enteros
entre 1 y n.

(b-
a)*rand(1,n)+a
Genera una fila de n
nmeros aleatorios
entre a y b.

You might also like