Está en la página 1de 10

DIRECCIN DE INGENIERA DE TELECOMUNICACIONES

GUIA DE LABORATORIO N 2
FACULTAD DIRECCIN CURSO DOCENTE : INGENIERA DE SISTEMAS Y ELECTRNICA : INGENIERA DE TELECOMUNICACIONES : MTODOS MATEMTICOS DE TELECOMUNICACIONES I : JUAN CARLOS BRONCANO TORRRES

TEMA: PRINCIPOS DE PROGRAMACIN Y FUNCIONES MATEMTICAS USUALES


OBJETIVOS:

- Manipular funciones matemticas. - Programar en Mxima.

MATERIALES A UTILIZAR:

Software matemtico Mxima.

Funciones Matemticas usuales.

Para definir una funcin en Maxima se utiliza el operador :=. Se pueden definir funciones de una o varias variables, con valores escalares o vectoriales,

DIRECCIN DE INGENIERA DE TELECOMUNICACIONES

que se pueden utilizar como cualquier otra funcin.

Si la funcin tiene valores vectoriales o varias variables tampoco hay problema:

Tambin se puede utilizar el comando define para definir una funcin. Por ejemplo, podemos utilizar la funcin g para definir una nueva funcin y, de hecho veremos que sta es la manera correcta de hacerlo cuando la definicin involucra funciones previamente definidas, derivadas de funciones, etc. El motivo es que la orden define evala los comandos que pongamos en la definicin.

Eso s, aunque hemos definido las funciones f , g y h, para utilizarlas debemos aadirles variables:

Si queremos saber cul es la definicin de la funcin g, tenemos que preguntar

pero teniendo cuidado de escribir el nmero correcto de variables

Esto plantea varias cuestiones muy relacionadas entre s: cuando llevamos un rato trabajando y hemos definido varias funciones, cmo sabemos cuales eran? y cul era su definicin?. La lista de funciones que hemos definido se guarda en la variable functions a la que tambin puedes

DIRECCIN DE INGENIERA DE TELECOMUNICACIONES

acceder desde el men Maxima Mostrar funciones de manera similar a como accedemos a la lista de variables. En el mismo men, Maxima Borrar funcin tenemos la solucin a cmo borrar una funcin (o todas). Tambin podemos hacer esto con la orden remfunction.

Ya sabemos preguntar cul es la definicin de cada una de ellas. Ms cmodo es, quizs, utilizar la orden fundef que nos evita escribir las variables

que, si nos interesa, podemos borrar

o, simplemente, borrar todas las que tengamos definidas

Funciones definidas a trozos Las funciones definidas a trozos plantean algunos problemas de difcil solucin para Mxima esencialmente hay dos formas de definir y trabajar con funciones a trozos: a) definir una funcin para cada trozo con lo que tendremos que ocuparnos nosotros de ir escogiendo de elegir la funcin adecuada, o b) utilizar una estructura if-then-else para definirla. Cada uno de los mtodos tiene sus ventajas e inconvenientes. El primero de ellos nos hace aumentar el nmero de funciones que definimos, usamos y tenemos que nombrar y recordar. Adems de esto, cualquier cosa que queramos hacer, ya sea representar grficamente o calcular una integral tenemos que plantearlo nosotros. Maxima no se encarga de esto. La principal limitacin del segundo mtodo es que las funciones definidas de esta manera no nos sirven para derivarlas o integrarlas, aunque s podremos dibujar su grfica. Por ejemplo, la funcin

la podemos definir de la siguiente forma utilizando el segundo mtodo

DIRECCIN DE INGENIERA DE TELECOMUNICACIONES

y podemos evaluarla en un punto

o dibujarla

Evidentemente, si la funcin tiene muchos trozos, la definicin se alarga; no cabe otra posibilidad. En este caso tenemos que anidar varias estructuras if-then-else o definir tantas funciones como trozos. Por ejemplo, la funcin

la podemos escribir como

Existe una manera alternativa de definir una funcin a trozos veamos como: define la funcin.

DIRECCIN DE INGENIERA DE TELECOMUNICACIONES

Por otra parte, se tiene el paquete pw elaborado por Richard Hennessy, el cual est en proceso de desarrollo, que puede resultar til en ciertos casos.

El paquete pw (cuya versin en la actualidad es 6.4) se puede descargar desde http://sourceforge.net/projects/piecewisefunc/ Esto define la funcin:

