Anda di halaman 1dari 435

MTODOS Y APLICACIONES INFORMTICAS EN

INGENIERA QUMICA
Equipo docente principal

Jose Luis Valverde (CU)


Mara Luz Snchez (CD)

MTODOS Y APLICACIONES INFORMTICAS EN


INGENIERA QUMICA
Objetivos
Introduccin a las herramientas informticas usadas por el Ingeniero
Qumico en lo que se refiere al clculo, simulacin, diseo, regulacin
y optimizacin de procesos qumicos:
qVISIO, bsico para el dibujo y configuracin de diagramas de flujo
qEXCEL, bsico para la realizacin de todo tipo de clculos y de
grficos. Este ltimo se emplear junto con el lenguaje Visual Basic
para Aplicaciones EXCEL (EXCEL-VBA) muy til en la ejecucin de
clculos avanzados en Ingeniera Qumica.
qHYSYS y PROMAX para la simulacin de procesos qumicos. Se
determinar su acoplamiento con EXCEL (para estudios de sensibilidad
paramtrica y optimizacin de procesos qumicos)

MTODOS Y APLICACIONES INFORMTICAS EN


INGENIERA QUMICA
Temario
UNIDAD TEMTICA 1: INTRODUCCIN AL MANEJO DE EXCEL Y VISIO.

1.Introduccin al manejo de EXCEL. Conceptos bsicos. Clculos y grficos. La


herramienta SOLVER. Ejemplos.
2.Macros en EXCEL. Mecnica de construccin y su manejo. Ejemplos.
3.Conceptos avanzados de manejo de EXCEL. Botones, cuadros, formularios,
controles y mens. Ejemplos.
4.Introduccin al manejo de VISIO. Conceptos bsicos. Formas. Diagramas de
bloques y de flujo de informacin. Organigramas. Ejemplos.
5.Uso de VISIO en la construccin de diagramas de plantas y procesos
qumicos. Ejemplos

MTODOS Y APLICACIONES INFORMTICAS EN


INGENIERA QUMICA
Temario
UNIDAD TEMTICA 2: RESOLUCIN DE PROBLEMAS NUMRICOS
MEDIANTE EXCEL.

6.Procedimientos numricos bsicos. Operaciones matriciales. Resolucin


numrica de ecuaciones lineales. Interpolacin. Integracin numrica de
funciones y de datos discretos. Diferenciacin numrica. Clculo de las races
de funciones de
una variable y de polinomios. Suavizacin de datos
experimentales. Regresin lineal. Ejemplos
7.Procedimientos numricos avanzados. Regresin no lineal. Resolucin de
Sistemas de ecuaciones no lineales. Resolucin de ecuaciones diferenciales
ordinarias: problemas de valor inicial. Resolucin de ecuaciones diferenciales:
problemas de valor de frontera. Ejemplos.

MTODOS Y APLICACIONES INFORMTICAS EN


INGENIERA QUMICA
Temario
UNIDAD TEMTICA 3: INTRODUCCIN A LA PROGRAMACIN EN VISUAL
BASIC PARA APLICACIONES EXCEL (EXCEL-VBA) Y SU EMPLEO EN LA
RESOLUCIN DE PROBLEMAS DE LA INGENIERA QUMICA.

8.Fundamentos de programacin en Visual Basic para Aplicaciones EXCEL.


Introduccin. Mecnica de la escritura de cdigo. Conceptos bsicos del cdigo
en VBA. Tipos de datos, constantes y variables. Matrices. Operaciones
aritmticas y lgicas. Estructuras bsicas de control y comandos. Algoritmo de
utilidad. Ejemplos.
9.Programacin modular. Introduccin. Programacin modular. Organizacin
general de los mdulos de VBA. Subrutinas. Funciones predefinidas en VBA.
Ejemplos.
10.Descripcin de mdulos y su manejo. Operaciones matriciales y resolucin
de ecuaciones algebraicas. Interpolacin y extrapolacin numrica. Integracin
numrica de funciones. Evaluacin de funciones y derivadas. Diferenciacin y
clculo de races de funciones. Modelizacin de datos experimentales.
Resolucin de sistemas de ecuaciones no lineales. Ecuaciones diferenciales.
Ejemplos.
11.Resolucin de problemas de la Ingeniera Qumica. Flujo de Fluidos. 5
Transmisin de Calor. Transferencia de materia. Ingeniera de la Reaccin
Qumica. Control de Procesos Qumicos. Ejemplos.

MTODOS Y APLICACIONES INFORMTICAS EN


INGENIERA QUMICA
Temario
UNIDAD TEMTICA 4: INTRODUCCIN AL MANEJO DE HYSYS Y PROMAX
COMO HERRAMIENTAS DE SIMULACIN DE PROCESOS QUMICOS.

12.Introduccin al manejo de HYSYS y PROMAX. Paquetes termodinmicos.


Componentes hipotticos. Grados de libertad. Casos y ejemplos.
13.Uso de HYSYS y PROMAX en la simulacin de procesos qumicos simples.
Clculos bsicos. Balances de materia y energa. Operaciones bsicas.
Reactores qumicos. Ejemplos.
14.La conexin EXCEL-VBA a los simuladores HYSYS y PROMAX. Aplicaciones
a estudios de sensibilidad paramtrica y optimizacin de procesos qumicos.

MTODOS Y APLICACIONES INFORMTICAS EN


INGENIERA QUMICA
Criterios de evaluacin
La evaluacin de esta asignatura requerir de la realizacin de una
serie de actividades:
1.Exmenes con cuestiones prcticas sobre los contenidos impartidos en
la asignatura; se considerarn cuatro pruebas evaluatorias para cada
una de las unidades temticas. (60%)
2.Resolucin de ejercicios de Ms-Excel-VBA y Visio (Unidad temtica
1). (10%)
3.Resolucin de problemas numricos manualmente y con ayuda de de
aplicaciones MS-Excel-VBA (Unidad temtica 2). (10%)
4.Resolucin de problemas de programacin en entorno MS-Excel-VBA
(Unidad temtica 3). (10%)
5.Resolucin de problemas de simulacin de procesos qumicos sencillos:
balances de materia y energa, y acoplando la herramienta PROMAX con
una aplicacin MS-Excel-VBA (Unidad temtica 4). (10%)
La asignatura se aprobar siempre que en cada una de estas actividades
se alcance una calificacin mnima de 4,0/10 y un valor medio para7
todas ellas superior a 5,0/10.

MTODOS Y APLICACIONES INFORMTICAS EN


INGENIERA QUMICA

UNIDAD TEMTICA 1
Introduccin al manejo de EXCEL y VISIO

Tema 1. Introduccin al manejo de EXCEL

Tema 2. Macros en EXCEL


Tema 3. Conceptos avanzados de manejo de EXCEL

INTRODUCCIN AL MANEJO DE EXCEL


ndice
I.

INTRODUCCIN

II. UTILIZACIN BSICA DE UNA HOJA


DE CLCULO
III.FRMULAS Y FUNCIONES
IV. FORMATO Y ESTRUCTURA EN HOJAS
DE CLCULO

V. LISTAS Y BASES DE DATOS


VI. GRFICOS

VII.CARACTERISTICAS AVANZADAS
VIII. IMPRESIN
2

INTRODUCCIN AL MANEJO DE EXCEL


I.

Introduccin

Excel es una aplicacin del tipo hoja de clculo, integrada en el entorno Windows y
desarrollada por Microsoft, en la cual se combinan las capacidades de una hoja de
clculo, base de datos, programa de grficos bidimensionales y tridimensionales,
lenguaje propio de programacin y generacin de macros, todo dentro de la misma
aplicacin.
Una hoja de clculo est compuesta de los siguientes elementos:
Hojas: Son las pginas tabulares de la hoja de clculo.
Celdas: Son los cuadros que forman una hoja de Excel.
Filas: Son un conjunto de celdas horizontales.
Columnas: Son un conjunto de celdas verticales.
Identificador de celda o etiqueta: Es la unin de la interseccin de la letra de la
columna y el nmero de la fila en un punto. Ej: A8 C20.
Libro de trabajo: es un archivo de Excel que est compuesto por hojas.
Frmula: es una expresin que representa una operacin matemtica.
Operador: son los signos matemticos-aritmticos que permiten realizar una
operacin en Excel. (+ - * / ).
Funcin: son palabras reservadas de Excel que realizan un clculo ya definido.
Rango: Conjunto de celdas sobre las que acta una frmula o funcin.
3
Celda Activa: es la celda en la que se encuentra actualmente posicionado el cursor.

INTRODUCCIN AL MANEJO DE EXCEL


I.
Barra de Acceso
Rpido

Introduccin
Barra de Ttulo

Banda de
Opciones

Botn de
Ayuda

Barra de Frmulas

Barra de
Estado

Barra de
Etiquetas

Barra
desplazamiento

Pantalla inicial de Excel

INTRODUCCIN AL MANEJO DE EXCEL


I.

Introduccin

Banda de opciones
Alt + letra nmero

Archivo

INTRODUCCIN AL MANEJO DE EXCEL


II. Utilizacin bsica de una hoja de clculo
Seleccin y activacin de celdas
1. Hacer clic con el ratn en la esquina superior izquierda de la hoja.
2. Para seleccionar una determinada fila o columna, bastar hacer clic una sola vez
sobre la etiqueta. Para seleccionar un rango de varias filas y/o columnas contiguas,
basta hacer clic sobre la primera (o ltima) etiqueta, y arrastrar sin soltar el botn
del ratn hasta la ltima (primera) etiqueta del rango deseado.
3. Para seleccionar un bloque contiguo de celdas o un rectngulo, hay que clicar con
el ratn en una de las esquinas del bloque, y arrastrar el cursor hasta la celda
ubicada en la esquina del bloque opuesta a la inicial. Tambin se puede seleccionar un
rectngulo haciendo clic primero sobre la celda de una esquina y luego -manteniendo
pulsada la tecla Mays- volviendo a hacer clic sobre la celda en la esquina opuesta;
esta operacin selecciona todo el rango de celdas entre las dos operaciones de clic.
4. Para seleccionar bloques no contiguos de celdas basta seleccionar cada bloque por
el procedimiento explicado, manteniendo pulsada la tecla Ctrl.
6

INTRODUCCIN AL MANEJO DE EXCEL


II. Utilizacin bsica de una hoja de clculo
Teclas para desplazarse en la hoja de clculo
MOVIMIENTO
Celda Abajo
Celda Arriba
Celda Derecha
Celda Izquierda
Pantalla Abajo
Pantalla Arriba
Celda A1
Primera celda de la columna activa
ltima celda de la columna activa
Primera celda de la fila activa
ltima celda de la fila activa

TECLADO
Flecha abajo
Flecha arriba
Flecha derecha
Flecha izquierda
AvPg
RePg
Ctrl + Inicio
Fin + Flecha arriba
Fin + Flecha abajo
Fin + Flecha
izquierda o Inicio
Fin + Flecha derecha

Barra de Frmulas
7

INTRODUCCIN AL MANEJO DE EXCEL


II. Utilizacin bsica de una hoja de clculo
Introduccin de datos
-Tipos de datos:
Valores constantes: datos que se introducen directamente en una celda. Estos datos
pueden ser nmeros, fechas u horas o texto.
- Nmeros. Son los caracteres 0,1,2,3,4,5,6,7,8,9 y los signos especiales +,
-,(,),/,*,%,E,.,. Por defecto vienen alineados a la derecha en la celda. El
carcter E o e es interpretado como notacin cientfica.
- Fecha y hora. Pueden ser introducidas en diferentes formatos: 14/07/81,
17:30; 14-07-81, 5:30 PM.
- Texto. Contiene letras, dgitos y otros caracteres especiales. Se alinea a la
derecha de la celda por defecto.
Frmulas: son una secuencia formada por valores constantes, referencias a otras
celdas, nombres, funciones u operaciones. Mediante frmulas se llevan a cabo todos
los clculos que se necesitan en una hoja de clculo. stas se puede utilizar para
mltiplos usos: desde operaciones sencillas, tales como sumas y restas, hasta
8
complejos clculos financieros, estadsticos y cientficos.

INTRODUCCIN AL MANEJO DE EXCEL


II. Utilizacin bsica de una hoja de clculo
Mover y copiar celdas
1.Despus de seleccionar las celdas, elegir el comando Cortar o Copiar del
Portapapeles o la combinacin de teclado Ctr + C o Ctr + X.
2. Colocar el cursor sobre el borde de la misma y adquiere la forma del signo suma
(+). En ese momento se hace clic y se arrastra la seleccin hasta la posicin deseada.

3. En la esquina inferior derecha de las celdas copiadas el icono de Opciones de


autorelleno. Desplegando el botn podemos ver diferentes opciones de copiado: Copiar
celdas, Rellenar formatos slo y Rellenar sin formato.

Portapapeles de Excel
9

INTRODUCCIN AL MANEJO DE EXCEL


II. Utilizacin bsica de una hoja de clculo
Modificacin de datos y borrado de celdas
1. Borrado del contenido de una celda. Se selecciona la zona a borrar y se pulsa la
tecla Supr.
2. Borrado de las celdas con todo su contenido. Se escoge la opcin Borrar de la
pestaa Inicio y se abrir un submen con las siguientes opciones disponibles:

Borrar todo: elimina el contenido de las celdas seleccionadas, los comentarios


ligados a esas celdas y cualquier formato excepto la anchura de la columna y la
altura de la fila.
Borrar Formatos: borra el formato de las celdas seleccionadas que pasan a asumir
el formato estndar, pero no borra su contenido y sus comentarios.
Borrar contenido: Elimina el contenido de las celdas seleccionadas, tengan o no
frmulas, pero mantiene sus comentarios y su formato.
Borrar Comentarios: suprime cualquier comentario ligado al rango de las celdas
10
seleccionasa, pero conserva sus contenidos y formatos.

INTRODUCCIN AL MANEJO DE EXCEL


II. Utilizacin bsica de una hoja de clculo
Mensajes de error en Excel
ERROR
#####

CAUSAS
Ancho de una columna no es suficiente o cuando se utiliza una fecha
o una hora negativa

#DIV/0!

Nmero por cero.

#N/A

Valor no est disponible para una funcin o frmula

#NUM!

Valores numricos no vlidos en una frmula o funcin

#NOMBRE?

Excel no reconoce el texto de la frmula.

#REF!

Referencia de celda no es vlida.

#NULO!

Especifica una interseccin de dos reas que no se intersectan

11

INTRODUCCIN AL MANEJO DE EXCEL


II. Utilizacin bsica de una hoja de clculo
Referencias y nombres
1. Seleccionar la celda donde se desea introducir la frmula.
2. Teclear un signo igual (=).
3. Sealar con el ratn la celda cuya referencia desea introducir y hacer clic.

4. Introducir un operador, por ejemplo el operador suma (+).


5. Si se desea introducir ms referencias a celdas en la frmula, basta repetir los
pasos anteriores cuantas veces sea necesario. Para dar la frmula por terminada se
pulsa Intro o el signo correcto de la barra de frmulas.
6. Si la frmula no es correcta, se anular o borrar o se confirmar.
Referencias absolutas: $A$1
Referencias relativas: $A1 o A$1

Mantiene invariable fila y columna


Mantiene invariable columna o fila
12

INTRODUCCIN AL MANEJO DE EXCEL


II. Utilizacin bsica de una hoja de clculo
Ejercicio
Crear un modelo que obtenga las tablas de multiplicar desde el 1 hasta la 9

13

INTRODUCCIN AL MANEJO DE EXCEL


III.Frmulas y funciones
Introduccin de frmulas
1. Seleccionar con el ratn la celda o la zona derecha de la Barra de Frmulas.
2. Comenzar tecleando el signo igual (=). De esta forma Excel sabe que lo que se va
a introducir en la celda activa es una frmula.
3. Teclear valores numricos, referencias a celdas, funciones o nombres, todos ellos
separados por los correspondientes operadores (por ejemplo: +, -, *, /).
4. Terminar la introduccin de la frmula pulsando Intro.

Barra de Frmulas
14

INTRODUCCIN AL MANEJO DE EXCEL


III.Frmulas y funciones
Insercin funciones
1. Seleccionar la celda en la que desee introducir la funcin (celda activa).
2. Hacer clic sobre la pestaa Frmulas o el botn Asistente de Funciones. Elegir la
funcin que se desea utilizar.
3. Despus de seleccionar la funcin deseada se clica en el botn Aceptar y se siguen
las instrucciones del Asistente de Funciones en el siguiente cuadro de dilogo que
aparece, que permite definir los argumentos.
4. Al completar este cuadro se hace clic en el botn Aceptar para completar la
funcin e insertarla en la celda activa.

Asistente de Funciones

15

INTRODUCCIN AL MANEJO DE EXCEL


III.Frmulas y funciones
Funciones matemticas y trigonomtricas
FUNCIONES MATEMTICAS Y
TRIGONOMTRICAS
ABS (nmero)
ALEATORIO ( )
COMBINAT (nmero;tamao)
COS (nmero)
ENTERO (nmero)

EXP (nmero)
FACT (nmero)
NUMERO.ROMANO (nmero,forma)
PI( )
POTENCIA (nmero;potencia)
PRODUCTO (nmero1;nmero2;...)

RAIZ (nmero)
RESIDUO (nmero;nm_divisor)

DESCRIPCIN
Devuelve el valor absoluto de un nmero
Devuelve un nmero entre 0 y 1
Devuelve el nmero de combinaciones
determinado de elementos
Devuelve el coseno de un ngulo

para

un

nmero

Redondea un nmero hasta el entero inferior ms prximo


Realiza el clculo de elevar "e" a la potencia de un nmero
determinado
Devuelve el factorial de un nmero
Devuelve el nmero pasado en formato decimal a nmero
Romano
Devuelve el valor de la constante pi
Realiza el clculo de elevar un nmero a la potencia indicada
Devuelve el resultado de realizar el producto de todos los
nmeros pasados como argumentos
Devuelve la raz cuadrada del nmero indicado
Devuelve el resto de la divisin

16

INTRODUCCIN AL MANEJO DE EXCEL


III.Frmulas y funciones
Funciones estadsticas
FUNCIONES ESTADSTICAS

MEDIA.ARMO (nmero1;nmero2;...)
MAX (nmero1;nmero2;...)
MIN (nmero1;nmero2;...)
MEDIANA (nmero1;nmero2;...)
MODA (nmero1;nmero2;...)
PROMEDIO (nmero1;nmero2;...)
VAR (nmero1;nmero2;...)
K.ESIMO.MAYOR (matriz;k)
K.ESIMO.MENOR (matriz;k)
MEDIA.ARMO (nmero1;nmero2;...)
MAX (nmero1;nmero2;...)
MIN (nmero1;nmero2;...)
MEDIANA (nmero1;nmero2;...)

DESCRIPCIN

Devuelve la media armnica de un conjunto de nmeros positivos


Devuelve el valor mximo de la lista de valores
Devuelve el valor mnimo de la lista de valores
Devuelve la mediana de la lista de valores
Devuelve el valor que ms se repite en la lista de valores
Devuelve la media aritmtica de la lista de valores
Devuelve la varianza de una lista de valores
Devuelve el valor k-simo mayor de un conjunto de datos
Devuelve el valor k-simo menor de un conjunto de datos
Devuelve la media armnica de un conjunto de nmeros positivos
Devuelve el valor mximo de la lista de valores
Devuelve el valor mnimo de la lista de valores
Devuelve la mediana de la lista de valores

Botn Autosuma
17

INTRODUCCIN AL MANEJO DE EXCEL


III.Frmulas y funciones
Ejercicio
Crear un modelo que permita calcular el total de dinero en euros que hay en las
diferentes oficinas bancarias mediante el cambio de diferentes monedas (dlares,
marcos, francos, pesetas, escudos y dracmas)

OFICINAS
MADRID
BARCELONA
BILBAO
VALENCIA
SEVILLA

DLARES
1000
2000
1790
2600
5160

DLARES /$
CAMBIOS A
0,8651

MARCOS
500
680
300
190
429

FRANCOS
3000
3089
1290
2600
1790

PESETAS
200000
386000
568000
689000
1452000

ESCUDOS
500000
985000
1369000
2000000
4580000

DRACMAS
TOTAL
1000000
8160,05
2000000 15555,14
1850000 17440,86
4000000 28403,58
9000000 62494,67

MARCOS
/M
FRANCOS /F PESETAS /Pts ESCUDOS /E DRACMAS /D TOTAL
0,5115
0,1524
0,00601
0,0049
0,00293 132054,29

18

INTRODUCCIN AL MANEJO DE EXCEL


IV. Formato y estructura en hojas de calculo
Altura de filas y anchura de columnas

Men Celdas

19

INTRODUCCIN AL MANEJO DE EXCEL


IV. Formato y estructura en hojas de calculo
Formato de celdas

- General: Visualiza en la celda exactamente el valor introducido.


- Nmero: Permiten especificar el nmero de decimales, el separador de millares y
la forma de visualizar los nmeros negativos.
- Moneda: Permite especificar el nmero de decimales, se puede escoger el smbolo
monetario como podra ser y la forma de visualizar los nmeros negativos.
- Contabilidad: Alinea los smbolos de moneda y las comas decimales en una columna.
- Fecha: Representan fechas y horas.
- Hora: Contiene valores de horas.
- Porcentaje: Visualiza los nmeros como porcentajes.
- Fraccin: Permite escoger entre nueve formatos de fraccin.
- Cientfica: Muestra el valor de la celda en formato de coma flotante.
- Texto: Trata a las celdas con formato de texto incluso si en el texto se encuentra
algn nmero en la celda.
- Especial: Contiene algunos formatos especiales, como puedan ser el cdigo postal,
el nmero de telfono, etc.
- Personalizada: Se puede crear un nuevo formato, indicando el cdigo de formato.
20

INTRODUCCIN AL MANEJO DE EXCEL


V. Listas y bases de datos
Tablas de Excel
Operaciones ms interesantes:
-Ordenar los registros.
-Filtrar el contenido de la tabla por algn criterio.
-Utilizar formulas para la lista aadiendo algn tipo de filtrado.
-Crear un resumen de datos
-Aplicar formatos a todos los datos.

Herramientas de la tabla
21

INTRODUCCIN AL MANEJO DE EXCEL


V. Listas y bases de datos
Tablas de Excel
.

Formulario de datos
22

INTRODUCCIN AL MANEJO DE EXCEL


V. Listas y bases de datos
Tablas de Excel. Ordenar y Filtrar datos

1. Seleccionar las celdas que va a ordenar.


2. Ejecutar el comando Ordenar Ascendente o Descendente.
1. Utilizar el autofiltro o Filtros avanzados

Seccin ordenar y filtrar

Men Datos
Seccin Ordenar y filtrar

23

INTRODUCCIN AL MANEJO DE EXCEL


V. Listas y bases de datos
Tablas de Excel. Funciones en bases de datos
FUNCION

DESCRIPCIN

BDCONTAR (datos;campo;criterios)

Cuenta las celdas que contienen un nmero

BDCONTARA (datos;campo;criterios)

Cuenta las celdas que contienen un valor

BDMAX (datos;campo;criterios)

Obtiene el valor mximo

BDMIN (datos;campo;criterios)

Obtiene el valor mnimo

BDPRODUCTO (datos;campo;criterios)

Obtiene el producto de los valores indicados

BDPROMEDIO (datos;campo;criterios)

Obtiene el promedio de los valores indicados

BDSUMA (datos;campo;criterios)

Obtiene la suma de los valores indicados

BDEXTRAER (datos;campo;criterios)

Obtiene un valor de un campo en una fila que cumpla un criterio de


seleccin

BDVAR (datos;campo;criterios)

Calcula la varianza sobre una muestra de valores

BDVARP (datos;campo;criterios)

Calcula la varianza sobre todos los valores de un campo

BDDESVEST (datos;campo;criterios)

Calcula la desviacin estndar sobre una muestra de valores

BDDESVESTP (datos;campo;criterios)

24
Calcula la desviacin estndar sobre todos los valores de un campo

INTRODUCCIN AL MANEJO DE EXCEL


V. Listas y bases de datos
Ejercicio
Crear una tabla o base de datos de alumnos de diferentes clases y notas finales de
las asignaturas: lenguaje, matemticas e historia. Realizar las siguientes actividades:
-Ordenar la lista por el primer apellido.
-Mostrar los aprobados de la asignatura de lenguaje.
-Mostrar los aprobados de la asignatura de lenguaje y que pertenezcan a la clase A.

25

INTRODUCCIN AL MANEJO DE EXCEL


V. Listas y bases de datos
Tablas y grficos dinmicos

Permite filtrar datos, cambiar la presentacin de datos y visualizar diferentes


totales
1. Insertar Tabla dinmica.

Men Opciones

26

INTRODUCCIN AL MANEJO DE EXCEL


V. Listas y bases de datos
Ejercicio
Crear una tabla dinmica sobre las ventas alcanzas de diferentes productos a lo
largo de un ao. Realizar la siguiente actividad:
-Mostrar el total de ventas en funcin del tipo de producto vendido (Referencia) y
el mes de venta

27

INTRODUCCIN AL MANEJO DE EXCEL


VI. Grficos
Como grfico incrustado o hoja de grfico

Crear grficos
1. Seleccionar los datos a representar.
2. Ejecutar el comando Insertar / Grfico.

Men Seleccionar datos

28

INTRODUCCIN AL MANEJO DE EXCEL


VI. Grficos
Ejercicio
Crear un grfico de columnas para representar el consumo de peras, patatas,
cerezas, manzanas, melocotones y meln durante cuatro meses del ao. Adems,
representar el total de cada producto consumido por mes.
PERAS
PATATAS
CEREZAS
MANZANAS
MELOCOTONES
MELN

ENERO FEBRERO MARZO


2503
3941
4527
2263
4714
3370
2606
1795
1860
3912
4272
1997
4944
3277
1982
2583
3030
3854

Ventas mensuales

ABRIL
2481
2722
3437
4917
4751
4310
6000

6000

CANTIDADES

5000
5000

4000

4000

3000
PERAS
PATATAS

3000

2000

CEREZAS

MANZANAS

1000

MELOCOTONES

2000

MELN

MAYO
TOTAL
4146
17598
3229
16298
2312
12010
1898
16996
3421
18375
3482
17259
20000
18000
16000
14000
12000
10000
8000
6000
4000
2000
0

29
ENERO

FEBRERO

MARZO

ABRIL

MAYO

FEBRERO
MARZO
ABRIL
MAYO
TOTAL

1000

ENERO

INTRODUCCIN AL MANEJO DE EXCEL


VII. Caractersticas avanzadas
Bsqueda de objetivos

Seccin Anlisis de hiptesis

-Definir la celda: introducir la referencia de la celda que contiene la que se desea


resolver.
-Con el valor: especificar el resultado de la frmula que desee.
-Cambiando la celda: indicar la referencia de la celda que contiene el valor que
desea ajustar.

30

INTRODUCCIN AL MANEJO DE EXCEL


VII. Caractersticas avanzadas
Ejercicio
Hacer los clculos necesarios para lograr unos beneficios de 450000 variando el
salario, la cantidad de venta y el precio de venta.

Ventas
25000

Total Ventas ()
Total Compras ()
Total salarios ()

BUSCAR OBJETIVO
Compras Precio Venta () Precio Compra ()
7900
220
150

Trabajadores
30

Salario ()
128849,9

5500000
1184503
3865496,7

31
Beneficios ()

450000

INTRODUCCIN AL MANEJO DE EXCEL


