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 harán operaciones con ellos, las básicas son de suma y resta, luego
tenemos las de multiplicación y división que tiene mucho que aportar. También tenemos la operación 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 dimensión.

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

Multiplicación de arrays
Para efectuar una multiplicación 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  Amn 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
>>

División de arrays
La división de Matrices tiene que ver con la solución de un sistema de ecuaciones lineales, de la forma siguiente:
Ann X n1  Bn1 Y1n Ann  C1n
Los cuales son equivalentes, basta con hallar la transpuesta del primero y obtenemos el segundo, y viceversa.
En la teoría de algebra lineal, Para ello es necesario hablar de inversa de una matriz y también de determinante
de la misma, también de matriz identidad. Se sabe que los sistemas antes mencionados tienen solución ú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) A1
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

División de arrays
La división izquierda \:
La división izquierda se usa en forma equivalente a resolver la ecuación matricial

03 operaciones con arrays 3


03 OPERACIONES MATEMATICAS CON ARRAYS Lic. Amado Malca Villalobos

Ann X n1  Bn1


1
De donde podemos ver que :
XA B
Asi podemos decir que en MatLab la división izquierda es:
A \ B  A1 * B

La división derecha /:
La división derecha se usa en forma equivalente a resolver la ecuación matricial
Y1n Ann  C1n

De donde podemos ver que :


Y  C A1
Asi podemos decir que en MatLab la división izquierda es:
C / A  C * A1

Ejemplos: En la división de números, arrays de orden 1 1


>> 20/4
ans = 5
>> 20/10
ans = 2
>> 20\10
ans = 0.5000
>>

En la solución 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 también x y z   2 8 10   8 4 0 
 6 10 3  z   0   6 2 3
      
En la primera división izquierda, y en la segunda división 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

Operación elemento a elemento


En las operaciones de suma y resta de matrices las operaciones se hacían elemento a elemento, a semejanza de
ello se puede realizar: el producto, la división, 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 dimensión, y se debe teclear siempre
un punto antes de la operación.
Sean A  ai j  B  bi j 
mn y mn
Entonces
A.* B  ai j  bi j 
mn

A. / B  ai j / bi j 
mn

A. ^ B   ai j j 
bi

mn

A. \ B  ai j \ bi j 
mn

A.^ k  ai j 
k
mn

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

Utilización de arrays en funciones predefinidas de MatLab


Las funciones predefinidas en MatLab están preparadas para poder usar las operaciones elemento a elemento.

Ejemplo: Con el comando plot para graficar funciones: y  x3  x2  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 función 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 trigonométricas


>> 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 función raíz 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


Función Descripción 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)
máximo de un ans = 8 14 10
vector o matriz
[d,n]=max(A) Retorna el valor >> [d,n]=max(A)
máximo 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) máximo 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)
desviación ans = 2 3 0
estándar 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

Generación de números aleatorios


La generación de números 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 número
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

números aleatorios
entre 0 y 1.
rand(n) Genera una matriz de
orden nxn de números
aleatorios entre 0 y 1.
Rand(m,n) Genera una matriz de
orden mxn de números
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 números aleatorios
entre a y b.

03 operaciones con arrays 8

También podría gustarte