Está en la página 1de 8

03 OPERACIONES MATEMATICAS CON ARRAYS Lic.

Amado Malca Villalobos

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. Tambin 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],v=[45 67 34 89 35]
u = 16 21 45 70 90
v = 45 67 34 89 35
>> z=u+v, x=u-v, y=3*u+5*v
z = 61 88 79 159 125
x = -29 -46 11 -19 55
y = 273 398 305 655 445
>>

En matrices

>> 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]


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
>> C=A+B, D=A-B, E=B-A, F=5*A-7*B
C=
14 48 105 89
59 50 68 43
72 93 68 49
D=
-10 -40 -91 -73
-53 -40 -66 -25
-62 -85 -56 -43
E=
10 40 91 73
53 40 66 25
62 85 56 43
F=
-74 -288 -651 -527
-377 -290 -464 -193
-444 -603 -404 -307
>> A
A=
2 4 7 8
3 5 1 9
5 4 6 3
>> G=A-5
G=
-3 -1 2 3
-2 0 -4 4
0 -1 1 -2
>>

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 el producto matricial de A por B, dado por:

03 operaciones con arrays 1


03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos

Cm p Amn Bn p ,
n
Donde ci k (Fila i de A) (Columna j de B)= ai j b j k
j 1
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
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:
Ann X n1 Bn1 Y1n Ann C1n
Los cuales son equivalentes, basta con hallar la transpuesta del primero y obtenemos el segundo, y viceversa.
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.

03 operaciones con arrays 2


03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos

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=
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) A1
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

03 operaciones con arrays 3


03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos

Ann X n1 Bn1
1
De donde podemos ver que :
XA B
Asi podemos decir que en MatLab la divisin izquierda es:
A \ B A1 * B
La divisin derecha /:
La divisin derecha se usa en forma equivalente a resolver la ecuacin matricial
Y1n Ann C1n

De donde podemos ver que :


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

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:


4x 2 y 6z 8
2x 8 y 2z 4
6 x 10 y 3z 0
Se convierte en:

4 2 6 x 8 4 2 6

2 8 2 y 4
o tambin x y z 2 8 10 8 4 0
6 10 3 z 0 6 2 3

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
>>

03 operaciones con arrays 4


03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos

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 A ai j B bi j
mn y mn
Entonces
A.* B ai j bi j
mn

A. / B ai j / bi j
mn

A. ^ B ai j j
bi

mn

A. \ B ai j \ bi j
mn

A.^ k ai j k
mn

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
>>

03 operaciones con arrays 5


03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos

Utilizacin de arrays en funciones predefinidas de MatLab


Las funciones predefinidas en MatLab estn preparadas para poder usar las operaciones elemento a elemento.

Ejemplo: Con el comando plot para graficar funciones: y x3 x 2 14 x 29, x 10,10


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

600

400

200

-200

-400

-600

-800

-1000
-10 -8 -6 -4 -2 0 2 4 6 8 10

Ejemplo: Evaluar y graficar la funcin y x 5x , x 10,10


2

4 x 10
2

Solucion:
>> x=-10:0.5:10
x = -10.0000 -9.5000 -9.0000 -8.5000 -8.0000 -7.5000 -7.0000 -6.5000 -6.0000 -5.5000 -5.0000 -
4.5000 -4.0000 -3.5000 -3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000 0 0.5000 1.0000
1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000 5.5000 6.0000 6.5000 7.0000
7.5000 8.0000 8.5000 9.0000 9.5000 10.0000
>> y=(x.^2+5*x)./(4*x.^2+10)
y = 0.1220 0.1152 0.1078 0.0995 0.0902 0.0798 0.0680 0.0545 0.0390 0.0210 0 -
0.0247 -0.0541 -0.0890 -0.1304 -0.1786 -0.2308 -0.2763 -0.2857 -0.2045 0 0.2500 0.4286
0.5132 0.5385 0.5357 0.5217 0.5042 0.4865 0.4698 0.4545 0.4408 0.4286 0.4176 0.4078
0.3989 0.3910 0.3838 0.3772 0.3713 0.3659
>> plot(x,y)
0.6

0.5

0.4

0.3

0.2

0.1

-0.1

-0.2

-0.3
-10 -5 0 5 10

Ejemplo: Evaluando 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
>>

Ejemplo: Evaluando la funcin 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
>>

03 operaciones con arrays 6


03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos

FUNCIONES PREDEFINIDAS PARA TRABAJAR CON ARRAYS


Funcin Descripcin Ejemplo
mean(A) Retorna el valor >> A=[4 8 10;6 11 10;8 14 10]
medio del array A A = 4 8 10
6 11 10
8 14 10
>> mean(A)
ans = 6 11 10
C=max(A) Retorna el valor >> max(A)
mximo de un ans = 8 14 10
vector o matriz
[d,n]=max(A) Retorna el valor >> [d,n]=max(A)
mximo de una d = 8 14 10
matriz . por n= 3 3 1
columnas. n es un
vector de las
ubicaciones
C=min(A) Retorna el valor >> min(A)
[d,n]=min(A) mximo de un ans = 4 8 10
vector o matriz
sum(A) Suma los >> sum(A)
elementos del ans = 18 33 30
vector A
sort(A) Ordena los >> sort(A)
elementos del ans = 4 8 10
vector A 6 11 10
8 14 10
median(A) Devuelve la >> median(A)
mediana de los ans = 6 11 10
elementos del
vector A
std(A) Devuelve la >> std(A)
desviacin ans = 2 3 0
estndar de los
elementos del
vector A
det(A) Devuelve el >> det(A)
determinante de la ans = 0
matriz cuadrada A
dot(u,v) Calcula el >> u=[1 4 7]
producto escalar >> v=[5 8 2]
de los vectores u >> dot(u,v)
y 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 >> cross(u,v)
producto cruz de ans = -48 33 -12
los vectores u y
v en R3.
inv(A) Devuelve la >> A=[4 8 1;6 1 1;8 14 1]
inversa de la A= 4 8 1
matriz cuadrada A 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

03 operaciones con arrays 7


03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos

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- Genera una fila de n
a)*rand(1,n)+a nmeros aleatorios
entre a y b.

03 operaciones con arrays 8

También podría gustarte