VII. Caractersticas avanzadas
Creacin de escenario
Un escenario es un conjunto de valores que Microsoft Office Excel guarda y puede
sustituir automticamente en la hoja de clculo.

32

INTRODUCCIN AL MANEJO DE EXCEL


VII. Caractersticas avanzadas
Ejercicio
Un comercial tiene tres listas de precios: precio normal, precio cliente habitual y otra
de ofertas. Crear tres escenarios diferentes y colocar en cada uno de ellos una lista
de precios: Precio Normal, Cliente Habitual y Oferta.

Escenario Precio Normal

33

INTRODUCCIN AL MANEJO DE EXCEL


VII. Caractersticas avanzadas
Uso de la herramienta Excel
Un complemento Solver es un programa suplementario que agrega funciones o
comandos personalizados a Excel. Esta herramienta permite resolver ecuaciones sin
necesidad de despejar la variable que deseamos obtener.
1. Hacer clic en el icono de Personalizar barra de herramientas de acceso rpido y,
a continuacin, hacer clic en Mas Comandos.
2. Seleccionar Complementos y seleccionar Excel. Posteriormente, hacer clic en Ir.
3. En el cuadro Complementos disponibles, activar la casilla de verificacin
Complemento Solver y, a continuacin, hacer clic en Aceptar.

Barra de Herramientas de acceso rpido

34

INTRODUCCIN AL MANEJO DE EXCEL


VII. Caractersticas avanzadas
Ejercicio
Calcular el precio de compra, el nmero de trabajadores y el salario necesarios para
conseguir un beneficio de 550.000 , teniendo las siguientes restricciones:
-Precio compra: 120 y 160.
-Trabajadores: 28 y 35.
-Salario: 120000 y 130000

VENTAS
25000

COMPRAS
7900

TOTAL VENTAS ()
TOTAL COMPRAS ()
TOTAL SALARIOS ()

5500000
1184503
3765497

BENEFICIOS ()

550000

SOLVER
PRECIO VENTA () PRECIO COMPRA () TRABAJADORES SALARIO ()
220
150
29
130000

35

INTRODUCCIN AL MANEJO DE EXCEL


VII. Caractersticas avanzadas
Ejercicio
Calcular los parmetros a, b y c de la ecuacin siguiente a partir del tiempo
experimental (t)
Conversin = a +btc

Conversin=a+btc
Tiempo (min)
10
20
30
40
50
60

a
b

0,56
1,5

0,95

Conversin (%) exp Conversin (%) modelo % Error


13
14
5,9
35
26
25,8
42
38
9,9
56
50
11,6
61
61
0,0
72
72
0,5
SUMA ERROR
53,6

36

INTRODUCCIN AL MANEJO DE EXCEL


VIII.Impresin
Configurar pgina
Orientacin: es posible seleccionar entre dos posiciones: la vertical (Vertical) y
apaisada u horizontal (Horizontal).
Mrgenes: se establece los tamaos de margen de todo el documento o de la seccin
actual (Normal, Ancho, Estrecho o Margenes personalizados).
Tamao de papel y calidad de impresin: dependen de la impresora instalada
pudindose elegir las dimensiones del papel a utilizar (A3, A2, etc.) y la calidad de
la impresin.

37

INTRODUCCIN AL MANEJO DE EXCEL


VIII.Impresin
Configurar pgina

rea de impresin: permite especificar el rango de celdas que se desea imprimir.


Imprimir ttulos: sirve para que aparezca en todas y en cada una de las pginas
imprimir una determinada columna y/o fila de la hoja de clculo.
Ajustar rea de impresin

38

INTRODUCCIN AL MANEJO DE EXCEL


Ejercicios
Ejercicio 1: Ventas del ao 2000

Recibimos de las distintas sucursales de la empresa los datos correspondientes a


las ventas de cada vendedor en los distintos trimestres del ao.
Ventas del ao 2000
Vendedor
Trimestre 1
Trimestre 2
Trimestre 3 Trimestre 4
Miguel Fernandez
11599
34343
23424
23453
Maria Perez
23434
34999
34324
23211
Juan Gomez
12345
32890
39883
12343
Silvia Romero
23456
34564
12343
33444

Disea una hoja de clculo que refleje estos datos y permita obtener los
siguientes conceptos:
Ventas totales por trimestres
Ventas totales por vendedor
Media mensual de ventas por vendedor
Promedio de ventas por trimestre
39

INTRODUCCIN AL MANEJO DE EXCEL


Ejercicios
Ejercicio 2: Importaciones y exportaciones

A la vista de los siguientes datos sobre importaciones y exportaciones espaolas


en los aos referidos y medidos en millones de pesetas:

AOS
Exportaciones
% sobre el total
Importaciones
% sobre el total
DIFERENCIA Import/export (%)

Importaciones/Exportaciones
1998
1999
2000
24000
27000
36500
29000

35000

TOTAL

51000

Solucionar la hoja de clculo usando las frmulas necesarias


Confeccionar un grfico de barras, donde se compare el volumen de
importaciones frente al de exportaciones en cada ao
Confeccionar un grfico de sectores donde se muestre la proporcin del
volumen de importaciones frente al de exportaciones en el ao 1997
40

INTRODUCCIN AL MANEJO DE EXCEL


Ejercicios
Ejercicio 3: Actividades en el campamento

A la vista de la lista de nios apuntados a diferentes actividades en el


campamento complete las celdas vacas de la tabla.
CAMPAMENTO
Edad (aos)
8
4
5
6
9
8
5
6
12
15
13

Actividad Deseada
Natacin
Equitacin
Tenis
Equitacin
Natacin
Tenis
Equitacin
Natacin
Equitacin
Tenis
Natacin

Cantidad de inscriptos:
Cant. Nios de 8 aos:
Cant.nios menores de 8 aos:
Cant.nios que practicarn natacin:
Cant.nios que practicarn tenis
Cant.nios que practicarn equitacin:
Mayor edad registrada:
Menor edad registrada:
Promedio de edades:
41

UNIDAD TEMTICA 1
Introduccin al manejo de EXCEL y VISIO

Tema 1. Introduccin al manejo de EXCEL

Tema 2. Macros en EXCEL


Tema 3. Conceptos avanzados de manejo de EXCEL

MACROS EN EXCEL
ndice

I.

INTRODUCCIN

II. VISUAL BASIC


III. CREAR UNA MACRO AUTOMATICAMENTE
IV. EJECUTAR UNA MACRO
V. CREAR UNA MACRO MANUALMENTE

MACROS EN EXCEL
I.

Introduccin

Una Macro son una serie de pasos que se almacenan y se pueden activar con alguna
tecla de control y una letra. Sirven para automatizar tareas y si utilizamos el
lenguaje de programacin en el que hablan las macros, Visual Basic para Aplicaciones
(VBA), podremos desarrollar desde tareas y funciones simples para usos especficos
hasta aplicaciones complejas.

Men Desarrollador

MACROS EN EXCEL
I.

Introduccin

- Cdigo: comandos que accionan herramientas relacionadas con el cdigo VBA de las
macros.
Visual Basic: inicia el editor de cdigo VBA. Adems de abrirlo desde este icono,
tambin podremos iniciar el editor si presionamos la combinacin de las teclas Alt
+ F11.
Grabar macros: guarda todas las acciones que realizamos y las transforma en
cdigo VBA.
Macros: inicia la ventana mediante la cual podremos ejecutar las macros.
Seguridad de macros: accede a la configuracin de las opciones de seguridad
relacionadas con las macros.
- Controles: cuadro de texto, botn o algo ms complejo como una aplicacin.
Insertar: Los controles de formulario son los botones, los cuadros de texto, las
etiquetas, los botones de opcin, los cuadros combinados, etc.
Modo Diseo: sirve para ajustar las opciones de los controles insertados.
Propiedades: modifica las diferentes opciones referidas a los controles ActiveX
incrustados.
- XML (eXtensible Markup Language): los documentos XML contienen etiquetas que
definen la estructura, el significado y la apariencia de la informacin de un
4
documento.

MACROS EN EXCEL
II. Visual Basic
Visual Basic es una herramienta de diseo de aplicaciones para Windows. En una
aplicacin Visual Basic, el programa est formado por una parte de cdigo puro, y
otras partes asociadas a los objetos que forman la interfase grfica.
La creacin de un programa bajo Visual Basic lleva los siguientes pasos:

1. Anlisis. Es el estudio de las necesidades que han dado origen a la creacin de ese
programa.
2. Creacin de una interfase de usuario. Esta interfase ser la principal va de
comunicacin hombre mquina, tanto para salida de datos como para entrada.
3. Definicin de las propiedades de los controles. Se dar la forma, posicin, y todas
las caractersticas necesarias a los controles que hayamos colocado en ese formulario.
4. Generacin del cdigo asociado a los eventos que ocurran a estos controles. A la
respuesta a estos eventos (clic, doble clic, una tecla pulsada, etc.) le llamamos
Procedimiento, y deber generarse de acuerdo a las necesidades del programa.
5. Generacin del cdigo del programa. Este cdigo puede introducirse en unos bloques
llamados Mdulos, en otros bloques llamados Funciones, y otros llamados
Procedimientos.
5

MACROS EN EXCEL
II. Visual Basic
Tipos, declaraciones y alcances de las variables
Booleana
Byte
Integer
Long
Single
Doble
Currency
String
Date
Objet
Variant

(2 Bytes)
(1 Byte)
(2 Bytes)
(4 Bytes)
(4 Bytes)
(8 Bytes)
(8 Bytes)
(*)
(8 Bytes)
(4 Bytes)
(**)

Admite los valores 0 y 1, o True (verdadero) y False (falso)


Nmeros enteros, en el rango de 0 a 255
Nmeros enteros en el rango de -32768 a 32767
Nmeros enteros en el rango de -2147483648 a 2147483647
Punto flotante, simple precisin
Punto flotante, doble precisin.
Entero, con punto decimal fijo (Tpico de monedas)
Cadenas alfanumricas de longitud variable o fija
Fechas
Referencia a objetos
Otros tipos de datos

(*) Una variable tipo String ocupa el mismo nmero de bytes que caracteres tenga la
cadena.
(**) Una variable tipo Variant ocupa 16 bytes si se trata de un nmero y 22 bytes +
longitud de la cadena si se trata de un dato tipo cadena de caracteres.
6

MACROS EN EXCEL
II. Visual Basic
Tipos, declaraciones y alcances de las variables
-DIM: declarar una variable como Privada. Puede emplearse en un Procedimiento,
Funcin, Formulario o Mdulo. La sintaxis es de la siguiente forma:
Dim nombrevariable As Integer (o el tipo que sea)
-Sentencia PRIVATE: declarar una variable como Privada. Puede emplearse solamente
en la seccin de declaraciones de un Formulario o Mdulo. La sintaxis a emplear es la
siguiente:
Private nombrevariable As Tipovariable
-Sentencia PUBLIC: declarar una variable como Pblica. Puede emplearse solamente en
la seccin de declaraciones de un Formulario o Mdulo. La sintaxis es la siguiente:
Public nombrevariable As Tipovariable
Si no estamos en ese Formulario, habr que citarla por el nombre del Formulario,
seguido del nombre de la variable, separados por un punto:
NombreFormulario.Nombrevariable

MACROS EN EXCEL
II. Visual Basic
Tipos, declaraciones y alcances de las variables
-Declaracin Implcita (Opcin Explicit): para identificar variables tipo: Integer, Long,
Single, Double, String y Currency.
Integer
Long
Single
Double
String
Currency

%
&
!
#
$
@

MACROS EN EXCEL
II. Visual Basic
Tipos, declaraciones y alcances de las variables
Para declarar variables podemos hacerlo, resumidamente, del siguiente modo:
-En un Procedimiento:

Dim Variable As Tipovariable

-En un Procedimiento, como permanente:Static Variable As Tipovariable


-En un Formulario: en su seccin de declaraciones.
Como Privada (slo se puede usar en ese Formulario):
Dim Variable As Tipovariable Private Variable As Tipovariable
Como Pblica (Puede usarse en toda la aplicacin):
Public Variable As Tipovariable
-En un Mdulo:
Como Privada (Solamente puede usarse en ese Mdulo)
Dim Variable As Tipovariable Private Variable As Tipovariable
Como Pblica
(Puede usarse en toda la aplicacin)
Public Variable As Tipovariable
9

MACRO EN EXCEL
IV. Ejecutar una macro

Men Macros

Ejecutar: ejecuta la macro seleccionada en el cuadro de dilogo.


Paso a paso: ejecuta la macro instruccin por instruccin abriendo el editor de
programacin de Visual Basic.
Modificar: abre el editor de programacin de Visual Basic para modificar el cdigo
de la macro.
Eliminar: borra la macro.
Opciones: abre otro cuadro de dilogo donde podemos modificar la tecla de mtodo
abreviado y la descripcin de la macro.
Cancelar: cierra el cuadro de dilogo sin realizar ninguna accin.
10

MACROS EN EXCEL
V. Crear una macro manualmente
1. Seleccionar el icono Visual Basic o presionar la tecla Alt + la tecla de funcin F11
(Alt + F11). Excel nos traslada al Editor de Visual Basic.
2. Seleccionar del men Insertar la opcin Modulo. Un mdulo de trabajo que es
donde se almacena el cdigo de las funciones o procedimientos de las macros.
3. Acceder al men Insertar y seleccionar la opcin Procedimiento. En este momento
aparecer el cuadro de dilogo del Men Procedimiento. Dentro de este men
encontramos los campos: Nombre, Tipo y mbito.

Men Procedimiento

4. Una vez seleccionado el tipo de procedimiento y el mbito presionamos sobre


Aceptar y se abre el editor de Visual Basic donde escribimos las instrucciones
11
necesarias para definir la macro.

MACROS EN EXCEL
V. Crear una macro manualmente
Ejercicios
1. Trasladarse a una Celda: Range("B1").Select
2. Escribir en una Celda: Activecell.FormulaR1C1="Mara"
3. Letra Negrita: Selection.Font.Bold = True

4. Letra Cursiva: Selection.Font.Italic = True


5. Letra Subrayada: Selection.Font.Underline = xlUnderlineStyleSingle

6. Centrar Texto:

7.Alinear a la izquierda:

With Selection
.HorizontalAlignment = xlCenter
End With
With Selection
.HorizontalAlignment = xlLeft
End With

12

MACROS EN EXCEL
V. Crear una macro manualmente
Ejercicios
8. Alinear a la Derecha:

With Selection
.HorizontalAlignment = xlRight
End With

9. Tipo de Letra (Fuente):

With Selection.Font
.Name = "AGaramond"
End With
10. Tamao de Letra (Tamao de Fuente):
With Selection.Font
.Size = 18
End With
11. Copiar: Selection.Copy
12. Pegar: ActiveSheet.Paste
13.Cortar: Selection.Cut

13

