cap1.3 tutor recursividad matriz
TRANSCRIPT
Ing. Mary Lopez
4. Recursion con MatricesProgramacio
n II
Iterar es Humano Recursividad es Divino
Universidad Autónoma Gabriel Rene Moreno
FICCTSemestre I/2017
4. La matrizIntroduccion• Definici
on• Caract
eristicas
Tipos de Matriz• Cuadra• Triangular
Superior• Nula• Matriz Fila
Operaciones con Matrices• Suma• Producto
Ejercicios• GenMat1
Introducción “Su principal aplicación
práctica esta en la solución de sistemas de ecuaciones
lineales”
DefiniciónLlamaremos matriz de orden (nxm) sobre el cuerpo de los números reales a un conjunto de números reales dispuestos en n filas y m columnas de la siguiente forma:
Características1. Un nombre2. La dimensión u orden de una matriz, está dado por la
cantidad de filas (n) y la cantidad de columnas (m) que esta tenga y se denota por (nxm).
3. Cada elemento de la matriz corresponde a un número real representado de la forma (aij) donde i corresponde a la posición de fila y j corresponde a la posición de la columna dentro de la matriz. (A2,3)
4. La cantidad de elementos de la matriz se determina multiplicando la cantidad de filas por la cantidad de columnas. (A(2x3) => Tiene 6 elementos (2*3) )
Tipos de Matriz
“Típico andas por la calle y por ahí te encuentras con alguna matriz escalonada”
Tipo de Matriz Ejemplo1. Matriz FIla: Es la que tiene una sola fila. A(1 x M)
2. Matriz Columna: Es la que tiene una sola columna . A (N x 1)
3. Matriz nula si: Aij =0 i => 1 <= i <= n ; j => 1 <= j <= m.4. A será llamada matriz cuadrada si: n=m.
5. Matriz diagonal si: n = m => Igual Nro. Filas y Columnas
Aij =0 => Donde i <> j
Tipo de Matriz Ejemplo6. A será llamada matriz identidad si:
n = m => Igual Nro. Filas y Columnas
Aij =0 => Donde i <> jAij =1 => Donde i = j
7. Matriz triangular superior si: n = m => Igual Nro. Filas y Columnas
Aij =0 => Donde i > j
8. Mmatriz triangular inferior si n = m => Igual Nro. Filas y Columnas
Aij =0 => Donde i < j
9. Matriz simétrica n = m => Igual Nro. Filas y Columnas
Aij = Aji
Operaciones con Matrices
“Hay operaciones matriciales en las que el orden de los
factores altera el resultado”
SUMA DE MATRICES
10 2050 3552 4
10 50
20 3510 36
+ =20 70
70 7062 40
1. Las matrices a sumar deben ser de igual dimensión2. Tan solo pensar en llenar la matriz resultante
Cij=Aij + Bij3. La suma de las matrices se vacía en una nueva matriz.4. La matriz resultante será de igual dimensión que las matrices sumadas
A B C
Ejercicios con Matrices
“Generar matrices es muy similar a generar series
numéricas.”
Para tomar en cuenta !!!
Para resolver matrices se debe siempre tratar de : Mapear la Matriz. En cada posición poner que fila y que
columna ocupa el elemento Identificar las posiciones de los elementos a analizar en la
matriz Encontrar la relación Fila Versus Columna para cada
elemento que se esta analizando en la matriz. Esto es la clave para ver como es mas conveniente moverse en la matriz:
Por fila y columnas ó por columna y luego filas.
1. GENERAR LA SIGUIENTE MATRIZ
MA T1 (6 x 6)
MA T2 (7 x 7)
MATRIZ DE ANILLOSPaso 1: Análisis según la matriz Mat1
1.La matriz es cuadrada Mat1 (N x N)2. El primer anillo esta lleno con un valor constante ( 6)
val = N3. El segundo anillo esta lleno con otro valor constante ( 5 )
val = val - 14. Similar al segundo anillo se van formando el resto de los anillos hasta que: se llega al centro de la matriz.
Conviene entonces que se llena la matriz por anillo
¿ Como saber que la matriz ya esta llena?Marcar limites Superior = MaxInferior = Min
MATRIZ DE ANILLOSPaso 2: Diseño para la matriz Mat1
GenAnillos(Int ** , int N, int M, int pf, int pc,int &Max, int &Min)
Int **MatInt NInt MPf=0Pc=0Int MaxInt Min
Int **MatInt MaxInt Min
MATRIZ DE ANILLOSPaso 3: Inplementación
void GenMat1(int * *Mat,Grid,int posf,int posc,int &max,int &min) {
if ( posc>max) { posc=min; posf=posf+1;}if(posf>max){
max=max-1; min=min+1;posf=min; posc=min;
}
if(min<max+1){ if(posf==max || posf==min || posc==max || posc==min){ Mat[posf][posc] =max+1; }; if(posf==max || posf==min) posc=posc+1; else if(posc==min)posc=max; else posc=posc+1; GenMat1(Mat,posf,posc,max,min);}
}
Se paso en columnas: - Salta fila - Columna inicia en min
Se paso en filas:- Se mueve los Limite min y max - Toca el siguiente anillo, por lo que la columna y la fila inician en min
// Lo siguiente controla que los anillos termine de completarse