Sunteți pe pagina 1din 8

Universidad Iberoamericana - Departamento de Ingeniera y Ciencias Qumicas Computacin Aplicada a Procesos Qumicos M.C. Javier Lpez Rubio y M.C.

Andrea Silva Beard

Programacin y Mtodos Numricos


El hablar de computacin aplicada para ingenieros implica tambin hablar de mtodos numricos. Estos ltimos constituyen tcnicas mediante las cuales es posible formular problemas matemticos, de tal forma que pueden resolverse utilizando operaciones aritmticas. Aunque existen diferentes tipos de mtodos numricos, estos comparten una caracterstica en comn, invariablemente requieren de un gran nmero de tediosos clculos aritmticos, de aqu la necesidad de hacer uso de una herramienta computacional. En la actualidad, las computadoras y los mtodos numricos ofrecen una alternativa para los clculos complicados. Al usar la potencia de la computadora se obtienen soluciones directamente, de esta manera se pueden aproximar los clculos sin tener que recurrir a consideraciones de simplificacin o tcnicas muy lentas. Aunque las soluciones analticas an son muy valiosas, tanto para resolver problemas como para brindar una mayor compresin, los mtodos numricos presentan opciones que aumentan, en forma considerable, la capacidad de enfrentar y resolver los problemas; como resultado, se dispone de ms tiempo para aprovechar las habilidades creativas personales. En consecuencia, es posible dedicar mayor tiempo a la formulacin de un problema y a la interpretacin de la solucin. Algunas otras razones por las que deben emplear mtodos numricos en la solucin de problemas: Son herramientas poderosas para la solucin de problemas con gran nmero de ecuaciones, manejan no linealidades y se pueden resolver geometras complicadas comunes en la prctica de ingeniera Ayudan a entender la teora bsica en que se basan algunos paquetes de cmputo comerciales (eg. Polymath) Permiten desarrollar programas propios para resolver problemas que no pueden resolverse con paquetes comerciales y costosos Son un vehculo eficiente para aprender a servirse de las computadoras. Es bien conocido que una forma efectiva de aprender programacin consiste en escribir programas para computadora. Debido a que la mayora de los mtodos numricos estn diseados para usarlos en las computadoras, son ideales para tal propsito. Adems, son especialmente adecuados para ilustrar el poder y las limitaciones de las computadoras. Cuando se desarrollan satisfactoriamente los mtodos numricos y se aplican para la solucin de problemas, se dispondr de una excelente demostracin de cmo las computadoras sirven para el desarrollo profesional de un ingeniero Los mtodos numricos son un medio para esforzar la comprensin de las matemticas, ya que su funcin es convertir las matemticas superiores en operaciones aritmticas bsicas, de esta manera se puede profundizar en los temas que de otro modo resultaran oscuros. Esta perspectiva dar como resultado un aumento de su capacidad de comprensin y entendimiento de la ingeniera

Los problemas matemticos ms comunes en ingeniera que emplean mtodos numricos para su solucin se presentan en la Fig. 1.

Universidad Iberoamericana - Departamento de Ingeniera y Ciencias Qumicas Computacin Aplicada a Procesos Qumicos M.C. Javier Lpez Rubio y M.C. Andrea Silva Beard

Fig. 1 Resumen de problemas matemticos clsicos en Ingeniera

Universidad Iberoamericana - Departamento de Ingeniera y Ciencias Qumicas Computacin Aplicada a Procesos Qumicos M.C. Javier Lpez Rubio y M.C. Andrea Silva Beard

Estructuras de programacin bsica


Los programas computacionales son un conjunto de instrucciones que dirigen a la computadora para realizar una cierta tarea. Existen diferentes programas de cmputo con un amplio rango de aplicaciones y capacidades en lenguajes de alto nivel como Fortran 90, C++ y Matlab. En general, los usuarios de estos programas pueden hacer uso de esta amplia gama de capacidades y reducir la complejidad de la programacin a unos cuantos tpicos de manera que conlleven a la solucin de problemas, tales como: Representacin de informacin sencilla ( declaracin de constantes, variables y tipos) Representacin de informacin ms compleja (estructuras de datos, arreglos y registros) Modelos matemticos (asignacin, reglas de prioridad y funciones intrnsecas) Entrada / salida de informacin Representacin lgica (secuencia, seleccin y repeticin) Programacin modular (funciones y subrutinas).