MACROS EN EXCEL
V. Crear una macro manualmente
Ejercicios
14. Ordenar Ascendente:
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
15. Orden Descendente:
Selection.Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
16. Buscar:
Cells.Find(What:="Mara", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
17. Insertar Fila: Selection.EntireRow.Insert

18. Eliminar Fila: Selection.EntireRow.Delete


19. Insertar Columna: Selection.EntireColumn.Insert

14

MACROS EN EXCEL
V. Crear una macro manualmente
Ejercicios
20. Eliminar Columna: Selection.EntireColumn.Delete
21. Abrir un Libro:
Workbooks.Open Filename:="C:\Mis documentos\video safe 3.xls"

22. Grabar un Libro:


ActiveWorkbook.SaveAs Filename:="C:\Mis documentos\cancer.xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False

15

UNIDAD TEMTICA 1
Introduccin al manejo de EXCEL y VISIO

Tema 1. Introduccin al manejo de EXCEL

Tema 2. Macros en EXCEL


Tema 3. Conceptos avanzados de manejo de EXCEL

CONCEPTOS AVANZADOS EN EL MANEJO DE EXCEL


ndice

I.

CREAR FORMULARIOS Y PROGRAMARLOS

II. ENTRADAS
Y
SALIDAS
MESSAGEBOX E INPUTBOX
III. ESTRUCTURAS
DE
RAMIFICACIONES Y CICLOS

SENCILLAS

CON

DECISIONES:

IV. GUARDAR ARCHIVOS COMO MACROS

CONCEPTOS AVANZADOS DE MANEJO DE EXCEL


I.

Crear formularios y programarlos

1. Alt + F11: para entrar al editor de Visual Basic


- Hacer clic en el men Ver y elegir la opcin Explorador de Proyectos.
- Hacer clic en el men Ver y elegir la opcin Ventana Propiedades.
2. En el men Insertar seleccionar la Opcin UserForm (USERFORM1).

Cuadro de Herramientas

3. Seleccionar del Cuadro de Herramientas el Control Etiqueta y se arrastra


dibujando en el formulario (Label1).
4. Elegir del Cuadro de Herramientas el Cuadro de Texto y arrastrar dibujando en
el formulario el cuadro de texto (Textbox1).
5. Seleccionar del Cuadro de Herramientas el control
(CommandButton1) y se arrastra dibujando en el formulario.

Botn

de

Comando
3

CONCEPTOS AVANZADOS DE MANEJO DE EXCEL


I.

Crear formularios y programarlos

6. Hacer doble clic sobre el control TextBox1 e insertar el siguiente cdigo:

Private Sub TextBox1_Change()


Range("A5").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub
7. En el control TextBox2 e insertar el siguiente cdigo:
Private Sub TextBox2_Change()
Range("B5").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub
8. En el TextBox3:
Private Sub TextBox3_Change()
Range("C5").Select
ActiveCell.FormulaR1C1 = TextBox3
End Sub

CONCEPTOS AVANZADOS DE MANEJO DE EXCEL


I.

Crear formularios y programarlos

9. Programar el botn comando (Commandbutton):


Private Sub CommandButton1_Click()
Rem inserta un rengln
Selection.EntireRow.Insert
Rem Empty Limpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
Rem Textbox1.SetFocus Enva el cursor al Textbox1 para volver a
capturar los datos
TextBox1.SetFocus
End Sub
10. Poner en marcha toda la macro mediante el Botn Play F5

CONCEPTOS AVANZADOS DE MANEJO DE EXCEL


I.

Crear formularios y programarlos


Ejemplo FORMULARIO

MACROS EN EXCEL
II. Entradas y salidas sencillas con MessageBox e InputBox
Las cajas de mensajes o MessageBox (MsgBox) tienen como funcin mostrar una
determinada informacin, aviso, o pregunta para que el usuario tenga conocimiento de
ella y acte. Hay 2 formas diferentes de mostrar informacin:
- El aviso tiene por objetivo mostrar una informacin de inters.
- El aviso muestra una informacin esperando que el usuario seleccione una de las
respuestas posibles para que el programa la trate.

EJEMPLOS
Sub Msgbox1()
MsgBox "hola
End Sub

Sub Msgbox2()
MsgBox "hola", , "Ejemplo"
End Sub

Sub Msgbox3()
MsgBox "Hola" & vbCrLf &
"Esto es un ejemplo.", ,
"Ejemplo"
End Sub

MACROS EN EXCEL
II. Entradas y salidas sencillas con MessageBox e InputBox
Existen cuatro iconos: mensaje crtico, de pregunta, exclamativo y de informacin:
Mensaje
Mensaje
Mensaje
Mensaje

crtico:
VbCritical
de pregunta: VbQuestion
exclamativo:
VbExclamation
de informacin:VbInformation

16
32
48
64

EJEMPLO
Sub Msgbox4()
MsgBox "Hola" & vbCrLf & "Esto es un ejemplo.", vbQuestion, "Ejemplo"
End Sub

MACROS EN EXCEL
II. Entradas y salidas sencillas con MessageBox e InputBox
Para mostrar varios botones. Para este propsito, tenemos los siguientes parmetros:
Aceptar
Aceptar y Cancelar
Anular, Reintentar, Ignorar
S, No y Cancelar
S y No
Reintentar y Cancelar
Aplicacin modal

vbOKOnly
vbOKCancel
vbAbortRetryIgnore
vbYesNoCancel
vbYesNo
vbRetryCancel
vbApplicationModal

0
1
2

4
0 (sin icono)

EJEMPLO
Sub Msgbox5()
MsgBox "Hola" & vbCrLf & "Esto es un ejemplo.", vbQuestion + vbYesNo +
vbDefaultButton2, "Ejemplo"
End Sub

MACROS EN EXCEL
II. Entradas y salidas sencillas con MessageBox e InputBox
Para mostrar un mensaje esperando una respuesta o conocer que botn ha pulsado el
usuario, esto se puede conseguir mediante el siguiente cdigo de respuestas:
Aceptar
Cancelar
Anular
Reintentar
Ignorar
S
No

vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo

1
2
3
4
5
6
7

EJEMPLO
Sub Msgbox6()
Dim Resp As Integer
Resp = MsgBox("Hola" & vbCrLf & "Esto es un ejemplo.", vbQuestion + vbYesNo +
vbDefaultButton2, "Ejemplo")
If Resp = 6 Then
MsgBox "Ha pulsado SI"
Else
MsgBox "Ha pulsado NO"
10
End If
End Sub

MACROS EN EXCEL
II. Entradas y salidas sencillas con MessageBox e InputBox
EJEMPLO

11

MACROS EN EXCEL
II. Entradas y salidas sencillas con MessageBox e InputBox
La caja de entrada o InputBox nos permite sacar una caja donde el usuario pasar un
parmetro, valor o dato para que el programa lo trate y lo ejecute. La sentencia es:
Val = InputBox (Mensaje, Titulo, ValorPredeterminado)

EJEMPLO
Sub inputbox2()
Dim Val As String
Val = InputBox("Deme su nombre", "Ejemplo")
MsgBox "Su nombre es: " & Val
End Sub

12

MACRO EN EXCEL
III. Estructuras de decisiones: Ramificaciones y ciclos
Los dispositivos como If, Then y Select Case hacen que el programa contine en una
direccin cuando se encuentra una condicin particular.
Las construcciones en ciclos como While, se usan para repetir un cierto bloque
limitado de instrucciones hasta que las condiciones especificadas son True (cierta) o
False (Falsa).
-Las sentencias de cdigo que representaran una sentencia condicional seran de la
siguiente forma:
If condicin then
bloque de sentencias
Else
bloque de sentencias
End If
-Para bloques de sentencias que estn formados por una sola instruccin podemos
utilizar la versin reducida que ocupa una sola lnea:
If condicin then sentencia else sentencia

13

MACRO EN EXCEL
III. Estructuras de decisiones: Ramificaciones y ciclos

-Para anidar varias sentencias If then Else:


If dato<10 then
la variable dato contiene un solo dgito
Else
If dato<100 then
la variable dato contiene 2 dgitos
Else
l
a variable dato contiene ms de 2 dgitos
End If
End If

14

MACRO EN EXCEL
III. Estructuras de decisiones: Ramificaciones y ciclos
La sentencia Select Case permite realizar operaciones diferentes dependiendo del
valor de una variable.
EJEMPLO
Dependiendo del valor numrico de la nota se ejecutar un mensaje con suspenso,
aprobado, notable o sobresaliente.
Sub selectcase()
Dim notafinal As Double
notafinal = InputBox("Nota final de alumno", "Examen final")
Select Case notafinal
Case Is < 5
MsgBox "el alumno tiene la calificacion de:" & vbCrLf & "SUSPENSO"
Case 5 To 7
MsgBox "el alumno tiene la calificacion de:" & vbCrLf & "APROBADO"
Case 7 To 9
MsgBox "el alumno tiene la calificacion de:" & vbCrLf & "NOTABLE"
Case Else
MsgBox "el alumno tiene la calificacion de:" & vbCrLf & "SOBRESALIENTE"
End Select
Load Ejemplo_Option_Button
15
End Sub

MACRO EN EXCEL
III. Estructuras de decisiones: Ramificaciones y ciclos
EJEMPLO

16

MACRO EN EXCEL
III. Estructuras de decisiones: Ramificaciones y ciclos
Un bucle es una sucesin repetitiva de instrucciones, que se estarn realizando
mientras se cumpla una condicin o mientras no se cumpla otra condicin.
Existen dos formas de bucle:

-Bucle por contador: realiza el bucle tantas veces como le indiquemos.


Dim Contador As Integer
Dim Limite As Integer
Limite = InputBox("Introduce un valor", "Introduccin del nmero de iteraciones", 1)
For Contador = 1 To Limite
MsgBox "Iteracin numero" & Contador
Next Contador
- Bucle por condicin: ejecuta las instrucciones del bucle mientras se cumple una
condicin.
1. Do While: ejecuta repetidamente una o ms instrucciones mientras una condicin
dada es cierta.

17

MACRO EN EXCEL
III. Estructuras de decisiones: Ramificaciones y ciclos
Dim Iter As Integer
Dim Ciclo As Integer
Ciclo = 0
Iter = InputBox("Introduce un valor < 10", "Introduccin del nmero de iteraciones",
1)
Do While Iter > Ciclo
If Ciclo >= 10 Then
MsgBox "Nmero a iterar > 10"
Exit Do
Else
Ciclo = Ciclo + 1
MsgBox "Iteracin numero" & Ciclo
End If
Loop
2. Do Until: repite un bloque de cdigo mientras una condicin no sea True o hasta
que la condicin sea True.
18

MACRO EN EXCEL
III. Estructuras de decisiones: Ramificaciones y ciclos
Dim Iter As Integer
Dim Ciclo As Integer
Ciclo = 0
Iter = InputBox("Introduce un valor < 10", "Introduccin del nmero de iteraciones",
1)
Do Until Ciclo = Iter
If Ciclo >= 10 Then
MsgBox "Nmero a iterar > 10"
Else
Ciclo = Ciclo + 1
MsgBox "Iteracin numero " & Ciclo
End If
Loop
-Para salir de un bucle, podemos esperar a que se complete, bien porque se ha
cumplido la condicin o a que se haya llegado al final de la cuenta. Pero se puede
salir del bucle sin haber terminado la ejecucin total del mismo. Para ello, basta con
ejecutar la sentencia Exit Do (cuando hemos comenzado el bucle con Do While), o
19
con Exit For (cuando lo hemos comenzado con For To).

MACRO EN EXCEL
IV. Guardar archivos como Macros

Para almacenar una Macros que hemos creado debemos seleccionar la opcin Guardar
como. En el desplegable Guardar como Tipo se debe hacer clic en Libro de Excel
habilitado para macros (*.xlsm).

20

MACRO EN EXCEL
Ejemplo General
Calcular el rea de un crculo de tres modos diferentes: desde celdas de Excel,
desde InputBox a MsgBox y con botones de Excel
-Desde celdas de Excel:

Sub ejemplo1()
Dim area As Double
Dim radio As Double
Const PI = 3.141592653
radio = Range("A1")
area = PI * radio * radio
Range("B1") = area
End Sub

21

MACRO EN EXCEL
Ejemplo General
Calcular el rea de un crculo de tres modos diferentes: desde celdas de Excel,
desde InputBox a MsgBox y con botones de Excel
-Desde InputBox a MsgBox:

Public Sub ejemplo2()


Dim area As Double
Dim radio As Double
Const PI = 3.141592653
radio = InputBox("Introduce el radio", "radio")
area = PI * radio * radio
MsgBox "El rea del circulo es:" & area
End Sub

22

MACRO EN EXCEL
Ejemplo General
Calcular el rea de un crculo de tres modos diferentes: desde celdas de Excel,
desde InputBox a MsgBox y con botones de Excel
-En aplicaciones con botones desde Excel:

Sub BOTN_CALCULAR()
Dim radio As Double
Dim area As Double
Const Pi = 3.1416
radio = Range("A3")
area = Pi * radio * radio
Range("B3") = area
End Sub
Sub BOTN_ELIMINAR()
Range("A3") = Empty
Range("B3") = Empty
End Sub

RADO DEL CRCULO REA DEL CRCULO


2
12,5664

CALCULAR

ELIMINAR

23

UNIDAD TEMTICA 1
Introduccin al manejo de EXCEL y VISIO

Tema 4. Introduccin al manejo de VISIO


Tema 5. Uso de VISIO en la construccin de
diagramas de plantas y procesos qumicos

INTRODUCCIN AL MANEJO DE VISIO


ndice

I.

INTRODUCCIN

II. FUNDAMENTOS DE MICROSOFT OFFICE VISIO

INTRODUCCIN AL MANEJO DE VISIO


I.

Introduccin

Microsoft Visio es un software de dibujo vectorial para Microsoft Windows. Visio


proporciona plantillas, formas y herramientas de dibujo que se podrn utilizar para
crear diagramas empresariales y tcnicos.
Con Visio se puede analizar procesos empresariales, programar proyectos, visualizar
procesos intelectuales, crear organigramas, visualizar sus infraestructuras de red,
planos de plantas, equipos de instalaciones, circuitos elctricos, sistemas de
software y estructuras de bases de datos.
Tambin se puede importar datos para crear diagramas, exportar datos contenidos
en diagramas, almacenar datos junto con los diagramas, generar informes a partir de
los datos almacenados e incorporar diagramas en los archivos de Microsoft Office.

Microsof Office Visio


3

INTRODUCCIN AL MANEJO DE VISIO


I.

Introduccin

Diagramas disponibles que podemos encontrar en la Galera de diagramas:

INTRODUCCIN AL MANEJO DE VISIO


I.

Introduccin

-Diagramas de flujo: para describir los procesos de administracin fiscal y monetaria.

-Diagramas de flujo de funciones cruzadas: para comprender el funcionamiento de los


procesos.
-Organigramas: para mostrar las estructuras de los equipos y la divisin de las tareas
al desarrollar las programaciones de los proyectos.
-Diagramas de bloques: para comunicar ideas y conceptos complejos.
-Diseos de oficina: para realizar recomendaciones a los clientes, realizar un
seguimiento de los inventarios de activos y determinar la mejor disposicin ergonmica
para una oficina.
-Grficos y diagramas de mercadotecnia: para describir el estado financiero de la
empresa.
-Mapas de direcciones: para evaluar los patrones del trfico, proporcionar direcciones
a los empleados.
-Calendarios: para hacer un seguimiento de las vacaciones de los empleados, ayudar a
los miembros del equipo a visualizar las fechas importantes y programar eventos y
5
hacerles un seguimiento a lo largo del ao.

INTRODUCCIN AL MANEJO DE VISIO


I.

Introduccin

-Escalas de tiempo: para representar la duracin y los hitos de los proyectos.

-Diagramas de lluvia de ideas: para identificar nuevas ideas.


-Diagramas Web: reorganizacin de los sitios de una intranet para los departamentos.
-Diagramas de redes lgicas: para mostrar vistas detalladas de sus redes.

-Diagramas de redes fsicas: para localizar impresora, fotocopiadoras, etc.


-Planos de planta: para mostrar rpidamente varias opciones de diseo.
-Planos de emplazamiento: para ver cmo encajan los edificios en sus entornos.
-Diagramas de ingeniera de procesos: para mostrar planos de plantas.
-Diagramas de ingeniera mecnica: para crear diagramas de sistemas hidrulicos.
-Diagramas de ingeniera elctrica: disear sistemas y componentes industriales
complejos.
-Diagramas de software: crear diagramas con estructuras de cdigos.
-Diagramas de modelo de base de datos: para mostrar las estructuras de las6 bases
de datos.

INTRODUCCIN AL MANEJO DE VISIO


I.
Galera de smbolos

Introduccin

Pgina de dibujo

Entorno de dibujo de Microsoft Visio 2010

INTRODUCCIN AL MANEJO DE VISIO


II. Fundamentos de Microsoft Office Visio
Crear diagramas
1. En el men Archivo, seleccione Nuevo y, a continuacin, se hace clic en Elegir un
tipo de dibujo.
2. En la ventana Elegir un tipo de dibujo, en la seccin Categora, se hace clic en
Diagrama de flujo.
3. En la seccin Plantilla, se hace clic en Diagrama de flujo bsico.
4. Se arrastra las formas desde las galeras de smbolos de la ventana Formas hasta
la pgina de dibujo.

INTRODUCCIN AL MANEJO DE VISIO


II. Fundamentos de Microsoft Office Visio
Modificar diagramas

-Ampliar y reducir la pgina de dibujo:


Presionar la combinacin de teclas Ctrl+Mays y el puntero se convertir en una
herramienta de aumento, lo que indicar que Microsoft Office Visio ya puede realizar
aumentos en las formas. Tambin se puede ajustar el Nivel de Zoom y crear una
Ventana Panormica.

-Mover una forma:


Hacer clic en cualquier forma para seleccionarla y luego arrastrarla hasta su nueva
ubicacin.
-Mover varias formas:
Seleccionar las formas y aparecer una flecha de cuatro puntas bajo el puntero, lo
que indica que las formas ya se pueden mover.

-Cambiar el tamao de las formas:


Hacer clic en la forma y el puntero se convertir en una flecha de dos puntas, lo que
9
indica que se puede cambiar el tamao de la forma.

INTRODUCCIN AL MANEJO DE VISIO


II. Fundamentos de Microsoft Office Visio
Conexin de formas en los diagramas
1. Hacer clic en la herramienta Conector .
2. Arrastrar una forma desde la ventana Formas hasta la pgina de dibujo.
3. Con la forma an seleccionada, se arrastra otra forma desde la ventana Formas
hasta la pgina de dibujo. Aparecer un conector, estableciendo una conexin de
forma a forma. Cuando se seleccione el conector, sus dos extremos se volvern de
color rojo para indicar que se encuentran pegados.
-Para la conexin de formas que ya se encuentren en la pgina de dibujo:
1. Hacer clic en la herramienta Conector y arrastrar el puntero desde un punto de
conexin de la primera forma hasta un punto de conexin de la segunda forma. Los
extremos del conector se vuelven de color rojo para indicar que estn pegados a los
puntos de conexin que haya especificado.
-Para crear una conexin de punto a punto:
1. Seleccionar la forma y hacer clic en la flecha situada junto a la herramienta
Conector y, despus, hacer clic en la herramienta Punto de conexin .
3. Mantener presionada la tecla Ctrl, hacer clic en la forma en el lugar donde desee
agregar el punto de conexin. El nuevo punto de conexin aparecer, resaltado
en
10
color magenta, en la forma.

INTRODUCCIN AL MANEJO DE VISIO


II. Fundamentos de Microsoft Office Visio
Adicin y modificacin de texto en los diagramas
-Adicin de texto a una forma:
1. Seleccionar la forma y, a continuacin, escribir el texto.
2. Cuando se termine de escribir, presionar la tecla Esc o hacer clic fuera de la
forma.
-Eliminacin de todo el texto en una forma:
1. Hacer doble clic en la forma para seleccionar todo su texto.
2. Presionar la tecla Supr y, a continuacin, hacer clic fuera de la forma.
-Cambio o eliminacin de una parte del texto de una forma:
1. Hacer clic en la herramienta Texto
y, despus, hacer clic en la forma.
2. Seleccionar el bloque de texto donde se desea colocar un punto de insercin y
escriba el nuevo texto. O resalte el texto que se desea cambiar o eliminar y escriba
el nuevo texto. Para reemplazar todo el texto existente, presione las teclas Ctrl+A
para seleccionarlo y escriba el nuevo texto.
3. Cuando termine de escribir, se presiona la tecla Esc o se hace clic fuera de la
forma.
11

INTRODUCCIN AL MANEJO DE VISIO


II. Fundamentos de Microsoft Office Visio
Aplicacin de formato a las formas en los diagramas
-Para dar formato a una forma bidimensional:
1. Seleccionar una forma bidimensional y hacer clic en la flecha situada junto a los
botones Color de lnea
o Color de relleno
en la barra de herramientas Formato
para mostrar la paleta de colores y, a continuacin, seleccione un color de lnea o de
relleno.
2. Hacer clic en una forma bidimensional y, despus, en la barra de herramientas
Formato de forma, seleccionar los botones Redondeo de esquinas ,Transparencia
,
Trama de relleno
o Color de sombra . Para mostrar la barra de herramientas
Formato de forma, se debe hacer clic con el botn secundario en la barra de mens y,
seguidamente, hacer clic en Formato de forma en el men contextual.

-Para dar formato a una forma unidimensional:


1. Seleccionar una forma unidimensional y, despus, en la barra de herramientas
Formato, hacer clic en los botones Color de lnea, Grosor de lnea ,Trama de lnea o
Extremos de lnea .
2. Hacer clic en una forma unidimensional y, despus, en la barra de herramientas
Formato de forma, seleccionar los botones Transparencia o Color de sombra.
3. Seleccionar una forma unidimensional y, despus, en el men Formato, hacer clic en
12
Lnea o Sombra.

INTRODUCCIN AL MANEJO DE VISIO


II. Fundamentos de Microsoft Office Visio
Configuracin pgina de dibujo
-Establecimiento del tamao de pgina, la orientacin y la escala de dibujo:

1. Mostrar la pgina de dibujo que desee modificar.


2. En el men Diseo, hacer clic en Configurar pgina.
3. En el cuadro de dilogo Configurar pgina, hacer clic en la ficha Tamao de pgina.
Seleccionar el tamao de pgina y la orientacin que desee.
4. Hacer clic en la ficha Escala de dibujo, seleccionar la escala que se desee y hacer
clic en Aceptar.
-Adicin de una pgina de dibujo:

1. Hacer clic en una de las fichas de pgina situadas en la parte inferior de la


ventana de la pgina de dibujo.
2. En el cuadro de dilogo Configurar pgina, en la ficha Propiedades de pgina,
escriba un nombre para la pgina o use el predeterminado.
3. Para definir configuraciones de pgina adicionales, hacer clic en la ficha Tamao de
pgina, seleccionar las configuraciones que se deseen y hacer clic en Aceptar.
13

INTRODUCCIN AL MANEJO DE VISIO


II. Fundamentos de Microsoft Office Visio
Almacenamiento e impresin de los diagramas
-Almacenamiento de los diagramas:
1. En el men Archivo, hacer clic en Guardar o en Guardar como.
2. En Nombre de archivo, se escribe el nombre para el archivo de dibujo.
3. En Guardar en, se abre la carpeta en la que se desee almacenar el archivo.
4. Si se desea guardar el diagrama en otro formato de archivo, en el cuadro Guardar
como tipo, se debe seleccionar el formato de archivo que desee. Si desea guardar el
diagrama en el formato de archivo de Visio, debe omitir este paso.
-Impresin de los diagramas:
En el men
configuradas
que contiene
del diagrama

Archivo, hacer clic en Imprimir. La mayora de las plantillas estn


para que el tamao de la pgina de dibujo sea el mismo que el del papel
la impresora. No obstante, es aconsejable mostrar una vista preliminar
antes de imprimirlo.
14

INTRODUCCIN AL MANEJO DE VISIO


II. Fundamentos de Microsoft Office Visio
Publicacin de los diagramas en la Web
Con Visio, publicar los diagramas en el Web o en una intranet es tan fcil como
guardar un archivo. Visio agrega los cdigos HTML necesarios para mostrar el
diagrama en un explorador Web.
En el men Archivo, hacer clic en Guardar como Pgina Web.

Adicin de hipervnculos a las formas y las pginas


En el men Datos, hacer clic en Vincular Datos a las Formas.

15

UNIDAD TEMTICA 1
Introduccin al manejo de EXCEL y VISIO

Tema 4. Introduccin al manejo de VISIO


Tema 5. Uso de VISIO en la construccin de
diagramas de plantas y procesos qumicos

USO DE VISIO EN LA CONSTRUCCIN DE


DIAGRAMAS DE PLANTAS Y PROCESOS QUMICOS

ndice

I.

CREACIN DE DIAGRAMAS DE FLUJO BSICO

II. CREACIN
PROCESOS

DE

DIAGRAMAS

DE

INGENIERIA

DE

III. EJEMPLOS

USO DE VISIO EN LA CONSTRUCCIN DE DIAGRAMAS


DE PLANTAS Y DE PROCESOS QUMICOS

I.

Creacin de diagramas de flujo bsico

1. Iniciar Visio. En la ventana Elegir un tipo de dibujo, en Categora, debe hacer clic en
Diagrama de flujo.
2. En Plantilla, hacer clic en Diagrama de flujo bsico.
3. Arrastrar una forma, como Proceso, desde Formas para diagramas de flujo bsicos
hasta la pgina de dibujo.
4. Arrastrar una segunda forma (Proceso) hasta la pgina de dibujo.
5. En la barra de herramientas Estndar, hacer clic en la herramienta Conector y
arrastrar el puntero desde un punto de conexin de la primera forma hasta un punto de
conexin de la segunda forma. Los extremos del conector se deben volver de color rojo
para indicar que estn pegados a los puntos de conexin que haya especificado.
6. Para cambiar el estilo del conector, hacer clic en l con el botn secundario y, a
continuacin, hacer clic en Conector de ngulo recto o Conector recto en el men
contextual.
7. Seleccionar la forma Proceso y hacer clic en la flecha situada junto a los botones
Color de lnea y escoger el color negro. Posteriormente, seleccionar Color de relleno en la
barra de herramientas Formato para seleccionar el color anaranjado claro.
8. Hacer clic en la herramienta Texto y, despus, hacer clic en la forma y aadir el
texto que deseemos introducir.
9. Continuar agregando y conectando formas hasta completar el diagrama deseado. 3

USO DE VISIO EN LA CONSTRUCCIN DE DIAGRAMAS


DE PLANTAS Y DE PROCESOS QUMICOS

I.

Creacin de diagramas de flujo bsico


Ejemplo de diagrama de flujo bsico:

Central de almacenamiento y distribucin de ciruelas

USO DE VISIO EN LA CONSTRUCCIN DE


DIAGRAMAS DE PLANTAS Y PROCESOS QUMICOS
II. Creacin de diagramas de ingeniera de procesos
En los diagramas de Ingeniera de Visio se incluyen dos plantillas:
-Diagrama de flujo del proceso.
-Diagrama de canalizacin e instrumentacin
Los fabricantes, ingenieros qumicos, ingenieros de control, ingenieros mecnicos y
elctricos son los que suelen utilizar este tipo de diagramas para documentar los
procesos de fabricacin y el equipo, controles de instrumentalizacin relacionados.
Los diagramas de flujo de proceso (PFD) muestran cmo los equipos de procesos
industriales estn interconectados por un sistema de canalizaciones. Los PFD son ms
conceptuales que los diagramas de canalizacin e instrumentacin (P&ID), y suelen
incluir ms anotaciones que muestren datos.
Los P&ID muestran cmo los equipos de procesos industriales estn interconectados
por un sistema de canalizaciones. Los esquemas de los P&ID tambin muestran los
instrumentos y las vlvulas que supervisan y controlan el flujo de los materiales a
5
travs de las canalizaciones.

USO DE VISIO EN LA CONSTRUCCIN DE


DIAGRAMAS DE PLANTAS Y PROCESOS QUMICOS
II. Creacin de diagramas de ingeniera de procesos
1. En el men Archivo, se selecciona Nuevo, Ingeniera y, por ltimo, hacer clic en
Diagrama de flujo del proceso.
2. Colocar las formas de equipo principales en el dibujo. Desde Equipos, se arrastra
las formas de equipos hasta la pgina de dibujo. En el diagrama aparece un nmero de
etiqueta inteligente para cada componente.
3. Usar canalizaciones para conectar los equipos principales. Para ello, se arrastra una
forma de canalizacin desde Canalizaciones hasta la pgina de dibujo y, a
continuacin, se coloca uno de sus extremos en una forma de equipo.
Para cambiar la apariencia o mostrar la direccin del flujo de una canalizacin,
seleccione la canalizacin y, a continuacin, seleccione un estilo en la lista Estilo de
lnea de la barra de herramientas. Los estilos controlan el grosor de la lnea, las
flechas direccionales y otros smbolos grficos que indican el tipo de lnea de tubera o
de instrumento.
4. Desde Vlvulas y accesorios, se arrastra formas de vlvulas sobre las
canalizaciones. Suelte el botn del mouse (ratn) cuando aparezca un cuadrado rojo,
que indica que la vlvula est pegada a la canalizacin.
5. Desde Instrumentos, se arrastra formas de instrumentos hasta la pgina de dibujo
6
cerca de la canalizacin, vlvula o equipo que van a supervisar.

USO DE VISIO EN LA CONSTRUCCIN DE


DIAGRAMAS DE PLANTAS Y PROCESOS QUMICOS
II. Creacin de diagramas de ingeniera de procesos
6. En el men Ingeniera de procesos, hacer clic en Rehacer la numeracin de los
componentes. En el cuadro de dilogo Rehacer la numeracin de los componentes, en
Aplicar a, especifique si va a rehacer la numeracin de los componentes de todo el
documento, la pgina actual o la seleccin actual.
En la lista Incluir formatos de etiqueta, se debe hacer clic para desactivar las casillas
de verificacin de los formatos de etiqueta que no desee volver a numerar.
7. Hacer clic en la herramienta Texto y, despus, hacer clic en la forma y aadir el
texto que deseemos introducir.

8. Continuar agregando y conectando formas hasta completar el diagrama segn se


desee.

USO DE VISIO EN LA CONSTRUCCIN DE


DIAGRAMAS DE PLANTAS Y PROCESOS QUMICOS
II. Creacin de diagramas de ingeniera de procesos
Ejemplo de diagrama de flujo del proceso:
Planta de reciclado de poliestireno

USO DE VISIO EN LA CONSTRUCCIN DE


DIAGRAMAS DE PLANTAS Y PROCESOS QUMICOS
III. Ejemplos

Planta piloto de produccin de microcpsulas mediante Spray-Dryer

USO DE VISIO EN LA CONSTRUCCIN DE


DIAGRAMAS DE PLANTAS Y PROCESOS QUMICOS
Ejercicios
Ejercicio 1: Bombeo de un lquido
Transforme el proceso que se muestra en un diagrama Visio de flujo de proceso.

Luyben, W.L.Plantwide Dynamic Simulators in Chemical Processing and Control, 2002


10

USO DE VISIO EN LA CONSTRUCCIN DE


DIAGRAMAS DE PLANTAS Y PROCESOS QUMICOS
Ejercicios
Ejercicio 2: Proceso de Amoniaco
Transforme el proceso que se muestra en un diagrama Visio de flujo de proceso.

Luyben, W.L.Plantwide Dynamic Simulators in Chemical Processing and Control, 2002

11

USO DE VISIO EN LA CONSTRUCCIN DE


DIAGRAMAS DE PLANTAS Y PROCESOS QUMICOS
Ejercicios
Ejercicio 3: Proceso de produccin de gas natural
Transforme el proceso que se muestra en un diagrama Visio de flujo de proceso.

12

Seider, W.D., Seader, J.D. Lewin, D.R. Process Design Principles. 1999

UNIDAD TEMTICA 2
Resolucin de problemas numricos mediante EXCEL

Tema 6. Procedimientos numricos bsicos


Tema 7. Procedimientos numricos avanzados

PROCEDIMIENTOS NUMRICOS BSICOS


ndice
I. Operaciones matriciales
II. Resolucin numrica de ecuaciones
lineales
III.Interpolacin
IV. Integracin numrica de funciones y de
datos discretos
V. Diferenciacin numrica
VI. Races de funciones de una variable y
de polinomios
VII.Suavizacin de datos experimentales
VIII.Regresin lineal

PROCEDIMIENTOS NUMRICOS BSICOS


I.Operaciones matriciales
Transposicin

At = a'ij 1i n a'ij = a ji

( )

1 j n

Suma de matrices

C = A + B cij = aij + bij


Producto de matrices
n

C = A B cij =

aik bkj

k =1
Producto de un escalar por una matriz

C = Acij = aij
Traza de una matriz

trA = aii
i =1

PROCEDIMIENTOS NUMRICOS BSICOS


I.Operaciones matriciales
Determinante de una matriz

a11 a12
det A = a21 a22

a13
a23

a31 a32

a33

Matriz inversa

0
1
A B = BA = I B = A I =
0

0
Valores propios

0
1
0
0

0
0
1
0

0
0

det ( A I ) = 0 (1) ( n pn1 n1 ..... p1 p0 ) = 0


4

PROCEDIMIENTOS NUMRICOS BSICOS


I.Operaciones matriciales
Ejemplo
Dadas las matrices

1 2 1
-1 -4 3

A = 4 3 7 B = 5 -8 1
4 6

2 4 9
8

Evalese:
AT

A-1

3*A
A + B

Valores propios de la matriz A


A*B

PROCEDIMIENTOS NUMRICOS BSICOS


I.Operaciones matriciales

PROCEDIMIENTOS NUMRICOS BSICOS


I.Operaciones matriciales

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
a11x1 + a12 x 2 + a13 x 3 + ..... + a1n x n = c1
a 21x1 + a 22 x 2 + a 23 x 3 + ..... + a 2n x n = c 2
.......................................................
a n1x1 + a n 2 x 2 + a n 3 x 3 + ..... + a nn x n = c n

Eliminacin gaussiana

Descomposicin LU

x1 + 12 x 2 + 13 x 3 + ..... + 1n x n = c1
x 2 + 23 x 3 + ..... + 2n x n = c2
x 3 + ..... + 3n x n = c3

A = L U

x n = cn

0 ... 0
11
11 12 ... 1n

21 22 ... 0
0 22 ... 2n
L =
U =
...
... ... ...
...
... ... ...

...

0
0
...

n2
nn
nn
n1

A x = (L U ) x = L (U x ) = c L y = c U x = y

La descomposicin LU es tres veces ms rpida que el algoritmo de


eliminacin gaussiana

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
Eliminacin gaussiana
1.Localizar el mayor coeficiente, en valor absoluto, y colocarlo en la esquina superior
izquierda mediante intercambio de columnas y filas. A este coeficiente se le denomina
pivote principal o primer pivote. Este paso tiene como finalidad minimizar los errores
por redondeo.
2.Dividir la primera ecuacin por el pivote, reduciendo el primer coeficiente de la
diagonal principal a uno.
3.Reducir a cero los restantes coeficientes de la primera columna. Para ello se
multiplica la primera ecuacin por el coeficiente de x1 de la segunda ecuacin, y se
resta de ella. Se hace lo mismo con las restantes ecuaciones, de forma que se llega a
un sistema de la forma:

x1 + 12 x2 + 13 x3 + ..... + 1n xn = c1
0 + 22 x2 + 23 x3 + ..... + 2n xn = c2
.......................................................
0 + n 2 x2 + n3 x3 + ..... + nn xn = c
4.Se repite todo el proceso, desde el paso 1, para el sistema ms pequeo resultante
9
de suprimir la primera fila y la primera columna. As sucesivamente hasta conseguir
la
triangularizacin completa del sistema.

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
Ejercicio
Reselvase el siguiente sistema de ecuaciones lineales usando el algoritmo de
eliminacin gaussiana:

3x1 2 x2 + x3 = 3
2 x1 + 4 x2 2 x3 = 2
4 x1 2 x2 3x3 = 12

10

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
Resolucin
1
3

x
=

3
1
2
3

3 x1 2 x2 + x3 = 3
4 x1 2 x2 3x3 = 12
2
4

2 x1 + 4 x2 2 x3 = 2 2 x1 + 4 x2 2 x3 = 2 2 x1 + 4 x2 2 x3 = 2
3x 2 x + x = 3
4 x1 2 x2 3 x3 = 12 3x1 2 x2 + x3 = 3
1
2
3

2 x1 + 4 x2 2 x3 = 2


2 x1 x2 x3 = 6
2



1
13

x
+
x3 = 12 16
64
1
3
2
x3 = 4

2
4

x
=
1
x1 x2 x3 = 3
3


5
5 x2 x3 = 8
5
2
4

1
1
8


1
1
8 x2 + x3 =
1
8

20
10 x2 x3 =
5 x2 x3 = 8 x2 x3 = 2
x2 = 2
2
10
5
10
5

3 x1 2 x2 + x3 = 3
1
13
1
3


x
+
x
=
12
x

x
=

3
2
3
1
2
3
16
64


x1 = 1
3
9


2
4
2
4
x
=
3 x1 x2 x3 = 9
3

5
5
2
4

1
13
x2 + x3 = 12
2
4

11

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales

12

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
Descomposicin LU (Algoritmo de Crout)
1.Hacer ii=1 para i= 1, 2,, n
2.Para cada j= 1, 2, 3,., n, realizar de forma consecutiva estos dos procedimientos:
Para cada i=1, 2, , j calcular

ij = aij

Para i= j+1, j+2,, n calcular

i 1

ik kj

k =1

j 1

1
ij =
aij ik kj
jj

k =1

De aqu:

yn

x
=
n

11
nn


i 1
n

1
1

ci ij y j ; i = 2,3,..., n
yi =
yi ij x j ; i = n 1, n 2,....,1
xi =

ii

ii
j =1
j = i +1


c
y1 = 1

13

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
Ejercicio
Resulvase el siguiente sistema de ecuaciones lineales usando el algoritmo de
descomposicin LU

2 x1 2 x2 + x3 = 1
x1 + x2 3x3 = 3
3x1 2 x2 x3 = 1

14

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
Resolucin

2 2 1
1


n = 3 A = 1 1 3 C = 3
3 2 1
1


A = L U
0 ... 0
11
11 12 ... 1n

21 22 ... 0
0 22 ... 2n
L =
U =

...
... ... ...
...
... ... ...

...

0
0
...

n2
nn
nn
n1

A x = (L U ) x = L (U x ) = c L y = c U x = y
15

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
Resolucin

0
0

2 2 1
11

0
A = 1 1 3
L = 21 22
3 2 1

31 32 33
n = 3
A = L U
1

11 12 13

C = 3
U = 0 22 23

1
0
0
33

A x = (L U ) x = L (U x ) = c L y = c U x = y
Paso 1 : 11 = 22 = 33 = 1
Paso 2 : Para cada j = 1, 2, 3 realizar de forma consecutiva estos dos procedimientos :
Para cada i = 1, 2, , j calcular ij = aij

i 1

ik kj

k =1

j 1

1
Para i = j + 1, j + 2,, 3 calcular ij =
a
jj ij k =1 ik kj

16

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
Resolucin

2 2 1

A
=
1
1

0
0
11
11 12

3 2 1
0 U = 0 22

L = 21 22
1

0
0
31 32 33

C = 3


11 = 22 = 33 = 1

13

23
33

Para cada j = 1, 2, 3 realizar de forma consecutiva estos dos procedimientos :


Para cada i = 1, 2, , j calcular ij = aij
Para i = j + 1, j + 2,, n calcular ij =

i 1

ik kj

k =1
j 1

1
aij ik kj
jj

k =1

{i = 1 11 = a11 = 2}

i = 1 12 = a12 = 2

1
1

i = 2 21 =
[a21 ] =
i = 2 22 = a22 2112 = 2

j = 1
11
2 j = 2

1
1

1
3

[
]
i
=
3

=
a

32
32
31 12
i = 3 31 =
[a31 ] =

22

11
2

i = 1 13 = a13 = 1

j = 3 i = 2 23 = a23 2113 =

3
i = 3 33 = a3 [ 3113 + 32 23 ] =
4

17

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
Resolucin

2 2 1

A
=
1
1

1
1

L =
2
1

3
C = 3

0
1
1
2

0
2

2
1

7
0 U = 0 2
2

1
0 0

c
y = 1
y1 = 1
1
11
1
5

[
]

y
=
c

y
=

2
2
21
1
i 1

22
2
1
ci ij y j ; i = 2,3
yi =

ii
1

j =1

y3 =
[c3 (31 y1 + 32 y2 )] = 15
33
4

y
x = 5
x3 = 3
3
33
1

[y2 23 x3 ] = 10

x
=

2
n

1
22
yi ij x j ; i = 2,1
xi =

ii
1

j =i +1

x1 =
[y1 (12 x2 + 13 x3 )] = 8

11

18

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
Ejemplo
Resulvase el siguiente sistema de ecuaciones lineales usando los algoritmos de
eliminacin gaussiona, de descomposicin LU y de Thomas

x1 x2
2 x1 + x2 3x3
3x2 4 x3 + 2 x4
x3 5 x4

=1
=1
=3
=3

19

PROCEDIMIENTOS NUMRICOS BSICOS


II.Resolucin numrica de ecuaciones lineales
Usos de la descomposicin LU
Clculo de inversas de matrices

a11 a12

a21 a22
1
1
AA = A A = I
...
...
an1 an 2

... a1n b11 b12



... a2n b21 b22

... ...
...
...

... ann bn1 bn 2

... b1n 1

... b2n 0
=

... ...
...

... bnn 0

0 ... 0

1 ... 0
... ... ...

0 ... 1

De aqu se pueden deducir N sistemas de ecuaciones lineales


a11b11 + a12b21 + a13b31+..... + a1nbn1 = 1 a11b12 + a12b22 + a13b32 +..... + a1nbn 2 = 0
a11b1n + a12b2n + a13b3n +..... + a1nbnn = 0
a b + a b + a b + ..... + a b = 0 a b + a b + a b + ..... + a b = 1
a b + a b + a b + ..... + a b = 0
21 11 22 21 23 31
21 12

21 1n

2n n1
22 22
23 32
2n n 2
22 2n
23 3n
2n nn

,
,....,

.......................................................
.......................................................

.......................................................

an1b11 + an 2b21 + an3b31 + ..... + annbn 2 = 0 an1b12 + an 2b22 + an3b32 + ..... + annbn 2 = 0
an1b1n + an 2b2n + an3b3n + ..... + annbnn = 1

Clculo del determinante de matrices

det A =

jj
j =1

(matriz U)
20

PROCEDIMIENTOS NUMRICOS BSICOS


III.Interpolacin
Interpolacin lineal
Considrense dos puntos [x1,f(x1)] y [x2, f(x2)] y supngase que el problema consiste
en evaluar f(x) de forma que x pertenezca al intervalo (x1,x2). A partir de la
expansin en serie de Taylor de la funcin f(x) alrededor de x1 ignorando todos
aquellos trminos tras el lineal:

f ( x ) = f ( x1 ) + f ( x1 )(x x1 )

f ( x 2 ) f ( x1 )

( x x1 )
f ( x ) = f ( x1 ) +
x

x
2
1
f ( x 2 ) f ( x1 )

f ( x1 ) =

x 2 x1

21

PROCEDIMIENTOS NUMRICOS BSICOS


III.Interpolacin
Interpolacin de Lagrange
Considrese un conjunto de n+1 puntos (xi,fi) donde i=0, 1, 2, , n. Para cualquier
valor de x no coincidente con alguno de los valores xi, puede evaluarse el
correspondiente valor de f, que se denominar genricamente P(x), a partir de la
siguiente frmula:

P( x ) = L k ( x )f ( x k ) L k ( x ) =
k =0

(x x j )

j= 0
j k
n

(x k x j )

j= 0
j k

22

PROCEDIMIENTOS NUMRICOS BSICOS


III.Interpolacin
Ejercicio
Dado el siguiente conjunto de datos:

16

se ha de evaluar por interpolacin lineal, y a travs del polinomio de Lagrange el valor


de y para un valor de x de 2.9. Comprese con el valor obtenido por interpolacin con
el mtodo de los splines cbicos.

23

PROCEDIMIENTOS NUMRICOS BSICOS


III.Interpolacin
Resolucin
x=2.9
Lineal :
f (x ) = f (x1 ) +

f (x2 ) f (x1 )
(x x1 ) = 4 + 9 4 (2.9 2) = 8.5
x2 x1
3 2

i
0
1
2
3

x xj
j =0

jk
Lagrange : P( x) = Lk ( x) f ( xk ) Lk ( x) = n

k =0
xk x j

j =0

j k

n + 1 = 4
P ( x) = L0 ( x) f ( x0 ) + L1( x) f ( x1) + L2 ( x) f ( x2 ) + L3 ( x) f ( x3 )
n = 3
(x x1 )(x x2 )(x x3 ) ; k = 1 L ( x) = (x x0 )(x x2 )(x x3 )
k = 0 L0 ( x) =
1
(x0 x1 )(x0 x2 )(x0 x3 )
(x1 x0 )(x1 x2 )(x1 x3 )

k = 2 L2 ( x) =

x
1
2
3
4

y=f(x)
1
4
9
16

(x x0 )(x x1 )(x x3 ) ; k = 3 L ( x) = (x x0 )(x x1 )(x x2 )


3
(x2 x0 )(x2 x1 )(x2 x3 )
(x3 x0 )(x3 x1 )(x3 x2 )
24

P (2.9) = 8.41

PROCEDIMIENTOS NUMRICOS BSICOS


III.Interpolacin

25

PROCEDIMIENTOS NUMRICOS BSICOS


III.Interpolacin
Ejemplo
Determnese a partir de los siguientes datos obtenidos a 20 0C la concentracin
de una sustancia para la que el ndice de refraccin vale 1.3700.
Concentracin (%)

ndice de refraccin

10

1.3479

15

1.3557

20

1.3639

25

1.3723

30

1.3811

35

1.3902

26

PROCEDIMIENTOS NUMRICOS BSICOS


IV.Integracin numrica de funciones y de datos discretos
Integracin numrica de funciones. Regla de los trapecios

xn = b

f(x)

n f ( x ) + f ( x )

i
i 1

f ( x)dx
i =1
x =a

f(x)

xn x0
h

h
=
x

x
=
i
i 1

n

xn
a

f ( x0 ) n 1
f ( xn )
f ( x)dx h 2 + f ( xi ) + 2

i =1
x0

Integracin numrica de funciones. Regla de Simpson

x2 m

h ( f ( x0 ) + f ( x2m ) ) + 2( f ( x2 ) + f ( x4 ) + ... + f ( x2m 2 ) +


f ( x)dx = 3 + 4( f ( x ) + f ( x ) + .... + f ( x

)
)
1
3
2 m 1

x0
27

PROCEDIMIENTOS NUMRICOS BSICOS


IV.Integracin numrica de funciones y de datos discretos
Ejercicio
Evalese la integral

0.4

x exp( x)dx

con los mtodos de los trapecios y de Simpson. Emplesen 10 intervalos.


Se han de comparar los resultados con los obtenidos con el Algoritmo de Romberg.

28

PROCEDIMIENTOS NUMRICOS BSICOS


IV.Integracin numrica de funciones y de datos discretos
Resolucin

n=2m=10, h= (xn-x0)/n=0.04

xn =10

f ( x0 ) 9
f ( x10 )
Trapecios : IT = f ( x)dx h
+ f ( xi ) +

2
2
x10 =0.4

i =1

x0
x exp( x)dx
x2 m=10

h ( f ( x0 ) + f ( x10 ) ) + 2( f ( x2 ) + f ( x4 ) + f ( x6 ) + f ( x8 ) +
x0 =0
Simpson
:
I
=
f
(
x
)
dx

+ 4( f ( x ) + f ( x ) + f ( x ) + f ( x ) + f ( x ) )

3
1
3
5
7
9

x0

I T = 6.1472 10 2 I S = 6.1552 10 2
I real = 6.1550 10 2

ndice
0
1
2
3
4
5
6
7
8
9
10

x
0
0.04
0.08
0.12
0.16
0.2
0.24
0.28
0.32
0.36
0.4

f(x)
0
0.03843158
0.07384931
0.10643045
0.13634301
0.16374615
0.18879069
0.21161945
0.23236769
29
0.25116348
0.26812802

PROCEDIMIENTOS NUMRICOS BSICOS


IV.Integracin numrica de funciones y de datos discretos

30

PROCEDIMIENTOS NUMRICOS BSICOS


IV.Integracin numrica de funciones y de datos discretos
Ejemplo

Resulvase numricamente la siguiente integral:

5 * exp(3 x) * sin(10 x) * x

2
3
0
1+ x

dx

31

PROCEDIMIENTOS NUMRICOS BSICOS


IV.Integracin numrica de funciones y de datos discretos
Integracin numrica de datos discretos
Cuando se dispone de una serie de datos experimentales la forma ms
sencilla de hacer una integracin numrica es emplear la expresin general
de la regla de los trapecios:

xn

x0

)+# f ( xi ) + f ( xi1 ) &


-+
f (x)dx *%
(( xi xi1 ).
2
+/
'
,$
i=1 +
n

32

PROCEDIMIENTOS NUMRICOS BSICOS


IV.Integracin numrica de funciones y de datos discretos
Ejercicio
Considrese los siguientes datos experimentales:

y(x)

-1.6

20

7.6

40

15.4

60

26.1

100

42.2

200

60.6

400

Calclese el valor numrico de la integral:

60.6

y ( x)dx

7 .6

33

PROCEDIMIENTOS NUMRICOS BSICOS


IV.Integracin numrica de funciones y de datos discretos
Resolucin

x
y(x)
ndice
0
7.6
40
1
15.4
60
2
26.1
100
3
42.2
200
4
60.6
400
60.6
4 y ( x ) + y ( x )

1
(
)
x

x
=

i
i

1
y( x)dx =

i =1
7.6

60 + 40
100 + 60
(15.4 7.6) +
(26.1 15.4) +
=
2
2
200 + 100
400 + 200
(42.2 26.1) +
(60.6 42.2) = 918134
+
2
2

PROCEDIMIENTOS NUMRICOS BSICOS


IV.Integracin numrica de funciones y de datos discretos

35

PROCEDIMIENTOS NUMRICOS BSICOS


IV.Integracin numrica de funciones y de datos discretos
Ejemplo
Teniendo en cuenta los siguientes datos obtenidos experimentalmente:
x

11

15

y(x)

0.368

0.572

0.675

0.793

0.906

1.042

1.176

Evalese la integral

14

y ( x)dx

2 .5

Con objeto de aumentar la precisin de los resultados se recomienda dividir el


intervalo completo de integracin en 10 subintervalos del mismo tamao.
36

PROCEDIMIENTOS NUMRICOS BSICOS


V.Diferenciacin numrica
Diferenciacin numrica

f ( x + h) f ( x )

f ( x)

h
5
h
=
10
x

f ( x + h) 2 f ( x) + f ( x h)
f ( x)

h2

37

PROCEDIMIENTOS NUMRICOS BSICOS


V.Diferenciacin numrica
Ejercicio
Evalese numricamente las derivadas de las siguientes funciones:

f ( x) = x x = 0.1
f ( x) = ln x x = 10
3

f ( x) = x * sen( x) + cos( x) x = 0.5


Comprese con el valor analtico

38

PROCEDIMIENTOS NUMRICOS BSICOS


V.Diferenciacin numrica
Resolucin

f ( x)

f ( x + h) f ( x )
h

f ( x) = x 2 x = 0.1 h = 0.1 *105 = 106


f 'a (x ) = 2 x = 0.2 f 'n

(
x + h )2 x 2
=
= 0.200001
h

f ( x) = ln x x = 10 h = 10 *105 = 10 4
f 'a (x ) =

1
ln( x + h) ln( x)
= 0.1 f 'n =
= 0.1
x
h

f ( x) = x3 * sen( x) + cos( x) x = 0.5 h = 0.5 *105 = 5 106


f 'a (x ) = 3x 2 sen( x) + x3 cos( x) sen( x) = 1.01586 10 2

[
(
x + h )3 * sen( x + h) + cos( x + h)] [x3 * sen( x) + cos( x)]
f 'n =
= 1.01496 10 2
h

39

PROCEDIMIENTOS NUMRICOS BSICOS


VI.Races de funciones de una variable y de polinomios
Mtodo de Newton
1. Hacer i= 0. Suponer un valor inicial xi
2. Clculo de una nueva aproximacin
mediante la ecuacin

f (x )

xi +1 = xi f ( xi )
i

f(x)

3. Evaluacin de la funcin objetivo


xi +1 xi
xi +1
solucin

x2

x1

x0

4. Si la funcin objetivo es mayor o igual


que 10 -3 , se volvera al paso 2
incrementando i en 1 para calcular una
nueva aproximacin sino se finalizara
el proceso iterativo.
40

PROCEDIMIENTOS NUMRICOS BSICOS


VI.Races de funciones de una variable y de polinomios
Mtodo de la Falsa Posicin
1. Se suponen dos valores, x0 y x1, entre los que se sita la raz de la funcin
buscada.
2. Se calcula una nueva aproximacin mediante la ecuacin:

x2 = x1 f (x1 )
x2 x0
x 2 x1
3. Si x 2
y x2
la siguiente condicin:

x1 x0
f ( x1 ) f ( x0 )

son mayores o iguales que 10-3 entonces se establece

Si f ( x 2 )f ( x 0 ) < 0 entonces x1 x 2 sino x 0 x 2


En cualquier caso se volvera al paso 2.
x2 x0
x 2 x1
x2
x2
4. Si
o
como raz de la funcin.

es menor que 10-3 se finalizara el proceso quedando x2


41

PROCEDIMIENTOS NUMRICOS BSICOS


VI.Races de funciones de una variable y de polinomios
Ejercicio
Partiendo de la aproximacin inicial x=6, encuntrese una raz de la siguiente
ecuacin:

f ( x) = x exp( x) + x 5 exp( x) 5

usando

1. El mtodo de Newton
2. El mtodo de la falsa posicin (utilizar x=4.2 como segunda aproximacin)

42

PROCEDIMIENTOS NUMRICOS BSICOS


VI.Races de funciones de una variable y de polinomios
Resolucin (Newton)
Hacer i= 0, x0= 6. Nueva aproximacin

xi exp( xi ) + xi 5 exp( xi ) 5
f ( xi )
xi +1 = xi = xi
f ( xi )
4 exp( xi ) + xi exp( xi ) + 1

Se evala la funcin objetivo

x x
A = i +1 i
xi +1
Si A < 0.001 el proceso iterativo acaba; sino se vuelve al principio

i
0
1
2
3
4

xi
6
5.49938108
5.16587055
5.02348373
5.00053539

f(xi)
f'(xi)
xi+1
A
404.428793 807.857587 5.49938108 0.09103187
122.618297 367.65945 5.16587055 0.06456037
29.2247167 205.24875 5.02348373 0.02834424
3.59159508 156.507812 5.00053539 0.00458918
43
0.08003673 149.572141 5.00000028 0.00010702

PROCEDIMIENTOS NUMRICOS BSICOS


VI.Races de funciones de una variable y de polinomios
Resolucin (Falsa posicin)
x0=4.2 y x1=6. Se calcula una nueva aproximacin mediante la ecuacin:
x1 x0
x1 x0
x2 = x1 f (x1 )
= x1 (x1 exp( x1) + x1 5 exp( x1) 5)
(x1 exp( x1) + x1 5 exp( x1) 5) (x0 exp( x0 ) + x0 5 exp( x0 ) 5)
f ( x1) f ( x0 )
x2 x0
x x1
Si A=
y B= 2
son mayores o iguales que 10-3 entonces
x2
x
2

f ( x 2 )f ( x 0 ) < 0 entonces x1 x 2 sino x 0 x 2


Si
Si A o B es menor que 10-3 FIN
Iteracin
1
2
3
4
5
6
7
8
9
10
11
12

x0
4.2
4.41254475
4.58421947
4.71491686
4.80941565
4.87497523
4.91907417
4.94809499
4.96691011
4.97898824
4.98669173
4.99158464

x1
6
6
6
6
6
6
6
6
6
6
6
6

f(x0)
-54.1490648
-49.0402269
-41.1318053
-32.1002281
-23.5676459
-16.499632
-11.1577163
-7.36564635
-4.78422053
-3.07459279
-1.96231965
-1.24689972

f(x1)
404.428793
404.428793
404.428793
404.428793
404.428793
404.428793
404.428793
404.428793
404.428793
404.428793
404.428793
404.428793

x2
4.41254475
4.58421947
4.71491686
4.80941565
4.87497523
4.91907417
4.94809499
4.96691011
4.97898824
4.98669173
4.99158464
4.99468414

f(x2)
-49.0402269
-41.1318053
-32.1002281
-23.5676459
-16.499632
-11.1577163
-7.36564635
-4.78422053
-3.07459279
-1.96231965
-1.24689972
-0.79007674

, volver calcular x2
A
0.04816829
0.03744906
0.02771998
0.0196487
0.01344819
0.00896488
0.00586505
0.00378809
0.00242582
0.00154481
0.00098023
0.00062056

B
0.35975958
0.30883786
0.2725569
0.24755281
0.23077548
0.21974172
0.21258788
0.20799448
0.2050641
0.20320251
0.20202309
0.2012771644

PROCEDIMIENTOS NUMRICOS BSICOS


VI.Races de funciones de una variable y de polinomios

45

PROCEDIMIENTOS NUMRICOS BSICOS


VI.Races de funciones de una variable y de polinomios
Ejemplo
Encuntrese una raz de la siguiente funcin:

xtg ( x) = x x + 1
si sta est comprendida entre 0.5 y 1.

46

PROCEDIMIENTOS NUMRICOS BSICOS


VI.Races de funciones de una variable y de polinomios
Clculo de todas las races de un polinomio

1.Se parte de una aproximacin inicial, digamos, 1+i.


2.Se calcula, a partir de esta aproximacin, una raz del polinomio (r) mediante el
mtodo de Newton (han de anularse las partes real e imaginaria simultneamente).
3.Si la raz hallada, r, es real (parte imaginaria menor que 10-6) se divide el
polinomio por (x-r) lo que origina otro polinomio que tiene un orden menos que el
original.
4.Si la raz hallada, u, es imaginaria, al existir su conjugada, , se divide la
funcin por el producto (x-u)(x-) lo que origina otro polinomio que tiene dos
rdenes menos que el original.
5.Si el orden del polinomio no es igual a cero se vuelve al paso 1. En caso de
serlo se finaliza el proceso.

47

PROCEDIMIENTOS NUMRICOS BSICOS


VI.Races de funciones de una variable y de polinomios
Ejemplo
Evalense todas las races del siguiente polinomio:

100

f ( x) = x

x +1

48

PROCEDIMIENTOS NUMRICOS BSICOS


VI.Races de funciones de una variable y de polinomios

49

PROCEDIMIENTOS NUMRICOS BSICOS


VI.Races de funciones de una variable y de polinomios
Usos del clculo de todas las races de un polinomio
Valores propios e inversa de matrices (Mtodo de Fadeev-Leverrier)
1.Evaluar para una matriz A de orden n

Bn1 = A pn1 = tr ( B n1 )

2.Desde j=n-2 hasta 0 (paso 1) hacer:

B j = A B j +1 p j +1 I

3.Clculo de las races del polinomio

n
n 1

n 1

) p

tr ( B j )
n j

..... p1 p0 = 0

4.Alternativamente podra calcularse la matriz inversa de A sin ms que realizar


el siguiente clculo simple
1
1

A =

p0

(B1 p1 I )

50

PROCEDIMIENTOS NUMRICOS BSICOS


VII.Suavizacin de datos experimentales
Ejemplo (Mtodo de Savitzky-Golay)
Represntese con ayuda de los parmetros de la aplicacin que se adjunta los
datos experimentales que en ella se incluyen.

51

PROCEDIMIENTOS NUMRICOS BSICOS


VII.Suavizacin de datos experimentales

52

PROCEDIMIENTOS NUMRICOS BSICOS


VIII.Regresin lineal
Regresin lineal

y p = b + b x
1
2

(xi , yi ) i = 1,2,..., n 2 n p
2 n
2
= y ( xi ) yi = (b1 + b2 xi yi )
i =1
i =1

n
n
n
y j

n [xi yi ] xi yi
j
=
1
2

i
i =1 i =1
n
b2 = i =1

i =1
2

n
n


n xi xi

r =
2
i =1
i =1
n

n
n
y j


n
yi b2 xi
j =1

yi

i
=
1
i
=
1

b1 =

i =1

n
n

53

PROCEDIMIENTOS NUMRICOS BSICOS


VIII.Regresin lineal
Ejercicio
Dado el siguiente conjunto de datos (x,y):
x

0.9

2.3

3.3

4.5

5.7

6.7

1.1

1.6

2.6

3.2

4.0

5.0

Determnese los valores a0 y a1 si se ha de cumplir que

y = a0 + a1x
54

PROCEDIMIENTOS NUMRICOS BSICOS


VIII.Regresin lineal
Resolucin
x

0.9

2.3

3.3

4.5

5.7

6.7

1.1

1.6

2.6

3.2

4.0

5.0

i
1
2
3
4
5
6
SUMATORIOS:

xi
0.9
2.3
3.3
4.5
5.7
6.7
23.4

a1=
a0=
r=

0.67208904
0.29551941
0.99173834

yi
1.1
1.6
2.6
3.2
4
5
17.5

xi^2
0.81
5.29
10.89
20.25
32.49
44.89
114.62

xi*yi
0.99
3.68
8.58
14.4
22.8
33.5
83.95

y = a0 + a1x
(yi-(yi/n))^2
3.300277778
1.733611111
0.100277778
0.080277778
1.173611111
4.340277778
10.72833333

(a0+a1xi-yi)^2
0.039840342
0.05823737
0.007497267
0.014380828
0.015983771
0.04059581
0.176535388

55

PROCEDIMIENTOS NUMRICOS BSICOS


VIII.Regresin lineal

56

PROCEDIMIENTOS NUMRICOS BSICOS


VIII.Regresin lineal
Ejemplo
Dado el siguiente conjunto de datos (x,y):
x
0.1
0.5
1
2
3
4
5
6
7
8

y
0.5
0.8
1.0
1.5
1.8
1.9
2.0
2.1
2.12
2.15

Determnese los valores a y b si se ha de cumplir que

ax
y=
b+x

57

PROCEDIMIENTOS NUMRICOS BSICOS


VIII.Regresin lineal
Ejemplo
Dado el siguiente conjunto de datos (x,y):

5.7

10.4

16.0

22.4

29.4

Determnese los valores a y b si se ha de cumplir que

y = ax

58

PROCEDIMIENTOS NUMRICOS AVANZADOS


ndice
I. Regresin no lineal
II. Resolucin de sistemas de ecuaciones no
lineales
III.Resolucin de ecuaciones diferenciales
ordinarias: problemas de valor inicial
IV. Resolucin de ecuaciones diferenciales:
problemas de valor frontera

PROCEDIMIENTOS NUMRICOS AVANZADOS


I.Regresin no lineal
Regresin no lineal
Ecuacin de Antoine: ln P = b1 +

b2
T + b3

b 3
b2
[
]
r
=
b
C
exp

Velocidad de reaccin:
1 A
T

Considrese n experimentos en los cuales se relaciona una variable


independiente con m variables independientes:
( x1i , x 2i ,...., x m,i ; yi ) i = 1,2,...., n

Sea ahora un modelo general que contiene k parmetros:

y p = f (x1, x 2 , x 3 ,..., x m ; b1, b 2 ,..., b k )

En este caso el objetivo es minimizar la funcin siguiente:

n
2

2 = yip yi
i =1

PROCEDIMIENTOS NUMRICOS AVANZADOS


I.Regresin no lineal
Algoritmo de Levenberg-Marquardt

PROCEDIMIENTOS NUMRICOS AVANZADOS


I.Regresin no lineal
Algoritmo de Levenberg-Marquardt (estadstica)

Para la ltima iteracin


y un 95% de probabilidad
(= 0.05)

PROCEDIMIENTOS NUMRICOS AVANZADOS


I.Regresin no lineal
Ejemplo
Asumiendo que

ax
y=
b+x

estmese el valor de a y b para los siguientes datos

x
y
0.1
0.5
0.5
0.8
1
1.0
2
1.5
3
1.8
4
1.9
5
2.0
6
2.1

7
2.12
8
2.15
Supngase como estimaciones iniciales de a y b las siguientes: 4 y 2,
5
respectivamente.

PROCEDIMIENTOS NUMRICOS AVANZADOS


I.Regresin no lineal

PROCEDIMIENTOS NUMRICOS AVANZADOS


I.Regresin no lineal
Ejemplo
Asumiendo que

y = a exp(bx)

estmese los valores de a y b usando regresin no lineal. Tomar como


aproximaciones a0= 2 y b0=0.5.

1.5

2.0

2.5

3.0

3.5

y(x)

3.3

3.5

3.7

3.9

4.0

4.3

PROCEDIMIENTOS NUMRICOS AVANZADOS


II.Resolucin de sistemas de ecuaciones no lineales
Sistema de ecuaciones no lineales
f1 ( x1 , x 2 ,....., x n ) = 0
f 2 ( x1 , x 2 ,....., x n ) = 0
...............................
f n ( x1 , x 2 ,....., x n ) = 0

Expansin por series de Taylor


f i ( x1 + d1, x 2 + d 2 ,....., x n + d 3 ) = f i ( x1, x 2 ,....., x n ) +
n f ( x , x ,....., x )
n d
+ i 1 2
j

x
j
j=1

n f ( x , x ,....., x )
n d
0 = f i ( x1, x 2 ,....., x n ) + i 1 2
j

x
j

j=1

n f ( x , x ,....., x )
n d = f ( x , x ,....., x )
i 1 2
j
i 1 2
n

x
j

j=1

PROCEDIMIENTOS NUMRICOS AVANZADOS


II.Resolucin de sistemas de ecuaciones no lineales
Mtodo de Newton-Raphson

1.Hacer r=0 y seleccionar una aproximacin

2.Evaluar para todas las n ecuaciones

x10 , x 02 ,....., x 0n

ci = f i ( x1r , x r2 ,....., x rn )

f
i = 1,2,..., n j = 1,2,..., n
a ij = i

x j x1r , x r2 ,....., x rn

3.Resolviendo el sistema de ecuaciones lineales

a11d1 + a12 d 2 + a13d 3 + ..... + a1n d n = c1


a 21d1 + a 22 d 2 + a 23d 3 + ..... + a 2n d n = c 2

.......................................................
a n1d1 + a n 2 d 2 + a n 3d 3 + ..... + a nn d n = c n

se obtiene d1, d2, , dn.

4.Se calcula

x ir +1 = x ir + d i i = 1,2,..., n

x ir +1 x ir
< 103
5.La secuencia acaba cuando para todo i=1, 2, , n:
x ir +1

Si es as FIN del proceso sino hacer r r+1 y volver al paso 2.

PROCEDIMIENTOS NUMRICOS AVANZADOS


II.Resolucin de sistemas de ecuaciones no lineales
Mtodo de Newton-Raphson (n=2)

1.Hacer r=0 y seleccionar una aproximacin

2.Evaluar para todas las n ecuaciones

x10 , x20

c1 = f1( x1r , x2r ); c2 = f 2 ( x1r , x2r )


f
f
f
f
a11 = 1
; a12 = 1
; a21 = 2
; a22 = 2
x1 x1r , x2r
x2 x1r , x2r
x1 x1r , x2r
x2 x1r , x2r

3.Resolviendo el sistema de ecuaciones lineales

a11d1 + a12 d 2 = c1

a21d1 + a22 d 2 = c2
se obtiene d1, d2

4.Se calcula

x1r +1 = x1r + d1 x2r +1 = x2r + d 2

x1r+1 x1r
x2r+1 x2r
3
3
5.La secuencia acaba cuando A1 = x1r+1 < 10 y A 2 = x2r+1 < 10

Si es as FIN del proceso sino hacer r r+1 y volver al paso 2.

10

PROCEDIMIENTOS NUMRICOS AVANZADOS


II.Resolucin de sistemas de ecuaciones no lineales
Algoritmo de Marquardt

11

PROCEDIMIENTOS NUMRICOS AVANZADOS


II.Resolucin de sistemas de ecuaciones no lineales
Ejercicio
Resulvase el siguiente sistema de ecuaciones no lineales:

2
2
f1 ( x1, x2 ) = 2 x1 + 3x2 50 = 0
2
f 2 ( x1, x2 ) = 2 x1 x2 9 = 0

mediante el mtodo de Newton-Raphson. Comprense los resultados con los


obtenidos con el algoritmo de Marquardt.

Emplese como suposicin inicial x1=1 y x2=1.

12

PROCEDIMIENTOS NUMRICOS AVANZADOS


II.Resolucin de sistemas de ecuaciones no lineales
1) Hacer r = 0 : x10 = 1; x02 = 1

Resolucin

2) Evaluar
2
2
2

