Your SlideShare is downloading. ×
Semana 02 software libre maxima
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Semana 02 software libre maxima

24
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
24
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. DIRECCIÓN DE INGENIERÍA DE TELECOMUNICACIONES GUIA DE LABORATORIO N° 2 FACULTAD DIRECCIÓN CURSO DOCENTE : INGENIERÍA DE SISTEMAS Y ELECTRÓNICA : INGENIERÍA DE TELECOMUNICACIONES : MÉTODOS MATEMÁTICOS DE TELECOMUNICACIONES I : JUAN CARLOS BRONCANO TORRRES TEMA: PRINCIPOS DE PROGRAMCIÓN Y FUNCIONES MATEMÁTICAS USUALES OBJETIVOS: - Manipular funciones matemáticas. - Programar en Máxima. MATERIALES A UTILIZAR: · Software matemático Máxima. Funciones Matemáticas usuales. Para definir una función en Maxima se utiliza el operador :=. Se pueden definir funciones de una o varias variables, con valores escalares o vectoriales, 1
  • 2. DIRECCIÓN DE INGENIERÍA DE TELECOMUNICACIONES que se pueden utilizar como cualquier otra función. Si la función tiene valores vectoriales o varias variables tampoco hay problema: También se puede utilizar el comando define para definir una función. Por ejemplo, podemos utilizar la función g para definir una nueva función y, de hecho veremos que ésta es la manera correcta de hacerlo cuando la definición involucra funciones previamente definidas, derivadas de funciones, etc. El motivo es que la orden define evalúa los comandos que pongamos en la definición. Eso sí, aunque hemos definido las funciones f , g y h, para utilizarlas debemos añadirles variables: Si queremos saber cuál es la definición de la función g, tenemos que preguntar pero teniendo cuidado de escribir el número correcto de variables Esto plantea varias cuestiones muy relacionadas entre sí: cuando llevamos un rato trabajando y hemos definido varias funciones, ¿cómo sabemos cuales eran? y ¿cuál era su definición?. La lista de funciones que hemos definido se guarda en la variable functions a la que también puedes 2
  • 3. DIRECCIÓN DE INGENIERÍA 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 función tenemos la solución a cómo borrar una función (o todas). También podemos hacer esto con la orden remfunction. Ya sabemos preguntar cuál es la definición de cada una de ellas. Más cómodo es, quizás, 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 difícil solución para Máxima esencialmente hay dos formas de definir y trabajar con funciones a trozos: a) definir una función para cada trozo con lo que tendremos que ocuparnos nosotros de ir escogiendo de elegir la función adecuada, o b) utilizar una estructura if-then-else para definirla. Cada uno de los métodos tiene sus ventajas e inconvenientes. El primero de ellos nos hace aumentar el número de funciones que definimos, usamos y tenemos que nombrar y recordar. Además de esto, cualquier cosa que queramos hacer, ya sea representar gráficamente o calcular una integral tenemos que plantearlo nosotros. Maxima no se encarga de esto. La principal limitación del segundo método es que las funciones definidas de esta manera no nos sirven para derivarlas o integrarlas, aunque sí podremos dibujar su gráfica. Por ejemplo, la función la podemos definir de la siguiente forma utilizando el segundo método 3
  • 4. DIRECCIÓN DE INGENIERÍA DE TELECOMUNICACIONES y podemos evaluarla en un punto o dibujarla Evidentemente, si la función tiene “muchos” trozos, la definición 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 función la podemos escribir como Existe una manera alternativa de definir una función a trozos veamos como: define la función. 4
  • 5. DIRECCIÓN DE INGENIERÍA 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 versión en la actualidad es 6.4) se puede descargar desde http://sourceforge.net/projects/piecewisefunc/ Esto define la función: Programando en Máxima La elaboración de programas con el lenguaje de programación de Maxima permite al usuario definir sus propias funciones. De esta manera se hace posible la automatización de secuencias de operaciones que son útiles para abordar la solución de un determinado tipo de problema. Además, 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 código elaborado. A tal archivo se le conoce como paquete de funciones. Operadores relacionales y lógicos De manera similar que cualquier lenguaje de programación Maxima incluye operadores relacionales y lógicos, así como estructuras de control (que se utilizan para controlar el flujo del programa en una rutina). En Maxima, los operadores lógicos 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 lógicos son infijos y únicamente hay un operador lógico prefijo. 5
  • 6. DIRECCIÓN DE INGENIERÍA DE TELECOMUNICACIONES Téngase 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. 6
  • 7. DIRECCIÓN DE INGENIERÍA DE TELECOMUNICACIONES Operadores y argumentos Casi todo en Maxima es un objeto de la forma fun(a1; ……… ; an), es decir, una expresión 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 expresión a + b, la cual es almacenada en la variable expr. A continuación, con la primera operación se obtiene el operador de la expresión previamente definida; y en la segunda, se obtiene una lista con los argumentos de dicha expresión. 7
  • 8. DIRECCIÓN DE INGENIERÍA DE TELECOMUNICACIONES Algunas expresiones (plot2d, integrate, etc.) requieren de una comilla simple Programación funcional La programación funcional es la programación que pone énfasis en el uso de funciones. Maxima incluye las funciones predefinidas apply, map, lambda que permiten apreciar la potencia de la programación funcional. Aquí se define la función G, la cual es aplicada luego a una lista cuyos elementos pasan a ser los argumentos de G. En este caso se aplica la función predefinida min. En este ejemplo se define una función lambda con dos argumentos y un argumento opcional. Luego esta función es evaluada en tres argumentos y se obtiene una lista con el resultado esperado, no obstante al evaluar la función en más argumentos se obtiene una lista con tantos elementos como argumentos adicionales hay. 8
  • 9. DIRECCIÓN DE INGENIERÍA DE TELECOMUNICACIONES Implementación del paquete: ejemplo En esta sección se implementará el paquete ejemplo, que incorporará las funciones triangulo y circunferencia. Aquí se define la función triangulo. Esta función permite calcular el área de un triángulo y el baricentro de un conjunto de puntos de R2 , dados. Además, 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 función triangulo devuelve el área y las coordenadas del baricentro del triángulo definido por los puntos dados. Para visualizar los gráficos se utilizará el paquete draw. Esto muestra la gráfica del triángulo previamente analizado, conjuntamente con el punto que corresponde al baricentro del mismo. 9
  • 10. DIRECCIÓN DE INGENIERÍA DE TELECOMUNICACIONES Puesto que, en este caso, los puntos del conjunto {(1; 1); (2; 2); (3; 3)} son colineales, la función triangulo devuelve un mensaje indicando éste hecho. Aquí se define la función circunferencia que permite obtener la ecuación de la circunferencia definida por tres puntos dados. Dado el conjunto de puntos del plano {(1; 2); (3;-1); (2; 3)}, no colineales, la función circunferencia devuelve la ecuación de la circunferencia definida por estos puntos. Esto muestra la gráfica de la circunferencia previamente analizada, conjuntamente con los puntos que la definen. 10