Vous êtes sur la page 1sur 7

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
>> 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
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
2
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
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
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 =
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
3
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)
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
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
4
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
>> 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
>> 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

( =


03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
5
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
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)
03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos
6

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
elementos del
vector A
>> sum(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
-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
7
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


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.

Vous aimerez peut-être aussi