SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
UNIVERSIDAD NACIONAL ABIERTA
VICERRECTORADO ACADÉMICO
ÁREA: INGENIERÍA
TRABAJO PRÁCTICO
ASIGNATURA: GRAFOS Y MATRICES (332)
ALUMNO: MEDINA RONALD
CÉDULA DE IDENTIDAD: V-16.291.029
EMAIL DEL ESTUDIANTE: alexchelsea222@gmail.com
TELÉFONO: 0412-1300161
CENTRO LOCAL: CARABOBO
CARRERA: INGENIERÍA DE SISITEMAS (236)
ASESOR: ING. ISBELIA MEDINA
LAPSO: 2018-1 (NOVIEMBRE 2018)
RESULTADOS DE CORRECCIÓN:
TABLA DE CONTENIDO
Introducción……………………………………………………………………. Página 3
Objetivo 6…..…………………………………………………………………… Página 4
Objetivo 8……………………………………………………………………… Página 8
Objetivo 9……………………………………………………………………… Página 16
Objetivo 10…………………………………………………………………...…Página 20
Anexos………...……………………………………………………………...…Página 23
INTRODUCCIÓN
La presente asignatura está basada en dos pilares que el futuro ingeniero
de sistemas debe incorporar dentro sus diversas competencias: Grafos y Matrices.
Ambas tienen gran importancia al momento de plantear diversos problemas y
encontrar una solución. Ambos componentes forman parte del algebra, una rama
de las matemáticas que ofrece soluciones a problemas en diversas áreas de la
ingeniería, informática, economía entre otros.
Los grafos pueden aplicarse en diagramas de flujos, modelado de redes,
reconocimiento de patrones, transporte de mercancía, entre otros. En el caso de
las matrices tiene aplicación en la resolución de sistemas de ecuaciones lineales,
notación matricial y modelado computacional, ambos áreas de estudio
independientemente del tipo de organización a analizar.
Los objetivos del presente trabajo práctico son los siguientes:
Resolver un sistema de ecuaciones lineales matricial aplicando los métodos
numéricos de Jacobi y Gauss – Siedel.
Aplicar los modelos de matrices dispersas, con la finalidad de disminuir la memoria
al introducir una matriz al computador.
Determinar el factor de Cholesky en una matriz
Desarrollar paso a paso el algoritmo de mínimo grado a un grafo determinado.
PREGUNTA # 1 - OBJETIVO 6 - CRITERIO DE DOMINIO 1/1
Resuelva el siguiente sistema de ecuaciones lineales, utilizando los
métodos de: Jacobi y Gauss-Seidel, con un vector inicial X(0)
= [0,0,0,0,0] y un
Ɛ = 10-3
, esto es | X(k-1)
- X(k)
| < Ɛ. Reflejar en una tabla las iteraciones
necesarias para cada uno de los métodos citados.
10x1 + x2 - 2x3 + 0x4 = 6
x1 +10x2 - x3 + 3 x4 = 25
- 2x1 - x2 + 8x3 - x4 = -11
0x1 + 3x2 - x3 + 5x4 = -11
La matriz asociada al sistema es:
10 1 2 0 6
1 10 -1 3 25
A = -2 -1 8 -1 y el vector independiente b = -11
0 3 -1 5 -11
a) Diga si los métodos de Gauss-Seidel y Jacobi para el sistema de
ecuaciones dado converge o diverge.
Análisis de Convergencia:
Se utilizará dos caminos para verificar la convergencia de la matriz A, para
ambos métodos, una verificación teórica y una práctica:
Verificación Teórica: Para ambos métodos iterativos (Jacobi y Gauss – Siedel)
estos convergen si los coeficientes de la matriz cumple con:
n
|aii| > Σ |aij|, 1<= i <= n. Esto es para cada fila de A
j=1, j≠i.
Esto verifica si la matriz es estrictamente diagonal dominante, basado en el lema
de Hadamard:
Se procede a verificarlo en la matriz de estudio:
Fila 1, pivote 10; |10| > |1| + |2| + |0| = 3; sí cumple.
Fila 2, pivote 10; |10| > |1| + |-1| + |3| = 5; sí cumple.
Fila 3, pivote 8; |8| > |-2| + |-1| + |-1| = 4; sí cumple.
Fila 4, pivote 5; |5| > |0| + |3| + |-1| = 4; sí cumple.
Al verificar todos los pivotes nos indica que teóricamente, la matriz A es una matriz
diagonal dominante.
Verificación Práctica:
Independientemente del método iterativo utilizar, se deben considerar dos
aspectos:
1) Se debe conocer que la sucesión de vectores Xm con m>0 converge a una
solución X. Para ello los métodos dan la oportunidad, si la sucesión de vectores
converge a X, cada componente debe tener un valor bastante cercano a Xi, es
decir:
X1(m) a X1, X2(m) a X2, X3(m) a X3……. Xn (m) a Xn.
Si existe divergencia estos componentes se alejaran en cada iteración del valor
real de cada variable.
2) Definir una condición de parada, al elaborar un algoritmo, que detenga el
proceso iterativo (Jacobi o Gauss – Siedel).
Estas consideraciones son elaboradoras por el desarrollador, que define el
número máximo de iteraciones, para detener el proceso cuando se haya ejecutado
la cantidad de veces establecida. Otro enfoque basado en la convergencia de
Jacobi y el número de operaciones, está referida en el error E. Al llevarlo a un
criterio más computaciónal, si se establece una parada del algoritmo cuando:
| X (k-1)
- X (k)
| < Ɛ
Donde Ɛ esta prefijado por el programador. En la matriz de estudio A, se
estableció un error Ɛ = 10-3
, lo indica una condición de parada cuando se cumpla:
| X (k-1)
- X (k)
| < 10-3
b) En el caso de que los métodos converjan, ¿Cuál lo hace más
rápidamente?
Los métodos iterativos usan la matriz original durante el proceso sin perder
sus propiedades. Estos métodos se basan en la construcción de una sucesión
convergente en cada iteración y el límite de esta sucesión es la solución al
sistema. El proceso se detiene de comparar condición establecida. A continuación
se definen ambos métodos,
Para Jacobi se tiene:
n
1
xi
(m)
= ------- bi - aii xj
(m-1) , con m
≥ 1, i = 1... n
aii
j=1, j≠i
Y para Gauss-Seidel:
i-1 n
1
xi
(m)
= ------ bi - aij xj
(m)
- aij xj
(m-1) ,
con m ≥ 1, 1 ≤ i ≤ n.
aii
j=1 j=i+1
En ambos métodos, Matriz A parte del vector inicial X0 = [0 0 0 0 0] t
y una
tolerancia de 0,001. Los resultados obtenidos por el método de Jacobi se
muestran en la tabla 6.1 mientras que los resultados numéricos de Gauss – Siedel
están en la 6.2.
Iteración: m X1
(m)
X2
(m)
X3
(m)
X4
(m)
0 0 0 0 0
1 0,6 2,5 -1.375 -2,2
2 0,075 2,9625 -1,1875 -3,975
3 0,06625 3,56625 -1,482813 -4,2150
4 -0,053188 3,609594 -1,439531 -4,636313
5 -0,048866 3,752259 -1,516637 -4,653663
6 -0,078553 3,749322 -1,499892 -4,754683
7 -0,074911 3,784271 -1,520308 -4,749571
8 -0,082489 3,780332 -1,51439 -4,774624
Tabla 6.1. Resultados de la iteración de la matriz A, aplicando el método de Jacobi.
Con el método de Jacobi, se obtuvo una convergencia de:
X = [- 0,082 3,78 -1,51 -4,8] t
, alcanzándose en la iteración 8, y una condición de
parada en I X (7)
- X (8)
I t
= 0,0008 < 0,001.
Iteración: m X1
(m)
X2
(m)
X3
(m)
X4
(m)
0 0 0 0 0
1 0,6 2,44 -0,92 -3,848
2 0,172 3,5452 -1,36985 -4,60109
3 -0,02849 3,746191 -1,488985 -4,745512
4 -0,072416 3,781997 -1,513543 -4,771907
5 -0,080908 3,788308 -1,518177 -4,776621
6 -0,082466 3,789415 -1,519017 -4,777452
Tabla 6.2. Resultados de la iteración de la matriz A, aplicando el método de Gauss - Siedel.
Con el método de Gauss-Seidel, se obtuvo una convergencia de:
X = [- 0,082 3,79 -1,52 -4,8] t
, alcanzándose en la iteración 6, y una condición de
parada en I X (5)
- X (6)
I t
= 0,00084 < 0,001.
Comparando los resultados, se puede concluir que el método de Gauss –
Seidel converge mas rapido que el metodo de Jacobi. Ambos metodos convergen,
el de Jacobi lo hace en la iteración 8 y el de Gauss – Siedel en la iteración 6. Los
algoritmos utilizados, se programaron en el lenguaje C++, están descritos en el
anexo.
Este resultado puede ser por la forma que trabaja Gauss – Seidel, usa los valores
más recientes para calcular la siguiente iteración , y se espera más rápido que
Jacobi o refleje evidencia de divergencia, esto es lo que sucede en forma general,
pero no es un regla, porque hay casos en el método de Jacobi converge y Gauss
– Seidel diverge.
PREGUNTA # 2 - OBJETIVO 8 - CRITERIO DE DOMINIO 1/1
Dada la siguiente matriz:
Figura 8.1 Matriz dispersa de A en su estado inicial.
a) Calcule el ancho de banda de la matriz A.
El ancho de banda está definido por la ecuación βi (A) = i - ξi(A), i = 1...n, donde
ξi(A) = min j: aij ≠ 0, donde j se refiere al subíndice columna del primer elemento
de la fila, distinto de cero. Entonces, el ancho de banda de A se define cómo:
β (A) = máx. βi (A), i = 1...n, o β (A) = max I – j aij ≠ 0, y es la región que se
encuentra a β (A) posiciones de la diagonal principal. Para la matriz A, dada se
tiene:
Ancho de Banda de la Matriz
Fila i ξᵢ (A) βᵢ (A) = i - ξᵢ (A)
1 1 0
2 1 1
3 1 2
4 3 1
5 3 2
6 3 3
7 4 3
8 1 7
Tabla 8.2 Cálculo del ancho de banda en la matriz A.
El resultado de la tabla indica el ancho de banda: β (A) = máx. { I – j}: aij ≠ 0 = 7;
esto es un área formada a siete posiciones de la diagonal principal. Que se
muestra en la siguiente figura.
Figura 8.3 Banda de matriz A.
Al obtener la banda de A, se puede notar a simple vista, la cantidad de posiciones
nulas que son incluida, esto genera un desperdicio de memoria y tiempo de
procesamiento. La causa es, porque el grafo de estudio, posee un ancho de banda
de 7 y tamaño de contorno de 28 espacios
b) Describa el grafo de la matriz A.
Figura 8.4 Descripción grafica del grafo A.
Tabla 8.5 Adyacencia y grado de la matriz A
Vértice Vi Vértices Adyacentes Grado Vi
V1 V2,V3,V8 3
V2 V1,V3 2
V3 V1,V2,V4,V5,V6 5
V4 V3,V5,V7 3
V5 V3,V4,V6,V7 4
V6 V3,V5,V8 3
V7 V4,V5 2
V8 V1,V6 2
c) Calcule la envolvente de la matriz A.
Conjunto de Vértices Adyacencia: Ady (.) Posiciones en la Matriz
{V1} { V2,V3,V8} (2,1)
{V1,V2} { V3, V8} (3,1),(3,2)
{V1,V2,V3} { V4,V5,V6,V8} (4,3)
{V1,V2,V3,V4} { V5,V6,V7,V8} (5,3), (5,4)
{V1,V2,V3,V4,V5} {V6,V7,V8} (6,3), (6,5)
{V1,V2,V3,V4,V5,V6} {V7,V8} (7,4), (7,5)
{V1,V2,V3,V4,V5,V6,V7} {V8} (8,1), (8,6)
{V1,V2,V3,V4,V5,V6,V7,V8} Ø Ø
Tabla 8.6 Tabla que indica cálculo de la envolvente de la matriz A.
Con los datos obtenidos, se puede indicar gráficamente la envolvente de A:
Figura 8.7 Envolvente de la matriz A.
La envolvente está contenida en la banda de la matriz. Para cualquier matriz a
simétrica y positivo definida, se tiene que:
Env(A) ʗ Banda(A)
Esto queda confirmado en la práctica. En el grafo de estudio, se observa una
reducción en la cantidad de espacios de contorno, pasó de 28 a 19, y ancho de
banda de 7 a 3. Sin embargo, se observa margen de mejora en la fila número
ocho, donde se incluyeron cuatro posiciones nulas.
d) Aplique el algoritmo de Cuthill-McKee y su inverso a la matriz A.
El algoritmo tiene los siguientes pasos:
Paso 1: Seleccionar un vértice inicial, digamos u, y hacer u= V1’
Paso 2: Para i= 1,2,…,n se deben encontrar todos los vecinos del vértice Vi que
no hayan sido etiquetados previamente, y etiquetarlos en orden creciente de
grado.
Paso 3: Ordenamiento inverso de Cuthill – McKee: Las nuevas etiquetas para los
vértices del grafo están data por W1, W2,….., Wn donde:
Wi = Vn-1+1
A continuación se indican los cálculos de las nuevas etiquetas de los vértices
según el algoritmo Cuthill – McKee.
Vértice con la
Etiqueta dada
en el Grafo
Vecino no
Etiquetados Grado
Etiqueta de los Vecinos
dada por el Algoritmo
(Hasta el Paso 2)
V7 V4 3 V2’
V5 4 V3’
V4 V3 5 V4’
V5 V6 3 V5’
V3 V1 3 V7’
V2 2 V6’
V6 V8 2 V8’
Tabla 8.8 Etiquetas Vi’ del grafo A, luego del paso 1 y 2 del algoritmo.
El grafo con las nuevas etiquetas quedaría de la siguiente manera:
Figura 8.9 Descripción grafica del grafo A luego del algoritmo Cuthill – McKee.
Ahora se muestran la matriz de banda y envolvente, de este grafo G’.
Figura 8.10 Banda de la matriz A’.
Figura 8.11 Envolvente de la matriz de A’.
Se procede a realizar el tercer paso, el ordenamiento inverso Cuthill- McKee, y se
determinan las etiquetas inversas Wi, según la formula indicada arriba.
Vertices vi Wi = Vn-i+1=Vi
V1 W1 = V8–1+1 = V8
V2 W2 = V8–2+1 = V7
V3 W3 = V8–3+1 = V6
V4 W4 = V8–4+1 = V5
V5 W5 = V8–5+1 = V4
V6 W6 = V8–6+1 = V3
V7 W7 = V8–7+1 = V2
V8 W8 = V8–8+1 = V1
Tabla 8.12 Vértices etiquetados con ordenamiento inverso Cuthill – McKee.
El grafico tras el ordenamiento inverso, queda gráficamente de la siguiente forma.
Figura 8.13 Descripción grafica del grafo W luego del ordenamiento inverso.
A este grafo compuesto con elementos Wi, se determinará el ancho de banda y a
partir de ahí, la banda y la envolvente, para constatar la mejora de ordenar de
forma inversa los vértices Vi’ y consolidar los conceptos del presente objetivo.
Ancho de Banda de la Matriz
Fila i ξᵢ (A) βᵢ (A) = i - ξᵢ (A)
1 1 0
2 1 1
3 2 1
4 1 3
5 2 3
6 4 2
7 5 2
8 6 2
Tabla 8.14 Cálculo de ancho de banda en la matriz con elemento Wi.
Figura 8.15 Banda de la matriz W.
Conjunto de Vértices Adyacencia: Ady (.) Posiciones en la Matriz
{W1} {W2,W4} (2,1)
{W1,W2} {W3,W4} (3,2)
{W1,W2,W3} {W4,W5} (4,1)
{W1,W2,W3,W4} {W5,W6} (5,2),(5,3),(5,4)
{W1,W2,W3,W4,W5} {W6,W7} (6,4), (6,5)
{W1,W2,W3,W4,W5,W6} {W7,W8} (7,5), (7,6)
{W1,W2,W3,W4,W5,W6,W7} {W8} (8,6), (8,7)
{W1,W2,W3,W4,W5,W6,W7,W8} Ø Ø
Tabla 8.16 Cálculo de la envolvente de la matriz A.
Figura 8.17 Envolvente de la matriz W.
En la matriz W, se obtuvo el mismo valor de ancho de banda que la matriz A’ (3), a
pesar de esto, se obtuvo una mejora en el contorno total que paso de 15 a 14
espacios. A continuación se presenta una tabla resumen que contiene datos
relevantes como: valor del ancho de banda, contorno en banda, contorno en
envolvente, para las matrices A, A’ y W.
Característica
Matriz
A (Original) A’ (Obtenida por
algoritmo Cuthill-MCKee)
W (Obtenida por
ordenamiento inverso )
Ancho de Banda 7 3 3
Espacios contorno en
la Banda
28 18 18
Espacios de contorno
en la Envolvente
19 15 14
Tabla 8.18 Valores de ancho de banda y espacios de contorno obtenidos.
e) Describa el algoritmo de Cuthill-McKee inverso de la matriz A.
Obtenido el grafo asociado a la matriz A, se selecciona, al azar, un vértice de inicio
para comenzar el algoritmo; en éste caso se seleccionó v3.
Se identifican los vértices adyacentes a v3 y se etiquetan según el orden de sus
grados de menor a mayor: v5, v2 y v6. Cómo v3 pasó a ser v1, el vértice de
menor grado se etiquetará cómo v2 (v5), el siguiente en grado cómo v3 (v2) y el
de mayor grado v4 (v6). En caso de que dos o más vértices posean el mismo
grado, se deja al azar seleccionar cual se etiquetará primero.
Seguidamente se posiciona en v5 y se identifican los vértices adyacentes, no
etiquetados a éste y se etiquetan según su grado, en forma creciente; sus
adyacentes son v3 y v4, pero v3 ya está etiquetado, por lo tanto se toma
únicamente v4. La última etiqueta, del proceso anterior, fue v4 (v6), por lo tanto a
v4 le corresponde la siguiente v5.
Se posiciona sobre el vértice siguiente en este caso v2, por tener la etiqueta v3 y
se repite el proceso. El algoritmo se detiene hasta que todos los vértices del grafo
estén etiquetados, en este caso los diez vértices.
Con todos los vértices etiquetados se procede a reorganizar los vértices del grafo
con sus nuevas etiqueta, en los casos que las hubiere. Por ejemplo, nuestro
vértice de inicio fue v3, ahora nos posicionamos en él y se cambia la etiqueta de
v3 por v1. Se procede así con los demás vértices hasta completar los diez.
Terminado el proceso de reorganización, se aplica la mejora introducida por
George (1971), que no es más que invertir el orden de etiquetado de los vértices,
aplicando esta ecuación: Wi = Vn-i+1 = Vi. Por ejemplo para conocer el vértice vi
que le corresponde w8, se procede así:
w8 = v10-8+1 = v3, buscamos en el grafo el vértice etiquetado cómo v3 y
colocamos la etiqueta w8, procedimiento que repetimos con cada uno de los diez
vértices del grafo. De ésta manera finaliza el algoritmo de Cuthill-Mckee inverso.
PREGUNTA # 3 - OBJETIVO 9 - CRITERIO DE DOMINIO 1/1
Dada la matriz A, 2 0 3 1
A= 1 2 0 2
0 1 1 0
0 2 0 2
a) Realice y describa el proceso de eliminación gaussiana
Descripción de Eliminación Gaussiana:
Identificar las operaciones o ecuaciones. (Matriz).
Multiplicar una de las ecuaciones por un escalar. → n. (pf)
Se suma o resta mediante la adición de los correspondientes elementos de una
ecuación con otra. fi = fi + pfj
El objetivo final es obtener una matriz triangular superior, anulando las posiciones
inferiores a la diagonal principal, su usara la notación fi = fi + pfj, para el proceso
de eliminación; donde el valor de p, es el valor resultante de dividir el coeficiente
de la posición fi a eliminar y el coeficiente del pivote de la columna, la misma
donde está la posición a eliminar con la operación. Resolución del proceso de
eliminación Gaussiana: En la siguiente tabla se muestra la resolución de las
operaciones.
Tabla 9.1 Proceso de eliminación Gaussiana, Estructura no nula de A.
Proceso de Eliminación Gaussiana Estructura no nula de A
2 0 3 1 * * *
1 2 0 2 * * *
0 1 1 0 * *
0 2 0 2 * *
2 0 3 1 * * *
0 2 -3/2 3/2 * * *
0 1 1 0 * *
0 2 0 2 * *
2 0 3 1 * * *
0 2 -3/2 3/2 * * *
0 0 7/4 -3/4 * *
0 2 0 2 * *
2 0 3 1 * * *
0 2 -3/2 3/2 * * *
0 0 7/4 -3/4 * *
0 0 3/2 1/2 * *
2 0 3 1 * * *
0 2 -3/2 3/2 * * *
0 0 7/4 -3/4 * *
0 0 0 8/7 *
f4 = f4 - 6/7f3 →
f2 = f2 - 1/2 f1 →
f3 = f3 - 1/2 f2 →
f4 = f4 - 1f2 →
=
=
=
La matriz A, resultante de la eliminación gaussiana, es la siguiente:
2 0 3 1
A= 0 2 -3/2 3/2
0 0 7/4 -3/4
0 0 0 8/7
En la tercera columna de la tabla anterior, se observa cómo van cambiando
posiciones que inicialmente eran nulas pasaron a ser no nulas, luego del proceso
de eliminación. Este tipo de cambio de cero un valor numero distinto de cero, en
sistemas grandes, compromete la eficiencia computacional de los equipos debido
a la capacidad de memoria, para reducir este inconveniente existen métodos
mucho más eficientes, como por ejemplo, el tipo de factorización que se
presentará en el siguiente punto.
b) Dada la matriz A, halle su solución mediante el factor de Cholesky.
2 0 3 1
A= 1 2 0 2
0 1 1 0
0 2 0 2
La matriz inicial A no es simétrica ni positivo definida, si se reordenan las
filas se podrá mejorar las condiciones y aplicar el método de factorización de
Cholesky.
1 2 0 2
A’= 0 1 1 0
2 0 3 1
0 2 0 2
En esta matriz A’, sus pivotes no son nulos, no es simétrica, veamos si es
definida positiva, para eso se verificará las 3 tres submatrices principales de A’,
estas son:
3 1 1 1 0 1 2 0 2
A11 = 2 = 2, A22= 0 2 = 6; A33 = 0 3 1 = 8 A = 0 1 1 0 = 8
2 0 2 2 0 3 1
0 2 0 2
Estas submatrices principales de una matriz de obtienen eliminando filas y
columnas; la primera resulta de la eliminación de las filas y de las columnas 1, 2 y
3, la segunda eliminando las filas 1 y 2 y las columnas 1 y 2, la tercera al eliminar
solo la fila 1 y la columna 1 y la cuarta la matriz original, Luego queda demostrado
que A’ es positiva definida. Para subsanar la falta de simetría en A’ y calcular el
factor de Cholesky, se multiplicará A’ por su transpuesta; es decir, se obtendrá una
matriz B = A’T
A’. Para obtener A’T
se intercambia las filas por columnas en A’.
1 0 2 0 1 2 0 2 5 2 6 4
A’T
A’ = 2 1 0 2 0 1 1 0 B = A’T
A’ = 2 9 1 8
0 1 3 0 2 0 3 1 6 1 10 3
2 0 1 2 0 2 0 2 4 8 3 9
Con la multiplicación A’T
A’ se obtiene B, una matriz simétrica, se puede
comprobar a simple vista que lo es. El siguiente paso será verificar que es positiva
definida, se procederá a evaluar las submatrices principales y comprobar los
respectivos determinantes:
10 3 9 1 8 5 2 6 4
B11 = 9 = 9, B22= 3 9 = 81; B33= 1 10 3 = 128 B= 2 9 1 8 = 64
8 3 9 6 1 10 3
4 8 3 9
Ahora se realizara el método del producto interno, para calcular el factor de
Cholesky, se tiene:
j-1 j-1
lj,j = √ bj,j - l2
j,k , j є [1,4] y para i > j li,j = 1/lj,j bi,j - li,k lj,k
k=1 k=1
En la siguiente tabla se muestra el caculo de cada coeficiente.
Ecuación inicial para lj,j Operaciones y valor exacto de cada lj,j lj,j en R
2,2361
0,8944
2,6833
1,7889
2,8636
-0,4889
2,2350
1,6003
-0,4420
0,7807
Tabla 9.2 Calculo de coeficientes del factor de Cholesky de la matriz B.
Al obtener todos los coeficientes, se procede a construir el factor de
Cholesky, también llamada matriz L y su matriz transpuesta LT
.
√5 0 0 0 √5 0,8944 2,6833 1,7889
B = L LT
= 0,8944 2,8636 0 0 0 2,8636 -0,4889 2,235
2,6833 -0,4889 1,6003 0 0 0 1,6003 -0,4420
1,7889 2,235 -0,4420 0,7807 0 0 0 0,7807
c) Obtenga la matriz de llenado de A.
Si se tiene una matriz A tal que: sea simétrica, positivo definida, y se le
haya calculado su factor Cholesky L, se define la matriz de llenado de A,
denotada por F(A), cómo: F(A) = L + LT
. Se procede a calcular la matriz de llenado
a partir del resultado obtenido en el punto b.
√5 0 0 0 √5 0,8944 2,6833 1,7889
F(B) = 0,8944 2,8636 0 0 + 0 2,8636 -0,4889 2,235
2,6833 -0,4889 1,6003 0 0 0 1,6003 -0,4420
1,7889 2,235 -0,4420 0,7807 0 0 0 0,7807
La matriz de llenado es:
4,4722 0,8944 2,6833 1,7889
F (B) = L + LT
= 0,8944 5,7272 -0,4889 2,2350
2,6833 -0,4889 3,2006 -0,4420
1,7889 2,2350 -0,4420 1,5614
La factorización de Cholesky, permite encontrar un ordenamiento mucho
más eficiente que la que se podría encontrar mediante la eliminación Gaussiana,
ya que disminuye los cambios no deseados de posiciones nulas a no nulas. Como
se observó en el punto a) de este objetivo 9. Si la matriz A de estudio que se le
desea encontrar el factor Cholesky fuera simétrica inicialmente, el método
ilustraría una mejor utilidad.
PREGUNTA # 4 - OBJETIVO 10 - CRITERIO DE DOMINIO 1/1
a) Aplique el algoritmo de minimo grado y reflejar sus pasos, para el grafo de
estudio, (Grafo de estudio indicado en la siguiente tabla).
El algoritmo de minimo grado, permite optimizar el proceso de los modelos de
eliminacion, cuando se selecciona un vertice, en este caso el de grado menos, y
no de forma aleatoria, se evita el indeseado cambio de posiciones nulas a no
nulas, este intercambio no permite el uso eficiente de la memorias de los equipos
informaticos de calculo. Existen iteraciones en donde hay presente varios vertices
con el mismo grado, en este caso se selecciona uno de ellos al azar, aun asi
existe ya metodos matematicos, o mejor dicho criterios para no realizar el
desempate por simple azar, entre ellos se encuentre el el Algoritmo de Mínimo
Grado utilizando el Operador Reach. A continuacion se desarrollará el algoritmo
de mínimo grado, para el grafo indicado.
Grafos Grafo de Estudio
G ᴬ = G₀
Grafos Grado de Eliminación Mínimo Grado
Vértice
Vértice
Seleccionado
G ₀ = 1 V1
G ₁ =
2
Al azar
entre V5,
V8 y V9
V5
G ₂ = 2
Al azar
entre V3,
V8 y V9
V9
G ₃ = 1 V8
G9 = Culminación del Proceso de Eliminación
Tabla 10.1 Algoritmo de mínimo grado aplicado al grafo de estudio.
G4 =
2
Al azar
entre V3,
V6 y V7
V6
G5 =
`
1 V7
G ₆ =
2
Al azar
entre V2,
V3 y V4
V2
G ₇ =
1 V4
G8 = 1 V3
ANEXOS
Algoritmo de Jacobi, en lenguaje C++:
#include <stdio.h>
#include <stdlib.h>
int dim;
float norma(float vector1[],float vector2[]);
float suma_jacobi(float Matriz[], float vector[], int componente);
int main(){
int i,j,iteraciones=0;
float error,epsilon;
printf("nMetodo de Jacobi, para resolver sistemas Ax=b n");
printf("Dimension de la matriz A: ");
scanf("%d",&dim);
float A[dim][dim],b[dim],x[dim],x_prev[dim],aux[dim];
printf("n Elementos de la matriz A: n");
for(i=0;i<dim;i++) for(j=0;j<dim;j++){
printf("A(%d,%d)=",i,j); scanf("%f",&A[i][j]);
}
printf("nElementos del vector de terminos independientes: n");
for(i=0;i<dim;i++){
printf("b(%d)=",i); scanf("%f",&b[i]);
}
printf("n Error de parada: n");
printf("E=",i); scanf("%f",&epsilon);
error=epsilon+1;
//cominezo algoritmo de Jacobi
//Error se mide como la norma del vector diferencia entre iteracion i e i+1
printf("n Valores del vector inicial : n");
for(i=0;i<dim;i++){
printf("x0(%d)=",i); scanf("%f",&x_prev[i]);
}
while (error>epsilon){
for(i=0;i<dim;i++){
for(j=0;j<dim;j++) aux[j]=A[i][j];
x[i]=(1/A[i][i])*(b[i]-suma_jacobi(aux,x_prev,i));
}
error=norma(x,x_prev);
printf("nn Iteracion %d: n",iteraciones);
for(i=0;i<dim;i++){
x_prev[i]=x[i];
printf("X(%d)=%f n",i,x[i]);
}
iteraciones++;
if (iteraciones==10) error=epsilon-1;
}
printf("Solucion del sisteman");
printf("Numero de iteraciones: %d n", iteraciones);
for(i=0;i<dim;i++){
printf("x(%d)=%fn",i,x[i]);
}
return 1;
}
float norma(float vector1[],float vector2[]){
float aux=0;
int i;
for(i=0;i<dim;i++){
aux=aux+(vector1[i]-vector2[i])*(vector1[i]-vector2[i]);
}
return aux;
}
float suma_jacobi(float Matriz[], float vector[], int componente)
{
float aux=0;
int i;
for(i=0;i<dim;i++){
if (componente!=i){
aux=aux+Matriz[i]*vector[i];
}
}
return aux;
}
Algoritmo de Gauss-Seidel, en lenguaje C++:
#include<iostream>
#include<conio.h>
using namespace std;
int main(void)
{
float a[10][10], b[10], x[10], y[10];
int n = 0, m = 0, i = 0, j = 0;
cout <<"n Metodo de Gauss - Siedel para resolver sistemas Ax=b n";
cout << "Ingresa el numero de filas de la matriz A cuadrada : ";
cin >> n; // n matriz de coeficientes
cout << "Ingresa los valores de la matriz A n";
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
cout << "Ingresa el valor de la posicion " << i << ", " << j << ")";
cin >> a[i][j];
}
}
cout << "n Ingresa los valores del vector de coeficiente b n";
for (i = 0; i < n; i++)
{
cout << "Ingresa el valor de la posicion :(" << i << ", " << j << ") ";
cin >> b[i]; // b es el vector de coeficientes
}
cout << "Ingresar valores del vector inicial n";
for (i = 0; i < n; i++)
{
cout << "Ingresa valor de la posicion :(" << i<<"):";
cin >> x[i]; // x es el vector inicial
}
cout << "n Ingresa el numero de iteraciones: "; // se va a cambiar por el valor del error
cin >> m; // m es el numero de iteraciones
while (m > 0)
{
for (i = 0; i < n; i++)
{
y[i] = (b[i] / a[i][i]);
for (j = 0; j < n; j++)
{
if (j == i)
continue;
y[i] = y[i] - ((a[i][j] / a[i][i]) * x[j]);
x[i] = y[i];
}
printf("x%d = %f ", i + 1, y[i]);
}
cout << "n";
m--;
}
return 0;
}

Más contenido relacionado

La actualidad más candente

Matrices
MatricesMatrices
Matrices
ujgh
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
Giancarlo Aguilar
 
Producto vectorial
Producto vectorialProducto vectorial
Producto vectorial
alex0002
 

La actualidad más candente (20)

Rango y nulidad de una matriz
Rango y nulidad de una matrizRango y nulidad de una matriz
Rango y nulidad de una matriz
 
Matrices
MatricesMatrices
Matrices
 
El metodo doolittle
El metodo doolittleEl metodo doolittle
El metodo doolittle
 
Ecuaciones Parametricas
Ecuaciones ParametricasEcuaciones Parametricas
Ecuaciones Parametricas
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Ejercicios de vectores o arrays
Ejercicios de vectores o arraysEjercicios de vectores o arrays
Ejercicios de vectores o arrays
 
Estructuras algebraicas
Estructuras algebraicasEstructuras algebraicas
Estructuras algebraicas
 
Dominio y Rango de Funciones Reales
Dominio y Rango de Funciones RealesDominio y Rango de Funciones Reales
Dominio y Rango de Funciones Reales
 
Un problema sobre conjuntos
Un problema sobre conjuntosUn problema sobre conjuntos
Un problema sobre conjuntos
 
Producto vectorial
Producto vectorialProducto vectorial
Producto vectorial
 
4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo
 
Matrices
MatricesMatrices
Matrices
 
Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
 
Grafos eulerianos y hamiltonianos
Grafos eulerianos y hamiltonianosGrafos eulerianos y hamiltonianos
Grafos eulerianos y hamiltonianos
 
Ecuaciones Lineales.
Ecuaciones Lineales.Ecuaciones Lineales.
Ecuaciones Lineales.
 
EJERCICIOS DE MATRICES TIPO MATEMÁTICAS CCSS
EJERCICIOS DE MATRICES TIPO  MATEMÁTICAS CCSSEJERCICIOS DE MATRICES TIPO  MATEMÁTICAS CCSS
EJERCICIOS DE MATRICES TIPO MATEMÁTICAS CCSS
 
Relaciones
RelacionesRelaciones
Relaciones
 
Integracion numerica 1_trapecio
Integracion numerica 1_trapecioIntegracion numerica 1_trapecio
Integracion numerica 1_trapecio
 
Diapositivas de estructuras algebraicas
Diapositivas de estructuras algebraicasDiapositivas de estructuras algebraicas
Diapositivas de estructuras algebraicas
 
Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....
Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....
Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....
 

Similar a Trabajo practico - Grafos y Matrices (332) - UNA

primer parcial de algebra del cbc ciencias economicas
primer parcial de algebra del cbc ciencias economicasprimer parcial de algebra del cbc ciencias economicas
primer parcial de algebra del cbc ciencias economicas
apuntescbc
 
Matrices y sus Aplicaciones.pdf
Matrices y sus Aplicaciones.pdfMatrices y sus Aplicaciones.pdf
Matrices y sus Aplicaciones.pdf
JudyMaca1
 
Tema 5 vectores_en_el_espacio
Tema 5 vectores_en_el_espacioTema 5 vectores_en_el_espacio
Tema 5 vectores_en_el_espacio
Cesar Jimenez
 

Similar a Trabajo practico - Grafos y Matrices (332) - UNA (20)

Cuadernomateiii
CuadernomateiiiCuadernomateiii
Cuadernomateiii
 
primer parcial de algebra del cbc ciencias economicas
primer parcial de algebra del cbc ciencias economicasprimer parcial de algebra del cbc ciencias economicas
primer parcial de algebra del cbc ciencias economicas
 
Algebralineal.docx
Algebralineal.docxAlgebralineal.docx
Algebralineal.docx
 
Trabajo colaborativo unidad 3 post tarea
Trabajo colaborativo unidad 3 post tareaTrabajo colaborativo unidad 3 post tarea
Trabajo colaborativo unidad 3 post tarea
 
Matrices y sus Aplicaciones.pdf
Matrices y sus Aplicaciones.pdfMatrices y sus Aplicaciones.pdf
Matrices y sus Aplicaciones.pdf
 
Matrices y sus aplicaciones
Matrices y sus aplicacionesMatrices y sus aplicaciones
Matrices y sus aplicaciones
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Trabajo verano 2015
Trabajo verano 2015Trabajo verano 2015
Trabajo verano 2015
 
Clase8 minisem
Clase8 minisemClase8 minisem
Clase8 minisem
 
Teoría de matrices
Teoría de matricesTeoría de matrices
Teoría de matrices
 
10.sistemas mal condicionados
10.sistemas mal condicionados10.sistemas mal condicionados
10.sistemas mal condicionados
 
Algebra lineal
Algebra linealAlgebra lineal
Algebra lineal
 
2 matrices
2 matrices2 matrices
2 matrices
 
2 matrices
2 matrices2 matrices
2 matrices
 
matrices
matricesmatrices
matrices
 
Metodos numericos capitulo 2
Metodos numericos capitulo 2Metodos numericos capitulo 2
Metodos numericos capitulo 2
 
Presentación1 diego
Presentación1 diegoPresentación1 diego
Presentación1 diego
 
Tema 5 vectores_en_el_espacio
Tema 5 vectores_en_el_espacioTema 5 vectores_en_el_espacio
Tema 5 vectores_en_el_espacio
 
Solucionario tema 5 mat II(vectores)
Solucionario tema 5 mat II(vectores)Solucionario tema 5 mat II(vectores)
Solucionario tema 5 mat II(vectores)
 
Vectores en el espacio
Vectores en el espacioVectores en el espacio
Vectores en el espacio
 

Más de Ronald Alexander Medina Pinto

Más de Ronald Alexander Medina Pinto (20)

Trabajo practico - Sistemas Operativos (358) - UNA
Trabajo practico - Sistemas Operativos (358) - UNATrabajo practico - Sistemas Operativos (358) - UNA
Trabajo practico - Sistemas Operativos (358) - UNA
 
Trabajo practico - Base de Datos (311) - UNA
Trabajo practico - Base de Datos (311) - UNATrabajo practico - Base de Datos (311) - UNA
Trabajo practico - Base de Datos (311) - UNA
 
Trabajo practico - Arquitectura del Computador (333) - UNA
Trabajo practico - Arquitectura del Computador (333) - UNATrabajo practico - Arquitectura del Computador (333) - UNA
Trabajo practico - Arquitectura del Computador (333) - UNA
 
Trabajo Practico - Gerencia Organizacional (235) - UNA - Afinnia Wiix
Trabajo Practico - Gerencia Organizacional (235) - UNA - Afinnia WiixTrabajo Practico - Gerencia Organizacional (235) - UNA - Afinnia Wiix
Trabajo Practico - Gerencia Organizacional (235) - UNA - Afinnia Wiix
 
Trabajo Practico - Aplicación de la Programación Lineal y Entera (359) - UNA
Trabajo Practico - Aplicación de la Programación Lineal y Entera (359) - UNATrabajo Practico - Aplicación de la Programación Lineal y Entera (359) - UNA
Trabajo Practico - Aplicación de la Programación Lineal y Entera (359) - UNA
 
Trabajo Practico - Simulación (337) - UNA
Trabajo Practico - Simulación (337) - UNATrabajo Practico - Simulación (337) - UNA
Trabajo Practico - Simulación (337) - UNA
 
Trabajo Practico - Investigación de Operaciones II (348) - UNA
Trabajo Practico - Investigación de Operaciones II (348) - UNATrabajo Practico - Investigación de Operaciones II (348) - UNA
Trabajo Practico - Investigación de Operaciones II (348) - UNA
 
Trabajo, Modelos de Transporte y Optimización de Redes
Trabajo, Modelos de Transporte y Optimización de RedesTrabajo, Modelos de Transporte y Optimización de Redes
Trabajo, Modelos de Transporte y Optimización de Redes
 
Informe sobre la Operación Secado - DEPLA - Procesos Químicos
Informe sobre la Operación Secado - DEPLA -  Procesos QuímicosInforme sobre la Operación Secado - DEPLA -  Procesos Químicos
Informe sobre la Operación Secado - DEPLA - Procesos Químicos
 
Presentación Operación Secado - DEPLA - Procesos Químicos
Presentación Operación Secado - DEPLA -  Procesos QuímicosPresentación Operación Secado - DEPLA -  Procesos Químicos
Presentación Operación Secado - DEPLA - Procesos Químicos
 
Informe Termometría - Termodinámica General
Informe Termometría - Termodinámica GeneralInforme Termometría - Termodinámica General
Informe Termometría - Termodinámica General
 
Trabajo Especial de Grado, T.E.G, Medina - Brea, UC- Ingeníeria Industrial - ...
Trabajo Especial de Grado, T.E.G, Medina - Brea, UC- Ingeníeria Industrial - ...Trabajo Especial de Grado, T.E.G, Medina - Brea, UC- Ingeníeria Industrial - ...
Trabajo Especial de Grado, T.E.G, Medina - Brea, UC- Ingeníeria Industrial - ...
 
Construccion Diagrama causa efecto (Ishikawa) RM
Construccion Diagrama causa efecto (Ishikawa) RMConstruccion Diagrama causa efecto (Ishikawa) RM
Construccion Diagrama causa efecto (Ishikawa) RM
 
Ronald medina-talentoday-book-personal
Ronald medina-talentoday-book-personalRonald medina-talentoday-book-personal
Ronald medina-talentoday-book-personal
 
QFD Quality Function Deployment - "Despliegue de la Función de la Calidad"
QFD Quality Function Deployment - "Despliegue de la Función de la Calidad"QFD Quality Function Deployment - "Despliegue de la Función de la Calidad"
QFD Quality Function Deployment - "Despliegue de la Función de la Calidad"
 
ISO 10012 mapa de conceptos RM UC
ISO 10012 mapa de conceptos RM UCISO 10012 mapa de conceptos RM UC
ISO 10012 mapa de conceptos RM UC
 
ISO 10017 (herramientas para la mejora de la calidad) mapa de conceptos RM
ISO 10017 (herramientas para la mejora de la calidad) mapa de conceptos RMISO 10017 (herramientas para la mejora de la calidad) mapa de conceptos RM
ISO 10017 (herramientas para la mejora de la calidad) mapa de conceptos RM
 
ISO 17025 mapa de conceptos RM UC
ISO 17025 mapa de conceptos RM UCISO 17025 mapa de conceptos RM UC
ISO 17025 mapa de conceptos RM UC
 
Ingenieria de metodos 1 T.E.L RM UC
Ingenieria de metodos  1   T.E.L  RM  UCIngenieria de metodos  1   T.E.L  RM  UC
Ingenieria de metodos 1 T.E.L RM UC
 
Primera ley de la termodinámica para sistemas cerrados UC
Primera ley de la termodinámica para sistemas cerrados UCPrimera ley de la termodinámica para sistemas cerrados UC
Primera ley de la termodinámica para sistemas cerrados UC
 

Último

auditoria fiscalizacion inspecciones de seguridad
auditoria fiscalizacion inspecciones de seguridadauditoria fiscalizacion inspecciones de seguridad
auditoria fiscalizacion inspecciones de seguridad
NELSON QUINTANA
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
refrielectriccarlyz
 
RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADES
RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADESRECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADES
RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADES
yanicsapernia5g
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
andersonsubero28
 
Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docxUnidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
AlanCarrascoDavila
 

Último (20)

auditoria fiscalizacion inspecciones de seguridad
auditoria fiscalizacion inspecciones de seguridadauditoria fiscalizacion inspecciones de seguridad
auditoria fiscalizacion inspecciones de seguridad
 
1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf
 
S06_s2+-+Centro.pdf qiieiejanahshsjsnndjd
S06_s2+-+Centro.pdf qiieiejanahshsjsnndjdS06_s2+-+Centro.pdf qiieiejanahshsjsnndjd
S06_s2+-+Centro.pdf qiieiejanahshsjsnndjd
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdf
 
Riesgos taller mecanico prevencion de accidentes de trabajo
Riesgos taller mecanico prevencion de accidentes de trabajoRiesgos taller mecanico prevencion de accidentes de trabajo
Riesgos taller mecanico prevencion de accidentes de trabajo
 
examen ExANI 2...........................
examen ExANI 2...........................examen ExANI 2...........................
examen ExANI 2...........................
 
1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas
 
metodos de fitomejoramiento en la aolicacion de plantas
metodos de fitomejoramiento en la aolicacion de plantasmetodos de fitomejoramiento en la aolicacion de plantas
metodos de fitomejoramiento en la aolicacion de plantas
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
 
Practica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdfPractica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdf
 
RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADES
RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADESRECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADES
RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADES
 
TECNOLOGIA DE CONCRETO 2024 estudiante.pdf
TECNOLOGIA DE CONCRETO 2024 estudiante.pdfTECNOLOGIA DE CONCRETO 2024 estudiante.pdf
TECNOLOGIA DE CONCRETO 2024 estudiante.pdf
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
Sistema de alumbrado.pptx fjhhgghrhgghhuughuh
Sistema de alumbrado.pptx fjhhgghrhgghhuughuhSistema de alumbrado.pptx fjhhgghrhgghhuughuh
Sistema de alumbrado.pptx fjhhgghrhgghhuughuh
 
Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docxUnidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
 
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfslideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
 
INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)
INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)
INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdfUNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
 
Instrumentacion para el control de procesos.pdf
Instrumentacion para el control de procesos.pdfInstrumentacion para el control de procesos.pdf
Instrumentacion para el control de procesos.pdf
 

Trabajo practico - Grafos y Matrices (332) - UNA

  • 1. UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA: INGENIERÍA TRABAJO PRÁCTICO ASIGNATURA: GRAFOS Y MATRICES (332) ALUMNO: MEDINA RONALD CÉDULA DE IDENTIDAD: V-16.291.029 EMAIL DEL ESTUDIANTE: alexchelsea222@gmail.com TELÉFONO: 0412-1300161 CENTRO LOCAL: CARABOBO CARRERA: INGENIERÍA DE SISITEMAS (236) ASESOR: ING. ISBELIA MEDINA LAPSO: 2018-1 (NOVIEMBRE 2018) RESULTADOS DE CORRECCIÓN:
  • 2. TABLA DE CONTENIDO Introducción……………………………………………………………………. Página 3 Objetivo 6…..…………………………………………………………………… Página 4 Objetivo 8……………………………………………………………………… Página 8 Objetivo 9……………………………………………………………………… Página 16 Objetivo 10…………………………………………………………………...…Página 20 Anexos………...……………………………………………………………...…Página 23
  • 3. INTRODUCCIÓN La presente asignatura está basada en dos pilares que el futuro ingeniero de sistemas debe incorporar dentro sus diversas competencias: Grafos y Matrices. Ambas tienen gran importancia al momento de plantear diversos problemas y encontrar una solución. Ambos componentes forman parte del algebra, una rama de las matemáticas que ofrece soluciones a problemas en diversas áreas de la ingeniería, informática, economía entre otros. Los grafos pueden aplicarse en diagramas de flujos, modelado de redes, reconocimiento de patrones, transporte de mercancía, entre otros. En el caso de las matrices tiene aplicación en la resolución de sistemas de ecuaciones lineales, notación matricial y modelado computacional, ambos áreas de estudio independientemente del tipo de organización a analizar. Los objetivos del presente trabajo práctico son los siguientes: Resolver un sistema de ecuaciones lineales matricial aplicando los métodos numéricos de Jacobi y Gauss – Siedel. Aplicar los modelos de matrices dispersas, con la finalidad de disminuir la memoria al introducir una matriz al computador. Determinar el factor de Cholesky en una matriz Desarrollar paso a paso el algoritmo de mínimo grado a un grafo determinado.
  • 4. PREGUNTA # 1 - OBJETIVO 6 - CRITERIO DE DOMINIO 1/1 Resuelva el siguiente sistema de ecuaciones lineales, utilizando los métodos de: Jacobi y Gauss-Seidel, con un vector inicial X(0) = [0,0,0,0,0] y un Ɛ = 10-3 , esto es | X(k-1) - X(k) | < Ɛ. Reflejar en una tabla las iteraciones necesarias para cada uno de los métodos citados. 10x1 + x2 - 2x3 + 0x4 = 6 x1 +10x2 - x3 + 3 x4 = 25 - 2x1 - x2 + 8x3 - x4 = -11 0x1 + 3x2 - x3 + 5x4 = -11 La matriz asociada al sistema es: 10 1 2 0 6 1 10 -1 3 25 A = -2 -1 8 -1 y el vector independiente b = -11 0 3 -1 5 -11 a) Diga si los métodos de Gauss-Seidel y Jacobi para el sistema de ecuaciones dado converge o diverge. Análisis de Convergencia: Se utilizará dos caminos para verificar la convergencia de la matriz A, para ambos métodos, una verificación teórica y una práctica: Verificación Teórica: Para ambos métodos iterativos (Jacobi y Gauss – Siedel) estos convergen si los coeficientes de la matriz cumple con: n |aii| > Σ |aij|, 1<= i <= n. Esto es para cada fila de A j=1, j≠i. Esto verifica si la matriz es estrictamente diagonal dominante, basado en el lema de Hadamard: Se procede a verificarlo en la matriz de estudio: Fila 1, pivote 10; |10| > |1| + |2| + |0| = 3; sí cumple. Fila 2, pivote 10; |10| > |1| + |-1| + |3| = 5; sí cumple.
  • 5. Fila 3, pivote 8; |8| > |-2| + |-1| + |-1| = 4; sí cumple. Fila 4, pivote 5; |5| > |0| + |3| + |-1| = 4; sí cumple. Al verificar todos los pivotes nos indica que teóricamente, la matriz A es una matriz diagonal dominante. Verificación Práctica: Independientemente del método iterativo utilizar, se deben considerar dos aspectos: 1) Se debe conocer que la sucesión de vectores Xm con m>0 converge a una solución X. Para ello los métodos dan la oportunidad, si la sucesión de vectores converge a X, cada componente debe tener un valor bastante cercano a Xi, es decir: X1(m) a X1, X2(m) a X2, X3(m) a X3……. Xn (m) a Xn. Si existe divergencia estos componentes se alejaran en cada iteración del valor real de cada variable. 2) Definir una condición de parada, al elaborar un algoritmo, que detenga el proceso iterativo (Jacobi o Gauss – Siedel). Estas consideraciones son elaboradoras por el desarrollador, que define el número máximo de iteraciones, para detener el proceso cuando se haya ejecutado la cantidad de veces establecida. Otro enfoque basado en la convergencia de Jacobi y el número de operaciones, está referida en el error E. Al llevarlo a un criterio más computaciónal, si se establece una parada del algoritmo cuando: | X (k-1) - X (k) | < Ɛ Donde Ɛ esta prefijado por el programador. En la matriz de estudio A, se estableció un error Ɛ = 10-3 , lo indica una condición de parada cuando se cumpla: | X (k-1) - X (k) | < 10-3 b) En el caso de que los métodos converjan, ¿Cuál lo hace más rápidamente? Los métodos iterativos usan la matriz original durante el proceso sin perder sus propiedades. Estos métodos se basan en la construcción de una sucesión convergente en cada iteración y el límite de esta sucesión es la solución al sistema. El proceso se detiene de comparar condición establecida. A continuación se definen ambos métodos,
  • 6. Para Jacobi se tiene: n 1 xi (m) = ------- bi - aii xj (m-1) , con m ≥ 1, i = 1... n aii j=1, j≠i Y para Gauss-Seidel: i-1 n 1 xi (m) = ------ bi - aij xj (m) - aij xj (m-1) , con m ≥ 1, 1 ≤ i ≤ n. aii j=1 j=i+1 En ambos métodos, Matriz A parte del vector inicial X0 = [0 0 0 0 0] t y una tolerancia de 0,001. Los resultados obtenidos por el método de Jacobi se muestran en la tabla 6.1 mientras que los resultados numéricos de Gauss – Siedel están en la 6.2. Iteración: m X1 (m) X2 (m) X3 (m) X4 (m) 0 0 0 0 0 1 0,6 2,5 -1.375 -2,2 2 0,075 2,9625 -1,1875 -3,975 3 0,06625 3,56625 -1,482813 -4,2150 4 -0,053188 3,609594 -1,439531 -4,636313 5 -0,048866 3,752259 -1,516637 -4,653663 6 -0,078553 3,749322 -1,499892 -4,754683 7 -0,074911 3,784271 -1,520308 -4,749571 8 -0,082489 3,780332 -1,51439 -4,774624 Tabla 6.1. Resultados de la iteración de la matriz A, aplicando el método de Jacobi. Con el método de Jacobi, se obtuvo una convergencia de: X = [- 0,082 3,78 -1,51 -4,8] t , alcanzándose en la iteración 8, y una condición de parada en I X (7) - X (8) I t = 0,0008 < 0,001.
  • 7. Iteración: m X1 (m) X2 (m) X3 (m) X4 (m) 0 0 0 0 0 1 0,6 2,44 -0,92 -3,848 2 0,172 3,5452 -1,36985 -4,60109 3 -0,02849 3,746191 -1,488985 -4,745512 4 -0,072416 3,781997 -1,513543 -4,771907 5 -0,080908 3,788308 -1,518177 -4,776621 6 -0,082466 3,789415 -1,519017 -4,777452 Tabla 6.2. Resultados de la iteración de la matriz A, aplicando el método de Gauss - Siedel. Con el método de Gauss-Seidel, se obtuvo una convergencia de: X = [- 0,082 3,79 -1,52 -4,8] t , alcanzándose en la iteración 6, y una condición de parada en I X (5) - X (6) I t = 0,00084 < 0,001. Comparando los resultados, se puede concluir que el método de Gauss – Seidel converge mas rapido que el metodo de Jacobi. Ambos metodos convergen, el de Jacobi lo hace en la iteración 8 y el de Gauss – Siedel en la iteración 6. Los algoritmos utilizados, se programaron en el lenguaje C++, están descritos en el anexo. Este resultado puede ser por la forma que trabaja Gauss – Seidel, usa los valores más recientes para calcular la siguiente iteración , y se espera más rápido que Jacobi o refleje evidencia de divergencia, esto es lo que sucede en forma general, pero no es un regla, porque hay casos en el método de Jacobi converge y Gauss – Seidel diverge.
  • 8. PREGUNTA # 2 - OBJETIVO 8 - CRITERIO DE DOMINIO 1/1 Dada la siguiente matriz: Figura 8.1 Matriz dispersa de A en su estado inicial. a) Calcule el ancho de banda de la matriz A. El ancho de banda está definido por la ecuación βi (A) = i - ξi(A), i = 1...n, donde ξi(A) = min j: aij ≠ 0, donde j se refiere al subíndice columna del primer elemento de la fila, distinto de cero. Entonces, el ancho de banda de A se define cómo: β (A) = máx. βi (A), i = 1...n, o β (A) = max I – j aij ≠ 0, y es la región que se encuentra a β (A) posiciones de la diagonal principal. Para la matriz A, dada se tiene: Ancho de Banda de la Matriz Fila i ξᵢ (A) βᵢ (A) = i - ξᵢ (A) 1 1 0 2 1 1 3 1 2 4 3 1 5 3 2 6 3 3 7 4 3 8 1 7 Tabla 8.2 Cálculo del ancho de banda en la matriz A. El resultado de la tabla indica el ancho de banda: β (A) = máx. { I – j}: aij ≠ 0 = 7; esto es un área formada a siete posiciones de la diagonal principal. Que se muestra en la siguiente figura.
  • 9. Figura 8.3 Banda de matriz A. Al obtener la banda de A, se puede notar a simple vista, la cantidad de posiciones nulas que son incluida, esto genera un desperdicio de memoria y tiempo de procesamiento. La causa es, porque el grafo de estudio, posee un ancho de banda de 7 y tamaño de contorno de 28 espacios b) Describa el grafo de la matriz A. Figura 8.4 Descripción grafica del grafo A. Tabla 8.5 Adyacencia y grado de la matriz A Vértice Vi Vértices Adyacentes Grado Vi V1 V2,V3,V8 3 V2 V1,V3 2 V3 V1,V2,V4,V5,V6 5 V4 V3,V5,V7 3 V5 V3,V4,V6,V7 4 V6 V3,V5,V8 3 V7 V4,V5 2 V8 V1,V6 2
  • 10. c) Calcule la envolvente de la matriz A. Conjunto de Vértices Adyacencia: Ady (.) Posiciones en la Matriz {V1} { V2,V3,V8} (2,1) {V1,V2} { V3, V8} (3,1),(3,2) {V1,V2,V3} { V4,V5,V6,V8} (4,3) {V1,V2,V3,V4} { V5,V6,V7,V8} (5,3), (5,4) {V1,V2,V3,V4,V5} {V6,V7,V8} (6,3), (6,5) {V1,V2,V3,V4,V5,V6} {V7,V8} (7,4), (7,5) {V1,V2,V3,V4,V5,V6,V7} {V8} (8,1), (8,6) {V1,V2,V3,V4,V5,V6,V7,V8} Ø Ø Tabla 8.6 Tabla que indica cálculo de la envolvente de la matriz A. Con los datos obtenidos, se puede indicar gráficamente la envolvente de A: Figura 8.7 Envolvente de la matriz A. La envolvente está contenida en la banda de la matriz. Para cualquier matriz a simétrica y positivo definida, se tiene que: Env(A) ʗ Banda(A) Esto queda confirmado en la práctica. En el grafo de estudio, se observa una reducción en la cantidad de espacios de contorno, pasó de 28 a 19, y ancho de banda de 7 a 3. Sin embargo, se observa margen de mejora en la fila número ocho, donde se incluyeron cuatro posiciones nulas. d) Aplique el algoritmo de Cuthill-McKee y su inverso a la matriz A. El algoritmo tiene los siguientes pasos:
  • 11. Paso 1: Seleccionar un vértice inicial, digamos u, y hacer u= V1’ Paso 2: Para i= 1,2,…,n se deben encontrar todos los vecinos del vértice Vi que no hayan sido etiquetados previamente, y etiquetarlos en orden creciente de grado. Paso 3: Ordenamiento inverso de Cuthill – McKee: Las nuevas etiquetas para los vértices del grafo están data por W1, W2,….., Wn donde: Wi = Vn-1+1 A continuación se indican los cálculos de las nuevas etiquetas de los vértices según el algoritmo Cuthill – McKee. Vértice con la Etiqueta dada en el Grafo Vecino no Etiquetados Grado Etiqueta de los Vecinos dada por el Algoritmo (Hasta el Paso 2) V7 V4 3 V2’ V5 4 V3’ V4 V3 5 V4’ V5 V6 3 V5’ V3 V1 3 V7’ V2 2 V6’ V6 V8 2 V8’ Tabla 8.8 Etiquetas Vi’ del grafo A, luego del paso 1 y 2 del algoritmo. El grafo con las nuevas etiquetas quedaría de la siguiente manera: Figura 8.9 Descripción grafica del grafo A luego del algoritmo Cuthill – McKee. Ahora se muestran la matriz de banda y envolvente, de este grafo G’.
  • 12. Figura 8.10 Banda de la matriz A’. Figura 8.11 Envolvente de la matriz de A’. Se procede a realizar el tercer paso, el ordenamiento inverso Cuthill- McKee, y se determinan las etiquetas inversas Wi, según la formula indicada arriba. Vertices vi Wi = Vn-i+1=Vi V1 W1 = V8–1+1 = V8 V2 W2 = V8–2+1 = V7 V3 W3 = V8–3+1 = V6 V4 W4 = V8–4+1 = V5 V5 W5 = V8–5+1 = V4 V6 W6 = V8–6+1 = V3 V7 W7 = V8–7+1 = V2 V8 W8 = V8–8+1 = V1 Tabla 8.12 Vértices etiquetados con ordenamiento inverso Cuthill – McKee. El grafico tras el ordenamiento inverso, queda gráficamente de la siguiente forma.
  • 13. Figura 8.13 Descripción grafica del grafo W luego del ordenamiento inverso. A este grafo compuesto con elementos Wi, se determinará el ancho de banda y a partir de ahí, la banda y la envolvente, para constatar la mejora de ordenar de forma inversa los vértices Vi’ y consolidar los conceptos del presente objetivo. Ancho de Banda de la Matriz Fila i ξᵢ (A) βᵢ (A) = i - ξᵢ (A) 1 1 0 2 1 1 3 2 1 4 1 3 5 2 3 6 4 2 7 5 2 8 6 2 Tabla 8.14 Cálculo de ancho de banda en la matriz con elemento Wi. Figura 8.15 Banda de la matriz W.
  • 14. Conjunto de Vértices Adyacencia: Ady (.) Posiciones en la Matriz {W1} {W2,W4} (2,1) {W1,W2} {W3,W4} (3,2) {W1,W2,W3} {W4,W5} (4,1) {W1,W2,W3,W4} {W5,W6} (5,2),(5,3),(5,4) {W1,W2,W3,W4,W5} {W6,W7} (6,4), (6,5) {W1,W2,W3,W4,W5,W6} {W7,W8} (7,5), (7,6) {W1,W2,W3,W4,W5,W6,W7} {W8} (8,6), (8,7) {W1,W2,W3,W4,W5,W6,W7,W8} Ø Ø Tabla 8.16 Cálculo de la envolvente de la matriz A. Figura 8.17 Envolvente de la matriz W. En la matriz W, se obtuvo el mismo valor de ancho de banda que la matriz A’ (3), a pesar de esto, se obtuvo una mejora en el contorno total que paso de 15 a 14 espacios. A continuación se presenta una tabla resumen que contiene datos relevantes como: valor del ancho de banda, contorno en banda, contorno en envolvente, para las matrices A, A’ y W. Característica Matriz A (Original) A’ (Obtenida por algoritmo Cuthill-MCKee) W (Obtenida por ordenamiento inverso ) Ancho de Banda 7 3 3 Espacios contorno en la Banda 28 18 18 Espacios de contorno en la Envolvente 19 15 14 Tabla 8.18 Valores de ancho de banda y espacios de contorno obtenidos.
  • 15. e) Describa el algoritmo de Cuthill-McKee inverso de la matriz A. Obtenido el grafo asociado a la matriz A, se selecciona, al azar, un vértice de inicio para comenzar el algoritmo; en éste caso se seleccionó v3. Se identifican los vértices adyacentes a v3 y se etiquetan según el orden de sus grados de menor a mayor: v5, v2 y v6. Cómo v3 pasó a ser v1, el vértice de menor grado se etiquetará cómo v2 (v5), el siguiente en grado cómo v3 (v2) y el de mayor grado v4 (v6). En caso de que dos o más vértices posean el mismo grado, se deja al azar seleccionar cual se etiquetará primero. Seguidamente se posiciona en v5 y se identifican los vértices adyacentes, no etiquetados a éste y se etiquetan según su grado, en forma creciente; sus adyacentes son v3 y v4, pero v3 ya está etiquetado, por lo tanto se toma únicamente v4. La última etiqueta, del proceso anterior, fue v4 (v6), por lo tanto a v4 le corresponde la siguiente v5. Se posiciona sobre el vértice siguiente en este caso v2, por tener la etiqueta v3 y se repite el proceso. El algoritmo se detiene hasta que todos los vértices del grafo estén etiquetados, en este caso los diez vértices. Con todos los vértices etiquetados se procede a reorganizar los vértices del grafo con sus nuevas etiqueta, en los casos que las hubiere. Por ejemplo, nuestro vértice de inicio fue v3, ahora nos posicionamos en él y se cambia la etiqueta de v3 por v1. Se procede así con los demás vértices hasta completar los diez. Terminado el proceso de reorganización, se aplica la mejora introducida por George (1971), que no es más que invertir el orden de etiquetado de los vértices, aplicando esta ecuación: Wi = Vn-i+1 = Vi. Por ejemplo para conocer el vértice vi que le corresponde w8, se procede así: w8 = v10-8+1 = v3, buscamos en el grafo el vértice etiquetado cómo v3 y colocamos la etiqueta w8, procedimiento que repetimos con cada uno de los diez vértices del grafo. De ésta manera finaliza el algoritmo de Cuthill-Mckee inverso.
  • 16. PREGUNTA # 3 - OBJETIVO 9 - CRITERIO DE DOMINIO 1/1 Dada la matriz A, 2 0 3 1 A= 1 2 0 2 0 1 1 0 0 2 0 2 a) Realice y describa el proceso de eliminación gaussiana Descripción de Eliminación Gaussiana: Identificar las operaciones o ecuaciones. (Matriz). Multiplicar una de las ecuaciones por un escalar. → n. (pf) Se suma o resta mediante la adición de los correspondientes elementos de una ecuación con otra. fi = fi + pfj El objetivo final es obtener una matriz triangular superior, anulando las posiciones inferiores a la diagonal principal, su usara la notación fi = fi + pfj, para el proceso de eliminación; donde el valor de p, es el valor resultante de dividir el coeficiente de la posición fi a eliminar y el coeficiente del pivote de la columna, la misma donde está la posición a eliminar con la operación. Resolución del proceso de eliminación Gaussiana: En la siguiente tabla se muestra la resolución de las operaciones. Tabla 9.1 Proceso de eliminación Gaussiana, Estructura no nula de A. Proceso de Eliminación Gaussiana Estructura no nula de A 2 0 3 1 * * * 1 2 0 2 * * * 0 1 1 0 * * 0 2 0 2 * * 2 0 3 1 * * * 0 2 -3/2 3/2 * * * 0 1 1 0 * * 0 2 0 2 * * 2 0 3 1 * * * 0 2 -3/2 3/2 * * * 0 0 7/4 -3/4 * * 0 2 0 2 * * 2 0 3 1 * * * 0 2 -3/2 3/2 * * * 0 0 7/4 -3/4 * * 0 0 3/2 1/2 * * 2 0 3 1 * * * 0 2 -3/2 3/2 * * * 0 0 7/4 -3/4 * * 0 0 0 8/7 * f4 = f4 - 6/7f3 → f2 = f2 - 1/2 f1 → f3 = f3 - 1/2 f2 → f4 = f4 - 1f2 → = = =
  • 17. La matriz A, resultante de la eliminación gaussiana, es la siguiente: 2 0 3 1 A= 0 2 -3/2 3/2 0 0 7/4 -3/4 0 0 0 8/7 En la tercera columna de la tabla anterior, se observa cómo van cambiando posiciones que inicialmente eran nulas pasaron a ser no nulas, luego del proceso de eliminación. Este tipo de cambio de cero un valor numero distinto de cero, en sistemas grandes, compromete la eficiencia computacional de los equipos debido a la capacidad de memoria, para reducir este inconveniente existen métodos mucho más eficientes, como por ejemplo, el tipo de factorización que se presentará en el siguiente punto. b) Dada la matriz A, halle su solución mediante el factor de Cholesky. 2 0 3 1 A= 1 2 0 2 0 1 1 0 0 2 0 2 La matriz inicial A no es simétrica ni positivo definida, si se reordenan las filas se podrá mejorar las condiciones y aplicar el método de factorización de Cholesky. 1 2 0 2 A’= 0 1 1 0 2 0 3 1 0 2 0 2 En esta matriz A’, sus pivotes no son nulos, no es simétrica, veamos si es definida positiva, para eso se verificará las 3 tres submatrices principales de A’, estas son: 3 1 1 1 0 1 2 0 2 A11 = 2 = 2, A22= 0 2 = 6; A33 = 0 3 1 = 8 A = 0 1 1 0 = 8 2 0 2 2 0 3 1 0 2 0 2 Estas submatrices principales de una matriz de obtienen eliminando filas y columnas; la primera resulta de la eliminación de las filas y de las columnas 1, 2 y 3, la segunda eliminando las filas 1 y 2 y las columnas 1 y 2, la tercera al eliminar solo la fila 1 y la columna 1 y la cuarta la matriz original, Luego queda demostrado que A’ es positiva definida. Para subsanar la falta de simetría en A’ y calcular el
  • 18. factor de Cholesky, se multiplicará A’ por su transpuesta; es decir, se obtendrá una matriz B = A’T A’. Para obtener A’T se intercambia las filas por columnas en A’. 1 0 2 0 1 2 0 2 5 2 6 4 A’T A’ = 2 1 0 2 0 1 1 0 B = A’T A’ = 2 9 1 8 0 1 3 0 2 0 3 1 6 1 10 3 2 0 1 2 0 2 0 2 4 8 3 9 Con la multiplicación A’T A’ se obtiene B, una matriz simétrica, se puede comprobar a simple vista que lo es. El siguiente paso será verificar que es positiva definida, se procederá a evaluar las submatrices principales y comprobar los respectivos determinantes: 10 3 9 1 8 5 2 6 4 B11 = 9 = 9, B22= 3 9 = 81; B33= 1 10 3 = 128 B= 2 9 1 8 = 64 8 3 9 6 1 10 3 4 8 3 9 Ahora se realizara el método del producto interno, para calcular el factor de Cholesky, se tiene: j-1 j-1 lj,j = √ bj,j - l2 j,k , j є [1,4] y para i > j li,j = 1/lj,j bi,j - li,k lj,k k=1 k=1 En la siguiente tabla se muestra el caculo de cada coeficiente. Ecuación inicial para lj,j Operaciones y valor exacto de cada lj,j lj,j en R 2,2361 0,8944 2,6833 1,7889 2,8636 -0,4889 2,2350
  • 19. 1,6003 -0,4420 0,7807 Tabla 9.2 Calculo de coeficientes del factor de Cholesky de la matriz B. Al obtener todos los coeficientes, se procede a construir el factor de Cholesky, también llamada matriz L y su matriz transpuesta LT . √5 0 0 0 √5 0,8944 2,6833 1,7889 B = L LT = 0,8944 2,8636 0 0 0 2,8636 -0,4889 2,235 2,6833 -0,4889 1,6003 0 0 0 1,6003 -0,4420 1,7889 2,235 -0,4420 0,7807 0 0 0 0,7807 c) Obtenga la matriz de llenado de A. Si se tiene una matriz A tal que: sea simétrica, positivo definida, y se le haya calculado su factor Cholesky L, se define la matriz de llenado de A, denotada por F(A), cómo: F(A) = L + LT . Se procede a calcular la matriz de llenado a partir del resultado obtenido en el punto b. √5 0 0 0 √5 0,8944 2,6833 1,7889 F(B) = 0,8944 2,8636 0 0 + 0 2,8636 -0,4889 2,235 2,6833 -0,4889 1,6003 0 0 0 1,6003 -0,4420 1,7889 2,235 -0,4420 0,7807 0 0 0 0,7807 La matriz de llenado es: 4,4722 0,8944 2,6833 1,7889 F (B) = L + LT = 0,8944 5,7272 -0,4889 2,2350 2,6833 -0,4889 3,2006 -0,4420 1,7889 2,2350 -0,4420 1,5614 La factorización de Cholesky, permite encontrar un ordenamiento mucho más eficiente que la que se podría encontrar mediante la eliminación Gaussiana, ya que disminuye los cambios no deseados de posiciones nulas a no nulas. Como se observó en el punto a) de este objetivo 9. Si la matriz A de estudio que se le desea encontrar el factor Cholesky fuera simétrica inicialmente, el método ilustraría una mejor utilidad.
  • 20. PREGUNTA # 4 - OBJETIVO 10 - CRITERIO DE DOMINIO 1/1 a) Aplique el algoritmo de minimo grado y reflejar sus pasos, para el grafo de estudio, (Grafo de estudio indicado en la siguiente tabla). El algoritmo de minimo grado, permite optimizar el proceso de los modelos de eliminacion, cuando se selecciona un vertice, en este caso el de grado menos, y no de forma aleatoria, se evita el indeseado cambio de posiciones nulas a no nulas, este intercambio no permite el uso eficiente de la memorias de los equipos informaticos de calculo. Existen iteraciones en donde hay presente varios vertices con el mismo grado, en este caso se selecciona uno de ellos al azar, aun asi existe ya metodos matematicos, o mejor dicho criterios para no realizar el desempate por simple azar, entre ellos se encuentre el el Algoritmo de Mínimo Grado utilizando el Operador Reach. A continuacion se desarrollará el algoritmo de mínimo grado, para el grafo indicado. Grafos Grafo de Estudio G ᴬ = G₀ Grafos Grado de Eliminación Mínimo Grado Vértice Vértice Seleccionado G ₀ = 1 V1
  • 21. G ₁ = 2 Al azar entre V5, V8 y V9 V5 G ₂ = 2 Al azar entre V3, V8 y V9 V9 G ₃ = 1 V8
  • 22. G9 = Culminación del Proceso de Eliminación Tabla 10.1 Algoritmo de mínimo grado aplicado al grafo de estudio. G4 = 2 Al azar entre V3, V6 y V7 V6 G5 = ` 1 V7 G ₆ = 2 Al azar entre V2, V3 y V4 V2 G ₇ = 1 V4 G8 = 1 V3
  • 23. ANEXOS Algoritmo de Jacobi, en lenguaje C++: #include <stdio.h> #include <stdlib.h> int dim; float norma(float vector1[],float vector2[]); float suma_jacobi(float Matriz[], float vector[], int componente); int main(){ int i,j,iteraciones=0; float error,epsilon; printf("nMetodo de Jacobi, para resolver sistemas Ax=b n"); printf("Dimension de la matriz A: "); scanf("%d",&dim); float A[dim][dim],b[dim],x[dim],x_prev[dim],aux[dim]; printf("n Elementos de la matriz A: n"); for(i=0;i<dim;i++) for(j=0;j<dim;j++){ printf("A(%d,%d)=",i,j); scanf("%f",&A[i][j]); } printf("nElementos del vector de terminos independientes: n"); for(i=0;i<dim;i++){ printf("b(%d)=",i); scanf("%f",&b[i]); } printf("n Error de parada: n"); printf("E=",i); scanf("%f",&epsilon); error=epsilon+1; //cominezo algoritmo de Jacobi //Error se mide como la norma del vector diferencia entre iteracion i e i+1 printf("n Valores del vector inicial : n"); for(i=0;i<dim;i++){ printf("x0(%d)=",i); scanf("%f",&x_prev[i]); } while (error>epsilon){ for(i=0;i<dim;i++){ for(j=0;j<dim;j++) aux[j]=A[i][j]; x[i]=(1/A[i][i])*(b[i]-suma_jacobi(aux,x_prev,i)); } error=norma(x,x_prev); printf("nn Iteracion %d: n",iteraciones); for(i=0;i<dim;i++){ x_prev[i]=x[i]; printf("X(%d)=%f n",i,x[i]); }
  • 24. iteraciones++; if (iteraciones==10) error=epsilon-1; } printf("Solucion del sisteman"); printf("Numero de iteraciones: %d n", iteraciones); for(i=0;i<dim;i++){ printf("x(%d)=%fn",i,x[i]); } return 1; } float norma(float vector1[],float vector2[]){ float aux=0; int i; for(i=0;i<dim;i++){ aux=aux+(vector1[i]-vector2[i])*(vector1[i]-vector2[i]); } return aux; } float suma_jacobi(float Matriz[], float vector[], int componente) { float aux=0; int i; for(i=0;i<dim;i++){ if (componente!=i){ aux=aux+Matriz[i]*vector[i]; } } return aux; }
  • 25. Algoritmo de Gauss-Seidel, en lenguaje C++: #include<iostream> #include<conio.h> using namespace std; int main(void) { float a[10][10], b[10], x[10], y[10]; int n = 0, m = 0, i = 0, j = 0; cout <<"n Metodo de Gauss - Siedel para resolver sistemas Ax=b n"; cout << "Ingresa el numero de filas de la matriz A cuadrada : "; cin >> n; // n matriz de coeficientes cout << "Ingresa los valores de la matriz A n"; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { cout << "Ingresa el valor de la posicion " << i << ", " << j << ")"; cin >> a[i][j]; } } cout << "n Ingresa los valores del vector de coeficiente b n"; for (i = 0; i < n; i++) { cout << "Ingresa el valor de la posicion :(" << i << ", " << j << ") "; cin >> b[i]; // b es el vector de coeficientes } cout << "Ingresar valores del vector inicial n"; for (i = 0; i < n; i++) {
  • 26. cout << "Ingresa valor de la posicion :(" << i<<"):"; cin >> x[i]; // x es el vector inicial } cout << "n Ingresa el numero de iteraciones: "; // se va a cambiar por el valor del error cin >> m; // m es el numero de iteraciones while (m > 0) { for (i = 0; i < n; i++) { y[i] = (b[i] / a[i][i]); for (j = 0; j < n; j++) { if (j == i) continue; y[i] = y[i] - ((a[i][j] / a[i][i]) * x[j]); x[i] = y[i]; } printf("x%d = %f ", i + 1, y[i]); } cout << "n"; m--; } return 0; }