Programacion Visual Basic (VBA) para Excel y Analisis Numerico
M.Sc. Walter Mora F., M.Sc. Jose Luis Espinoza B.
Escuela de Matematica
Instituto Tecnologico de Costa Rica
Octubre 2005
Version 0.1
Escuela de Matematica
Instituto Tecnologico de Costa Rica
Octubre 2005
Version 0.1
Contenidos
1 Programacion Visual Basic (VBA) para Excel 3
1.1 Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Evaluacion de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Funciones de¯nidas por el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Errores comunes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 Evaluando una funcion en varios tipos de parametros . . . . . . . . . . . . . . . . . . . . . 5
1.3 Graficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Programacion de macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Elementos de programacion en VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.1 Flujo secuencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.2 Flujo condicional (If - Else) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5.3 Flujo repetitivo (For-Next, While-Wend, Do While-Loop) . . . . . . . . . . . . . . . . . 16
1.5.4 Manejo de rangos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.5.5 Subrutinas. Edicion y ejecucion de una subrutina . . . . . . . . . . . . . . . . . . . . . . . 23
1.5.6 Ejecucion de una subrutina mediante un boton . . . . . . . . . . . . . . . . . . . . . . . . 25
1.5.7 Matrices dinamicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.5.8 Inclusion de procedimientos de borrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.6 Evaluando expresiones matematicas escritas en lenguaje matematico comun . . . . . . . . . . . . 38
1.6.1 Usando clsMathParser. Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.6.2 Ejemplo: un graficador 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.6.3 Ejemplo: un graficador de superficies 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
1.6.4 Ejemplo: series numericas y series de potencias . . . . . . . . . . . . . . . . . . . . . . . . 49
2 Elementos de Analisis Numerico 54
2.1 Solucion de ecuaciones de una variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.1.1 Metodo de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.2 Integracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.1 Metodo de Romberg para integracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.2 La funcion Gamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.2.3 Cuadratura gaussiana e integral doble gaussiana. . . . . . . . . . . . . . . . . . . . . . . . 59
2.3 Problemas de valor inicial para ecuaciones diferenciales ordinarias . . . . . . . . . . . . . . . . . . 66
2.3.1 Existencia y unicidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.3.2 Metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.3.3 Metodos de Heun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
1.1 Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Evaluacion de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Funciones de¯nidas por el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Errores comunes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 Evaluando una funcion en varios tipos de parametros . . . . . . . . . . . . . . . . . . . . . 5
1.3 Graficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Programacion de macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Elementos de programacion en VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.1 Flujo secuencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.2 Flujo condicional (If - Else) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5.3 Flujo repetitivo (For-Next, While-Wend, Do While-Loop) . . . . . . . . . . . . . . . . . 16
1.5.4 Manejo de rangos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.5.5 Subrutinas. Edicion y ejecucion de una subrutina . . . . . . . . . . . . . . . . . . . . . . . 23
1.5.6 Ejecucion de una subrutina mediante un boton . . . . . . . . . . . . . . . . . . . . . . . . 25
1.5.7 Matrices dinamicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.5.8 Inclusion de procedimientos de borrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.6 Evaluando expresiones matematicas escritas en lenguaje matematico comun . . . . . . . . . . . . 38
1.6.1 Usando clsMathParser. Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.6.2 Ejemplo: un graficador 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.6.3 Ejemplo: un graficador de superficies 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
1.6.4 Ejemplo: series numericas y series de potencias . . . . . . . . . . . . . . . . . . . . . . . . 49
2 Elementos de Analisis Numerico 54
2.1 Solucion de ecuaciones de una variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.1.1 Metodo de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.2 Integracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.1 Metodo de Romberg para integracion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.2 La funcion Gamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.2.3 Cuadratura gaussiana e integral doble gaussiana. . . . . . . . . . . . . . . . . . . . . . . . 59
2.3 Problemas de valor inicial para ecuaciones diferenciales ordinarias . . . . . . . . . . . . . . . . . . 66
2.3.1 Existencia y unicidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.3.2 Metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.3.3 Metodos de Heun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.