c1 = f1( x1r , x2r ) = 2 x1r + 3 x2r 50 = 45; c2 = f 2 ( x1r , x2r ) = 2 x1r x2r 9 = 8

[] []

[]

f
f
a11 = 1
= 4 x1r = 4; a12 = 1
= 6 x2r = 6
x1 x1r , x2r
x2 x1r , x2r
f
f
a21 = 2
= 4 x1r = 4; a22 = 2
= 1
x1 x1r , x2r
x2 x1r , x2r
c1 a12 d 2

d
=
= 3.3214286
1
a11d1 + a12 d 2 = c1
a11
3) Resolver el sistema :

a21d1 + a22 d 2 = c2
c a a c
d 2 = 2 11 21 1 = 5.2857143

a11a22 a12 a21


x1r +1 = x1r + d1 = 4.3214286
4)

r +1
r
x2 = x2 + d 2 = 6.2857143

x1r +1 x1r
x2r +1 x2r
5) La secuencia acaba cuando : A1 =
= 0.7686 y A2 =
= 0.8409 < 103 sino r r + 1 y13
volver a 2)
r +1
r +1
x1
x2

PROCEDIMIENTOS NUMRICOS AVANZADOS


II.Resolucin de sistemas de ecuaciones no lineales
Resolucin
r
0
1
2
3
4

