Está en la página 1de 11

Docencia de Matemáticas en la Economía y la Empresa

ALGORITMOS Y CAJAS NEGRAS


EL PROGRAMA MATLAB EN LA FORMACIÓN BÁSICA EN ECONOMÍA Y
FINANZAS

Fernando Fernández Rodríguez


Julián Andrada Félix

Departamento de Métodos Cuantitativos en Economía y Gestión


Universidad de Las Palmas de Gran Canaria

Resumen: Los cursos de métodos cuantitativos que se imparten en las distintas


facultades de Ciencias Económicas y Empresariales en general, permiten al alumno
disponer de una serie de programas informáticos -cajas negras- que le otorgan la
capacidad de realizar ciertos estudios interesantes. El alumno sabe qué necesita para
resolver un problema cuantitativo y utiliza el programa informático adecuado para tal
fin, pero no sabe de qué manera el ordenador resuelve el problema. En este trabajo
pretendemos dar un giro respecto a esta metodología, enfatizando en un concepto
fundamental en todo el desarrollo cuantitativo: el algoritmo. El enfoque del aprendizaje
será la construcción de algoritmos netamente prácticos, de forma que se asimile su
concepto a la misma vez que se implemente. Haremos un sencillo recorrido por ciertos
problemas fácilmente resolubles a través de algoritmos implementados bajo el entorno
de trabajo MATLAB.

89
Fernández F. , Andrada J.

1. Introducción
Cada día suena el despertador y nos levantamos, realizamos aún soñolientos las
tareas cotidianas propias -nos aseamos, tomamos decisiones sobre el vestir, sobre qué
desayunar, salimos de casa, llegamos a la facultad, etc.- preguntándonos en ocasiones
¿dónde estamos? cuando nuestros alumnos extrañados nos observan. Cada una de estas
acciones conlleva la repetición de ciertas pautas de conducta generales asumidas,
transformando así el desorden del despertar en una secuencia de procedimientos que
podríamos clasificar como programados. Estos pequeños actos se convierten en un
programa matutino diseñado que nos permite reaccionar ante la información procedente
de nuestro entorno, la cual organizamos de forma lógica y, supuestamente, eficiente.
Cualquier problema diario, planteado en distintos contextos que traducen necesidades
del mundo real, sea sencillo o no, tiende a ser programado después de haber abstraído lo
relevante de la información y haber creado un procedimiento que podríamos incluso
llamar algoritmo.
En nuestra vida, y en general en las ciencias matemáticas, tratamos de encontrar y
enseñar algoritmos que nos hagan la vida más sencilla, y a nuestros alumnos, futuros
diplomados y licenciados, los créditos más asequibles. Hablar sobre los algoritmos que
facilitan nuestras vidas requeriría más de 11 páginas para cada uno de nosotros, pero
hablar de algoritmos matemáticos puede no sobrepasar este trabajo.

Frecuentemente impartimos clase en asignaturas donde tenemos la suerte de trabajar


apoyados por equipos informáticos que nos abren un sinfín de posibilidades en nuestra
labor educadora. De hecho, numerosos planes de estudio de las licenciaturas de
Economía y Administración y Dirección de Empresas que se imparten en nuestro país
recogen determinadas asignaturas cuyos descriptores promueven el uso del ordenador
como recurso metodológico imprescindible. En la mayoría de éstos, los complejos
programas informáticos utilizados para resolver problemas matemáticos aparecen ante
el alumno como cajas negras. Tras las explicaciones teórica y práctica de cómo funciona
este o aquel método válido para la resolución de un ejercicio planteado, los datos
imprescindibles con un formato determinado son incluidos en el argumento de
misteriosas funciones, y el oscuro programa nos facilita sorprendentemente rectas de

90
Docencia de Matemáticas en la Economía y la Empresa

regresión, soluciones de sistemas de ecuaciones lineales, raíces de polinomios, valores


