Está en la página 1de 11

Docencia de Matemticas en la Economa y la Empresa

ALGORITMOS Y CAJAS NEGRAS EL PROGRAMA MATLAB EN LA FORMACIN BSICA EN ECONOMA Y FINANZAS

Fernando Fernndez Rodrguez Julin Andrada Flix


Departamento de Mtodos Cuantitativos en Economa y Gestin Universidad de Las Palmas de Gran Canaria

Resumen: Los cursos de mtodos cuantitativos que se imparten en las distintas facultades de Ciencias Econmicas y Empresariales en general, permiten al alumno disponer de una serie de programas informticos -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 informtico 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 metodologa, enfatizando en un concepto fundamental en todo el desarrollo cuantitativo: el algoritmo. El enfoque del aprendizaje ser la construccin de algoritmos netamente prcticos, de forma que se asimile su concepto a la misma vez que se implemente. Haremos un sencillo recorrido por ciertos problemas fcilmente resolubles a travs de algoritmos implementados bajo el entorno de trabajo MATLAB.

89

Fernndez F. , Andrada J.

1. Introduccin Cada da suena el despertador y nos levantamos, realizamos an soolientos las tareas cotidianas propias -nos aseamos, tomamos decisiones sobre el vestir, sobre qu desayunar, salimos de casa, llegamos a la facultad, etc.- preguntndonos en ocasiones dnde estamos? cuando nuestros alumnos extraados nos observan. Cada una de estas acciones conlleva la repeticin de ciertas pautas de conducta generales asumidas, transformando as el desorden del despertar en una secuencia de procedimientos que podramos clasificar como programados. Estos pequeos actos se convierten en un programa matutino diseado que nos permite reaccionar ante la informacin procedente de nuestro entorno, la cual organizamos de forma lgica y, supuestamente, eficiente. Cualquier problema diario, planteado en distintos contextos que traducen necesidades del mundo real, sea sencillo o no, tiende a ser programado despus de haber abstrado lo relevante de la informacin y haber creado un procedimiento que podramos incluso llamar algoritmo. En nuestra vida, y en general en las ciencias matemticas, tratamos de encontrar y ensear algoritmos que nos hagan la vida ms sencilla, y a nuestros alumnos, futuros diplomados y licenciados, los crditos ms asequibles. Hablar sobre los algoritmos que facilitan nuestras vidas requerira ms de 11 pginas para cada uno de nosotros, pero hablar de algoritmos matemticos puede no sobrepasar este trabajo.

Frecuentemente impartimos clase en asignaturas donde tenemos la suerte de trabajar apoyados por equipos informticos que nos abren un sinfn de posibilidades en nuestra labor educadora. De hecho, numerosos planes de estudio de las licenciaturas de Economa y Administracin y Direccin de Empresas que se imparten en nuestro pas recogen determinadas asignaturas cuyos descriptores promueven el uso del ordenador como recurso metodolgico imprescindible. En la mayora de stos, los complejos programas informticos utilizados para resolver problemas matemticos aparecen ante el alumno como cajas negras. Tras las explicaciones terica y prctica de cmo funciona este o aquel mtodo vlido para la resolucin 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 Matemticas en la Economa y la Empresa

regresin, soluciones de sistemas de ecuaciones lineales, races de polinomios, valores de estadsticos de contraste de hiptesis que nos planteamos, etc. As pues, fomentamos el uso de determinados programas cerrados que pretendemos defender como recursos metodolgicos. De cualquier modo, la certeza de un aprendizaje ms prctico justifica ahorrar tiempo de resolucin, ya que la distribucin temporal de los crditos en nuestras asignaturas no permite ahondar en cuestiones tcnicas. Pero podemos dar un paso ms si los descriptores recogen en alguna de nuestras asignaturas la programacin de sencillos algoritmos matemticos que constituyan un eslabn adicional en el aprendizaje integrado y en la formacin bsica de un economista, a lo cual aadiramos el inherente incremento de ciertas capacidades interesantes como la abstraccin, la comprensin, la formalizacin de pautas y orden en la resolucin de problemas, etc. Como cita Cajaraville (1989): ...mltiples estudios confirman que el alumno medio, al trmino 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 ensear a desarrollar destrezas para interpretar la informacin, estructurarla, organizarla, formular hiptesis, verificarlas, sintetizarlas y generalizar conclusiones. Todo ello a travs de algoritmos matemticos que disipen las lagunas procedimentales que crecen en el alumno a la desmesurada velocidad con que avanza la innovacin tecnolgica.

