Está en la página 1de 7

UNIVERSIDAD DE SANTIAGO DE CHILE

FACULTAD DE INGENIERA
Departamento de Ingeniera Mecnica
Ingeniera Civil en Mecnica

Diseo Computarizado
Tarea n1

Alumno: Diego Jaramillo


Profesor: Claudio Garca
Ayudante: Ricardo Manrquez
SANTIAGO, 30 de septiembre de 2014

Contenido
Resumen ............................................................................................................................................. 3
Objetivo .............................................................................................................................................. 3
Procedimientos .................................................................................................................................. 4
Multiplicacin de matrices ............................................................................................................ 4
Ordenamiento del vector .............................................................................................................. 4
Mtodo de Gauss ............................................................................................................................ 4
Anlisis de Resultados ....................................................................................................................... 6
Conclusiones ...................................................................................................................................... 7
Bibliografa ......................................................................................................................................... 7

Resumen
En este informe se realizar un estudio de una matriz de deformacin de slidos,
mediante la resolucin de un sistema lineal de 156 incgnitas con el mtodo de Gauss,
usando el compilador Fortran 90, complementariamente se programar una
multiplicacin matrices, sin la necesidad de usar Matmul, y posteriormente el
ordenamiento del resultado de esta.
Dado el problema de un sistema lineal de la forma A*x=b, la matriz A (simtrica) viene
dada en un archivo de datos, el cual contiene 3 columnas, la primera corresponde a la
columna de la matriz, la segunda a la lnea y la tercera al valor correspondiente en la
posicin asignada, el archivo solo contiene los datos distintos de cero.
Al igual que para la matriz A, el vector b est dado en un archivo de 2 columnas, la primera
es la posicin en el vector y la segunda ser el valor.
Para leer estos archivos se usar un ciclo do, condicionado por la lectura del archivo, el
cual se detendr al llegar al ltimo valor del archivo.
Para la resolucin se realizaron dos programas, el primero (prog.f90) contiene la
multiplicacin de la matriz y el vector, adicionalmente tiene una subrutina encargada de
ordenar el vector resultado, entregando los resultados en los archivos AB09.txt y
ABorden09.txt. Mientras que el segundo programa (gauss.f90) posee la programacin del
mtodo de Gauss, entregando dos archivos de salida, gauss.txt que muestra el vector
solucin x, y comparacin.f90 que muestra el vector A*x y b.

Objetivo
Como objetivo general la tarea fundamental es adquirir conocimientos acerca de
programacin de mtodos de resolucin de sistemas lineales, mediante la programacin
computacional en lenguaje Fortran y la resolucin de este.

Procedimientos

Multiplicacin de matrices
Se procede a realizar la multiplicacin A*b, para esto es necesario un doble ciclo do,
para multiplicar todos los componentes de una lnea de la matriz A por el vector b, la
suma de estas multiplicaciones se guardar en una matriz resultado, en la misma posicin
de la fila multiplicada de la matriz A. Se repite el procedimiento para todas las filas de la
matriz.
La condicin inicial para la multiplicacin de matrices es que el nmero de columnas de la
primera matriz sea igual al nmero de filas de la segunda.

Ordenamiento del vector


Una vez terminada la multiplicacin, es necesario ordenar el vector resultado, para esto
usaremos el teorema de la burbuja, el cual ordena un vector de menor a mayor, mediante
la comparacin de los componentes del vector.
El funcionamiento de este teorema consiste en comparar el primer trmino con el que le
sigue inmediatamente, si el primero fuese mayor que el segundo, estos se intercambian
de posicin dando como resultado que el primer trmino ser menor que el segundo.
Luego se repite la operacin con el segundo y el tercero, y as sucesivamente, hasta llegar
al ordenamiento total del vector. (Fuente: http://www.estructuradedatos.galeon.com/burbujatext.htm)

Mtodo de Gauss
Por otra parte, para la resolucin del sistema A*x=b, se us el mtodo de Gauss para
resolucin de sistemas lineales, en forma general este mtodo propone la eliminacin
progresiva de variables en el sistema de ecuaciones mediante operaciones filas, hasta
tener slo una ecuacin con una incgnita. Una vez resuelta esta, se procede por
sustitucin regresiva hasta obtener los valores de todas las variables. Quedando
finalmente una matriz triangular superior, con la que se obtendr el vector resultado.

Operaciones elementales fila:


a) Multiplicar la fila pivote por un factor para la eliminacin de un componente en
la fila deseada.
b) A la fila donde se encuentra el componente a eliminar, se le resta la fila pivote
por el factor.
Hasta aqu hemos supuesto una situacin idealmente simple en la que ningn pivote (o
coeficiente diagonal), se convierte en cero. Si cualquier pivote se vuelve cero en el
proceso de resolucin, la eliminacin hacia adelante no proceder.
El pivoteo consiste en intercambiar el orden de las ecuaciones de modo que el coeficiente
del pivote, tenga la magnitud (en valor absoluto) mayor que cualquier otro coeficiente
que est debajo de l en la misma columna y que por tanto vaya a ser eliminado. Esto se
repite con cada pivote hasta completar la eliminacin hacia adelante.

Anlisis de Resultados
Se puede observar que luego de la triangulacin superior de la matriz A, mediante la
eliminacin gaussiana, quedan valores del orden de E^-8 debajo la diagonal, estos valores
al ser muy aproximados a cero se consideran despreciables. Producto de estos valores, la
solucin del sistema mediante el mtodo de Gauss (vector x) se ver modificada respecto
a la solucin exacta, pero tras la comprobacin a travs de la multiplicacin de A*x, el
resultado es muy aproximado al vector b (la comparacin se encuentra en el archivo
comparacin.txt).
2.5E-11
2E-11
1.5E-11
1E-11
5E-12

-5E-12

1
7
13
19
25
31
37
43
49
55
61
67
73
79
85
91
97
103
109
115
121
127
133
139
145
151

-1E-11
-1.5E-11
-2E-11
-2.5E-11
-3E-11

En el grfico adjunto se muestra la diferencia entre A*x y b, el mayor error corresponde


aproximadamente a -2.4E-11, el cual se considera muy pequeo. Por lo que se
considerarn consistentes los resultados obtenidos por el mtodo.

Conclusiones
Teniendo en cuenta que se resolvieron los problemas asignados mediante la
programacin en Fortran, podemos decir que se cumpli el objetivo de adquirir
conocimientos de programacin computacional para la resolucin de sistemas de
ecuaciones, as como la multiplicacin y ordenamiento de matrices.
Los programas realizados son la forma ms bsica de resolucin, existiendo mtodos ms
complejos de programacin, los cuales no fueron utilizados en esta experiencia.
La multiplicacin y ordenamiento de matrices son procesos simples, por lo que fueron de
gran ayuda para comenzar los mtodos de programacin del mtodo de Gauss, el cual es
de mayor complejidad.
Podemos decir que los resultados del mtodo de Gauss son consistentes, gracias a la
comparacin realizada entre la solucin del mtodo y el vector resultado b. Dando como
resultado errores del orden de E-11 y E-12.
Durante el proceso, Fortran 90 entregaba algunos problemas, durante la compilacin de
un programa arrojaba algunos errores los cuales no eran reales, al crear un nuevo archivo
con el mismo programa, la compilacin se realizaba de forma correcta. Por lo que se debe
ser cuidadoso con estos errores.

Bibliografa
Burden, Richard L., Anlisis numrico /Richard L. Burden, J. Douglas Faires, Mxico, editorial
International Thomson; Cengage learning, c2002.