Esta funci´on devuelve un apuntador al vector

Descargar (0)

Texto completo

(1)

1 C´omputo Cient´ıfico II - CO2112 - Laboratorio 5

En ´algebra lineal, una matriz triangular es un tipo especial de matriz cuadrada cuyos elementos por encima o por debajo de su diagonal principal son cero. Debido a que los sistemas de ecuaciones lineales con matrices triangulares son mucho m´as f´aciles de resolver, las matrices triangulares son utilizadas en an´alisis num´erico para resolver sistemas de ecuaciones lineales, calcular inversas y determinantes de matrices.

El objetivo de este laboratorio es resolver un sistema lineal cuya matriz asociada es triangular superior. Para ello se deben escribir las siguientes funciones:

1. Una funci´on de nombre “leeMatriz” que recibe el nombre del archivo que almacena la matriz triangular superior y devuelve un apuntador doble a dicha matriz y su orden. En esta funci´on se debe abrir el archivo de datos especificado, realizar la reserva de memoria respectiva para la matriz, leer los datos contenidos en el archivo y almacenarlos en la matriz.

2. Una funci´on de nombre “leeVector” que recibe el nombre del archivo que contiene el vector del lado derecho del sistema y el tama˜no de este vector. Esta funci´on devuelve un apuntador al vector. En esta funci´on se debe abrir el archivo de datos especificado, realizar la reserva de memoria respectiva para el vector, leer los datos contenidos en el archivo y almacenarlos en el vector.

3. Una funci´on de nombre “sustReg” que recibe el apuntador doble a la matriz tri- angular superior, el apuntador al vector del lado derecho del sistema y el orden de la matriz. Esta funci´on calcula la soluci´on del sistema lineal usando el m´etodo de sustituci´on hacia atr´as mostrado en la Fig. 1. La funci´on devuelve un apuntador al vector soluci´on del sistema lineal.

4. Dos funciones de nombres “mifopen” y “mimalloc” que personalizan la apertura de archivos y la reserva de memoria, tal como se indic´o en clase.

5. Una funci´on principal de nombre “main” la cual solicita por pantalla los nombres de los archivos de datos (uno para la matriz y otro para el vector), invoca las funciones

“leeMatriz”, “leeVector” y “sustReg” para resolver el sistema lineal. Luego imprime la solucion en el archivo “salida.txt”, junto con la matriz y vector del lado derecho del sistema lineal.

Los archivos de datos (uno para la matriz y otro para el vector) se estructuran de la siguiente manera. La primera l´ınea del archivo para la matriz corrresponde al orden

USB, CO2112, Prof. Sa´ul Buitrago

(2)

2

Fig. 1: Ilustraci´on del m´etodo de sustituci´on hacia atr´as para la resoluci´on de un sistema de ecuaciones lineales donde la matriz asociada al sistema es triangular superior.

n de ´esta; a partir de la segunda l´ınea, aparecen tantas l´ıneas como el orden n de la matriz. Cada l´ınea tendr´a los elementos de la matriz partiendo del elemento de la diagonal principal. A continuaci´on se ilustra la estructura del archivo con con una matriz triangular superior de orden n = 4:

2. −1. 3. −3.

0 −1. 5. 2.

0 0 4. 1.

0 0 0 −3.

matriz 4 × 4

=⇒

4

2. −1. 3. −3.

−1. 5. 2.

4. 1.

−3.

archivo de datos

El vector del lado derecho del sistema lineal con dimensi´on n se almacena en un segundo archivo, donde sus entradas se encuentran colocadas una por fila.

La entrega debe ocurrir a m´as tardar a las 11:59 pm del domingo 12 de mayo, enviando al correo electr´onico del prof. Jim´enez (oswjimenez@gmail.com) un archivo comprimido (zip o rar) de nombre:

“CO2112 lab05 apellido nombre”.

Este archivo s´olo debe contener los c´odigos fuentes. Todas los programas deben estar debidamente identificados y documentados.

USB, CO2112, Prof. Sa´ul Buitrago

(3)

3 Observaciones generales

• ¿C´omo escribir un programa?

1. Especificar el problema.

2. Analizar y dividir ´este en una serie de pasos que conduzcan a la soluci´on, es decir, dise˜nar un algoritmo.

3. Escribir el c´odigo en ANSI C.

4. Compilar y corregir posibles errores de sintaxis.

5. Ejecutar el programa, verificando que funciona para todos los casos previstos en el dise˜no del algoritmo.

• El programa debe estar debidamente documentado. Recuerde que, en general, no es necesario (ni deseado) comentar cada l´ınea de c´odigo escrita. La mayor´ıa de las veces, las l´ıneas individuales hablan por s´ı solas en cuanto al trabajo puntual que realizan. Un buen comentario es aquel que nos dice cu´al es la raz´on por la cual la l´ınea est´a escrita de cierta manera y c´omo encaja eso dentro del contexto completo del programa.

USB, CO2112, Prof. Sa´ul Buitrago

Figure

Actualización...

Referencias

Related subjects :