Las experiencias de la enseanza de los algoritmos en los Estudios de Economa y Direccin de Empresa son limitadas. Basta sealar que muy pocos libros de Matemticas o Econometra, de carcter no especializado, tratan el tema de cmo realizar el cmputo numrico necesario para obtener resultados previamente anunciados por la teora. Como prototipo de manuales ampliamente conocidos, que han tomado en consideracin algn tipo de tema relacionado con la algortmia cabra citar el de Borrell Fontelles (1987) sobre Programacin Matemtica y el de Greene (1998) sobre Econometra. Ambos textos muestran diversos algoritmos especficos que permiten realizar procesos de optimizacin.

91

Fernndez F. , Andrada J.

Afortunadamente, en el mercado existe una infinidad de programas informticos alejados de los poco recomendables lenguajes de programacin convencionales, excesivamente complicados para la enseanza bsica de la programacin de algoritmos matemticos. Dichos programas permiten enfrentarnos con sencillez a la hiptesis defendida anteriormente. Estos programas etiquetados como entornos de trabajo nos hacen ms amable la enseanza y el aprendizaje de la programacin elemental. Gauss, Mathematica, Matlab, Derive, etc., son paquetes informticos que omos o utilizamos constantemente en nuestras investigaciones, porque nos facilitan la construccin y comprensin de funciones y procedimientos esenciales. Pero adems, nos permiten visualizar, por sus poderosas capacidades grficas, qu est pasando con los resultados obtenidos. Entre los diversos programas citados, nosotros destacamos por sus caractersticas y versatilidad el entorno MATLAB como herramienta para realizar desde sencillos clculos aritmticos hasta complejos estudios dinmicos, al disponer de un sistema interactivo con el usuario. Pero que, adems, proporciona un sencillo lenguaje de programacin para facilitar la construccin de programas elementales en la implemetacin de algoritmos matemticos. Cualquier otro programa de los citados y de los no citados, puede resultar perfectamente vlido para iniciar a nuestros alumnos en la atractiva tarea del aprendizaje de algoritmos matemticos.

El presente trabajo se organiza como sigue: en la seccin 2 definimos lo que es un algoritmo matemtico y su relacin con la creacin de archivos .m en el entorno MATLAB. En la seccin 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 seccin 4 exponemos nuestras conclusiones a partir de la experiencia desarrollada en la asignatura optativa de Modelos Matemticos de Dinmica Econmica, impartida por el Departamento de Mtodos Cuantitativos en Economa y Gestin de la Universidad de Las Palmas de Gran Canaria, y enmarcada en los planes de estudios de la licenciatura de Economa.

92

Docencia de Matemticas en la Economa y la Empresa

2. Algoritmos matemticos Un modelo matemtico es la expresin, en trminos matemticos, de un problema definido que establece relaciones entre las variables consideradas relevantes. Los algoritmos matemticos en los que nos centraremos constituyen en s mismos, una secuencia finita de operaciones lgicas y aritmticas realizadas paso a paso en un determinado orden, que permite hallar la solucin numrica de un problema modelizado matemticamente. Esta secuencia de instrucciones puede ser ejecutada en una sola direccin o no, por lo que hablaremos ejecucin 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 algortmico, iterativo, contina hasta que se verifiquen determinadas condiciones respecto a las variables involucradas, aunque en ciertos casos no es posible saber de antemano el nmero de veces que se ha de repetir el algoritmo. Los ordenadores, no deciden, slo son capaces de llevar a cabo, de forma primaria, las reglas elementales de la aritmtica o la lgica. Cualquier otro tipo de operacin matemtica o lgica ms compleja ha de reducirse a las reglas elementales mediante el uso de los algoritmos. Los algoritmos constituyen as, el primer paso hacia la programacin de un problema, en nuestro caso, el primer paso especfico en la construccin de programas en archivos .m, en MATLAB, mediante un editor de textos. Un programa requiere el diseo del algoritmo matemtico que subyace en la resolucin de un problema, de estructuras de programacin, 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 descripcin detallada de la secuencia de instrucciones que debera seguir un ordenador para solventar la tarea encomendada, de forma que con la informacin esencial y una vez implementado pueda ser resuelta.