de estadísticos de contraste de hipótesis que nos planteamos, etc.
Así pues, fomentamos el uso de determinados programas cerrados que pretendemos
defender como recursos metodológicos. De cualquier modo, la certeza de un
aprendizaje más práctico justifica ahorrar tiempo de resolución, ya que la distribución
temporal de los créditos en nuestras asignaturas no permite ahondar en cuestiones
técnicas.
Pero podemos dar un paso más si los descriptores recogen en alguna de nuestras
asignaturas la programación de sencillos algoritmos matemáticos que constituyan un
eslabón adicional en el aprendizaje integrado y en la formación básica de un
economista, a lo cual añadiríamos el inherente incremento de ciertas capacidades
interesantes como la abstracción, la comprensión, la formalización de pautas y orden en
la resolución de problemas, etc. Como cita Cajaraville (1989): ...múltiples estudios
confirman que el alumno medio, al término de sus estudios, posee un deficiente dominio
de las destrezas que caracterizan al buen resolutor de problemas.
En definitiva, y de acuerdo con este autor, se trata de enseñar a desarrollar destrezas
para interpretar la información, estructurarla, organizarla, formular hipótesis,
verificarlas, sintetizarlas y generalizar conclusiones. Todo ello a través de algoritmos
matemáticos que disipen las lagunas procedimentales que crecen en el alumno a la
desmesurada velocidad con que avanza la innovación tecnológica.

Las experiencias de la enseñanza de los algoritmos en los Estudios de Economía


y Dirección de Empresa son limitadas. Basta señalar que muy pocos libros de
Matemáticas o Econometría, de carácter no especializado, tratan el tema de cómo
realizar el cómputo numérico necesario para obtener resultados previamente anunciados
por la teoría.
Como prototipo de manuales ampliamente conocidos, que han tomado en
consideración algún tipo de tema relacionado con la algorítmia cabría citar el de Borrell
Fontelles (1987) sobre Programación Matemática y el de Greene (1998) sobre
Econometría. Ambos textos muestran diversos algoritmos específicos que permiten
realizar procesos de optimización.

91
Fernández F. , Andrada J.

Afortunadamente, en el mercado existe una infinidad de programas informáticos


alejados de los poco recomendables lenguajes de programación convencionales,
excesivamente complicados para la enseñanza básica de la programación de algoritmos
matemáticos. Dichos programas permiten enfrentarnos con sencillez a la hipótesis
defendida anteriormente. Estos programas etiquetados como entornos de trabajo nos
hacen más amable la enseñanza y el aprendizaje de la programación elemental. Gauss,
Mathematica, Matlab, Derive, etc., son paquetes informáticos que oímos o utilizamos
constantemente en nuestras investigaciones, porque nos facilitan la construcción y
comprensión de funciones y procedimientos esenciales. Pero además, nos permiten
visualizar, por sus poderosas capacidades gráficas, qué está pasando con los resultados
obtenidos.
Entre los diversos programas citados, nosotros destacamos por sus características y
versatilidad el entorno MATLAB como herramienta para realizar desde sencillos
cálculos aritméticos hasta complejos estudios dinámicos, al disponer de un sistema
interactivo con el usuario. Pero que, además, proporciona un sencillo lenguaje de
programación para facilitar la construcción de programas elementales en la
implemetación de algoritmos matemáticos. Cualquier otro programa de los citados y de
los no citados, puede resultar perfectamente válido para iniciar a nuestros alumnos en la
atractiva tarea del aprendizaje de algoritmos matemáticos.

El presente trabajo se organiza como sigue: en la sección 2 definimos lo que es un


algoritmo matemático y su relación con la creación de archivos .m en el entorno
MATLAB. En la sección 3 presentamos diversos problemas cuantitativos a los que
cualquier alumno puede enfrentarse a lo largo de sus estudios universitarios en las
licenciaturas donde impartimos docencia. Por último, en la sección 4 exponemos
nuestras conclusiones a partir de la experiencia desarrollada en la asignatura optativa de
Modelos Matemáticos de Dinámica Económica, impartida por el Departamento de
Métodos Cuantitativos en Economía y Gestión de la Universidad de Las Palmas de
Gran Canaria, y enmarcada en los planes de estudios de la licenciatura de Economía.

92
Docencia de Matemáticas en la Economía y la Empresa

