Universidad Nacional de san Cristóbal de Huamanga
Escuela Profesional de Ingeniería Civil
Programación Digital (IC246)
Implementación de Algoritmos Para la Operación con
Matrices
Autor: MSc. Ing. Edmundo Canchari Gutiérrez
Comentarios: [Link]@[Link]
Visite: http//[Link]
23 de diciembre de 2018
Índice
Índice 1
Índice de tablas 1
Índice de figuras 1
1. Multiplicación de matrices 1
2. Elementos de una matriz 2
Índice de tablas
Índice de figuras
1. Multiplicación de matrices
La multiplicación de matrices se define mediante
Cmp “ Amn ˚ Bnp (1)
Un elemento cualquiera de la matriz C está dado por
n
ÿ
Ci,j “ Ai,r ˚ Br,j (2)
r“1
1
Algoritmo 1: Multiplicación de matrices
Datos: Ingresar números enteros: m, n, p
Resultado: Producto de matrices
1 inicio;
2 /* Crear matrices aleatorios A, B, de orden m*n y n,p
respectivamente */
3 Arm, ns, Brn, ps;
4 /* Crear matriz C[m,p] con los elementos cero */
5 Crm, ps;
6 /* Realiza el producto de matrices */
7 para i Ð 1 a m hacer
8 para j Ð 1 a p hacer
9 para r Ð 1 a n hacer
10 Ci,j “ Ci,j ` Ai,r ˚ Br,j ;
11 fin
12 fin
13 fin
14 imprimir C;
15 fin;
1 function MatrixP(m,n,p)
2 A=rand(m,n); B=rand(n,p); C=zeros(m,p)
3 for i=1:m
4 for j=1:p
5 for r=1:n
6 C[i,j]=C[i,j]+A[i,r]*B[r,j]
7 end
8 end
9 end
10 return C
11 end
12 clearconsole()
13 println(MatrixP(2,3,5))
Listing 1: Código fuente Julia para determinar el producto de matrices
2. Elementos de una matriz
Crear una matriz aleatoria y contar de orden f ˚ c y determinar el número de
elementos positivos, negativos y ceros.
2
Algoritmo 2: Determinar el número de elementos positivos, negativos
y ceros de una matriz
Datos: f, c: filas y columnas de la matriz a crearse aletatoriamente.
Rango de variación de los elementos de la matriz: Nmin, Nmax
Resultado: ep, en, ec: número de elementos mayores que cero, menores
que cero e iguales a cero, respectivamente.
1 inicio;
2 /* Crear la matriz aleatoria */
3 M Ð randpN min : N max, f, cq;
4 /* Crear variables */
5 ep Ð 0, en Ð 0, ec Ð 0;
6 /* Contabiliza los elementos */
7 para i Ð 1 a f hacer
8 para j Ð 1 a c hacer
9 seleccionar a “ M ri, js hacer
10 caso a ą 0 hacer
11 ep “ ep ` 1
12 fin
13 caso a ă 0 hacer
14 en “ en ` 1
15 fin
16 si no hacer
17 ec “ ec ` 1
18 fin
19 fin
20 fin
21 fin
22 imprimir: M, ep, en, ec;
23 fin;
1 function MatrixEl(f,c,Nmin,Nmax)
2 M=rand(Nmin:Nmax,f,c)
3 ep=0; en=0; ec=0
4 for i=1:f
5 for j=1:c
6 a=M[i,j]
7 if a>0
8 ep=ep+1
9 elseif a<0
10 en=en+1
11 else
12 ec=ec+1
13 end
3
14 end
15 end
16 return M, [ep en ec]
17 end
18 clearconsole()
19 println(MatrixEl(5,6,-15,15))
Listing 2: Código fuente Julia para determinar el número de elementos positivos,
negativos y ceros.
Algoritmo 3: Determinar el número de elementos positivos, negativos
y ceros de una matriz, solamente de la parte triangular inferior
Datos: f, c: filas y columnas de la matriz a crearse aletatoriamente.
Rango de variación de los elementos de la matriz: Nmin, Nmax
Resultado: ep, en, ec: número de elementos mayores que cero, menores
que cero e iguales a cero, respectivamente.
1 inicio;
2 /* Crear la matriz aleatoria */
3 M Ð randpN min : N max, f, cq;
4 /* Crear variables */
5 ep Ð 0, en Ð 0, ec Ð 0;
6 /* Contabiliza los elementos */
7 para i Ð 1 a f hacer
8 para j Ð 1 a c hacer
9 si i ă“ j entonces
10 seleccionar a “ M ri, js hacer
11 caso a ą 0 hacer
12 ep “ ep ` 1
13 fin
14 caso a ă 0 hacer
15 en “ en ` 1
16 fin
17 si no hacer
18 ec “ ec ` 1
19 fin
20 fin
21 fin
22 fin
23 fin
24 imprimir: M, ep, en, ec;
25 fin;
4
1 function MatrixEl(f,c,Nmin,Nmax)
2 M=rand(Nmin:Nmax,f,c)
3 ep=0; en=0; ec=0
4 for i=1:f
5 for j=1:c
6 if i<=j
7 a=M[i,j]
8 if a>0
9 ep=ep+1
10 elseif a<0
11 en=en+1
12 else
13 ec=ec+1
14 end
15 end
16 end
17 end
18 return M, [ep en ec]
19 end
20 clearconsole()
21 println(MatrixEl(5,6,-15,15))
Listing 3: Código fuente Julia para determinar el número de elementos positivos,
negativos y ceros, solamente de la matriz triangular inferior