(x1)r
(x2)r
c1
c2
a11
1
1
45
8
4
4.32142857 6.28571429 -105.880102 -22.0637755 17.2857143
2.91976402 4.12071692 -17.9909678 -3.929327 11.6790561
2.53651767 3.57408825 -1.19016425 -0.29375554 10.1460707
2.50362864 3.5341494 -0.00694871 -0.00216338 10.0145146
r
0
1
2
3
4

d1
3.32142857
-1.40166455
-0.38324635
-0.03288903
-0.00023754

d2
5.28571429
-2.16499736
-0.54662867
-0.03993885
-0.00021551

(x1)r+1
4.32142857
2.91976402
2.53651767
2.50362864
2.5033911

(x2)r+1
6.28571429
4.12071692
3.57408825
3.5341494
3.53393389

a12
6
37.7142857
24.7243015
21.4445295
21.2048964

a21
4
17.2857143
11.6790561
10.1460707
10.0145146

A1
0.76859504
0.4800609
0.15109154
0.01313654
9.4889E-05

A2
0.84090909
0.52539337
0.15294213
0.01130084
6.0982E-05

a22
-1
-1
-1
-1
-1

14

PROCEDIMIENTOS NUMRICOS AVANZADOS


II.Resolucin de sistemas de ecuaciones no lineales

15

PROCEDIMIENTOS NUMRICOS AVANZADOS


II.Resolucin de sistemas de ecuaciones no lineales
Ejemplo
Resulvase el siguiente sistema de ecuaciones no lineales:

1.203 = ln( x1 ) x2
0.939 = ln( x2 ) x1

Emplese como suposicin inicial x1=1 y x2=1.

16

PROCEDIMIENTOS NUMRICOS AVANZADOS


II.Resolucin de sistemas de ecuaciones no lineales
Ejemplo
Resulvase el siguiente sistema de ecuaciones no lineales:

y
x + =3
x
2

y + xy = 6

Emplese como suposicin inicial x=1.1 y y=2.

17

PROCEDIMIENTOS NUMRICOS AVANZADOS


III.Resolucin de ecuaciones diferenciales ordinarias: problemas de valor inicial

Descripcin general

yi ( t = 0) = (yi )0
dyi

= yi = f i ( t; y1, y 2 ,...., y N )
dt
i = 1,2,..., N

Mtodo de Euler

y i ( t + h ) = y i ( t ) + hf i (t; y1 ( t ), y 2 ( t ),..., y N ( t ) )
1.Conocidos
2.Calcular
3.Si

y i ( t = 0) i = 1,2,..., N y tf, se supone un valor de h. Hacer t=0

y i ( t + h ) = y i ( t ) + hf i (t; y1 ( t ), y 2 ( t ),..., y N ( t ) )

t+h=tf

entonces finalizar el proceso sino


t t +h

y volver a 2.
18

PROCEDIMIENTOS NUMRICOS AVANZADOS


III.Resolucin de ecuaciones diferenciales ordinarias: problemas de valor inicial

Mtodo de Euler (n=1)

1.Conocido

y (t = 0) y tf, se supone un valor de h. Hacer t=0

2.Calcular

y (t + h) = y (t ) + hf (t ; y (t ) )

3.Si t + h = t f entonces finalizar el proceso sino

t t +h

y volver a 2.

19

PROCEDIMIENTOS NUMRICOS AVANZADOS


III.Resolucin de ecuaciones diferenciales ordinarias: problemas de valor inicial

Mtodo de Runge-Kutta de cuarto orden


1.Conocidos
2.Calcular

y i ( t = 0) i = 1,2,..., N y tf, se supone un valor de h. Hacer t=0


yi (t + h) = yi (t ) +

1
[ki1 + 2ki 2 + 2ki3 + ki 4 ]
6

ki1 = hfi (t ; y1(t ), y2 (t ),..., y N (t ) )

h
1
1
1

ki 2 = hfi t + ; y1(t ) + k11, y2 (t ) + k21,..., y N (t ) + k N1


2
2
2

h
1
1
1

k = hf t + ; y (t ) + k , y (t ) + k ,..., y (t ) + k
i
1
12 2
22
N
N 2
i3
2
2
2
2

ki 4 = hfi (t + h; y1(t ) + k13 , y2 (t ) + k23 ,..., y N (t ) + k N 3 )

3.Si t + h = t f entonces finalizar el proceso sino

t t + hy

volver a 2.
20

PROCEDIMIENTOS NUMRICOS AVANZADOS


III.Resolucin de ecuaciones diferenciales ordinarias: problemas de valor inicial

Mtodo de Runge-Kutta de cuarto orden (n=1)


1.Conocidos
2.Calcular

y (t = 0) y tf, se supone un valor de h. Hacer t=0


y (t + h) = y (t ) +

1
[k1 + 2k2 + 2k3 + k4 ]
6

k1 = hf (t ; y (t ) )

h
1

k2 = hf t + ; y (t ) + k1
2

h
1

k = hf t + ; y (t ) + k
2
3
2
2

k4 = hf (t + h; y (t ) + k3 )

3.Si

t + h = t f entonces finalizar el proceso sino

t t +h

y volver a 2.
21

PROCEDIMIENTOS NUMRICOS AVANZADOS


III.Resolucin de ecuaciones diferenciales ordinarias: problemas de valor inicial

Ejercicio
Calclese el valor y(0.5) usando los mtodos de Euler y Runge-Kutta de cuarto
orden donde

dy
= x exp(y) y(0) = 1
dx

Supngase un paso de integracin de 0.1. Comprense los resultados con los


obtenidos con otros mtodos.

22

PROCEDIMIENTOS NUMRICOS AVANZADOS


III.Resolucin de ecuaciones diferenciales ordinarias: problemas de valor inicial

Resolucin (Euler)

dy
= x exp(y) y(0) = 1
dx
1) x = 0, y(x = 0) = 1, h = 0.1, x f = 0.5
2) y(x + h) = y(x) + hf ( x; y(x)) = y(x) + h "# x exp ( y(x))$%
3) Si x + h = x f entonces finalizar sino t t + h y volver a 2)

x
0
0.1
0.2
0.3
0.4

y(x)
1
1
1.08595962
1.21843686
1.403671

f(x;y(x))
0
0.85959619
1.32477239
1.85234139
2.57416608

x+h
0.1
0.2
0.3
0.4
0.5

y(x+h)
1
1.08595962
1.21843686
1.403671
1.6610876123

PROCEDIMIENTOS NUMRICOS AVANZADOS


III.Resolucin de ecuaciones diferenciales ordinarias: problemas de valor inicial

Resolucin (Runge-Kutta)
dy
= x exp(y) y(0) = 1
dx
1) x = 0, y(x = 0) = 1, h = 0.1, x f = 0.5
1
[k1 + 2k2 + 2k3 + k4 ]
6
k1 = hf ( x; y(x)) = h "# x exp ( y(x))$%
&
&
h
1 ) "
h
1 )$
k2 = hf ( x + ; y(x) + k1 + = h , x + exp ( y(x) + k1 +'
'
2
2 * #
2
2 *%
&
&
h
1 ) "
h
1 )$
k3 = hf ( x + ; y(x) + k2 + = h , x + exp ( y(x) + k2 +'
'
2
2 * #
2
2 *%
k4 = hf ( x + h; y(x) + k3 ) = h "# x + h exp ( y(x) + k3 )$%
3) Si x + h = x f entonces finalizar sino t t + h y volver a 2)
2) y(x + h) = y(x) +

24

PROCEDIMIENTOS NUMRICOS AVANZADOS


III.Resolucin de ecuaciones diferenciales ordinarias: problemas de valor inicial

Resolucin (Runge-Kutta)
x
0
0.1
0.2
0.3
0.4
dy
= x exp(y) y(0) = 1
dx
1) x = 0, y(x = 0) = 1, h = 0.1, x f = 0.5
1
[k1 + 2k2 + 2k3 + k4 ]
6
k1 = hf ( x; y(x)) = h "# x exp ( y(x))$%
&
&
h
1 ) "
h
1 )$
k2 = hf ( x + ; y(x) + k1 + = h , x + exp ( y(x) + k1 +'
'
2
2 * #
2
2 *%
2) y(x + h) = y(x) +

y(x)
1
1.05639996
1.17389444
1.34998618
1.60878043

k1
0
0.09094706
0.14465414
0.21127698
0.31601992

x+h/2
0.05
0.15
0.25
0.35
0.45

y(x)+k1/2
1
1.10187349
1.24622151
1.45562467
1.76679039

k2
0.06078263
0.11656904
0.17385898
0.25363185
0.3925668

k3
0.06265825
0.11807201
0.17641637
0.2590604
0.40788292

x+h
0.1
0.2
0.3
0.4
0.5

y(x)+k3
1.06265825
1.17447197
1.35031081
1.60904657
2.01666334

k4
0.09151802
0.14473771
0.21134558
0.31610404
0.53126446

y(x+h)
1.05639996
1.17389444
1.34998618
1.60878043
2.01681106

y(x)+k2/2
1.03039131
1.11468448
1.26082393
1.4768021
1.80506383

&
&
h
1 ) "
h
1 )$
k3 = hf ( x + ; y(x) + k2 + = h , x + exp ( y(x) + k2 +'
'
2
2 * #
2
2 *%
k4 = hf ( x + h; y(x) + k3 ) = h "# x + h exp ( y(x) + k3 )$%
3) Si x + h = x f entonces finalizar sino t t + h y volver a 2)

25

PROCEDIMIENTOS NUMRICOS AVANZADOS


III.Resolucin de ecuaciones diferenciales ordinarias: problemas de valor inicial

26

PROCEDIMIENTOS NUMRICOS AVANZADOS


III.Resolucin de ecuaciones diferenciales ordinarias: problemas de valor inicial

Ejemplo
Considrese el siguiente conjunto de ecuaciones diferenciales de primer orden:

y1

10 y1 y 2 exp

dy1
=
dx

100

1 + x2
y1
y1 y 2 exp
dy2
100

=
dx
1 + x2

donde para x=0, y1=y2=1

Determnese y1 e y2 para x=0.50.

27

PROCEDIMIENTOS NUMRICOS AVANZADOS


IV.Resolucin de ecuaciones diferenciales: problemas de valor frontera
Mtodo de diferencias finitas
Conduccin de calor estacionaria en una lmina plana
d 2
(1+ ) 2
dx