2. Algoritmos matemáticos
Un modelo matemático es la expresión, en términos matemáticos, de un problema
definido que establece relaciones entre las variables consideradas relevantes.
Los algoritmos matemáticos en los que nos centraremos constituyen en sí mismos,
una secuencia finita de operaciones lógicas y aritméticas realizadas paso a paso en un
determinado orden, que permite hallar la solución numérica de un problema modelizado
matemáticamente. Esta secuencia de instrucciones puede ser ejecutada en una sola
dirección o no, por lo que hablaremos ejecución lineal o no.
En cada uno de los pasos de la secuencia de operaciones, puede alterarse el valor de
alguna determinada variable empleando, para ello, el valor de dicha variable obtenido
en la etapa anterior. El proceso algorítmico, iterativo, continúa hasta que se verifiquen
determinadas condiciones respecto a las variables involucradas, aunque en ciertos casos
no es posible saber de antemano el número de veces que se ha de repetir el algoritmo.
Los ordenadores, no deciden, sólo son capaces de llevar a cabo, de forma primaria,
las reglas elementales de la aritmética o la lógica. Cualquier otro tipo de operación
matemática o lógica más compleja ha de reducirse a las reglas elementales mediante el
uso de los algoritmos.
Los algoritmos constituyen así, el primer paso hacia la programación de un
problema, en nuestro caso, el primer paso específico en la construcción de programas en
archivos .m, en MATLAB, mediante un editor de textos.
Un programa requiere el diseño del algoritmo matemático que subyace en la
resolución de un problema, de estructuras de programación, y de tipos de datos. Un
programa consiste en escribir la secuencia de instrucciones, expresada en un lenguaje
formal y conciso, que se ha de ejecutar cuando se realice su llamada en la ventana de
instrucciones propia del entorno elegido. En conjunto, un programa representa la
descripción detallada de la secuencia de instrucciones que debería seguir un ordenador
para solventar la tarea encomendada, de forma que con la información esencial y una
vez implementado pueda ser resuelta.

Control del flujo de un programa


Cuando pensamos en una secuencia de instrucciones encaminada a resolver
numéricamente un determinado problema estamos tratando de adivinar cuál sería el

93
Fernández F. , Andrada J.

camino correcto para su resolución. Este camino, que deberá recorrer el ordenador, se
denomina flujo de ejecución de instrucciones y nosotros deberemos establecer
previamente el control de dicho flujo. En ocasiones, hemos de controlar el flujo de
ejecución en función de los datos que se estén procesando o de los resultados que
genere.
Las tres estructuras fundamentales que permitirán el control del flujo de un
programa son: estructuras lineales, cuya organización secuencial consta de una única
dirección, sin necesidad de establecer su control; estructuras de decisión, que permiten
representar planteamientos lógicos ante cierta proposición con la consecuente ejecución
de bloques de instrucciones alternativos, y estructuras de repetición que permiten
ejecutar bloques de instrucciones reiteradamente.
Los tres tipos de instrucciones en MATLAB con los que estableceremos el control
del flujo no lineal son: la bifurcación condicional if/else/end que nos permitirá ejecutar
un bloque de instrucciones u otro alternativo, en función de si una determinada
condición se verifica o no; y los bucles for/end, while/end que permiten repetir un
bloque de instrucciones sucesivas un número finito o infinito de veces, respectivamente.

3. Diversos algoritmos matemáticos


Presentemos a continuación problemas de diversa índole, que pueden resolverse
fácilmente mediante la implementación del algoritmo matemático que subyace en su
resolución numérica. Hemos seleccionado un ejemplo vinculado con las matemáticas, la
aproximación de raíces de una ecuación por medio del método de Newton-Raphson; un
ejemplo relacionado con la estadística, el método de ajuste mínimos cuadrados; un
ejemplo econométrico, el proceso estocástico con deriva; y finalmente como cuarto
ejemplo, uno perteneciente a las matemáticas financieras, el cálculo del valor capital de
una inversión.

Ejemplo 1. Método de Newton-Raphson de aproximación de raíces:


Para aproximar una raíz de la ecuación f(x)=0 se comienza con una estimación
previa x0 y se genera una sucesión x1, x2, x3,... de aproximaciones cada vez más precisas
mediante la fórmula

94
Docencia de Matemáticas en la Economía y la Empresa

f (x n )
x n +1 = x n − , f ′( x n ) ≠ 0
f ′( x n )
En esta situación, o bien la sucesión de aproximaciones converge hacia un límite
que es una raíz de la ecuación, o bien no tiene límite.

function y=fun(x)
y=exp(x)+x+1;

