Está en la página 1de 7

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: edmundo.canchari@unsch.edu.pe
Visite: http//cgedmundo.wordpress.com
8 de enero de 2019

Índice

Índice 1

Índice de tablas 1

Índice de figuras 1

1. Multiplicación de matrices 1

2. Elementos de una matriz 3

3. Matriz perfecta 6

Índice de tablas

Índice de figuras
1. Julia en el IDE Atom . . . . . . . . . . . . . . . . . . . . . . . . . 7

1. Multiplicación de matrices
La multiplicación de matrices se define mediante

Cmp “ Amn ˚ Bnp (1)

1
Un elemento cualquiera de la matriz C está dado por
n
ÿ
Ci,j “ Ai,r ˚ Br,j (2)
r“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
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.

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

3
10 en=en+1
11 else
12 ec=ec+1
13 end
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.

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

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

5
3. Matriz perfecta
Solucionario de la evaluación sustitutorio y aplazado. La suma de los elementos
de cada fila o columna de la matriz será dos.
Algoritmo 4: Forma la matriz perfecta
Datos: n orden de la matriz
Resultado: M matriz, cuya suma de los elementos de cada fila o
columna son iguales
1 inicio;
2 /* Crear matriz de ceros */
3 M Ð zerospn, nq;
4 /* Crea la matriz */
5 para i Ð 1 a n hacer
6 para j Ð 1 a n hacer
7 si i “ j entonces
8 M ri, js “ 1;
9 si j ă n entonces
10 M ri, j ` 1s “ 1;
11 fin
12 fin
13 fin
14 fin
15 /* Completando el elemento que falta */
16 M rn, 1s “ 1;
17 imprimir: M;
18 fin;

1 function PerfectMatrix(n)
2 #Crear la matriz nula
3 M=zeros(n,n)
4 #Crea la matriz perfecta
5 for i=1:n
6 for j=1:n
7 if i==j
8 M[i,j]=1
9 if j<n
10 M[i,j+1]=1
11 end
12 end

6
13 end
14 end
15 #Completa el elemento faltante
16 M[n,1]=1
17 return M
18 end
19 clearconsole()
20 A=PerfectMatrix(22)

Listing 4: Código fuente Julia para determinar la matriz perfecta

Figura 1: Julia en el IDE Atom

También podría gustarte