2
( (0) = 0
! d $
d
+# & = 0 )
q = (1+ )
" dx %
dx
* (1) = 1

Si el dominio se divide en N+2 puntos igualmente espaciados:

" x1 = 0
#
$ x N+2 = 1
CL
CL
ED
Las derivadas se representaran de la siguiente manera:

! dy $ yi+1 yi1 ! d 2 y $ yi+1 2yi + yi1


x N+2 x1
i = 2, N +1; # & =
# 2 & =
x
=
" dx %i
2x
x 2
N +1
" dx %i
! dy $ 3y1 + 4y2 y3 (dy/dx)1=0
4y y
i = 1; # & =
* ***
y1 = 2 3
" dx %1
2x
3
! dy $
y 4yN+1 + 3yN+2 (dy/dx)N+2 =0
4y y
i = N + 2; # & = N
* *** yN+2 = N+1 N
" dx %n+2
2x
3

28

PROCEDIMIENTOS NUMRICOS AVANZADOS


IV.Resolucin de ecuaciones diferenciales: problemas de valor frontera
Mtodo de diferencias finitas

2
(0) = 0
d
d
(1 + ) 2 + = 0
q = (1 + )
dx
dx
dx
(1) = 1

d 2

N+2=4

i = 1;

1 = 0

i = 2;

# 2 + & # &
(1+ 2 ) %$ 3 22 1 (' + %$ 3 1 (' = 0
x
2x

i = 3;
i = 4;

# 4 2 3 + 2 & # 4 2 &
1+

(+%
( =0
( 3 ) %$
' $ 2x '
x 2
4 1 = 0 4 = 1

x =

1
= 0.33333
3

Solucin

0.33333

0.66666

0.4130

0.7314

)
# 31 + 4 2 3 &
q
0
=
1+

( = 1.381
(
)
(
)
+
1 %
+
$
'
2x
*
+q 1 = 1+ # N 4 N+1 + 3 N+2 & = 1.462
(
4 )%
+, ( ) (
$
'
2x

El error cometido es inferior al 5.6 %

29

PROCEDIMIENTOS NUMRICOS AVANZADOS


IV.Resolucin de ecuaciones diferenciales: problemas de valor frontera

30

PROCEDIMIENTOS NUMRICOS AVANZADOS


IV.Resolucin de ecuaciones diferenciales: problemas de valor frontera
Mtodo de diferencias finitas
N+2=5

x =

1
= 0.25
4

Solucin
x

0.25

0.3221

0.5

0.75

0.58056 0.8025

)
# 31 + 4 2 3 &
( = 1.416
+q ( 0 ) = (1+ 1 ) %
+
$
'
2x
*
+q 1 = 1+ # N 4 N+1 + 3 N+2 & = 1.483
(
4 )%
+, ( ) (
$
'
2x

1
1

El error cometido es inferior al 4.5 %

1
N+2=4

0.8

N+2=5

0.6
0.4
0.2

31

0
0

0.2

0.4

0.6

0.8

PROCEDIMIENTOS NUMRICOS AVANZADOS


IV.Resolucin de ecuaciones diferenciales: problemas de valor frontera
Mtodo de diferencias finitas
Concentracin de reaccionante en el interior de una partcula de catalizador en
forma de lmina plana
dc
1
tanh
(0) = 0
(
)
=
36
c

=
c
x
dx
=
= 0.166665
dx

dx
c(1) = 1
0
1
Solucin (N+2=5): x = 4 = 0.25
)
# 3c1 + 4c2 c3 &
%
(=0 +
$
'
2x
+
x
0
0.25
0.5
0.75
1
+
c3 2c2 + c1
36c2 = 0 +
c
-0.00178
0.01420
0.06215
0.24992
1
2
x
+
+
c4 2c3 + c2

36c
=
0
*
3
N+2 $
1
c ( xi ) + c ( xi1 ) '
x 2
+

=
c
x
dx

)( xi xi1 ) = 0.2063
( ) &%
+
c5 2c4 + c3
2
(
0
36c4 = 0+
i=2
2
x
+
c5 1 = 0
+
+,
d 2c

i = 1;
i = 2;
i = 3;
i = 4;
i = 5;

32
El error cometido, respecto a la solucin exacta, es del 23.8 %.El error
disminuye al 3% cuando N+2= 12. Comprubese.

PROCEDIMIENTOS NUMRICOS AVANZADOS


IV.Resolucin de ecuaciones diferenciales: problemas de valor frontera
Ejercicio
Resulvase la siguiente ecuacin diferencial empleando el procedimiento de
diferencias finitas:

x = 0; y = 1
d y
dy

2
(
)
=
x
10
y
+
x
+
x

dy

2
dx
dx
x = 0.5; dx = 0
2

33

UNIDAD TEMTICA 3
Introduccin a la programacin en EXCEL-VBA y aplicaciones

Tema 8. Fundamentos de programacin en Visual Basic para


aplicaciones EXCEL
Tema 9. Programacin modular
Tema 10. Descripcin de mdulos y su manejo
Tema 11. Resolucin de problemas de la Ingeniera Qumica

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


ndice
I. Introduccin
II. Mecnica de la escritura de cdigo
III.Conceptos bsicos del cdigo en VBA
IV. Tipos de datos, constantes y variables
V. Matrices
VI. Operaciones aritmticos y lgicas
VII.Estructuras bsicas de control y comandos
VIII.Algoritmos de utilidad
IX. Ejemplos
2

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


I.Introduccin
Cronologa

q Dentro de los lenguajes de alto nivel disponibles comercialmente hay que destacar
el Visual Basic que deriva, en origen, del BASIC (Beginner's All-purpose Symbolic
Instruction Code).
q El BASIC original, el Dartmouth BASIC, fue diseado en 1964 por John George
Kemeny y Thomas Eugene Kurtz en el Dartmouth College en New Hampshire,
Estados Unidos, como un medio para facilitar la programacin de computadores a
estudiantes y profesores que no tuvieran formacin cientfica o tecnolgica; en
realidad fue concebido como una herramienta de enseanza. Este lenguaje y sus
variantes llegaron a ser ampliamente utilizados desde finales de los aos setenta
y durante toda la dcada de los ochenta.
q En 1991 aparece la primera versin del lenguaje Visual Basic con la intencin de
simplificar la programacin orientada a objetos. Fue desarrollado para Microsoft
por el alemn Alan Cooper.
q Por su parte, Microsoft VBA (Visual Basic for Applications) es el lenguaje de
macros de Microsoft Visual Basic que se utiliza para programar aplicaciones
Windows y que se incluye en varias aplicaciones Microsoft.
q La facilidad de conexin de la aplicacin Excel a los simuladores comerciales de
procesos ms empleados: HYSYS y ASPEN, UNISIM y PROMAX, hace posible
3
diseos y optimizaciones de procesos muy complejos con cdigos VBA muy simples.

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


II.Mecnica de la escritura de cdigo
q El cdigo escrito en VBA se almacena en mdulos que contienen las declaraciones
y los procedimientos
q En una declaracin se pueden declarar constantes, tipos, variables, etc.; en un
procedimiento, se define la parte del cdigo que se desea ejecutar de forma
unitaria
q Un mdulo puede contener varios procedimientos (subrutinas) distintos, a los que
se puede acceder a travs del campo <Declaraciones>
Editor de VBA
Es en esta ventana donde se escribe
la mayor parte del cdigo
El editor constituye un procesador de
textos muy especializado; cada mdulo
u objeto (asignado normalmente a una
hoja Excel) tiene asignado una ventana
distinta
La escritura de cdigo es muy sencilla
ya que el editor es capaz de
completar automticamente instrucciones, propiedades y argumentos , y
mostrar de forma automtica la
sintaxis de instrucciones y funciones

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


II.Mecnica de la escritura de cdigo
q Es posible marcar una lnea de
cdigo. Este marcaje permite
localizar una lnea cualquiera en
caso de que haya que revisar
cdigos extensos que impliquen
varios mdulos o, en el proceso de
ejecucin, para parar la misma en
esa lnea.
q La ventana de Locales que aparece
en la parte inferior informa de los
valores de las variables en el
momento que la ejecucin se ha
parado parcialmente. En esta
situacin, si se sita el cursor
sobre una variable cualquiera, el
editor devuelve su valor. Si en la
instruccin existiera una operacin
con parntesis, situando el cursor
sobre la parte izquierda del mismo,
el editor devolvera el valor del
clculo que se estuviera
desarrollando en su interior.

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


II.Mecnica de la escritura de cdigo
q Para reanudar la ejecucin existen dos
posibilidades: una, presionar el smbolo
, con lo que la ejecucin contina sin
ms; dos, presionar de forma
simultnea las teclas Shift y F8, con
lo que la ejecucin continuara lnea a
lnea.
q Adicionalmente, podra pulsarse ; en
este caso, cesara la ejecucin de la
aplicacin. Es importante recordar que
en caso de existir errores que paren la
ejecucin de la aplicacin, la nica
manera de poder volver a ejecutarla
tras la correccin de los mismos es
pulsando .

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


III.Conceptos bsicos del cdigo en VBA
q Se puede dividir una instruccin
larga en varias lneas si se inserta
un espacio en blanco seguido del
guin bajo.
q Es conveniente, desde el punto de
vista metodolgico, definir una
sola instruccin por lnea.
q El smbolo () indica a VBA que
pase por alto las caracteres que
van a continuacin de l; VBA lo
considerar como comentarios.
Estos pueden seguir a una
instruccin en la misma lnea o
pueden ocupar una lnea completa.

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


III.Conceptos bsicos del cdigo en VBA

Los nombres de procedimientos, variables y constantes que se declaran en el cdigo


de VB deben seguir estas directrices:
Deben comenzar por una letra.
No pueden contener puntos o caracteres de declaracin de tipos.
No pueden superar los 255 caracteres. Los nombres de controles,
formularios, clases y mdulos no deben exceder los 40 caracteres.
No pueden ser iguales que las palabras claves restringidas, funciones y
operadores de VBA (If, Abs, Or).
En VBA los caracteres de una variable pueden escribirse en mayscula o
minscula indistintamente. As, la variable AsDfG es igual que la variable
asdFG.
Sin embargo, si las variables se definen con las palabras clave, Public,
Private o Dim (cuyo sentido se ver ms adelante) al inicio del mdulo o
procedimiento, el editor de VBA en el proceso de revisin del cdigo
cambiar automticamente los caracteres de las variables definidas a los
usados en el proceso de definicin.

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

IV.Tipos de datos, constantes y variables


Datos de tipo entero

Los datos de tipo entero son aquellos que no gestionan valores con parte decimal.
En VBA pueden manejarse dos tipos de datos enteros:

q Enteros cortos (tipo Integer). Ocupan 2 bytes y definen valores comprendidos


entre 32768 y 32767.
q Enteros largos (tipo Long). Ocupan 4 bytes y definen valores enteros entre
-2.147.483.648 y 2.147.483.647.

Ejemplo:
Private J As Long
Public Sub Enteros ()

Dim I As Integer
I = 7
J = 50000

El sentido de = es el de asignacin. Esto explica el que existan instrucciones del


tipo:
9
I=I+1

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

IV.Tipos de datos, constantes y variables


Ejemplo
Comntese la siguiente figura:

10

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

IV.Tipos de datos, constantes y variables


Datos de tipo real

Los tipos reales manipulan valores que no slo guardan la parte entera sino tambin la
decimal o fraccionaria de un nmero. Pueden ser de dos tipos:
q Real de simple precisin (tipo Single). Ocupan 4 bytes y consideran 7 cifras
significativas en formato exponencial. Representan nmeros comprendidos entre
-3,402823E+38 a -1,401298E-45, para valores negativos, entre 1,401298E-45 a
3,402823E+38, para valores positivos, y el cero.
q Real de doble precisin (tipo Double). Ocupan 8 bytes y consideran 15 cifras
significativas en formato exponencial. Representan nmeros comprendidos entre
1.79769313486231E+308 a -4,94065645841247E-324, para valores negativos,
entre 4,94065645841247E-324 a 1,79769313486232E+308, para valores
positivos, y el cero.
Ejemplo:

Private s As Single
Public Sub reales ()
Dim r As Double
r = 1.5E+300
s = -1.34E-23

11

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

IV.Tipos de datos, constantes y variables


Datos de tipo carcter

Los tipos carcter o cadena (tipo String) se usan para el manejo de caracteres. Los
tipos de cadena se gestionan a travs de variables que pueden almacenar
hasta
65535 caracteres.

Ejemplo

Dim S As String
S = "base de datos"
...
Si se definiera una variable de la forma
Dim NombreEmp As String * 50

la variable NombreEmp habra de tener un mximo 50 caracteres. Si la cadena tuviera


menos, la variable se rellenara con espacios en blanco a la derecha del ltimo
carcter; si tuviera ms, VBA truncara la cadena.
12

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

IV.Tipos de datos, constantes y variables


Datos de tipo lgico

Los tipos lgicos (tipo Boolean) posibilitan la declaracin de variables que almacenan
valores lgicos. Ocupan dos bytes y su rango de variacin es binario: False o True
(Verdadero o Falso, respectivamente).

Ejemplo

Dim blnEjecutando As Boolean

If Recorder.Direction = 1 Then
BlnEjecutando = True
End If

13

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

IV.Tipos de datos, constantes y variables


Constantes

Una constante se representa con un nombre que hace referencia a un nmero o una
cadena que no vara durante la ejecucin de la aplicacin. Las constantes definidas por
el usuario se declaran mediante la instruccin Const:

[Public/Private] Const nombreConstante [As tipo] = expresin

La definicin de una constante con Const tiene igual alcance que una declaracin de
variable; adems, se le aplican las mismas reglas:

q Para crear una constante disponible para todos los procedimientos de un mdulo,
pero no para el cdigo que est fuera del mdulo, sta ha de ser declarada en la
seccin Declaraciones del mdulo con la palabra clave Private.
q Para crear una constante disponible para toda la aplicacin, sta ha de ser
declarada en la seccin Declaraciones de un mdulo con la palabra clave Public.

Ejemplo de definicin de constantes

Public Const conMaxPlanetas As Integer = 9


14
Private Const Pi as Double = 3.14159265358979

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

IV.Tipos de datos, constantes y variables


Variables

Una variable es la representacin de una cantidad que ocupa un rea de memoria del
ordenador. Las variables tienen nombre y un tipo de dato asociado (que determina
cmo se almacenan stas en la memoria del equipo.

El nombre de una variable:


q Debe comenzar por una letra.
q No puede incluir un punto o un carcter de declaracin de tipo.
q No debe exceder de 255 caracteres
q Las variables se declaran usando las instrucciones Private, Public o Dim (As
tipo).
Ejemplo:

Private I As Integer
Dim Cantidad As String
Public PagadoPorJuan As Boolean

La instruccin de declaracin puede combinar varias declaraciones:

Private I As Integer, Amt As Double


Private suNombre As String, PagadoPorJuan As Boolean

15

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

IV.Tipos de datos, constantes y variables


Variables

qLas variables que se declaran en un procedimiento mediante Dim slo existen


mientras se ejecuta el procedimiento:
qDeclarar una variable en la seccin Declaraciones de un mdulo con Private hace que
la variable est disponible para todos los procedimientos del mdulo.
qDeclarar una variable mediante la palabra clave Public hace que est accesible para
toda la aplicacin.

Es recomendable que todas las variables y por extensin, todas las matrices, sean
definidas de forma explcita. Para ello, ha de incluirse la siguiente instruccin en la
seccin Declaraciones del mdulo:

Option Explicit
Ejemplo:
Option Explicit
Public Sub Calcular (num As Integer, SafeSqr As Double)
Dim TempVal as Integer
TempVal = Abs (num)
SafeSqr = Sqr (TempVal)
16
End Sub

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

IV.Tipos de datos, constantes y variables

Caso 1
Generar una aplicacin EXCEL-VBA que lea el contenido de las celdas (3,2) y (7,2).
La primera de ellas contiene el dato 1.3456 que ha de ser asignado a una variable
entera, I, a una variable real de doble precisin, z, y a una variable de tipo cadena,
ch; cada una de estas variables se escribirn en las celdas (2,5), (3,5) y (4,5). La
celda (7,2) contendr el valor True; ste ser asignado a una variable de tipo lgico,
bool, que se escribir en la celda (7,5).

17

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

IV.Tipos de datos, constantes y variables


Caso 1

El botn ejecutar, al presionarse, una llamada a la subrutina pblica wayin:

18

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

IV.Tipos de datos, constantes y variables


Caso 1

que se definir en el mdulo entrada. ste contiene las siguientes instrucciones:

19

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


IV.Tipos de datos, constantes y variables

Alcance las variables (y matrices) en VBA

Alcance

Privado

Pblico

Nivel de

Las variables son privadas

No es aplicable. No se puede

procedimiento

del procedimiento en que

declarar variables pblicas

aparecen y se definen con

dentro de un procedimiento

Dim
Nivel de mdulo

Las variables son privadas

Las variables estn

del mdulo en el que

disponibles para toda la

aparecen y se definen con

aplicacin y se definen con

Private

Public
20

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


IV.Tipos de datos, constantes y variables
Caso 2
Genrese una aplicacin EXCEL-VBA que lea el contenido de las celdas (3,2) y (4,2).
La primera de ellas contiene el dato m (igual a 1) que ser de tipo entero; la segunda
contiene el dato n (igual a 2.5) que ser de tipo doble. El resultado de la aplicacin se
escribir en las celdas (3,5) y (4,5). Con la informacin que se aporta compltese la
aplicacin:

21

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


IV.Tipos de datos, constantes y variables
Caso 2

22

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


IV.Tipos de datos, constantes y variables
Caso 2

23

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


IV.Tipos de datos, constantes y variables
Caso 2
Una vez ejecutada la aplicacin y comprobado su buen funcionamiento, se deber
seguir la siguiente secuencia de acciones:

1.Cambiar la definicin de la variable s de Public a Private. Analizar el efecto de este


cambio.
2.Deshacer el cambio anterior.
3.Modificar la definicin de la subrutina calc de Public a Private. Analizar el efecto
de este cambio.
4.Llevar la subrutina calc, con la definicin Private, a otro mdulo (para ello ser
necesaria su creacin). Analizar el efecto de este cambio.
5.Definir la subrutina calc como Public. Analizar el efecto de este cambio.
6.Definir la subrutina wayin como Private. Analizar el efecto de este cambio.
7.Deshacer el cambio anterior.
8.En la subrutina wayin modificar el tipo de la variable n de Double a Integer.
Analizar el efecto de este cambio.

24

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


V.Matrices
Matrices
Las matrices permiten hacer referencia con el mismo nombre a una serie de
variables del mismo tipo y usar un nmero (ndice) para distinguirlas. Todas las
matrices se definen con un lmite superior e inferior.

Pueden ser dos tipos

qMatrices de tamao fijo, que tienen siempre el mismo tamao


qMatrices dinmicas, cuyo tamao cambia en tiempo de ejecucin.

Matrices de tamao fijo


qPara declarar una matriz pblica, utilcese la instruccin Public en la seccin
Declaraciones del Mdulo.
qPara crear una matriz en el mbito del mdulo, utilcese la instruccin Private en
la seccin Declaraciones del Mdulo.
qPara crear una matriz local, utilcese la instruccin Dim.
qEl lmite superior no puede exceder el intervalo de un tipo de dato Long
(-2.147.483.648 a 2.147.483.647):
Dim Contadores (14) As Integer
Public Sumas (20) As Double

25

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


V.Matrices
Matrices

Matrices de tamao fijo


qEl lmite inferior se especifica explcitamente (como tipo de dato Long) con la
palabre clave To:
Dim Contadores (1 To 15) As Integer
Dim Sumas (100 To 120) As String
qEl lmite inferior predeterminado es 0. Si se desea que ste sea 1 (lo habitual en
caso de clculos numricos) ha de incluirse la siguiente instruccin en la seccin de
Declaraciones del mdulo:
Option Base 1
qSe pueden declarar matrices de varias dimensiones:
Public Matriz (9,9) As Double
Private MatrizA (1 To 10, 1 to 10) As Double
Dim MultiD (3, 1 To 10, 1 to 15)

26

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


V.Matrices
Matrices

Matrices dinmicas
qPara crear una matriz dinmica declrese con las instrucciones Public, Private o
Dim de la siguiente forma:

Dim MatrizDyn () As Double, A() As Integer

qPosteriormente, y en cualquier punto del cdigo, se han de asignar las dimensiones


y el nmero de elementos de cada una de ellas con la instruccin ReDim
ReDim MatrizDyn (X+1), A(X, X+1, X)

qLa instruccin ReDim acepta la misma sintaxis que se utiliza en las matrices fijas:

ReDim MatrizDyn (4 To 12)


27

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


V.Matrices
Caso 3
Genrese una aplicacin EXCEL-VBA
que lea un vector A y lo transforme en
otro T de forma que:

T (i) = A(i)

1.2

La aplicacin ha de escribir contiguo a


un determinado valor de A(i) el
correspondiente T(i); adems, ha de
calcular la suma y el producto de todos
los elementos de T y situar ambos en
las celdas (7,6) y (8,6),
respectivamente. Con la informacin
que se aporta compltese la aplicacin:

28

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


V.Matrices
Caso 3
Considrese en esta primera fase la definicin de matrices dinmicas.

29

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


V.Matrices
Caso 3
Una vez ejecutada la aplicacin se deber realizar las siguientes acciones:
qRedefinir las matrices con un tamao fijo. Se deber comentar las ventajas y
desventajas de esta accin.
qSe deber proponer un cdigo VBA que simplifique el propuesto.

30

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


V.Matrices
Caso 4
Generar una aplicacin EXCEL-VBA
que lea una matriz A y la
transforme en otra T de forma
que:

T (i, j ) = A(i, j ) + (i *10 + j )


La aplicacin ha de situar en la
celda (15,3) la siguiente operacin:

n n
n n

Calculo = Ti , j Ti , j
i =1 j =1

i =1 j =1

Con la informacin que se aporta


compltese la aplicacin.

31

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


V.Matrices
Caso 4

32

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


V.Matrices
Caso 4
Una vez ejecutada la aplicacin se deber proponer un cdigo VBA que simplifique el
propuesto.

33

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

VI.Operaciones aritmticos y lgicas

Operaciones aritmticas
q Operaciones bsicas: suma (+), resta (-), multiplicacin (*), divisin (/),
exponenciacin (^), cociente entero, que devuelve la parte entera de la operacin,
(\), resto de la divisin entera (mod):

5 * 7^2 - 3.45 + 2.56


7 mod 5

q Una expresin aritmtica consiste en una secuencia de constantes y variables


separadas por los operadores aritmticos y parntesis:

sx / yhz + 2^ ((5. y) / (h * 3)) * t

q Todos los clculos que se deseen deben especificarse explcitamente. As, para
multiplicar las variables A y B se escribir
A * B B * A

q Dos operadores aritmticos nunca pueden aparecer seguidos en la misma


expresin:
A */ B y A * B
q Esta ltima debe escribirse como: A * (-B)

34

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VI.Operaciones aritmticos y lgicas

Operaciones lgicas

Relaciones lgicas

<Menor que,>Mayor que,= Igual a


<= Menor o igual que,>= Mayor o igual que,<>Diferente a

Las expresiones que se relacionan han de ser todas del mismo tipo. El resultado de
una relacin lgica puede ser o False o True:
A = 2; B = 3
(A * B) > (A + B)
True
7 < 5
False

Operadores lgicos
Not Cambia el valor de True a
False y viceversa
And Producto lgico
Or Suma lgica

Not A

A And B

A Or B

True

True

False

True

True

True

False

False

False

True

False

True

True

False

True

False

False

True

False

False

Los operadores relacionan expresiones, constantes y variables lgicas

35

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

VI.Operaciones aritmticos y lgicas


Operaciones lgicas

Una expresin lgica est constituida por una constante lgica, una variable lgica y/
o una relacin lgica

Ejemplo:
Dim L As Boolean, M As Boolean, N As Boolean
.
L = True
M = L
N = 6 > 3
Ejemplo:

(A And (Not B)) Or (True And (Not A))


W
Or
Y

36

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

VI.Operaciones aritmticos y lgicas

Caso 5
Generar una aplicacin EXCEL-VBA que realice, para cualquier combinacin de
valores lgicos de AL y BL, las siguientes operaciones:
Not AL; AL Or BL;AL And BL;(AL And (Not BL)) Or (True And (Not AL))
Asimismo, deber realizar la siguiente operacin:
((A < (B + C)) And (Not (I = 1))) Or (K <= M)
donde A = 5; B = 3; C = 2; I =1; J = 0; K = 0; M = 3.

37

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

VI.Operaciones aritmticos y lgicas


Caso 5

38

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

VI.Operaciones aritmticos y lgicas


Jerarqua operativa

1.Parntesis
2.Cualquier operacin aritmtica en este orden:
Exponenciacin (^)
Negacin de resultados (-)
Producto o cociente real (*, /)
Cociente entero (\)
Mdulo o resto de la divisin entera (mod)
Suma o resta (+, -)
3.Relaciones lgicas (<, >, =, <=, >=, <>)
4.Cualquier operacin lgica en este orden:
Not
And
Or

Si existen dos operadores o relaciones anlogas en la jerarqua, la primera operacin


que se realiza es la que est situada ms a la izquierda. En cualquier caso es
conveniente, para evitar confusiones, utilizar parntesis.

39

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

VI.Operaciones aritmticos y lgicas


Ejemplo:
Sea A = 5; B = 3; C = 2; I =1; J = 0; K = 0; M = 3, calcular

B + ((A + B) * C) * A^2 * B + A^2

B + (8 * C) * A^2 * B + A^2

B + 16 * A^2 * B + A^2

B + 16 * 25 * B + A^2

B + 16 * 25 * B + 25

B + 400 * B + 25

B + 1200+ 25

1203+ 25

1228

40

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

VI.Operaciones aritmticos y lgicas


Ejemplo:
Sea A = 5; B = 3; C = 2; I =1; J = 0; K = 0; M = 3, calcular

((A < (B + C)) And (Not (I = 1))) Or (K <= M)

((A < 5) And (Not (I = 1))) Or (K <= M)

(False And (Not (I = 1))) Or (K <= M)

(False And (Not True)) Or (K <= M)

(False And False) Or (K <= M)

False Or (K <= M)

False Or True

True
41

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Programacin
qLa programacin es el conjunto de actividades y operaciones que conducen a un
ordenador a realizar un algoritmo.
qUn algoritmo es una serie de operaciones detalladas y no ambiguas, a ejecutar
paso a paso, y que conducen a la resolucin de un problema.

Caractersticas fundamentales de un algoritmo

qUn algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.
qUn algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe
obtener el mismo resultado cada vez.
qUn algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algn
momento.
qLa definicin de un algoritmo debera describir tres partes:
Entrada
Proceso
Salida

42
Un algoritmo, por tanto, describe la transformacin de la entrada en la salida.

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Programacin
Etapas en la resolucin de un problema

q
q
q
q
q

Identificacin del problema


Descripcin matemtica del proceso
Formulacin del algoritmo
Programacin y verificacin del programa
Interpretacin de resultados

Finalizado este punto, es necesario desarrollar toda la documentacin del programa


tanto interna como externa.

Un programa informtico puede ser escrito utilizando los tres tipos siguientes de
estructuras de control:

SECUENCIAL
SELECTIVA
ITERATIVA
43

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
SECUENCIAL: Asignacin

La sentencia de asignacin sirve para almacenar un valor en una zona de memoria a


travs de un identificador de esa zona (nombre de la variable). La sentencia consta
de dos partes:
qLa primera es el identificador de la variable a cuya derecha se escribe el signo
igual (=).
qLa segunda parte es la expresin cuyo valor se quiere almacenar en la zona que
referencia el nombre de la variable. Esta propiedad permite sentencias del tipo I =
I +1, como se ha comentado anteriormente.

Ejemplo:
Dim Altura As Double, Base As Double, Area As Double
Altura = 12.30
Base = 10.80
Area = Base * Altura

44

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos

Reglas de conversin:

SECUENCIAL: Asignacin

Expresin
Variable

Integer

Double

Integer

Asignar

Truncar y asignar

Double

Poner punto y asignar

Asignar

45

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
SECUENCIAL: Lectura y escritura de datos

Los procedimientos de lectura y escritura se harn con la sentencia

Cells(Fila, Columna)

Hay que tener en cuenta que mientras las Filas en Excel se refieren mediante un
nmero, las columnas lo hacen con una letra. En este ltimo caso es necesario
establecer la siguiente equivalencia
A1; B2; C3; D4; E5; F6; G7; H8; I9; J10

o bien activar el estilo de referencia F1C1 (Opciones de Excel, Frmulas)


Ejemplo:

Entrada = Cells ( 2 , 7 )
Cells ( 3 , 9 ) = Salida
46

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
SECUENCIAL: Lectura y escritura de datos

Tambin se puede utilizar la instruccin InputBox (mensaje) que permite, como


respuesta, leer el valor de una variable desde teclado.

Ejemplo:

Valorvariable = InputBox (Introduzca un valor de la constante A)

SECUENCIAL: Activacin de hoja de clculo

La sentencia utilizada es la siguiente

Sheets(Nombre de la hoja de clculo).Select

Ejemplo:

Sheets("DEFINICION").Select

47

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Caso 6

Genrese una aplicacin EXCEL-VBA que defina las variables i y hinteger del tipo
Integer y las variables h, caja e idouble como del tipo Double.

48

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos

Caso 6

49

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos

Caso 6

50

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Estructura SELECTIVA

Una estructura es selectiva o alternativa cuando slo uno de los procesos


alternativos posibles se puede seleccionar tras el cumplimiento de alguna condicin
determinada.

Alternativa simple

Es aqulla en que la existencia o cumplimiento de la condicin implica la ruptura de


la secuencia y la ejecucin de una determinada accin. Se representa de la
siguiente manera:

If expresin lgica Then


Sentencia ejecutable 1
Sentencia ejecutable 2
.
Sentencia ejecutable n
End If

51
VBA permite la anidacin de tantos If como se quiera.

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Estructura SELECTIVA

Alternativa doble

Es aqulla que permite la eleccin entre dos acciones o tratamientos en funcin de


que se cumpla o no determinada condicin. Se representa de la siguiente manera:

If expresin lgica Then


Sentencia ejecutable 1
Sentencia ejecutable 2
.
Sentencia ejecutable n
Else
Sentencia ejecutable 1
Sentencia ejecutable 2
.
Sentencia ejecutable m
End If

52
Al igual que en el caso anterior no existe limitacin en el uso de anidamientos.

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Caso 7

Genrese una aplicacin EXCEL-VBA que permita comprobar y entindase el


funcionamiento de las estructuras alternativas.

53

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Caso 7

54

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Caso 7

55

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Caso 7
Explicar los resultados obtenidos.

56

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Estructuras ITERATIVAS
Estas estructuras permiten ejecutar una accin un nmero determinado de veces.
VBA contempla, entre otras, las siguientes estructuras:
qDo-While (mientras-hacer) en la que el procedimiento se repite siempre que se
cumpla una condicin. En caso contrario se entrara en lo que se conoce como un
bucle infinito.
qFor (para) en la que el procedimiento se repite un nmero determinado de veces.

Do-While

Do While condicin
Sentencia ejecutable 1
Sentencia ejecutable 2
.
Sentencia ejecutable n
Loop

Si una sentencia Do-While aparece dentro de una estructura alternativa, el rango


de la primera debe restringirse a la misma.
Si una sentencia If aparece dentro de una sentencia While, el final de If debe
57
estar contenido dentro del mismo.

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Caso 8
Genrese una aplicacin EXCEL-VBA que permita la suma de todos los nmeros
enteros a partir de 1 de forma que cuando esta suma supere el valor 1000 se
muestre el valor del nmero entero para el que ocurre esto.

58

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Caso 8

59

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Caso 8

60

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Estructuras ITERATIVAS

For / [Step] / Next

Esta sentencia conduce a bucles controlados por contador que se incrementa o


decrementa en un valor constante a partir de un valor inicial, despus de cada una
de las iteraciones del bucle.
For contador = principio To fin [ Step incremento/decremento]
Sentencia ejecutable 1
Sentencia ejecutable 2
.
Sentencia ejecutable n
Next contador

Por defecto, el incremento es siempre igual a uno.

qSi una sentencia For aparece dentro de otra For, Do-While If, su rango debe
estar comprendido dentro del bucle que lo contiene.
qLa variable contador nunca puede ser modificada dentro del bucle.
61

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos
Caso 9
Genrese una aplicacin EXCEL-VBA que permita la suma de los primeros 10
nmeros enteros en sentido creciente y decreciente.

62

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos

Caso 9

63

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VII.Estructuras bsicas de control y comandos

Caso 9

64

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


VIII.Algoritmos de utilidad

Algoritmo de burbuja

Este algoritmo es de gran utilidad cuando resulta necesario realizar la ordenacin


numrica creciente o decreciente de nmeros.

A(1)

A(2)

A(3)

A(4)

Inicial

Comp. 1

Comp. 2

Comp. 3

Comp. 4

Comp. 5

FIN

Dim I As Integer, J As Integer


Dim C As Double

For I = 1 To N-1
For J = I + 1 To N
If A( I ) < A ( J ) Then
C = A( I )
A( I ) = A( J )
A( J ) = C
End If
Next J
Next I

65

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

VIII.Algoritmos de utilidad
Sumatorios

S=

AI

I =1

Dim I As Integer
Dim Suma As Double

Suma = 0
For I = 1 To N
Suma = Suma + A( I )
Next I

66

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

VIII.Algoritmos de utilidad
Ejercicios
Desarrllese un cdigo que permita evaluar los siguientes sumatorios

N A
S = I
4
1
+
A
I =1
I
N

1
S = (1 + AI )
I =1
J =1 1 + AJ

67

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

VIII.Algoritmos de utilidad
Productorios

S = AI
I =1

Dim I As Integer
Dim Producto As Double

Producto = 1
For I = 1 To N
Producto = Producto * A( I )
Next I

68

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA

VIII.Algoritmos de utilidad
Ejercicios
Desarrllese un cdigo que permita evaluar los siguientes productorios
N

S = (1 + AI ) ( AI AJ )
I =1
J =1

(1 + AJ )
N

J =1

S =
N

I =1
2
( AI + (A j 1)
J =I

69

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


IX.Ejemplos
Ejemplo 1
Constryase una aplicacin EXCEL-VBA capaz de evaluar numricamente la serie:

1
S = i
i =0 2

70

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


IX.Ejemplos
Ejemplo 2
Constryase una aplicacin EXCEL-VBA capaz de resolver el siguiente sistema de
ecuaciones tridiagonal:
2 x 3x
=8
1

x1 + 2x 2 x 3

=2

4x 2 x 3 + x 4 = 9
2x 3 x 4 = 2
usando el algoritmo de Thomas, cuya secuencia es la siguiente:

c j a j , j 1 q j 1
a12

1.Calcular:

qj =
p1 =

a j , j a j , j 1 p j 1

c N a N , N 1 q N 1
a11


q N =

c1
a j , j +1
a N , N a N , N 1 p N 1

q1 =

pj =

a
a j , j a j , j 1 p j 1
11

2 a N 1
2.Para la ltima secuencia de descomposicin se tiene que x n = q n

x j1 = q j1 p j1x j
y, de forma recurrente, de j=n a 2
71 y la
Disese un mdulo que incluya la lectura de datos, el proceso de clculo
escritura de los resultados.

FUNDAMENTOS DE PROGRAMACIN EXCEL-VBA


IX.Ejemplos
Ejemplo 3
Constryase una aplicacin EXCEL-VBA que permita estimar la presin de vapor del
benceno a 25 C mediante la interpolacin con el mtodo de Lagrange empleando
los siguientes datos experimentales:
T(0C)

P0 (mm Hg)

-1.6

20

7.6

40

15.4

60

26.1

100

42.2

200

60.6

400

Este mtodo se basa en considerar un conjunto de n+1 puntos (xi,fi) donde i=0, 1,
2, , n. Para cualquier valor de x no coincidente con alguno de los valores xi,
puede evaluarse el correspondiente valor de f, que se denominar genricamente
n

como P(x), a partir de la siguiente frmula:


(x x j )

P( x ) = L k ( x )f ( x k ) L k ( x ) =
k =0

j= 0
j k
n

(x k x j )

j= 0
j k

72 y la
Disese un mdulo que incluya la lectura de datos, el proceso de clculo
escritura de los resultados.

PROGRAMACIN MODULAR
ndice
I. Introduccin
II. Programacin modular
III.Organizacin general de los mdulos en VBA
IV. Subrutinas
V. Funciones predefinidas en VBA
VI. Ejemplos

PROGRAMACIN MODULAR
I.Introduccin
Caractersticas fundamentales a la hora de disear un programa

qCorrecto/fiel: producir resultados requeridos.


qLegible: debe ser entendido por cualquier programador y ha de permitir
modificaciones fciles.
qModificable: el diseo nunca es definitivo y por ello su estructura debe
permitir modificaciones.
qDepurable: debe ser fcil la localizacin y correccin de errores.

PROGRAMACIN MODULAR
II.Programacin modular
Programacin modular
qConsiste en dividir el programa en mdulos
qHa de existir otro mdulo que controle y relacione todos los dems (mdulo raz)

Ventajas de la programacin modular

qLos programas son ms fciles de escribir y depurar


qLos programas son ms fciles de mantener y modificar
qLos programas son ms fciles de controlar
qPosibilita el uso repetitivo de las rutinas en el mismo o diferentes programas

Concepto de mdulo

En VBA un mdulo puede ser:


qUna funcin o conjunto de funciones
qUna subrutina o conjunto de subrutinas
Un mdulo ha de ser y actuar como una caja negra.

PROGRAMACIN MODULAR
II.Programacin modular
Programacin modular
Mdulo

Requisitos de la programacin modular

qEstablecimiento de un organigrama modular


qDescripcin del mdulo principal
qDescripcin de los mdulos bsicos o secundarios
qAtender a las normas de la programacin

Caractersticas

qEl organigrama modular se realiza mediante bloques.


qEl bloque principal debe ser claro y conciso.
qLos mdulos bsicos deben resolver partes bien definidas del problema: slo han
de tener un punto de entrada y otro de salida.
qSi un mdulo es complejo de resolver conviene que se subdivida en submdulos4

PROGRAMACIN MODULAR
II.Programacin modular
Programacin modular

Tcnicas
qEstudio de las especificaciones del problema
qCodificacin de cada mdulo
qPruebas parciales con cada uno de los mdulos componentes
qPrueba final con los mdulos enlazados
La programacin modular se basa en el diseo descendente (top-down) que permite
comprobar el funcionamiento de cada mdulo mediante mdulos ya comprobados.
Mdulo Raz

Mdulo 1

Mdulo 5

Mdulo 2

Mdulo 3

Mdulo 6

Mdulo 7

Mdulo 8
Mdulo 9

Mdulo 4

El montaje de la red de mdulos


se hace en modo ascendente
(bottom-up) por lo que un
programador puede estar
escribiendo un mdulo mientras
otro hace otro.
5

PROGRAMACIN MODULAR
II.Programacin modular
Programacin modular

Criterios de modularizacin

qCada mdulo debe corresponder a una funcin lgica perfectamente diferenciada.


qEl tamao de cada mdulo es variable. Deben ser pequeos para que sean claros y
de poca complejidad.
qEvitar variable externas (globales).
qNo utilizar demasiados niveles de modularizacin para evitar complejidad en la red.
qEstructura de caja negra para cada mdulo (la salida debe ser funcin exclusiva de
la entrada).

PROGRAMACIN MODULAR
III.Organizacin general de los mdulos en VBA
Secciones (en orden de aparicin)

Seccin de declaracin de opciones


Option Explicit
Option Base 1
Seccin de declaracin de variables pblicas para el resto de mdulos y privadas
para este mdulo
Public a As Integer
Private b As Double
Subrutinas (Pblicas o Privadas)

Estas a su vez se organizan de la siguiente manera:


La cabecera. En ella se incluye la palabra reservada Sub, el
nombre y los parmetros formales.
Las declaraciones. Se declaran (mediante Dim) cuantas
variables locales se precisan para la gestin de la tarea que
el procedimiento tiene encomendada
El cuerpo. Se incluyen en l las sentencias que consiguen la
ejecucin de las tareas previstas.
7
El final. Est compuesto por la sentencia: End Sub

PROGRAMACIN MODULAR
IV.Subrutinas
Un procedimiento Sub es un bloque de cdigo que se ejecuta como respuesta a un
evento.

Sintaxis
[Private\Public] Sub nombreProcedimiento (argumentos)
instrucciones
End Sub

qCuando una subrutina se declara Public (es la declaracin por defecto), sta puede
ser llamada desde cualquier parte de la aplicacin. Si se declara Private, slo puede
ser llamada desde procedimientos definidos en el mismo mdulo.
qCada vez que se llama al procedimiento se ejecutan las instrucciones que hay
entre Sub y End Sub.
qLa llamada se produce mediante la sentencia Call. Cada vez que se llama a un
procedimiento se establece una correspondencia entre los parmetros de cada
llamada y los formales del procedimiento.
qLos argumentos de un procedimiento son como las declaraciones de variables; se
declaran variables que se pasan desde el procedimiento que hace la llamada.
qSe pueden pasar matrices completas. Para ello slo es preciso que, tanto en la
8
llamada como en la lista de parmetros formales de la cabecera, los identificadores
de las matrices vayan seguidos de una pareja de parntesis.

PROGRAMACIN MODULAR
IV.Subrutinas
Ejemplo
Dim I as Integer, S as Double, A() as Double
.
ReDim A(I)

Call Prueba (I, S, A())

Public Sub Prueba (J as Integer, S as Double, B() as Double)

End Sub
El nmero de argumentos ha de ser el mismo (3); el tipo ha de coincidir uno a uno
(variable-Integer, variable-Double, matriz-Double); el nombre no tiene porque coincidir
(se hace referencia a posiciones de memoria diferentes: S del mdulo raiz y S de
Prueba); en el caso de matrices, la matriz de la subrutina recibe las dimensiones y
nmero de elementos de la matriz definida en el mdulo raz.
Entrada en Prueba: JI, SS, B()A()
Salida de Prueba: IJ, SS, A()B()
9

PROGRAMACIN MODULAR
IV.Subrutinas
Caso 10

Generar una aplicacin EXCEL-VBA que permita calcular la hipotenusa de un


tringulo conocidas las longitudes de los catetos. El clculo ha de realizarse en un
mdulo distinto en el que se realiza la lectura de datos y la posterior escritura de
los resultados.

10

PROGRAMACIN MODULAR
IV.Subrutinas

Caso 10

11

PROGRAMACIN MODULAR
IV.Subrutinas

Caso 10

12

PROGRAMACIN MODULAR
IV.Subrutinas

Caso 10

13

PROGRAMACIN MODULAR
IV.Subrutinas
Caso 11
Generar una aplicacin EXCEL-VBA que permita transformar un vector A en otro B
i
de forma que:

B(i ) = A(i ) * Sen(


)
100

El clculo ha de realizarse en un mdulo distinto al de lectura de datos y al de la


posterior escritura de los resultados.

14

PROGRAMACIN MODULAR
IV.Subrutinas

Caso 11

15

PROGRAMACIN MODULAR
IV.Subrutinas

Caso 11

16

PROGRAMACIN MODULAR
IV.Subrutinas

Caso 11

17

PROGRAMACIN MODULAR
V.Funciones predefinidas en VBA
Una funcin es un subprograma que recibe como argumento o parmetros datos de
tipo numrico o no numrico y devuelve un resultado. Su formato es:

Nombre de Funcin (argumento(s))

Ln(x )
log n (x ) =
Ln(n )

Sintaxis

Argumentos

Valor devuelto

Abs (a)
Atn (a)
Cdbl (a)
Cint (a)

Constante, variable o expresin

Valor absoluto
Arco tangente
Conversin a Double
Redondea al entero ms
prximo

Cint (a)
Clng (a)
Cos (a)
Csng (a)
Eof (a)
Exp (a)
Fix (a)
Int (a)

Conversin a nteger
Conversin a Long
Coseno
Conversin a Single
Final de fichero
Exponencial
Trunca un nmero real
Devuelve el entero
inferior al arg.

Log (a)
Rnd
Sgn (a)

Logaritmo neperiano
Nmero aleatorio [0,1]
-1 si el arg. es negativo
0 si el arg. es cero
1 si el arg. es positivo

Sin (a)
Sqr(a)
Tan (a)

Seno
Raz cuadrada
18
Tangente

PROGRAMACIN MODULAR
V.Funciones predefinidas en VBA

Reglas de uso

qEl argumento se debe presentar entre


parntesis
qE l argumento puede ser cualquier
variable, expresin o constante
qE l a r g u m e n t o d e l a s f u n c i o n e s
trigonomtricas se debe dar en radianes

Sintaxis
Asc (cadena)

Argumentos
Cadena

Chr$ (exp.
numrica)

Nmero

Date$
Lcase$ (cadena)
Left$(cadena,
nmero)

Cadena
Cadena y entero

Len (cadena)
Right$ (cadena,
nmero)

Cadena
Cadena y entero

Str$ (exp. numrica)

Nmero

Time$
Timer

Ucase$ (cadena)
Val (cadena)

Cadena
Cadena

Valor devuelto
Devuelve cdigo
ASCII del primer
carcter
Devuelve el carcter
ASCII corresp. al
nmero
Fecha del sistema
Transf. en maysculas
Devuelve subcadena
formada por tantos
carecteres como
indique el segundo
argumento empezando
desde el primero
Longitud de la cadena
Igual que Left$ pero
empezando por el
ltimo
Devuelve cadena de
caracteres
Hora del sistema
Nmero de segundos
transcurridos desde la
medianoche.
Transf. en minsculas
Valor de la cadena si
se dispone de caracteres que permiten la
19 si no,
transformacin,
devuelve cero

PROGRAMACIN MODULAR
VI.Ejemplos
Ejemplo 1
Constryase una aplicacin EXCEL-VBA que permita realizar la suma y
producto de dos nmeros complejos. Cada una de estas operaciones ha de
estar codificadas en subrutinas de tipo pblico escritas en sendos mdulos.
Considrese los siguientes nmeros complejos:

z1 = 7 5i z 2 = 1 + 3i

20

PROGRAMACIN MODULAR
VI.Ejemplos
Ejemplo 2
Constryase una aplicacin EXCEL-VBA que permita resolver sistemas de ecuaciones
diferenciales ordinarias de primer orden mediante el mtodo de Euler. Se han de
codificar dos mdulos: uno que incluya el algoritmo de Euler para la resolucin de un
nmero indefinido de ecuaciones diferenciales ordinarias y otro en el que se defina las
funciones que se desean integrar. El procedimiento operativo parte del conocimiento
de las condiciones iniciales para t=0 y consta de las siguientes etapas:
1. Conocidos

y i ( t = 0) i = 1,2,..., N y tf, se supone un valor de h. Hacer t=0

2. Calcular

y i ( t + h ) = y i ( t ) + hf i (t; y1 ( t ), y 2 ( t ),..., y N ( t ) )

3. Si

t tf

entonces finalizar el proceso sino

Considrese el siguiente ejemplo:

dy1
dt
dy 2
dt

t t +h

y volver a 2.

y
10 y1 y2 exp 1 y (t = 0) = 1
1
100


=
2
y2 (t = 0) = 1
1+ t

y1 t F = 0.5
y1 y2 exp

100 h = 10 6

1+ t2

21

DESCRIPCIN DE MDULOS Y SU MANEJO


ndice

I.

Operaciones matriciales y resolucin de ecuaciones algebraicas

II.

Interpolacin numrica

III. Integracin numrica de funciones y datos discretos


IV. Diferenciacin y clculo de races de funciones
V.

Modelizacin de datos experimentales

VI. Resolucin de sistemas de ecuaciones no lineales


VII. Ecuaciones diferenciales ordinarias
VIII.Ejemplos

DESCRIPCIN DE MDULOS Y SU MANEJO


I.Operaciones matriciales y resolucin de ecuaciones algebraicas

Nombre del mdulo

CONSTMAT

Operacin que realiza

Multiplica una matriz por una constante

Subrutina de acceso

CONSMAT

Argumentos de entrada

KF (Filas de la matriz)
KCOL (Columnas de la matriz)
P (Constante)

Argumentos de salida
Argumentos de entrada/salida

A() (Matriz original y resultante)

Subrutinas privadas del mdulo


Subrutinas pblicas que requiere
Definicin subrutina

Public Sub CONSMAT (KF As Integer, KCOL As


Integer, P As Double, A() As Double)

DESCRIPCIN DE MDULOS Y SU MANEJO


I.Operaciones matriciales y resolucin de ecuaciones algebraicas

Nombre del mdulo

DETMAT

Operacin que realiza

Determinante de una matriz

Subrutina de acceso

DETERMAT

Argumentos de entrada

N (Orden de la matriz)
A() (Matriz)

Argumentos de salida

DETER (Valor del determinante)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub DETERMAT (N As Integer, A() As


Double, DETER As Double)

DESCRIPCIN DE MDULOS Y SU MANEJO


I.Operaciones matriciales y resolucin de ecuaciones algebraicas

Nombre del mdulo

INVMATR

Operacin que realiza

Inversin de una matriz

Subrutina de acceso

INVMAT

Argumentos de entrada

K (Orden de la matriz)
A() (Matriz)

Argumentos de salida

AY2() (Matriz A invertida)

Argumentos de entrada/salida
Subrutinas privadas del mdulo

RSIM (Resolucin de un SEL mediante


descomposicin LU)

Subrutinas pblicas que requiere


Definicin subrutina

Public Sub INVMAT (K As Integer, A() As


Double, AY2() As Double)

DESCRIPCIN DE MDULOS Y SU MANEJO


I.Operaciones matriciales y resolucin de ecuaciones algebraicas

Nombre del mdulo

TRANSMT

Operacin que realiza

Transposicin de una matriz

Subrutina de acceso

TRANSMAT

Argumentos de entrada

KF (Filas de la matriz)
KCOL (Columnas de la matriz)
A() (Matriz)

Argumentos de salida

AY1() (Transpuesta de la matriz A)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub TRANSMAT (KF As Integer, KCOL


As Integer, A() As Double, AY1() As Double)

DESCRIPCIN DE MDULOS Y SU MANEJO


I.Operaciones matriciales y resolucin de ecuaciones algebraicas

Nombre del mdulo

PRDMAT

Operacin que realiza

Multiplica dos matrices (A x B)

Subrutina de acceso

PRODMAT

Argumentos de entrada

KF1 (Filas de la primera matriz)


KC1 (Columnas de la primera matriz)
KC2 (Columnas de la segunda matriz)
A() (Primera matriz)
B() (Segunda matriz)

Argumentos de salida

C() (Matriz resultado de la multiplicacin)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub PRODMAT (KF1 As Integer, KC1 As


Integer, KC2 As Integer, A() As Double, B() As
Double, C() As Double)

DESCRIPCIN DE MDULOS Y SU MANEJO


I.Operaciones matriciales y resolucin de ecuaciones algebraicas

Nombre del mdulo

SMMAT

Operacin que realiza

Suma dos matrices

Subrutina de acceso

SUMMAT

Argumentos de entrada

KF (Filas)
KCOL (Columnas)
A() (Primera matriz)
B() (Segunda matriz)

Argumentos de salida

C() (Matriz suma)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub SUMMAT (KF As Integer, KCOL As


Integer, A() As Double, B() As Double, C() As
Double)
7

DESCRIPCIN DE MDULOS Y SU MANEJO


I.Operaciones matriciales y resolucin de ecuaciones algebraicas

Nombre del mdulo

LUDESCOMP

Operacin que realiza

Descomposicin LU

Subrutina de acceso

LUDEC

Argumentos de entrada

N (Orden de la matriz)
A() (Matriz)

Argumentos de salida

AL() (Matriz L)
AU() (Matriz U)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub LUDEC (N As Integer, A() As Double,


() As Double, AU() As Double)

DESCRIPCIN DE MDULOS Y SU MANEJO


I.Operaciones matriciales y resolucin de ecuaciones algebraicas
Nombre del mdulo

RSELU

Operacin que realiza

Resuelve SEL mediante la descomposicin LU

Subrutina de acceso

RSELLU

Argumentos de entrada

N (Nmero de ecuaciones)
A() (Matriz de coeficientes)
G() (Matriz de trminos independientes)

Argumentos de salida

ASIG () (Matriz de resultados)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub RSELLU (N As Integer, A() As


Double, G() As Double, ASIG() As Double)

DESCRIPCIN DE MDULOS Y SU MANEJO


I.Operaciones matriciales y resolucin de ecuaciones algebraicas

Nombre del mdulo

RSSEL

Operacin que realiza

Resuelve SEL mediante el algoritmo de


eliminacin gaussiana

Subrutina de acceso

RESSEL

Argumentos de entrada

N (Nmero de ecuaciones)
A() (Matriz de coeficientes)
G() (Matriz de trminos independientes)

Argumentos de salida

ASIG () (Matriz de resultados)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub RESSEL (NN As Integer, A() As


Double, G() As Double, ASIG() As Double)
10

DESCRIPCIN DE MDULOS Y SU MANEJO


I.Operaciones matriciales y resolucin de ecuaciones algebraicas

Nombre del mdulo

THMAS

Operacin que realiza

Resuelve SEL tridiagonales mediante el algoritmo


de Thomas

Subrutina de acceso

THOMAS

Argumentos de entrada

N (Nmero de ecuaciones)
CF() (Matriz de coeficientes)
D() (Matriz de trminos independientes)

Argumentos de salida

X () (Matriz de resultados)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub THOMAS (N As Integer, CF() As


Double, D() As Double, X() As Double)

11

DESCRIPCIN DE MDULOS Y SU MANEJO


II.Interpolacin numrica
Nombre del mdulo

LAGINTERP

Operacin que realiza

Interpolacin mediante el mtodo de Lagrange

Subrutina de acceso

LAGRANGE

Argumentos de entrada

N (Nmero de datos)
X() (Variables independientes)
F() (Variables dependientes)
XCAL (Variable cuya ordenada se desea
interpolar)

Argumentos de salida

FCAL (Valor interpolado)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub LAGRANGE (N As Integer, X() As


Double, F() As Double,

XCAL As Double,

FCAL As Double)

12

DESCRIPCIN DE MDULOS Y SU MANEJO


II.Interpolacin numrica

Nombre del mdulo

SPLINESCUB

Operacin que realiza

Interpolacin mediante el mtodo de los Splines


Cbicos

Subrutina de acceso

SPLINES3

Argumentos de entrada

N (Nmero de datos)
X() (Variables independientes)
Y() (Variables dependientes)
NDAT (Nmero de datos a interpolar)
XDAT() (Variables independientes a interpolar)

Argumentos de salida

FDAT () (Valores interpolados)

Argumentos de entrada/salida
Subrutinas privadas del mdulo

THSQ (Resuelve SEL mediante Al. de Thomas)

Subrutinas pblicas que requiere


Definicin subrutina

Public Sub SPLINES3 (N As Integer, X() As


Double, Y() As Double, NDAT As Integer,
XDAT() As Double, FDAT() As Double)

13

DESCRIPCIN DE MDULOS Y SU MANEJO


III.Integracin numrica de funciones y datos discretos
Nombre del mdulo

ROMBINT

Operacin que realiza

Integracin de funciones mediante el mtodo de


Romberg

Subrutina de acceso

ROMBERG

Argumentos de entrada

A (Lmite inferior)
B (Lmite superior)

Argumentos de salida

VALINT (Integral)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere

FUNINT (Definicin de funcin subintegral)

Definicin subrutina

Public Sub ROMBERG (A As Double, B As


Double, VALINT As Double)

14

DESCRIPCIN DE MDULOS Y SU MANEJO


III.Integracin numrica de funciones y datos discretos
Nombre del mdulo

SIMPSONINT

Operacin que realiza

Integracin de funciones mediante el mtodo de


Simpson

Subrutina de acceso

SIMPSON

Argumentos de entrada

A (Lmite inferior)
B (Lmite superior)
N (Intervalos de integracin)

Argumentos de salida

VALINT (Integral)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere

FUNINT (Definicin de funcin subintegral)

Definicin subrutina

Public Sub SIMPSON (A As Double, B As


Double, N As Integer, VALINT As Double)

15

DESCRIPCIN DE MDULOS Y SU MANEJO


III.Integracin numrica de funciones y datos discretos

Nombre del mdulo

FUNINTEG

Operacin que realiza

Definicin de la funcin que se desea integrar

Subrutina de acceso

FUNINT

Argumentos de entrada

X (Variable sobre la que se define la integracin)

Argumentos de salida

F (Funcin subintegral)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub FUNINT (X As Double, F As Double)

16

DESCRIPCIN DE MDULOS Y SU MANEJO


III.Integracin numrica de funciones y datos discretos
Nombre del mdulo

INTDISCRE

Operacin que realiza

Integracin de datos discretos

Subrutina de acceso

INTDATDIC

Argumentos de entrada

N (Nmero de datos)
X() (Variable independiente)
F() (Variable dependiente)

Argumentos de salida

VALINT (Integral)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub INTDATDIC (N As Integer, X() As


Double, F() As Double, VALINT As Double)

17

DESCRIPCIN DE MDULOS Y SU MANEJO


IV.Diferenciacin y clculo de races de funciones

Nombre del mdulo

FUNDERUNA

Operacin que realiza

Clculo de la derivada numrica de una funcin

Subrutina de acceso

FUNDER1

Argumentos de entrada

X(Variable independiente)

Argumentos de salida

F (Valor de la funcin en X)
FDER (Derivada)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere

FUND1 (Definicin de la funcin)

Definicin subrutina

Public Sub FUNDER1 (X As Double, F As


Double, FDER As Double)

18

DESCRIPCIN DE MDULOS Y SU MANEJO


IV.Diferenciacin y clculo de races de funciones

Nombre del mdulo

FUNDEUNA

Operacin que realiza

Definicin de una funcin

Subrutina de acceso

FUND1

Argumentos de entrada

X (Variable independiente)

Argumentos de salida

F (Funcin)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub FUND1 (X As Double, F As Double)

19

DESCRIPCIN DE MDULOS Y SU MANEJO


IV.Diferenciacin y clculo de races de funciones
Nombre del mdulo

FALPOSICION

Operacin que realiza

Clculo de la raz de una funcin con el mtodo


de la falsa posicin

Subrutina de acceso

FALPOS

Argumentos de entrada

X0 (Aproximacin inicial)
X1 (Aproximacin inicial)

Argumentos de salida

F (Valor de la funcin en X)
X (Raz de la funcin)
N (Iteraciones)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere FUNCION1 (Definicin de la funcin)
Definicin subrutina

Public Sub FALPOS (X0 As Double, X1 As


Double, F As Double, X As Double, N As
Integer)
20

DESCRIPCIN DE MDULOS Y SU MANEJO


IV.Diferenciacin y clculo de races de funciones
Nombre del mdulo

NEW1F

Operacin que realiza

Clculo de la raz de una funcin con el mtodo


de Newton

Subrutina de acceso

NEWTON

Argumentos de entrada
Argumentos de salida

FF (Valor de la funcin en XX)


N (Iteraciones)

Argumentos de entrada/salida

XX (Aproximacin inicial y raz)

Subrutinas privadas del mdulo

FUND1 (Clculo de la derivada de la funcin)

Subrutinas pblicas que requiere

FUNCION1 (Definicin de la funcin)

Definicin subrutina

Public Sub (XX As Double, FF As Double, N As


Integer)

21

DESCRIPCIN DE MDULOS Y SU MANEJO


IV.Diferenciacin y clculo de races de funciones

Nombre del mdulo

FUNUNA

Operacin que realiza

Definicin de una funcin

Subrutina de acceso

FUNCION1

Argumentos de entrada

X (Variable independiente)

Argumentos de salida

F (Funcin)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub FUNCION1 (X As Double, F As


Double)

22

DESCRIPCIN DE MDULOS Y SU MANEJO


IV.Diferenciacin y clculo de races de funciones
Nombre del mdulo

TODASRAICES

Operacin que realiza

Calcula todas las races de un polinomio

Subrutina de acceso

TODRPOL

Argumentos de entrada

N (Orden del polinomio)


A() (Coeficientes del polinomio)

Argumentos de salida

PREAL() (Parte real de las races)


PIMAG() (Parte imaginaria de las races)

Argumentos de entrada/salida
Subrutinas privadas del mdulo

SUMCOMP (Suma de complejos)


PRODCOMP (Producto de complejos)
DIVCOMP (Divisin de complejos)
POTCOMP (Potenciacin de complejos)

Subrutinas pblicas que requiere


Definicin subrutina

Public Sub TODRPOL (N As Integer, A() As


Double,

PREAL() As

PIMAG() As Double)

Double,
23

DESCRIPCIN DE MDULOS Y SU MANEJO


IV.Diferenciacin y clculo de races de funciones
Nombre del mdulo

FADEEV

Operacin que realiza

Clculo de valores propios e inversa de una


matriz

Subrutina de acceso

FADLEV

Argumentos de entrada

K (Orden de la matriz)
A() (Matriz)

Argumentos de salida

PREAL() (Parte real del valor propio)


PIMAG() (Parte imaginaria del valor propio)
AY2() (Inversa de la matriz)

Argumentos de entrada/salida
Subrutinas privadas del

TODRPOLF (Clculo de todas las races de un

mdulo

polinomio)
SUMCOMP (Suma de complejos)
PRODCOMP (Producto de complejos)
DIVCOMP (Divisin de complejos)
POTCOMP (Potenciacin de complejos)
PRODMATG (Producto de matrices)

Subrutinas pblicas que


requiere
Definicin subrutina

Public Sub FADLEV (K As Integer, A() As


Double, PREAL() As Double, PIMAG() As
Double, AY2() As Double)

24

DESCRIPCIN DE MDULOS Y SU MANEJO


V.Modelizacin de datos experimentales
Nombre del mdulo

RGLIN

Operacin que realiza

Regresin lineal

Subrutina de acceso

REGLIN

Argumentos de entrada

N (Nmero de datos)
X() (Variable independiente)
Y() (Variable dependiente)

Argumentos de salida

F() (Estimacin de la variable dependiente)


A (Ordenada en el origen)
B (Pendiente)
R (Coeficiente de correlacin)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub REGLIN (N As Integer, X() As


Double, Y() As Double, F() As Double, A As
Double, B As Double, R As Double)

25

DESCRIPCIN DE MDULOS Y SU MANEJO


V.Modelizacin de datos experimentales

26

DESCRIPCIN DE MDULOS Y SU MANEJO


V.Modelizacin de datos experimentales
Nombre del mdulo
Argumentos de entrada/salida

MARQUARDT

B() (Estimacin inicial y valor final de los


parmetros)
Subrutinas privadas del mdulo ESTTF (Clculo de estadsticas de la regresin)
CALX2 (Clculo de X2)
FMARDER (Clculo de derivados numricas)
RSMQ (Resolucin de SEL mediante LU)
INVMAT (Resolucin de la inversa de matrices)
Ficheros que requiere
ESTAD.MQD (Estadsticos t y F)
Subrutinas pblicas que requiere FUNMAR (Definicin de funcin/es a ajustar)
Definicin subrutina
Public Sub MARDEF(dcrit As Integer, M As
Integer, K As Integer, NX As Integer, N As Integer,
NV As Integer, B() As Double, W() As Double,
BMIN() As Double, BMAX() As Double, Y() As
Double, X() As Double, F() As Double, X2 As
Double, ICON As Integer, FTEST As Double, FC
As Double, TC As Double, TEXT() As Double,
BINF() As Double, BSUP() As Double,
CORMAT() As Double)
27

DESCRIPCIN DE MDULOS Y SU MANEJO


V.Modelizacin de datos experimentales
Nombre del mdulo

CALFMARQ

Operacin que realiza

Definicin de la funcin cuyos parmetros se


ajustan por regresin no lineal

Subrutinas de acceso

FUNMAR y DERFUNC

Argumentos de entrada

M (Nmero de datos)
K (Nmero de parmetros)
NX (Nmero de variables independientes)
N (Nmero de funciones a ajustar)
NV (Nmero de funciones totales)
B() (Estimacin inicial de los parmetros)
Y() (Variable/s dependiente/s)

Argumentos de salida

X() (Variables/s independiente/s)


F() (Estimacin de la/s variable/s dependiente/s)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere

Definicin subrutina

Public Sub FUNMAR (M As Integer, K As


Integer, NX As Integer, N As Integer, NV As
Integer, B() As Double, Y() As Double, X() As
Double, F() As Double)

28

DESCRIPCIN DE MDULOS Y SU MANEJO


VI.Resolucin de sistemas de ecuaciones no lineales
Nombre del mdulo

MARQUARDNL

Operacin que realiza

Resolucin de sistemas de ecuaciones no lineales


basada en el Algoritmo de Marquardt

Subrutina de acceso
Argumentos de entrada

Argumentos de salida

Argumentos de entrada/salida

MARQNL
K (Nmero de ecuaciones)
XMIN() (Valor mnimo de las incgnitas)
XMAX() (Valor mximo de las incgnitas)
ICON (Iteraciones)
F() (Valor de las funciones en la ltima iteracin)
X2 (Valor de la funcin objetivo en la ltima
iteracin)
X() (Estimacin inicial y valor final de las
incgnitas)

Subrutinas privadas del mdulo

RSELLU (Resolucin de SEL mediante LU)


CALX2NL (Clculo de X2)
FNLIN (Clculo de derivados numricas)

Subrutinas pblicas que requiere

NOLINF (Definicin de funciones)

Definicin subrutina

Public Sub MARQNL (K As Integer, X() As Double,


XMIN() As Double, XMAX() As Double, ICON As
Integer, F() As Double, X2 As Double)

29

DESCRIPCIN DE MDULOS Y SU MANEJO


VI.Resolucin de sistemas de ecuaciones no lineales
Nombre del mdulo

NWRAPH

Operacin que realiza

Resolucin de sistemas de ecuaciones no


lineales basada mtodo de Newton-Raphson

Subrutina de acceso
Argumentos de entrada
Argumentos de salida
Argumentos de entrada/salida

NEWRAPH
K (Nmero de ecuaciones)
XMIN() (Valor mnimo de las incgnitas)
XMAX() (Valor mximo de las incgnitas)
F() (Valor de las funciones en la ltima
iteracin)
ICON (Iteraciones)
X() (Estimacin inicial y valor final de las
incgnitas)

Subrutinas privadas del mdulo RSELLU (Resolucin de SEL mediante LU)


FNLNEW(Clculo de derivados numricas)
Subrutinas pblicas que

NOLINF (Definicin de funciones)

requiere
Definicin subrutina

Public Sub NEWRAPH (K As Integer, X() As


Double, F() As Double, XMIN() As Double,
XMAX() As Double, ICON As Integer)

30

DESCRIPCIN DE MDULOS Y SU MANEJO


VI.Resolucin de sistemas de ecuaciones no lineales

Nombre del mdulo

NOLNF

Operacin que realiza

Definicin del sistema de ecuaciones no lineales

Subrutina de acceso

NOLINF
K (Nmero de ecuaciones)
X() (Valor de las incgnitas)
F() (Valor de cada una de las ecuaciones)

Argumentos de entrada
Argumentos de salida
Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub NOLINF (K As Integer, X() As


Double, F() As Double)

31

DESCRIPCIN DE MDULOS Y SU MANEJO


VII.Ecuaciones diferenciales ordinarias
Nombre del mdulo

RKFEHLBERG

Operacin que realiza

Resolucin de sistemas de ecuaciones


diferenciales ordinarias basada en el mtodo de
Runge-Kutta-Fehlberg adaptativo

Subrutina de acceso

Argumentos de salida

RKFBERG
NV (Nmero de ecuaciones)
H1 (Paso de integracin inicial)
XF (Punto final de integracin)
IREC (Nmero de puntos seleccionados)
XREC() (Variable independiente en puntos
seleccionados)
FREC () (Variables dependientes en puntos
seleccionados)
PASOS (Pasos de integracin)

Argumentos de entrada/salida

F() (Variables dependientes en 0 y XF)

Subrutinas privadas del mdulo

RKF (Mtodo de Runge-Kutta-Fehlberg)

Argumentos de entrada

Subrutinas pblicas que requiere ECDIF (Definicin de ecuaciones diferenciales)


Definicin subrutina

Public Sub RKFBERG (NV As Integer, H1 As


Double, XF As Double, F() As Double, IREC As
Integer, XREC() As Double, FREC() As Double,
PASOS As Long)

32

DESCRIPCIN DE MDULOS Y SU MANEJO


VII.Ecuaciones diferenciales ordinarias
Nombre del mdulo

BADERDEUF

Operacin que realiza

Resolucin de sistemas de ecuaciones diferenciales ordinarias basada en el mtodo de


Bader Deufhard

Subrutina de acceso
Argumentos de entrada
Argumentos de salida

BDEUF
NV (Nmero de ecuaciones)
H1 (Paso de integracin inicial)
XF (Punto final de integracin)
IREC (Nmero de puntos seleccionados)
XREC() (Variable independiente en puntos seleccionados)
FREC () (Variables dependientes en puntos seleccionados)
PASOS (Pasos de integracin)

Argumentos de entrada/salida

F() (Variables dependientes en 0 y XF)

Subrutinas privadas del mdulo

MBS (Mtodo de Bader Deufhard)


INVMAT (Inversa de matrices)
RSIM (Descomposicin LU)
PRODMAT (Producto de matrices)
SUMMAT (Suma de matrices)
CONSTMAT (Producto de una constante por una matriz)
FUNX (Clculo de derivadas de ED respecto a x)
FUNGE (Clculo de derivadas de ED)

Subrutinas pblicas que requiere

ECDIF (Definicin de ecuaciones diferenciales)

Definicin subrutina

Public Sub BDEUF (NV As Integer, H1 As Double, XF As Double, F() As Double, IREC
As Integer, XREC() As Double, FREC() As Double, PASOS As Long)

33

DESCRIPCIN DE MDULOS Y SU MANEJO


VII.Ecuaciones diferenciales ordinarias
Nombre del mdulo

RUNGEKUTT

Operacin que realiza

Resolucin de sistemas de ecuaciones


diferenciales ordinarias basada en el mtodo de
Runge-Kutta de cuarto orden adaptativo

Subrutina de acceso

Argumentos de salida

RUNKUTT
NV (Nmero de ecuaciones)
H1 (Paso de integracin inicial)
XF (Punto final de integracin)
IREC (Nmero de puntos seleccionados)
XREC() (Variable independiente en puntos
seleccionados)
FREC () (Variables dependientes en puntos
seleccionados)
PASOS (Pasos de integracin)

Argumentos de entrada/salida

F() (Variables dependientes en 0 y XF)

Subrutinas privadas del mdulo

RK4 (Mtodo de Runge-Kutta)

Subrutinas pblicas que requiere

ECDIF (Definicin de ecuaciones diferenciales)

Definicin subrutina

Public Sub RUNKUTT (NV As Integer, H1 As

Argumentos de entrada

Double, XF As Double, F() As Double, IREC As


Integer, XREC() As Double, FREC() As Double,
PASOS As Long)

34

DESCRIPCIN DE MDULOS Y SU MANEJO


VII.Ecuaciones diferenciales ordinarias
Nombre del mdulo

ECDIFC

Operacin que realiza

Definicin sistemas de ecuaciones diferenciales

Subrutina de acceso

ECDIF
NV (Nmero de ecuaciones)
H (Paso de integracin)
XH (Variable independiente)
FX() (Variable dependiente)
ED() (Valor de las ecuaciones diferenciales)

Argumentos de entrada

Argumentos de salida
Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub ECDIF (NV As Integer, H As Double,


XH As Double, FX() As Double, ED() As Double)

35

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 12
Escribir una aplicacin que permita resolver mediante el mtodo de NewtonRaphson el siguiente sistema de ecuaciones no lineales:

3
2

f 1 ( x, y ) = x y + 2 y x 3

Emplese como suposicin inicial x= 0.5 y y= 1.5.

f ( x, y ) = ( x + y ) y + (1 + y ) x 4

36

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 12
Mdulos de clculo necesarios
Nombre del mdulo

NWRAPH

Operacin que realiza

Resolucin de sistemas de ecuaciones no lineales


basada mtodo de Newton-Raphson

Subrutina de acceso
Argumentos de entrada

Argumentos de salida

Argumentos de entrada/salida

NEWRAPH
K (Nmero de ecuaciones)
XMIN() (Valor mnimo de las incgnitas)
XMAX() (Valor mximo de las incgnitas)
F() (Valor de las funciones en la ltima iteracin)
ICON (Iteraciones)
X() (Estimacin inicial y valor final de las
incgnitas)

Subrutinas privadas del mdulo

RSELLU (Resolucin de SEL mediante LU)


FNLNEW(Clculo de derivados numricas)

Subrutinas pblicas que requiere NOLINF (Definicin de funciones)

Definicin subrutina

Public Sub NEWRAPH (K As Integer, X() As


Double, F() As Double, XMIN() As Double,
XMAX() As Double, ICON As Integer)

37

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 12
Mdulos de clculo necesarios
Nombre del mdulo

NOLNF

Operacin que realiza

Definicin del sistema de ecuaciones no lineales

Subrutina de acceso

NOLINF
K (Nmero de ecuaciones)
X() (Valor de las incgnitas)
F() (Valor de cada una de las ecuaciones)

Argumentos de entrada
Argumentos de salida
Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub NOLINF (K As Integer, X() As


Double, F() As Double)

38

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 12
Diseo modular

39

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 12
Solucin

40

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 12
Solucin

41

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 12
Solucin

42

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos

Caso 12
Solucin

43

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 12
Solucin

44

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 13
Teniendo en cuenta los siguientes datos obtenidos experimentalmente:
x

11

15

y(x)

0.368

0.572

0.675

0.793

0.906

1.042

1.176

desarrollar una aplicacin informtica que permita realizar la integracin


numrica entre los lmites 1.5 y 13.5. Con objeto de aumentar la precisin de
los resultados se recomienda dividir el intervalo completo de integracin en 20
subintervalos del mismo tamao.

45

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 13
Mdulos de clculo necesarios
Nombre del mdulo

LAGINTERP

Operacin que realiza

Interpolacin mediante el mtodo de Lagrange

Subrutina de acceso

LAGRANGE

Argumentos de entrada

N (Nmero de datos)
X() (Variables independientes)
F() (Variables dependientes)
XCAL (Variable cuya ordenada se desea
interpolar)

Argumentos de salida

FCAL (Valor interpolado)

Definicin subrutina

Public Sub LAGRANGE (N As Integer, x() As


Double, f() As Double, XCAL As Double, FCAL
As Double)

46

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 13
Mdulos de clculo necesarios
Nombre del mdulo

INTDISCRE

Operacin que realiza

Integracin de datos discretos

Subrutina de acceso

INTDATDIC

Argumentos de entrada

N (Nmero de datos)
X() (Variable independiente)
F() (Variable dependiente)

Argumentos de salida

VALINT (Integral)

Definicin subrutina

Public Sub INTDATDIC(N As Integer, x() As


Double, f() As Double, VALINT As Double)

47

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 13
Diseo modular
MDULO EVENTO

MDULO RAZ

LAGINTERP

INTDISCRE

48

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 13
Solucin

49

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 13
Solucin

50

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 13
Solucin

51

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 13
Solucin

52

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Construir una aplicacin informtica que permita calcular el valor de a (en las
proximidades de 0.65) para el cual:

a
2

(3x

exp(2x )sen(3x ))dx = 1.079

53

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Mdulos de clculo necesarios
Nombre del mdulo

NEW1F

Operacin que realiza

Clculo de la raz de una funcin con el mtodo


de Newton

Subrutina de acceso

NEWTON

Argumentos de entrada
Argumentos de salida

FF (Valor de la funcin en XX)


N (Iteraciones)

Argumentos de entrada/salida

XX (Aproximacin inicial y raz)

Subrutinas privadas del mdulo

FUND1 (Clculo de la derivada de la funcin)

Subrutinas pblicas que requiere

FUNCION1 (Definicin de la funcin)

Definicin subrutina

Public Sub (XX As Double, FF As Double, N As


Integer)

54

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Mdulos de clculo necesarios
Nombre del mdulo

FUNUNA

Operacin que realiza

Definicin de una funcin

Subrutina de acceso

FUNCION1

Argumentos de entrada

X (Variable independiente)

Argumentos de salida

F (Funcin)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub FUNCION1 (X As Double, F As


Double)

55

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Mdulos de clculo necesarios
Nombre del mdulo

ROMBINT

Operacin que realiza

Integracin de funciones mediante el mtodo de


Romberg

Subrutina de acceso

ROMBERG

Argumentos de entrada

A (Lmite inferior)
B (Lmite superior)

Argumentos de salida

VALINT (Integral)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere

FUNINT (Definicin de funcin subintegral)

Definicin subrutina

Public Sub ROMBERG (A As Double, B As


Double, VALINT As Double)
56

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Mdulos de clculo necesarios
Nombre del mdulo

FUNINTEG

Operacin que realiza

Definicin de la funcin que se desea integrar

Subrutina de acceso

FUNINT

Argumentos de entrada

X (Variable sobre la que se define la integracin)

Argumentos de salida

F (Funcin subintegral)

Argumentos de entrada/salida
Subrutinas privadas del mdulo
Subrutinas pblicas que requiere
Definicin subrutina

Public Sub FUNINT (X As Double, F As Double)

57

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Diseo modular

MDULO EVENTO

MDULO RAZ

NEW1F

FUNUNA

ROMBINT


FUNINTEG

58

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Solucin

59

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Solucin

60

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Solucin

61

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Solucin

62

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Solucin

63

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14
Qu modificaciones habra que hacer en la aplicacin para calcular el valor
de b?

0.72

(
3
x

exp(2 x )sen(bx ) dx = 1.079

En este caso slo habra que actuar sobre los mdulos FUNINTER y FUNUNA
y generar una variable de tipo pblico.

64

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14

65

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14

66

DESCRIPCIN DE MDULOS Y SU MANEJO


Casos
Caso 14

67

DESCRIPCIN DE MDULOS Y SU MANEJO


VIII.Ejemplos
EJEMPLO 1
Construir una aplicacin informtica que permita calcular el valor de x (en las
proximidades de 2) que hace cero la derivada de la funcin:

f(x) = - x + x + 3x

68

DESCRIPCIN DE MDULOS Y SU MANEJO


VIII.Ejemplos
EJEMPLO 2
Se han obtenido los siguientes datos en el laboratorio:
t

CA

10

0.667 0.500 0.400 0.333 0.286 0.250 0.200 0.167

Sabiendo que la relacin existente entre CA y t viene dada por:

dC A
n

= k (C A ) C A (t = 0 ) = 1
dt

construir una aplicacin informtica capaz de evaluar los valores k y n


mediante regresin no lineal. Supngase los siguientes valores iniciales de estos
69
parmetros: k0= 1 y n0= 3.

RESOLUCIN DE PROBLEMAS DE LA IQ
ndice

I. Flujo de fluidos
II. Transmisin de calor
III.Transferencia de materia
IV. Ingeniera de la reaccin qumica
V. Control de procesos qumicos

RESOLUCIN DE PROBLEMAS DE LA IQ
I.Flujo de fluidos
Ejemplo 1
Se desea transportar 30 m3/h de agua desde una presa a un depsito abierto a
la atmsfera. Presa y depsito se encuentran unidos por una conduccin recta de
600 m de longitud con un desnivel de 300 m. Calclese el dimetro de tubo
necesario.

RESOLUCIN DE PROBLEMAS DE LA IQ
I.Flujo de fluidos
Ejemplo 1

RESOLUCIN DE PROBLEMAS DE LA IQ
I.Flujo de fluidos
Ejemplo 1

RESOLUCIN DE PROBLEMAS DE LA IQ
II.Transmisin de calor
Ejemplo 2
Una placa paralepipdica de acero de 0.5 x 0.3 x 0.02 m3, aislada por sus
bases mayores est, sometida en dos lados contiguos a una temperatura
constante de 673 K, el lado mayor restante se encuentra a 473 K y el menor a
323 K. Determnese la distribucin de temperaturas en el interior de la placa.

RESOLUCIN DE PROBLEMAS DE LA IQ
II.Transmisin de calor
Ejemplo 2

RESOLUCIN DE PROBLEMAS DE LA IQ
III.Transferencia de materia
Ejemplo 3
Las mezclas de n-heptano(1), metilciclohexano(2) y tolueno(3) se comportan
idealmente en el intervalo de temperaturas de ebullicin extremas a presin
atmosfrica. Calcular la temperatura de burbuja de una mezcla lquida con la
siguiente composicin: x1= 0.254, x2= 0.500 y x3= 0.246.

Datos:
Presiones de vapor (kN/m2) de los componentes puros en funcin de la
temperatura (K)

2921
2931
3094
0
0
0
ln P1 = 13.88
; ln P2 = 13.70
; ln P3 = 14.00
T 56.05
T 51.04
T 53.60

RESOLUCIN DE PROBLEMAS DE LA IQ
III.Transferencia de materia
Ejemplo 3

RESOLUCIN DE PROBLEMAS DE LA IQ
III.Transferencia de materia
Ejemplo 3

RESOLUCIN DE PROBLEMAS DE LA IQ
IV.Ingeniera de la reaccin qumica
Ejemplo 4
Un compuesto B, obtenido por descomposicin de un reactivo A, se isomeriza a
su vez en un producto C, de acuerdo a una reaccin en serie del tipo

A BC

Suponiendo que la cintica de las dos reacciones consecutivas es de primer


orden, determnese el valor de las constantes cinticas de velocidad.
Datos:

t(min)

CA (mol/l)

CB (mol/l)

CC (mol/l)

10

9.05

0.94

0.02

8.19

1.75

0.06

10

6.07

3.60

0.34

15

4.72

4.60

0.68

20

3.68

5.23

1.09

60

0.50

4.77

4.74

120

0.02

1.99

7.99

10

RESOLUCIN DE PROBLEMAS DE LA IQ
IV.Ingeniera de la reaccin qumica
Ejemplo 4

11

RESOLUCIN DE PROBLEMAS DE LA IQ
IV.Ingeniera de la reaccin qumica
Ejemplo 4

12

RESOLUCIN DE PROBLEMAS DE LA IQ
IV.Ingeniera de la reaccin qumica
La cintica de la reaccin cataltica

Ejemplo 5

AR + S
est dada por:

p p

kK A p A R S
K

r=
1 + K A p A + K R p R + K S pS

La reaccin se lleva a cabo de forma isoterma en un lecho fijo que funciona como
flujo pistn. El alimento contiene 0.155 moles de agua por mol de reactante. Este
agua acta como inerte.

Calclasela longitud del reactor requerida para alcanzar una conversin a la salida
del 40%.

Datos

FA0= 4.2 kmol/h; b= 1500 kg/m3; Dt= 0.05 m; K= 0.598 atm;


13
k= 4.3593 kmol/kg cat.h; pT= 3 atm; KA= 0.43039 atm-1
KR+KS= 2.8951 atm-1

RESOLUCIN DE PROBLEMAS DE LA IQ
IV.Ingeniera de la reaccin qumica
Ejemplo 5

14

RESOLUCIN DE PROBLEMAS DE LA IQ
IV.Ingeniera de la reaccin qumica
Ejemplo 5

15

RESOLUCIN DE PROBLEMAS DE LA IQ
IV.Ingeniera de la reaccin qumica
Ejemplo 6
Una descomposicin en fase gaseosa

AR + S

se lleva a cabo en un reactor discontinuo de volumen constante con agitacin


mecnica, para asegurar la hiptesis de mezcla completa. Las condiciones iniciales
de reaccin son T0= 300 K, p0= 5 atm y V= 0.5 m3. El calor de reaccin es 6280
kJ/kmol y la capacidad calorfica de A, R y S de 125.6, 104.7 y 83.7 kJ/kmol.K,
respectivamente. La constante de velocidad se puede representar por la expresin:

14
1

10000
k = 10 exp
,h

T ( K )

( )

se necesita saber el perfil de conversin con el tiempo de reaccin para


condiciones de operacin adiabticas suponiendo una conversin final de A del 90%.

16

RESOLUCIN DE PROBLEMAS DE LA IQ
IV.Ingeniera de la reaccin qumica
Ejemplo 6

17

RESOLUCIN DE PROBLEMAS DE LA IQ
IV.Ingeniera de la reaccin qumica
Ejemplo 6

18

RESOLUCIN DE PROBLEMAS DE LA IQ
IV.Ingeniera de la reaccin qumica
Ejemplo 6

19

RESOLUCIN DE PROBLEMAS DE LA IQ
V.Control de procesos qumicos
Ejemplo 7
Determinar si los procesos dinmicos representados por las siguientes funciones
de transferencia presentan estabilidad:

s + 2s + 3
4

( s + 4s + 11s + 14s + 10)


3

s 1
10

+ 5s s + 10s + 25
20

RESOLUCIN DE PROBLEMAS DE LA IQ
V.Control de procesos qumicos
Ejemplo 7

21

RESOLUCIN DE PROBLEMAS DE LA IQ
V.Control de procesos qumicos
Ejemplo 7

22

UNIDAD TEMTICA 4
Introduccin al manejo de ASPEN HYSYS y PROMAX
como herramienta de simulacin de procesos qumicos
Tema 12. Introduccin al manejo de ASPEN HYSYS y
PROMAX
Tema 13. Uso de ASPEN HYSYS y PROMAX en la
simulacin de procesos qumicos simples

Tema 14. La conexin EXCEL-VBA a los simuladores ASPEN


HYSYS y PROMAX

Introduccin al manejo de ASPEN HYSYS y PROMAX


Objetivos principales

Definicin de paquetes termodinmicos


Grados de libertad
Manejo de componentes hipotticos

Caso de estudio 1: Ciclo de refrigeracin de propano

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)

Son suficientes los datos que se aportan?

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)
Pasos:
1. Introducir componentes
2. Definir Fluid Package
3. Ir a Simulation
4. Introducir corrientes y unidades y sus
caractersticas
5. Configurar un dibujo de proceso limpio y
ordenado
6. Ejecutar e interpretar resultados
7. Insertar tablas informativas (workbook)

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)

10

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)

11

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)

12

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)

13

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)

14

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (ASPEN HYSYS)
Determinar:
Caudal de n-octano y de agua.
Caudales de calor transferido.
Trabajo requerido en el compresor.
Comprobar que se conserva la materia y la energa.

15

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (PROMAX)

16

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (PROMAX)

17

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (PROMAX)

18

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (PROMAX)

19

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (PROMAX)

20

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (PROMAX)

21

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (PROMAX)

22

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (PROMAX)

23

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (PROMAX)

24

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (PROMAX)

25

Introduccin al manejo de ASPEN HYSYS y PROMAX


Caso: ciclo de refrigeracin (PROMAX)

Comparar los resultados obtenidos con los


conseguidos con ASPEN HYSYS

26

Introduccin al manejo de ASPEN HYSYS y PROMAX


Ejemplo 2: separacin acetona-aire (ASPEN HYSYS)

Cmo se definira el aire?

27

Introduccin al manejo de ASPEN HYSYS y PROMAX


Ejemplo: separacin acetona-aire (ASPEN HYSYS)

Cuestin
Es vlida la correlacin de Peng-Robinson en este caso? En
caso contrario, proponer una alternativa. Podra ser vlida
la correlacin PRSV?

Calclese
Composicin de las dos corrientes efluentes.
Calor eliminado/aportado en el condensador (W) para
cumplir con las condiciones de diseo.
28

Introduccin al manejo de ASPEN HYSYS y PROMAX


Ejemplo: separacin acetona-aire (ASPEN HYSYS)

29

Introduccin al manejo de ASPEN HYSYS y PROMAX


Ejemplo: separacin acetona-aire (ASPEN HYSYS)

30

Introduccin al manejo de ASPEN HYSYS y PROMAX


Ejemplo: separacin acetona-aire (PROMAX)

Repetir ejemplo con PROMAX


Plantea algn problema el utilizar la correlacin de
Peng-Robinson?
Existe el aire como componente?
Comparar los resultados obtenidos

31

Introduccin al manejo de ASPEN HYSYS y PROMAX


Ejemplo: separacin acetona-aire (PROMAX)

32

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Objetivos principales
Clculos bsicos

Balances de materia y energa


Operaciones bsicas

Reactores qumicos
Comparativas de resultados entre ASPEN HYSYS y

PROMAX

Ejemplos y ejercicios diversos


1

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejemplo 1
Considerando las especies acetona y cloroformo y las
ANTOINE y UNIQUAC, determnese para 1 atm de presin:

correlaciones

a)
b)
c)
d)