function y=newton_raphson(fun,x0)
clc
%Método de Newton-Raphson: newton_raphson.m
%Requiere que fun sea una función de archivo.m, cuyos argumentos sean:
% fun= función mediante variable string, x0= valor inicial
disp('Método de Newton-Raphson')
iteraciones=[];
x(1)=x0;nmax_iter=100;tol=1e-15;h=1e-3;
for i=1:nmax_iter
funcion_x=feval('fun',x(i));
derivada_x=(feval('fun',x(i)+h)-feval('fun',x(i)))/h;
x(i+1)=x(i)-(funcion_x/derivada_x);
iteraciones=[iteraciones; i x(i) x(i+1) abs(x(i+1)-x(i))];
if abs(x(i+1)-x(i))<tol
sprintf('Satisfecha la tolerancia en %g iteraciones',i)
break;
end
end
if i>=nmax_iter
sprintf('Hemos alcanzado el número de iteraciones %g', nmax_iter)
end
iteraciones
sprintf('La raíz es %g', x(i+1))
y=x(i+1);

95
Fernández F. , Andrada J.

Ejemplo 2. Método de mínimos cuadrados de ajuste lineal.


Supóngase que se desea ajustar una línea recta
y = α1 + α 2 ⋅ x
a los pares de puntos (x1, y1), (x2, y2), (x3, y3), ..., (xn, yn), de forma que la suma de las
desviaciones elevadas al cuadrado
n n 2

R = ∑ ri = ∑ ( y i − (α 1 + α 2 ⋅ x i ))
2

i =1 i =1

sea mínima.

% Método mínimos cuadradados: ajuste.m

disp('Método de ajuste mínimo cuadrático');


x=[];y=[];
x=input('Vector X de observaciones (1xn) = ');
y=input('Vector Y de observaciones (1xn) = ');
A=[X ones(X)];
coef=inv(A'*A)*(A'*Y);
sprintf('La línea de ajuste es y=%g+%g*x.',coef(1),coef(2))

Ejemplo 3. Proceso aleatorio con deriva.


El programa MATLAB resulta igualmente muy eficaz a la hora de tratar procesos
estocásticos. Veamos a continuación un ejemplo donde se maneja un paseo aleatorio
con deriva.
xt +1 = 0.7 ⋅ x t + 10 + ε t

% Paseo aleatorio con deriva: paseoaleatorio.m


x=[ ];x(1)=0;
for i=1:1000
x(i+1)=0.7*x(i)+10+randn;
end
plot(x), title('Paseo aleatorio con deriva')

96
Docencia de Matemáticas en la Economía y la Empresa

Ejemplo 4. Criterio del valor capital.


Consideremos una inversión consistente en un desembolso inicial de una cantidad
A que producirá, durante n años, una corriente de beneficios esperados Q1, Q2, Q3,...,
Qn, siendo k1, k2, k3, ..., kn los tipos de descuento para los sucesivos períodos. Suárez
(1996), define el valor del capital de la inversión como
Q1 Q2 Qn
VC = − A + + +L+
(1 + k 1 ) (1 + k 1 )(1 + k 2 ) (1 + k 1 )(1 + k 2 )K (1 + k n )

% Criterio del valor capital de una corriente de rendimientos: valor_capital.m

q=input('Vector de flujos netos de caja =');


k=input('Vector de tipos de descuento=');
A=input('Inversión inicial=');
valorcapital=[];
denominador=1;
n=length(k);
for i=1:n
denominador=denominador*(1+k(i));
valorcapital(i)=q(i)/denominador;
end
sprintf('El valor capital de la inversión es %g', -A+sum(valorcapital))

4. Conclusiones
Hoy día está ampliamente aceptado que el manejo de un ordenador y diversos
programas como el DERIVE, el SPSS o el STATGRAPHIC debe entrar en el acervo de
conocimientos básicos de un licenciado en Economía. En este trabajo pretendemos dar
un paso más, defendiendo que la enseñanza de los algoritmos también puede jugar un
importante papel dentro del bagaje de conocimientos matemáticos e informáticos
básicos que deben enseñarse en nuestras facultades.
El argumento para defender la enseñanza de los algoritmos tiene una raíces
profundamente didácticas. En la actualidad existe un amplio consenso entre las escuelas
de didáctica de las matemáticas de que el objetivo prioritario del proceso enseñanza-

97
Fernández F. , Andrada J.

aprendizaje de las matemáticas, a todos los niveles, no es otro que el de potenciar en el