Control del flujo de un programa Cuando pensamos en una secuencia de instrucciones encaminada a resolver numricamente un determinado problema estamos tratando de adivinar cul sera el 93

Fernndez F. , Andrada J.

camino correcto para su resolucin. Este camino, que deber recorrer el ordenador, se denomina flujo de ejecucin de instrucciones y nosotros deberemos establecer previamente el control de dicho flujo. En ocasiones, hemos de controlar el flujo de ejecucin en funcin de los datos que se estn procesando o de los resultados que genere. Las tres estructuras fundamentales que permitirn el control del flujo de un programa son: estructuras lineales, cuya organizacin secuencial consta de una nica direccin, sin necesidad de establecer su control; estructuras de decisin, que permiten representar planteamientos lgicos ante cierta proposicin con la consecuente ejecucin de bloques de instrucciones alternativos, y estructuras de repeticin 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 bifurcacin condicional if/else/end que nos permitir ejecutar un bloque de instrucciones u otro alternativo, en funcin de si una determinada condicin se verifica o no; y los bucles for/end, while/end que permiten repetir un bloque de instrucciones sucesivas un nmero finito o infinito de veces, respectivamente.

3. Diversos algoritmos matemticos Presentemos a continuacin problemas de diversa ndole, que pueden resolverse fcilmente mediante la implementacin del algoritmo matemtico que subyace en su resolucin numrica. Hemos seleccionado un ejemplo vinculado con las matemticas, la aproximacin de races de una ecuacin por medio del mtodo de Newton-Raphson; un ejemplo relacionado con la estadstica, el mtodo de ajuste mnimos cuadrados; un ejemplo economtrico, el proceso estocstico con deriva; y finalmente como cuarto ejemplo, uno perteneciente a las matemticas financieras, el clculo del valor capital de una inversin.

Ejemplo 1. Mtodo de Newton-Raphson de aproximacin de races: Para aproximar una raz de la ecuacin f(x)=0 se comienza con una estimacin previa x0 y se genera una sucesin x1, x2, x3,... de aproximaciones cada vez ms precisas mediante la frmula

94

Docencia de Matemticas en la Economa y la Empresa

x n +1 = x n

f (x n ) , f ( x n )

f ( x n ) 0

En esta situacin, o bien la sucesin de aproximaciones converge hacia un lmite que es una raz de la ecuacin, o bien no tiene lmite.

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

function y=newton_raphson(fun,x0) clc %Mtodo de Newton-Raphson: newton_raphson.m %Requiere que fun sea una funcin de archivo.m, cuyos argumentos sean: % fun= funcin mediante variable string, x0= valor inicial disp('Mtodo 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 nmero de iteraciones %g', nmax_iter) end iteraciones sprintf('La raz es %g', x(i+1)) y=x(i+1); 95

Fernndez F. , Andrada J.

Ejemplo 2. Mtodo de mnimos cuadrados de ajuste lineal. Supngase que se desea ajustar una lnea 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 R = ri = ( y i ( 1 + 2 x i ))
2 i =1 i =1 n n 2

sea mnima.

% Mtodo mnimos cuadradados: ajuste.m

disp('Mtodo de ajuste mnimo cuadrtico'); 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 lnea 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 estocsticos. Veamos a continuacin 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 Matemticas en la Economa y la Empresa

Ejemplo 4. Criterio del valor capital. Consideremos una inversin consistente en un desembolso inicial de una cantidad A que producir, durante n aos, una corriente de beneficios esperados Q1, Q2, Q3,..., Qn, siendo k1, k2, k3, ..., kn los tipos de descuento para los sucesivos perodos. Surez (1996), define el valor del capital de la inversin como VC = A + Qn Q1 Q2 + +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('Inversin 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 inversin es %g', -A+sum(valorcapital))