La temperatura de ebullicin de los componentes puros.


La temperatura de burbuja y roco de la mezcla equimolecular
La existencia de azetropo y su composicin.
El resultado de llevar a cabo la destilacin sbita de una mezcla
equimolecular de estos componentes si sta entra a la cmara con una
fraccin de vapor igual a 0.7.
e) La potencia necesaria para impulsar 100 kg/h de una mezcla
equimolecular de acetona-cloroformo a 25 C y 1 atm a 5 atm.
Considrese la correlacin UNIQUAC y una eficacia adiabtica del
75%. Cul sera la temperatura de salida de la corriente efluente de
la bomba?

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejemplo 2
Una corriente de oxgeno, a una presin de 1 bar y con un caudal de 100
kmol/h, se calienta en un cambiador de calor perfectamente aislado desde
25C a 100C. Como fluido calefactor se utiliza una corriente de vapor de
agua saturado (1.5 bar; T=111.4C que condensa y cede el calor latente de
condensacin). Determnese empleando la correlacin de Peng-Robinson (PR):
a)
b)

La cantidad de calor necesaria, empleando un mdulo HEATER.


L QUIDO
El caudal de vapor necesario.
4

T= 111.4C
P= 1.5 bar

Q=0

1
CAMBIADOR CALOR