De los tpicos anteriores, los ms importantes son los dos ltimos, el primero de stos representa la estructura lgica para la coherencia y precisin de un algoritmo de clculo; el segundo contribuye de manera importante a la organizacin de un programa, de manera que los mdulos que se generan son un medio de almacenar algoritmos utilizados frecuentemente en un formato adecuado para aplicaciones subsecuentes.

Programacin estructurada La programacin estructurada proyecta la posibilidad de cmo generar el cdigo real del programa, de modo que sea fcil de entender, corregir y modificar. En trminos generales se puede definir como un conjunto de reglas que aconsejan buenos hbitos de estilo a los programadores. La idea clave detrs de la programacin estructurada radica en que cualquier algoritmo de clculo requiere tan solo de tres estructuras de control fundamentales: secuencia, seleccin y repeticin, as como, el empleo de un diagrama de flujo o pseudocdigo. El diagrama de flujo es la representacin visual o grfica de un algoritmo, emplea una serie de cajas o bloques y flechas, cada una de las cuales representa un determinado paso u operacin del algoritmo. Las flechas representan el orden en los que se realizarn las operaciones El pseudocdigo es otra manera de expresar el algoritmo de clculo y constituye un punto de unin entre los diagramas de flujo y el cdigo de computadora. Es el primer medio que se usa para comunicar algoritmos relacionados con los mtodos numricos.

Secuencia

La estructura secuencial expresa la trivial idea de que, a menos que se indique otra cosa, el cdigo debe realizarse instruccin por instruccin como se muestra en el diagrama de flujo la Fig. 2

Seleccin

La seleccin ofrece un medio de dividir el flujo del programa en ramas considerando el resultado de una condicin lgica tal y como se observa en la Fig. 3

Universidad Iberoamericana - Departamento de Ingeniera y Ciencias Qumicas Computacin Aplicada a Procesos Qumicos M.C. Javier Lpez Rubio y M.C. Andrea Silva Beard

Instruccin Instruccin Instruccin Instruccin Instruccin


a) Diagrama de flujo b) Pseudocdigo
1

Instruccin
2

Fig. 2. Diagrama de flujo y pseudocdigo para la estructura secuencial

Diagrama de flujo

Pseudocdigo

Condicin ?

Verdadero

IF

condicin THEN Bloque verdadero ENDIF

Bloque verdadero

a) Estructura (IF/THEN) para una sola alternativa

Falso

Condicin ?

Verdadero

IF ELSE

condicin THEN Bloque verdadero

Bloque falso

Bloque verdadero

Bloque falso ENDIF

b) Estructura (IF/THEN/ELSE) para dos alternativas

Fig. 3. Diagrama de flujo y pseudocdigo para las estructuras de seleccin simple

Universidad Iberoamericana - Departamento de Ingeniera y Ciencias Qumicas Computacin Aplicada a Procesos Qumicos M.C. Javier Lpez Rubio y M.C. Andrea Silva Beard

La decisin de una sola alternativa (IF/THEN) permite una desviacin en el flujo del programa si una condicin lgica es verdadera, si esta condicin es falsa no ocurre nada y el programa contina (Fig. 3 (a)). La decisin entre dos alternativas (IF/THEN/ELSE) se comporta de la misma forma si la condicin es verdadera, sin embargo la condicin es falsa, el programa realiza las instrucciones entre el ELSE y el ENDIF (Fig. 3 (b)).

Repeticin

Proporciona una manera de llevar a cabo instrucciones repetidamente. Las estructuras resultantes, llamadas loops o ciclos se pueden representar como se muestra en la Fig. 4.

Diagrama de flujo

Pseudocdigo

Bloque 1

WHILE Bloque1 IF condicin EXIT Bloque2 END


Verdadero

Condicin ?
Falso

Bloque 2

Fig. 4. Diagrama de flujo y pseudocdigo para la estructura de repeticin

Otra manera de llevar a cabo ciclos o repeticiones es empleando la funcin FOR y se estructura con se muestra en la Fig. 5.