Programando en Mxima La elaboracin de programas con el lenguaje de programacin de Maxima permite al usuario definir sus propias funciones. De esta manera se hace posible la automatizacin de secuencias de operaciones que son tiles para abordar la solucin de un determinado tipo de problema. Adems, es posible implementar varias funciones, relacionadas con cierto tema, y guardarlas en un solo archivo que luego se pueda ejecutar sin necesidad de visualizar todo el cdigo elaborado. A tal archivo se le conoce como paquete de funciones. Operadores relacionales y lgicos De manera similar que cualquier lenguaje de programacin Maxima incluye operadores relacionales y lgicos, as como estructuras de control (que se utilizan para controlar el flujo del programa en una rutina). En Maxima, los operadores lgicos pueden ser infijos o prefijos. Un operador recibe el nombre de infijo cuando ste debe escribirse entre los operandos, por ejemplo el operador and cuya sintaxis es p and q, para ciertos operandos p y q. Por otra parte, un operador prefijo es aquel que debe escribirse antes del operando, por ejemplo el operador not cuya sintaxis es not p, para cierto operando p. Cabe destacar que, en Maxima, casi todos los operadores lgicos son infijos y nicamente hay un operador lgico prefijo.

DIRECCIN DE INGENIERA DE TELECOMUNICACIONES

Tngase en cuenta que las expresiones consideradas en los ejemplos de las entradas ( %i1) y ( %i2) equivalen a las expresiones: if 2 = 3 then 1 else false y if 3 = 3 then 1 else false, respectivamente.

DIRECCIN DE INGENIERA DE TELECOMUNICACIONES

Operadores y argumentos Casi todo en Maxima es un objeto de la forma fun(a1; ; an), es decir, una expresin que comprende un operador como fun y los argumentos de ste, a1;.; an. Las funciones op y args permiten averiguar la estructura de las expresiones.

Aqu se define la expresin a + b, la cual es almacenada en la variable expr.

A continuacin, con la primera operacin se obtiene el operador de la expresin previamente definida; y en la segunda, se obtiene una lista con los argumentos de dicha expresin.

DIRECCIN DE INGENIERA DE TELECOMUNICACIONES

Algunas expresiones (plot2d, integrate, etc.) requieren de una comilla simple

Programacin funcional La programacin funcional es la programacin que pone nfasis en el uso de funciones. Maxima incluye las funciones predefinidas apply, map, lambda que permiten apreciar la potencia de la programacin funcional.

Aqu se define la funcin G, la cual es aplicada luego a una lista cuyos elementos pasan a ser los argumentos de G.

En este caso se aplica la funcin predefinida min.

En este ejemplo se define una funcin lambda con dos argumentos y un argumento opcional. Luego esta funcin es evaluada en tres argumentos y se obtiene una lista con el resultado esperado, no obstante al evaluar la funcin en ms argumentos se obtiene una lista con tantos elementos como argumentos adicionales hay.

DIRECCIN DE INGENIERA DE TELECOMUNICACIONES

Implementacin del paquete: ejemplo En esta seccin se implementar el paquete ejemplo, que incorporar las funciones triangulo y circunferencia. Aqu se define la funcin triangulo. Esta funcin permite calcular el rea de un tringulo y el baricentro de un conjunto de puntos de R2 , dados. Adems, si los puntos son colineales, devuelve el mensaje: Los puntos son colineales.

Dado el conjunto de puntos del plano{ (1; 2); (3;-1); (2; 3)}, no colineales, la funcin triangulo devuelve el rea y las coordenadas del baricentro del tringulo definido por los puntos dados.

Para visualizar los grficos se utilizar el paquete draw.

Esto muestra la grfica del tringulo previamente analizado, conjuntamente con el punto que corresponde al baricentro del mismo.

DIRECCIN DE INGENIERA DE TELECOMUNICACIONES

Puesto que, en este caso, los puntos del conjunto {(1; 1); (2; 2); (3; 3)} son colineales, la funcin triangulo devuelve un mensaje indicando ste hecho.

Aqu se define la funcin circunferencia que permite obtener la ecuacin de la circunferencia definida por tres puntos dados.

Dado el conjunto de puntos del plano {(1; 2); (3;-1); (2; 3)}, no colineales, la funcin circunferencia devuelve la ecuacin de la circunferencia definida por estos puntos.

Esto muestra la grfica de la circunferencia previamente analizada, conjuntamente con los puntos que la definen.

10