16
Ing. Mary Lopez 4. La Matriz Programacion II Iterar es Humano Recursividad es Divino Universidad Autónoma Gabriel Rene Moreno FICCT Semestre I/2015

Cap2.3 tutor recursividad matriz

Embed Size (px)

Citation preview

Ing. Mary Lopez

4. La MatrizProgramacio

n II

Iterar es Humano Recursividad es Divino

Universidad Autónoma Gabriel Rene Moreno

FICCTSemestre I/2015

4. La matriz

Introduccion• Definicion• Caracteristicas

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 20

50 35

52 4

10 50

20 35

10 36

+ =

20 70

70 70

62 40

1. Las matrices a sumar deben ser de igual dimensión2. Tan solo pensar en llenar la matriz resultante

Cij=Aij + Bij

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