MÉTODOS MATEMÁTICOS PARA LA ECONOMÍA CON EXCEL LÓPEZ ARES, SUSANA ([email protected]) SÁNCHEZ ALVAREZ, ISIDRO ([email protected]) Departamento de Economía Cuantitativa - Universidad de Oviedo Dentro de las múltiples opciones de las hojas de cálculo para la modelización de problemas de matemáticas económicas y empresariales, se ha seleccionado un grupo representativo de diversos ámbitos, no incluyendo ni los modelos de optimización ni financieros, cuya amplitud y carácter específico han aconsejado un tratamiento separado. I. OPERACIONES MATRICIALES Las hojas de cálculo suelen disponer de buen número de funciones predefinidas para el análisis matricial. En concreto, Excel 97 dispone de las siguientes funciones: • TRASPONER(matriz): Permite hallar la matriz traspuesta. • MDETERM(matriz): Calcula el determinante de una matriz. • MINVERSA(matriz): Obtiene la matriz inversa. • MMULT(matriz1;matriz2): Multiplica dos matrices en el orden indicado. Ahora bien, la introducción de matrices en Excel requiere un proceso que suele resultar extraño al alumno. Para ser considerada como matriz es preciso sombrearla y presionar la combinación de teclas: Control+Mayúsculas+Entrar. Además, es preciso tener en cuenta los errores de redondeo, no sólo en los cálculos matriciales sino en general en todas las operaciones realizadas con la hoja de cálculo. La precisión finita se traduce en el caso de la Excel 97 en tan solo 15 cifras significativas, lo cual puede producir resultados erróneos tales como los que se 1 2 3 ilustran a continuación. Sea la matriz: 4 5 6 Si se calcula su determinante con la hoja de 7 8 9 cálculo se obtiene: 6,66134E-16 que, si bien es próximo a cero parece indicar que la matriz es inversible. Si se calcula la inversa se obtiene: − 4,5036 E + 15 9,0072 E + 15 − 4,5036 E + 15 9,0072 E + 15 − 1,80144 E + 16 9,0072 E + 15 − 4,5036 E + 15 9,0072 E + 15 − 4,5036 E + 15 y si se multiplica la matriz inicial por la inversa se obtiene una matriz M que evidentemente no es la matriz unitaria dado que la matriz no es inversible. 0 0 0 M = − 4 0 − 4 0 0 0 Los errores de redondeo producen un determinante no nulo, si bien su valor exacto es cero. Se podría haber intuido este problema observando el orden de magnitud del valor del determinante, que supera el número de decimales máximo. La posibilidad de programar macros en Visual Basic incrementa además las posibilidades de cálculos matriciales y la automatización de procesos. A modo de ejemplo, se presenta una función definida por el usuario para el cálculo de potencias n-ésimas de una matriz y un ejemplo de su aplicación. Function PotMatriz(matriz, n) If n = 1 Then PotMatriz = matriz Else PotMatriz = Application.MMult(PotMatriz(matriz, n - 1), matriz) End If End Function II. SISTEMAS DE ECUACIONES LINEALES Las posibilidades matriciales de que dispone la hoja de cálculo permiten la resolución matricial de sistemas de ecuaciones lineales. Ahora bien, también es posible su solución planteando el sistema con una estructura similar a la requerida para los modelos de optimización y utilizando el «Solver». En el gráfico siguiente se presenta la solución del sistema: 4*x+10*y+5*z=27; x+5*y+4*z=17; 3*x+3*y+z=5 Se asignan celdas cambiantes para las variables (rango B3:D3), y se construye la parte izquierda de las ecuaciones tal como se refleja en el gráfico para el caso de la primera ecuación. 2 Posteriormente se ejecuta el «Solver» colocando como celdas cambiantes el rango B3:D3 y como restricciones E5:E7=F5:F7. La celda objetivo se deja en blanco. III. APROXIMACIÓN NUMÉRICA DE RAÍCES. Las hojas de cálculo disponen de macros predefinidas que permiten enfocar el problema de la aproximación numérica de raíces. La estrategia de búsqueda consiste en este caso en la representación gráfica de la ecuación en el intervalo de análisis para conocer intuitivamente los posibles puntos de corte con el eje de abscisas. Posteriormente, con la macro «Buscar objetivo» se realizará un proceso de búsqueda numérica, cuya solución dependerá en buena medida del punto de partida. Para obtener una raíz determinada será necesario iniciar el proceso en un punto cercano al objetivo deseado, si bien el proceso de aproximación - una variación del método de Newton - presenta comportamientos caóticos y no siempre converge. En el gráfico 3 anterior se presenta un ejemplo numérico. Una vez analizada gráficamente la ecuación, se diseña una celda donde se introduce la misma (C3) en función del valor de x (C1). A continuación, con la macro «Buscar objetivo» se indica que la celda C3 llegue a obtener el valor numérico 0 realizando cambios en la celda C1. Una vez que obtiene una solución con el grado de exactitud fijado aparecerá un mensaje para confirmar el valor obtenido en C1, que será una de las raíces de la ecuación. El grado de exactitud y el máximo de iteraciones a realizar se puede controlar en la sección Herramientas/Opciones/Calcular. IV. CÁLCULO NUMÉRICO DE INTEGRALES Y ECUACIONES DIFERENCIALES. La obtención de aproximaciones numéricas de integrales se puede llevar a cabo bien creando una hoja de trabajo tipo o bien automatizando el proceso mediante un módulo en Visual Basic. En nuestro caso, hemos optado por ilustrar esta segunda posibilidad dado que permite mayor flexibilidad e integración en otras aplicaciones. Los datos de entrada son los límites de integración (a, b) y el número de subintervalos en que se divide el intervalo de integración (n). Un posible enfoque para el cálculo aproximado de una integral es la aproximación por rectángulos tomando su valor en el punto medio, es decir, considerando que: b ∫ a n −1 f ( x) dx ≈ h ∑ f (a + k =0 h + k h) 2 donde el intervalo de integración (a,b) se divide en ‘n’ subintervalos de longitud h=(b-a)/n. Para recoger el proceso de integración se crea el módulo siguiente. 'Introducir la función a integrar Private Function fun1(x) fun1 = x ^ 2 + 1 End Function Function Integral(Inferior, Superior, Intervalos) Suma = 0 h = (Superior - Inferior) / Intervalos For k = 0 To (Intervalos - 1) Suma = Suma + fun1(Inferior + (h / 2) + k * h) Next k Integral = h * Suma End Function 4 Con ello se dispone de una función definida por el usuario que permite aproximar una integral. Para cambiar la función es preciso modificarla en ‘fun1’, dentro del módulo. Los límites de integración y el número de subintervalos se han introducido a través de la hoja de trabajo tal como se puede observar en el gráfico siguiente. De forma similar se puede automatizar el cálculo numérico de ecuaciones diferenciales, en este caso por el método de Euler. Dada una ecuación diferencial de primer orden y ' = f ( x, y ) que satisface la condición y 0 = y ( x 0 ) , su solución y = y (x ) se puede aproximar, en un intervalo x 0 ≤ x ≤ m , a través del polígono cuyos vértices ( x k , y k ) vienen dados por: x k +1 = x k + h ; y k +1 = y k + h ⋅ f ( x k , y k ) k = 0, 1, 2, ... n 5 siendo h = b − xo n Creando una hoja tipo como la presentada en el gráfico anterior se pueden analizar diferentes grados de aproximación a la solución de la ecuación diferencial. Básicamente, el método consiste en construir los conjuntos de puntos (x, y) para cada aproximación, representando posteriormente la función mediante un diagrama de dispersión. Para ello se requiere crear el módulo siguiente, donde se recoge la expresión analítica de la ecuación diferencial que será preciso modificar para cada caso concreto. 'Modificar directamente la ecuación diferencial de la forma y'=f(x,y) siendo x=x1 e y=x2 Function fun2(x1, x2) fun2 = -x2 / x1 End Function V. GRÁFICOS AVANZADOS. Las hojas de cálculo ofrecen una gran capacidad gráfica para el análisis de problemas económicos: desde el sencillo gráfico de líneas, barras o áreas hasta la representación de ecuaciones paramétricas, funciones en coordenadas polares o diagramas de fase de ecuaciones diferenciales. A modo de ejemplo, plantearemos una representación gráfica de los campos de dirección siguiendo el esquema planteado en Sjöstrand(1997). Sean f ( x , y ) y g ( x, y ) dos funciones definidas en un dominio D ⊂ R 2 y sea y (x ) la función solución de la ecuación diferencial: f ( x, y ) + g ( x, y ) ⋅ y ' ( x ) = 0 que puede escribirse como f ( x , y ) ⋅ dx + g ( x, y ) ⋅ dy = 0 . ecuación: y ' ( x ) = La pendiente de esta función y (x ) viene dada por la dy f ( x, y ) =− válida en los puntos ( x, y ) donde g ( x, y ) ≠ 0 . El vector dx g ( x, y ) de dirección en el punto ( x, y ) de la función y (x ) se define como aquel que es tangente a la misma en dicho punto. Este vector viene definido, para k ≠ 0 , por las componentes: (dx, dy ) = (k ⋅ g ( x, y ), − k ⋅ f ( x , y )) . El campo de dirección de la anterior ecuación diferencial se define como el conjunto de vectores de dirección en todos los puntos ( x, y ) del dominio. Para crear una hoja de trabajo que permita su representación se sabe que el segmento que une los puntos A y B representa el vector de dirección con longitud 'a' en el punto ( x i , y k ) para i=0, 2, ... m; k=0, 2, ... n. El punto medio de dicho segmento es el punto ( x i , y k ) . g( xi , y k ) f ( xi , y k ) A = xi + a , yi − a 2 2 2 2 2 g ( xi , y k ) + f ( xi , y k ) 2 g ( x i , y k ) + f ( x i , y k ) g( xi , y k ) f ( xi , y k ) B = xi − a , yi + a 2 2 2 2 2 g ( xi , y k ) + f ( xi , y k ) 2 g ( x i , y k ) + f ( x i , y k ) 6 Para construir estos segmentos se crean grupos de cuatro celdas con fórmulas como: D4=D$3+0,5*a*g_4(D$3;$C4)/RAIZ(f_4(D$3;$C4)^2+g_4(D$3;$C4)^2) D5=D$3-0,5*a*g_4(D$3;$C5)/RAIZ(f_4(D$3;$C5)^2+g_4(D$3;$C5)^2) E4=$C4-0,5*a*f_4(E$3;$C4)/RAIZ(f_4(E$3;$C4)^2+g_4(E$3;$C4)^2) E5=$C5+0,5*a*f_4(E$3;$C5)/RAIZ(f_4(E$3;$C5)^2+g_4(E$3;$C5)^2) y se representan como un diagrama de dispersión en el intervalo deseado tal como se refleja en el gráfico siguiente. La ecuación diferencial se introduce a través de un módulo siguiendo el formato indicado inicialmente f ( x1, x 2) ⋅ dx1 + g ( x1, x 2) ⋅ dx 2 = 0 Function f_4(x1, x2) f_4 = x1-x2 End Function Function g_4(x1, x2) g_4 = x2 End Function VI. LÓGICA Y TEORÍA DE CONJUNTOS. La disponibilidad de funciones lógicas permite analizar la equivalencia lógica de diversas sentencias, si bien la ausencia de utilidades simbólica impide análisis avanzados. A modo de ejemplo, se describe a continuación la comprobación de que «no((no p) o q)» y «p y (no q))» son lógicamente equivalentes. 7 Además, es posible realizar operaciones sobre conjuntos numéricos (intersección, suma, conjuntos complementarios, etc.) a través de la opción de filtros avanzados. Ejemplos al respecto pueden consultarse en Sjöstrand(1997). VII. MODELOS ECONÓMICOS. Las posibilidades para modelizar fenómenos económicos y empresariales son muy extensas y dependen en gran medida de la imaginación del investigador. En Gully(1996) se analizan algunas aplicaciones a la teoría económica, y especialmente significativas son las aplicaciones a modelos de investigación operativa: programación, teoría de colas, simulación, teoría de la decisión , programación de proyectos, etc. Con el objeto de ilustrar las posibilidades en estos campos analizaremos la implementación de un modelo de PERT simplificado. En el gráfico siguiente se presentan los datos básicos referidos a las actividades del proyecto. La columna «Tiempo» recoge las duraciones de cada una de las actividades. 8 La columna «early» recoge los menores tiempos de inicio posibles. Estas celdas se consideran como celdas cambiantes e inicialmente toman valores cualesquiera. La celda D10 recoge la suma de tiempos «early». Las columnas F y G establecen la ordenación temporal de las actividades, cuando existe algún condicionamiento entre ellas. En la columna H se introducen los tiempos actuales entre comienzos de actividades a través de la fórmula - referida a la celda H3 -: =BUSCARV(G3;$B$3:$D$9;3)-BUSCARV(F3;$B$3:$D$9;3) De forma similar, la columna I recoge los tiempos entre comienzos de actividades que como mínimo deben cumplirse, que vienen dados por las duraciones de las tareas. Se calculan a través de la fórmula - referida a la celda I3 -: =BUSCARV(F3;$B$3:$C$9;2) Con el objeto de calcular los tiempos «early» se optimiza la hoja a través del Solver tal y como se presenta en el gráfico siguiente. El objetivo es minimizar la suma de tiempos de inicio, cambiando las celdas que recogen dichos tiempos de inicio, y sujeto a las restricciones que establecen que los tiempos entre actividades debe ser iguales o superiores a los mínimos. 9 De forma similar se plantea una hoja de trabajo para los tiempos «last» y se optimiza con el mismo esquema que los tiempos «early» añadiendo una restricción en la que se indica que la última tarea -G- se inicia en el mismo momento que el previsto en los tiempos «early» (D9=21). En el gráfico siguiente se presenta una hoja donde se resumen todos los aspectos de las dos hojas de trabajo anteriores, indicando las actividades críticas (se detectan analizando si la holgura entre los tiempos early de finalización -EFT- y los tiempos last de finalización -LFTes nula). Además, se representa gráficamente la sucesión de tareas mediante un diagrama de barras combinada de los tiempos y los tiempos early de comienzo cambiando el orden de las series y ocultando la primera de ellas. REFERENCIAS BIBLIOGRÁFICAS GULLY, A.(1997): Modelling Economic Systems. A spreadsheet-based approach. International Thomson Business Press. London. MEDINA, A.(1992): Manual de Excel 4.0. Anaya Multimedia. Madrid. SJÖSTRAND, D.(1997): Matemáticas con Excel. Universidad Pontificia de Comillas. Madrid. 10