4. Conclusiones Hoy da 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 bsicos de un licenciado en Economa. En este trabajo pretendemos dar un paso ms, defendiendo que la enseanza de los algoritmos tambin puede jugar un importante papel dentro del bagaje de conocimientos matemticos e informticos bsicos que deben ensearse en nuestras facultades. El argumento para defender la enseanza de los algoritmos tiene una races profundamente didcticas. En la actualidad existe un amplio consenso entre las escuelas de didctica de las matemticas de que el objetivo prioritario del proceso enseanza97

Fernndez F. , Andrada J.

aprendizaje de las matemticas, a todos los niveles, no es otro que el de potenciar en el alumno las capacidades intelectuales que intervienen en el proceso de resolucin de problemas (Cajaraville, 1989). Concretamente el National Council of Teachers of Mathematics de los Estados Unidos, formul el tema de la resolucin de problemas como el objetivo prioritario durante los aos 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 resolucin 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 descripcin ampliamente detallada del mismo y a confeccionar toda una estrategia de resolucin. En segundo lugar, el lenguaje abstracto, conciso y formal que requiere la reduccin de un problema a un algoritmo desarrolla en el alumno una habilidades de abstraccin, reflexin y capacidad de pensamiento que tienen, de por s, un elevado inters dentro del proceso de aprendizaje de las Matemticas. Por ltimo, el manejo de algoritmos tiene gran importancia prctica para los alumnos al dotarles de una considerable autonoma de clculo y ejecucin. Con los algoritmos sern capaces de desarrollar la capacidad de resolver una gran variedad de diferentes problemas de todas las disciplinas de carcter cuantitativo de su carrera. En este trabajo hemos puesto como ejemplo cuatro algoritmos que estn vinculados con las Matemticas, la Estadstica, la Econometra y las Matemticas Financieras.

Las experiencias de la enseanza de los algoritmos en los Estudios de Economa y Direccin de Empresa son limitadas a todos los niveles. Basta sealar que muy pocos libros de Matemticas o Econometra, de carcter no especializado, tratan el tema de cmo realizar el cmputo numrico para obtener los resultados previamente anunciados por la teora.

La experiencia de la que partimos los autores de este trabajo en la enseanza 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 realizacin de Tesis Doctorales de Matemticas Aplicadas a la Economa y las

98

Docencia de Matemticas en la Economa y la Empresa

Finanzas. Posteriormente, el MATLAB entr a formar parte de los estudios de Tercer Ciclo de las reas de Economa Aplicada. Finalmente el MATLAB termin por constituir una parte sustancial de una asignatura optativa de la licenciatura de Economa titulada Modelos Matemticos de la Dinmica Econmica que cursaban estudiantes de tercer o cuarto ao. Un debate que est pendiente es el de la conveniencia de introducir la enseanza de algoritmos en el entorno MATLAB en el primer ciclo de nuestras titulaciones. 5. Bibliografa Borrell Fontelles, J. (1987): Mtodos matemticos para la economa. Ed. Pirmide. Madrid. Carajaville, J.A. (1989): Ordenador y Educacin Matemtica. Algunas modalidades de uso. Ed. Sntesis S.A.Madrid. DeGroot, M. H. (1998): Probabilidad y estadstica. Ed. Addison-Wesley

Iberoamericana. Mxico. Etter, D.M. (1997): Solucin de Problemas en Ingeniera con MATLAB. Ed. Prentice Hall. Mxico Fernndez, F. y Andrada, J. (2000): "Una introduccin al MATLAB en Economa y Finanzas". Gua de Prcticas. Departamento de Mtodos Cuantitativos en Economa y Gestin. Facultad de Ciencias Econmicas y Empresariales. Universidad de Las Palmas de Gran Canaria. Greene, W. H. (1998): Anlisis Economtrico. 3 edicin. Ed. Prentice Hall. Mxico. Hanselman, D. y Littlefield, B (1998): MATLAB, edicin estudiante. Gua del usuario. Versin 4. Ed. Prentice Hall. Espaa. Lindfield, G. y Penny, J. (1995): Numerical Methods Using MATLAB. Ed. Ellis Hordwood. London. Nakamura, S (1997): Anlisis Numrico y Visualizacin grfica con MATLAB. Ed. Prentice Hall. Mxico. Surez, A. S. (1996): Decisiones timas de Inversin y Financiacin en la Empresa. Ed. Pirmide. Madrid.

99

También podría gustarte