Ejemplos básicos de webmathematica para profesores Cualquier cálculo hecho dentro Mathematica puede ser realizado usando webmathematica con dos limitaciones significativas. Primero, al usar webmathematica, usted no tendrá acceso al máximo de las capacidades ofrecidas por el front-end de Mathematica. En segundo lugar, las restricciones de la licencia pueden prohibirle realizar ciertos cálculos al utilizar webmathematica. En esta sección mostraremos varios ejemplos simples de páginas jsp de webmathematica. Muchos de ellos se pueden copiar y utilizar como plantillas para sus el propios trabajos. Además, usted puede probar su funcionalidad en las páginas Web apropiadas. La descripción dada aquí se llevará a cabo utilizando una colección de ficheros JSP de muestra, que mostrarán algunos detalles de sus características. Las fuentes de todos estos ejemplos están incluidas en este capítulo y un software visor de páginas JPS se puede encontrar en la web del EVLM. Cuando usted acabe este capítulo deseará echar una ojeada el capítulo siguiente: Desarrollar sus propias páginas. Esto le da algunas ideas para conseguir desarrollar su propia página. Ejemplo 1 - Página con texto y evaluación estática En este ejemplo se creará una página HTML simple con texto y evaluación estática. En esta página evaluaremos la integral de una cierta función y resolveremos una ecuación lineal. Primero mostraremos los cálculos y los textos introducidos en Matemática El mismo cálculo se puede realizar mediante una página jsp. Esta página utiliza tanto etiquetas estándar de HTML como etiquetas específicas de Mathematica. Éstas son de la forma <msp: tag>. Las etiquetas de webmathematica se ejecutan desde arriba hacia abajo. La etiqueta <msp: allocate> destina el kernel del Mathematica para realizar los cálculos. Los contenidos de <msp: evaluate> son enviados al Mathematica para su cómputo. El resultado será insertado en la página final y mostrado en pantalla. La etiqueta </msp: allocate> libera el kernel del Mathematica para realizar otro cálculo. Capítulo 9 pág. 1
Usted puede comprobar este ejemplo en la página web: http://webmathematica.mathematica.sk/webmathematica/evlm/book/example1.jsp Ejemplo 2 - Página con una evaluación simple En este ejemplo se evalúa la función de Mathematica Date[] y Expand el polinomio aleatorio generado. El resultado cambia cada vez que se accede a la página, esta evaluación es realmente es proceso dinámico. Primero mostraremos los cálculos hechos en Mathematica. Capítulo 9 pág. 2
El mismo cálculo se puede puede ser realizado desde la página jsp. Las etiquetas de HTML <form> e <input> se utilizan para enviar una petición al servidor. Cada vez que accedemos a la página, una nueva evaluación es hecha por el kernel del Mathematica. El usuario puede hacer esto sin más que hacer clic en el botón de envío. Puede acceder a este ejemplo a través de la página web siguiente: http://webmathematica.mathematica.sk/webmathematica/evlm/book/example2.jsp Ejemplo 3 - Página con varias salidas gráficas Este ejemplo genera varios gráficos. Mostraremos el uso de la función de MSP MSPShow. MSPShow toma el objeto gráfico de Mathematica del comando Plot (ListPlot, Plot3D ) y genera una imagen GIF, que se almacena en el servidor, devolviendo una etiqueta de HTML <img>. Capítulo 9 pág. 3
Se presentan también varios problemas y preguntas a la hora de enviar la imagen al buscador, pero en este sencillo ejemplo no entraremos en ellos. Mathematica puede dar lugar a gráficos en un gran número de formatos incluyendo GIF, GIF animado, TPEG y SVG. Si usamos el applet de Java, LiveGraphics3D, podemos también crear y manipular gráficos tridimensionales en nuestro buscador web. Primero demostraremos los cálculos hechos en Mathematica. El mismo cálculo se puede realizar utilizando la siguiente página jsp. El código fuente: Capítulo 9 pág. 4
Podemos acceder a este ejemplo a través de la siguiente página web: http://webmathematica.mathematica.sk/webmathematica/evlm/book/example3.jsp Ejemplo 4 - Comunicación interactiva simple Este ejemplo nos permite crear un gráfico 2D de la función especificada por el usuario. Esta página es más elaborada porque contiene los elementos de HTML <form> e <input>. Éstas son maneras importantes que permiten la interacción del cliente. Un elemento <form> es un bloque de HTML que contiene elementos de entrada. Se puede activar una form con un <input> de tipo submit, esto envía el nombre y los valores asociados al servidor. Aquí, la etiqueta inicial del elemento form contiene dos atributos. La acción hace referencia a la URL a la que se accede cuando se activa la form. En este caso, es una URL relativa que se refiere al script original. El atributo method le dice al buscador qué método HTTP debe usar, en este caso un método post. Capítulo 9 pág. 5
Este ejemplo tiene cuatro etiquetas iniciales, las tres primeras permiten al usuario de la página la introducción de texto mientras que la cuarta especifica un botón que, cuando se presiona, envía la form. Cuando ésta es enviada, la información se manda desde los elementos de entrada a la URL especificada por el atributo action (en este caso el mismo archivo jsp). El texto introducido en la etiqueta de entrada, que utiliza el nombre func, será asignado a la variable de entrada $$func. El texto introducido en la etiqueta de entrada, que utiliza el nombre min, será asignado a la variable de entrada $$min, etc. La primera vez que se accede a la página no hay un valor asignado a la variable $$func. Cuando un valor es introducido en el campo de texto y se presiona el botón Evaluate, $$func almacena un valor que es enviado al servidor. El mismo proceso se realiza para las dos siguientes etiquetas de texto de entrada. Si queremos que la entrada sea interpretada y evaluada por Mathematica, necesitamos utilizar las funciones MSP. MSPValue asigna un valor interpretado por Mathematica a la variable. Nota: nombre es el nombre de la variable de HTML $$name es el nombre de la variable de Mathematica. El comando MSPBlock es específico de la programación, que aquí examina a las tres variables, $$func, $$min, $$max. Si cualquiera de éstas no tiene ningún valor asignado, MSPBlock devuelve una cadena nula, que es por lo que la primera vez que se accede a la página, no se ve ningún resultado. Los valores de las tres variables son entonces interpretadas por Mathematica. Si todo es correcto, el resultado de la interpretación es sustituido en el segundo argumento o cuerpo del MSPBlock. En este ejemplo todos los casos de func, min y max son sustituidos por el valor analizado de $$func, $$min y $$max. El resultado es entonces evaluado, ajustado a formato, y situado en la página HTML, que es devuelva al cliente. El siguiente ejemplo genera un gráfico de una cierta función func (dado por el usuario) en el rango dado por el usuario en los campos de texto min y max. La primera vez que se hizo el cálculo, los valores por defecto fueron asignados a las variables utilizadas. Capítulo 9 pág. 6
Este ejemplo se encuentra disponible en la siguiente página web: http://webmathematica.mathematica.sk/webmathematica/evlm/book/example4.jsp Capítulo 9 pág. 7
El usuario puede cambiar los valores de variables func, min y max y enviar la nueva petición para su evaluación al servidor. Si todo es correcto, el resultado aparecerá en la misma pantalla. Capítulo 9 pág. 8