Programacin modular En la programacin modular los programas se pueden dividir en pequeos subprogramas o mdulos que se pueden escribir o probar por separado. La caracterstica de esta forma de programacin es ser independiente y autosuficiente como sea posible, y adems casi siempre se disea para realizar una funcin especfica y bien definida. Cada mdulo se conoce como subrutina, la cual es un conjunto de instrucciones de cmputo que realiza una tarea. Un programa llama a estos mdulos a medida que se necesitan. Por lo tanto, el programa principal dirige cada una de estas partes de manera lgica. Algunas de las ventajas de la programacin modular son: a) facilita la proyeccin y la comprensin de la lgica subyacente para el programador y el usuario, b) el desarrollo de un

Universidad Iberoamericana - Departamento de Ingeniera y Ciencias Qumicas Computacin Aplicada a Procesos Qumicos M.C. Javier Lpez Rubio y M.C. Andrea Silva Beard

programa se puede efectuar con mayor facilidad ya que cada subrutina se puede crear aisladamente, c) el usuario puede disponer de una biblioteca de mdulos que puede aprovechar en otros programas, d) aumenta la facilidad de depurar e identificar errores en un programa y e) el mantenimiento y modificaciones de programas se facilita.

Diagrama de flujo

Pseudocdigo

Verdadero

i > fin ?

i = inicio i = i+incr.

FOR i = inicio: incremento: fin Bloque1 END

Falso

Bloque 1

Fig. 5. Diagrama de flujo y pseudocdigo para la estructura de repeticin FOR

Estructuras de control fundamentales

Universidad Iberoamericana - Departamento de Ingeniera y Ciencias Qumicas Computacin Aplicada a Procesos Qumicos M.C. Javier Lpez Rubio y M.C. Andrea Silva Beard

Ejercicios de programacin. Problema 1. Desarrollar un algoritmo de clculo que determine las races de una ecuacin cuadrtica ax + bx + c = 0 mediante la frmula general:
2

xi =
Actividades:

b b 2 4ac 2a

a) Construir un diagrama de flujo para el desarrollo del algoritmo b) Empleando las estructuras de control obtener un algoritmo de clculo que realice los siguientes pasos Pida al usuario las coeficientes a, b y c Realice las operaciones de la frmula cuadrtica previendo todas las eventualidades (como, por ejemplo, permitir races complejas solucin de races iguales, solucin de ecuaciones lineales y races reales diferentes.) Despliegue la solucin, es decir, los valores de xi Permita al usuario la opcin de volver a repetir el proceso.

Universidad Iberoamericana - Departamento de Ingeniera y Ciencias Qumicas Computacin Aplicada a Procesos Qumicos M.C. Javier Lpez Rubio y M.C. Andrea Silva Beard

Problema 2. Desarrollar un algoritmo de clculo que evale una funcin f(x,y) para diferentes valores de x & y. La funcin est definida de la siguiente manera:

x+ y x + y2 f ( x, y ) = 2 x +y x 2 + y 2

x0 x0 x<0 x<0

& & & &

y 0 y < 0 y 0 y < 0

Evaluar los cuatro posibles caminos empleando los siguientes datos: (x,y) = (2,3), (2,-3),(-2,3) y (-2,-3). Nota: El algoritmo de clculo debe desarrollarse con las estructuras de control necesarias para que realice los siguientes pasos: Solicite al usuario los valores de: x & y, Evale la funciones segn corresponda Despliegue el valor de la funcin resultante Permita al usuario la opcin de volver a repetir el proceso. Problema 3. Ejemplo de programacin de la estructura case Problema 4. Obtener el diagrama de fases y la curva de equilibrio lquido-vapor para el sistema binario Benceno-Hexano a la presin de la UIA. Las temperaturas de ebullicin del benceno y tolueno son 69.95 C y 58.79 C respectivamente, las constantes de la ecuacin de Antoine (ec. 3) para estos compuestos son: Compuesto Benceno Hexano A 6.89745 6.87773 B 1206.350 1171.530 C 220.237 224.366

La presin est dada en mmHg y la temperatura en C. Nota: Ver en pgina web la ayuda para resolver este problema.

S-ar putea să vă placă și