Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA MECNICA
TAREA 1
PROGRAMACIN
EN FORTRAN
Alumno:
Asignatura:
Diseo Computarizado
Profesor:
1.0 Resumen
El presente informe contiene los resultados correspondientes a la Tarea N1 del curso
Diseo Computarizado, la que consiste en utilizar el lenguaje Fortran para la
creacin de un programa, que sea capaz de realizar operaciones con matrices y
vectores, provenientes de un problema de mecnica de solidos deformables.
Inicialmente, se tiene un sistema matricial de la forma AX=B, donde A es una matriz
simtrica de 156x156, X es el vector de incgnitas y B el vector de constantes. Ambos
son entregados en archivos de extensin .dat que contienen solamente los valores
distintos de cero. Especficamente se pide lo siguiente:
Ordenar los valores del vector AB de menor a mayor, mediante una subrutina.
Para dar solucin a los problemas propuestos, se crea un programa que multiplica A
y B, y que adems contiene dos subrutinas para realizar el ordenamiento de los
valores del vector resultante y la bsqueda del vector de incgnitas X del sistema de
ecuaciones inicial. Adems, se ha aadido una subrutina aparte, para efectos de
comprobar la solucin obtenida.
= , ; = 1
=1
Ecuacin 1
1|Pgina
[ 3 4
Pasada 1
Compara 3 y -4 : nada
compara 3 y 5 : nada
compara 5 y -7 : intercambia
[ -4
[ -4
[ -4
3 5 -7]
3 5 -7]
3 -7 5]
[ -4
[ -4
[ -4
3 -7 5]
-7 3 5]
-7 3 5]
...
Pasada 2
compara -4 y 3 : nada
compara 3 y -7 : intercambia
compara 3 y 5: nada
...
5 -7]
5].
AX=B
Sistema inicial
(LU)X=B
Se descompone A, en L y U
L(UX)=B
LY=B
UX=Y
2|Pgina
Se necesita el archivo fv01.dat, que contiene los valores del vector columna
B. La primera columna corresponde a la fila i del vector columna, y luego est
el valor para la posicin (i,1)
de una fila de A, con los elementos del vector columna B y realiza la suma de los
productos realizados. El ciclo externo, en donde i va desde 1 a 156, ordena al
programa realizar lo anterior, para todas las filas de la matriz. El resultado, se
escribe en el archivo AB01.txt.
3.5 Ordenamiento de datos
El ordenamiento de los valores del vector AB de menor a mayor, se realiza mediante
el mtodo de la burbuja, a travs de la subrutina ORDEN. Esta subrutina, utiliza un
ciclo do en i, para las pasadas y un ciclo do en j, para las comparaciones; ambos van
desde 1 a n-1 (en este caso hasta 155) tal como se explic en la seccin anterior.
Adems, se utiliza la variable auxiliar z, para poder realizar correctamente el
intercambio entre los valores del vector, si se llega a cumplir la condicin impuesta
en la sentencia IF. El resultado se escribe en el archivo ABorden.txt.
3.6 Resolucin del sistema de ecuaciones, por mtodo LU
La factorizacin LU de la matriz A y la resolucin del sistema de ecuaciones, se
realiza en la subrutina LU. A diferencia de la subrutina anterior y las primeras
operaciones del programa, esta etapa nos pide ingresar desde la consola, la cantidad
de filas y columnas n de la matriz A y el vector B. La programacin utiliza una serie
de ciclos do y sentencias IF ordenadas en etapas, tal cual se muestra en el algoritmo
que puede ser consultado en [1]. El resultado, se escribe en el archivo X01.dat.
Como un extra, se ha creado la rutina COMPROBACIN, que multiplica la matriz A
con el vector solucin X y lo escribe junto al vector B en el archivo comprobacin.txt ,
para verificar si la solucin X obtenida es la correcta.
3.7 Archivos de salida
Los archivos que crea el programa y que contienen los resultados obtenidos, debido a
la cantidad de filas que tienen, se muestran solo parcialmente en la figura 1. Se
excluye el archivo comprobacin.txt, ya que no es parte de la solucin pedida.
4|Pgina
Figura 1: archivos de salida del programa. De izquierda a derecha: AB01.txt, ABorden01.txt, X01.txt.
5.0 Referencias
[1] BURDEN, Richard, FAIRES, Douglas. Anlisis Numrico. 7a ed. Mxico. Editorial
Thomson Learning, 2002. pp. 393-394.
6|Pgina