texto

Anuncio
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
Descargar