alumno las capacidades intelectuales que intervienen en el proceso de resolución de
problemas (Cajaraville, 1989). Concretamente el National Council of Teachers of
Mathematics de los Estados Unidos, formuló el tema de la resolución de problemas
como el objetivo prioritario durante los años 80. Los procesos mentales que son
desarrollados por un alumno al resolver un problema con un ordenador, mediante el uso
de un algoritmo, constituyen un perfecto complemento a los procesos que se desarrollan
con la resolución de problemas en sí misma.
En primer lugar, resolver un problema mediante un algoritmo obliga a tener un
conocimiento profundo del problema, a dar una descripción ampliamente detallada del
mismo y a confeccionar toda una estrategia de resolución.
En segundo lugar, el lenguaje abstracto, conciso y formal que requiere la
reducción de un problema a un algoritmo desarrolla en el alumno una habilidades de
abstracción, reflexión y capacidad de pensamiento que tienen, de por sí, un elevado
interés dentro del proceso de aprendizaje de las Matemáticas.
Por último, el manejo de algoritmos tiene gran importancia práctica para los
alumnos al dotarles de una considerable autonomía de cálculo y ejecución. Con los
algoritmos serán capaces de desarrollar la capacidad de resolver una gran variedad de
diferentes problemas de todas las disciplinas de carácter cuantitativo de su carrera. En
este trabajo hemos puesto como ejemplo cuatro algoritmos que están vinculados con las
Matemáticas, la Estadística, la Econometría y las Matemáticas Financieras.

Las experiencias de la enseñanza de los algoritmos en los Estudios de Economía


y Dirección de Empresa son limitadas a todos los niveles. Basta señalar que muy pocos
libros de Matemáticas o Econometría, de carácter no especializado, tratan el tema de
cómo realizar el cómputo numérico para obtener los resultados previamente anunciados
por la teoría.

La experiencia de la que partimos los autores de este trabajo en la enseñanza de


algoritmos en el entorno MATLAB es considerable aunque no definitiva. El MATLAB
comenzó, en nuestra experiencia, por convertirse en una herramienta imprescindible en
la realización de Tesis Doctorales de Matemáticas Aplicadas a la Economía y las

98
Docencia de Matemáticas en la Economía y la Empresa

Finanzas. Posteriormente, el MATLAB entró a formar parte de los estudios de Tercer


Ciclo de las áreas de Economía Aplicada. Finalmente el MATLAB terminó por
constituir una parte sustancial de una asignatura optativa de la licenciatura de Economía
titulada Modelos Matemáticos de la Dinámica Económica que cursaban estudiantes de
tercer o cuarto año.
Un debate que está pendiente es el de la conveniencia de introducir la enseñanza
de algoritmos en el entorno MATLAB en el primer ciclo de nuestras titulaciones.

5. Bibliografía
Borrell Fontelles, J. (1987): Métodos matemáticos para la economía. Ed. Pirámide.
Madrid.
Carajaville, J.A. (1989): Ordenador y Educación Matemática. Algunas modalidades de
uso. Ed. Síntesis S.A.Madrid.
DeGroot, M. H. (1998): Probabilidad y estadística. Ed. Addison-Wesley
Iberoamericana. México.
Etter, D.M. (1997): Solución de Problemas en Ingeniería con MATLAB. Ed. Prentice
Hall. México
Fernández, F. y Andrada, J. (2000): "Una introducción al MATLAB en Economía y
Finanzas". Guía de Prácticas. Departamento de Métodos Cuantitativos en
Economía y Gestión. Facultad de Ciencias Económicas y Empresariales.
Universidad de Las Palmas de Gran Canaria.
Greene, W. H. (1998): Análisis Econométrico. 3ª edición. Ed. Prentice Hall. México.
Hanselman, D. y Littlefield, B (1998): MATLAB, edición estudiante. Guía del usuario.
Versión 4. Ed. Prentice Hall. España.
Lindfield, G. y Penny, J. (1995): Numerical Methods Using MATLAB. Ed. Ellis
Hordwood. London.
Nakamura, S (1997): Análisis Numérico y Visualización gráfica con MATLAB. Ed.
Prentice Hall. México.
Suárez, A. S. (1996): Decisiones Ótimas de Inversión y Financiación en la Empresa. Ed.
Pirámide. Madrid.

99

También podría gustarte