T= 100C

F=100 kmol /h
T=25 C ; P=1 bar

P= 1 bar

VAPOR
P= 1.5 bar
T= 111.4C

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejemplo 3
Metanol a 675 C y 1 bar se alimenta a un reactor adiabtico donde el 25%
se deshidrogena a formaldehdo, de acuerdo con la reaccin:
CH3OH (g)

HCOH (g) + H2 (g)

Calclese, empleando la correlacin PRSV, la temperatura de los gases que


abandonan el reactor. La reaccin es exotrmica o endotrmica?

REACTOR
X: 25%

HCHO
CH3OH
H2

CH3OH
T=675C
Q
4

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejemplo 4
Se desea analizar el equilibrio de la reaccin de oxidacin:

1
SO2 O2 SO3
2
a distintas temperaturas y 1 atm de presin. Para ello se emplear la correlacin
PR.
a) Determnese cul sera la conversin de equilibrio a las temperaturas que se
indican, suponiendo que las reacciones se dosifican en cantidades
estequiomtricas:

T (C)
100
200
300
400
500

Conversin (%)

b) La reaccin sera exotrmica o endotrmica?


5

c) Qu se puede decir del comportamiento del equilibrio de esta reaccin?

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejemplo 5
El acrilonitrilo se produce industrialmente a presin atmosfrica por reaccin
cataltica del cido cianhdrico con acetileno en fase vapor, en una instalacin
como la que se esquematiza en la Figura:

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejemplo 5
Las corrientes de acetileno (1) y de cido cianhdrico (2), que llevan como
impurezas un 5% (% en moles), se introducen en el sistema a 20 C en una
relacin molar N1/N2 = 10. La alimentacin al reactor se realiza aadiendo a
estas dos corrientes la de reciclo de gases, y calentando el conjunto en un
cambiador de calor hasta 100 C, corriente 3. En el reactor, que se encuentra a
una temperatura de 250 C, se convierte el 80% del cido cianhdrico alimentado.
A la salida del mismo, los productos a 250 C pasan a un separador en el que
condensa totalmente todo el acrilonitrilo, originando la corriente 5, cuya
temperatura es de 10 C. Los gases no reaccionados, tambin a 10 C, se
reciclan para mezclarlos con las corrientes 1 y 2 antes de entrar en el reactor,
hacindose previamente una purga del 10% de la corriente 6, a fin de limitar la
concentracin de inertes a la entrada del reactor.
Para un caudal de 950 kmol/h de acetileno alimentado, y empleando la correlacin
PRSV, determnese:

a) Los caudales y composiciones de todas las corrientes.


b) El caudal de calor que habra que aportar o eliminar del reactor para que su
temperatura se mantenga a 250 C. La reaccin es exotrmica o endotrmica?.
7

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejercicio 1
Determnese para una corriente equimolecular de metano y etano de 100 kg/h a
25 C y 1 atm, las siguientes propiedades (con ayuda de la correlacin PR):
a) El caudal en moles por hora
b) La composicin en fraccin msicas

c) El peso molecular medio


d) La viscosidad (cP) y la conductividad trmica (W/m.K)
e) Las condiciones de la corriente de salida del compresor que lleve esta corriente
a 3 atm. Suponiendo una eficiencia adiabtica del 75%.
f) Temperatura de burbuja y de roco

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejercicio 2
Se desea calentar una corriente de agua lquida con un caudal de 100 kg/h que se
encuentra a 5 atm y una temperatura de 25 C hasta 80 C. Para ello se
emplear vapor de agua saturado a 3.5 bar. Suponiendo que el vapor se condensa
completamente; evalese el caudal de vapor necesario y la temperatura del vapor.
Reptase este clculo si la presin del vapor fuera de 3 y 5 atm.

Pvapor (bar)

Tvapor (C)

mvapor (kg/h)

3
3.5
5
Emplese la correlacin ASME Steam.
Comntense los resultados obtenidos.

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejercicio 3
Se desea llevar a cabo la separacin lquido-vapor de la corriente FEED que se
especifica en el diagrama ASPEN HYSYS adjunto. Calclese la temperatura de
esta corriente para que el caudal de L sea 100 kmol/h. sese la correlacin PR.

10

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejercicio 4
Se ha de estudiar la hidratacin de propeno a 2-propanol a 230 C y 1 atm en
presencia de nonano inerte. Los caudales molares de propeno, agua y nonano
alimentados al reactor han de ser siempre de
10, 20 y 100 kmol/h,
respectivamente. Empleando la correlacin PRSV, se quiere estudiar el efecto que
la presin del sistema tiene sobre los caudales molares de propeno y propanol a la
salida del reactor, suponiendo que ste es de equilibrio. Los resultados se
anotarn en la siguiente tabla:

Presin (bar)

Caudales (kmol/h)
Propeno
2-propanol

1
2
3
4
5

propeno agua 2 propanol


Comntense los resultados obtenidos.

11

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejercicio 5
Considrese la reaccin water-gas shift:
CO + H2O CO2 + H2. Compltese el
siguiente diagrama (que se encuentra en formato ASPEN HYSYS), constituido por un
mezclador y un reactor de equilibrio:
Se tomar como referencia la correlacin
PR. La reaccin es exotrmica o
endotrmica?
Evalese la conversin de CO y el calor
suministrado (signo positivo) o eliminado
(signo negativo) para una presin de
operacin de 20 bar, teniendo en cuenta
la temperatura de reaccin y la razn
molar agua/CO a la entrada del reactor
que se consideran en la siguiente tabla:
T de reaccin(C)
300
400
500

Water/CO molar ratio


1
1
1

xCO

Disctanse estos resultados

Duty (kcal/h)

12

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejercicio 6
El hidrgeno puede manufacturarse a partir del monxido de carbono por la
reaccin con vapor de agua:
CO + H2O CO2 + H2

Si la reaccin se lleva a cabo a 75 atm y 300 C, qu relacin molar de vapor a


monxido de carbono se requiere, para producir una mezcla de productos en el
cual 90% del CO alimentado es convertido a CO2? Tmese como base de clculo 1
kmol /h de CO y PR como ecuacin de estado representativa.

13

Usos de ASPEN HYSYS y PROMAX en la simulacin de PQ


Ejercicio 7
Calclese la temperatura adiabtica de combustin total de un gas natural
(constituido por un 95% de metano, un 2% de etano, un 0.5% de propano y el
resto de nitrgeno) con un 20% de exceso de oxgeno. Considrense como
condiciones iniciales una temperatura de 25 C y una presin de 1 atm. sese la
correlacin PR.

CH 4 2O2 CO2 2 H 2O
7
C2 H 6 O2 2CO2 3H 2O
2
C3H8 5O2 3CO2 4 H 2O

14

Anda mungkin juga menyukai