martes, 31 de julio de 2012

Discreta- Grafo de un icosadodecaedro

Uno de los sólidos arquimedianos más famosos es el icosadodecaedro. Se basa en un poliedro cuasiregular formado por doce caras pentagonales y veinte caras triangulares, como aparece en la imagen.

Icosadodecaedro, imagen tomada de http://commons.wikimedia.org/wiki/File:Icosidodecahedron.jpg?uselang=es 

Podemos realizar una construcción muy hermosa con WxMaxima utilizando el paquete graphs; lo que hacemos es construir el grafo isomorfo a este cuerpo, produciendo un grafo de 30 vértices y 60 aristas. Para ello introducimos los siguientes comandos.




Para más información, puede verse la siguiente entrada de Wikipedia:

http://es.wikipedia.org/wiki/S%C3%B3lido_de_Arqu%C3%ADmedes

miércoles, 25 de julio de 2012

Discreta-Uso de Scilab para el estudio de matrices de adyacencia

Se presenta aquí un ejemplo de como estudiar la posibilidad de existencia de caminos en un grafo haciendo uso de sus matrices de adyacencia. Al elevar a n la matriz de adyacencia buscamos caminos de longitud n en el grafo. La suma de estas matrices nos devuelve los caminos posibles en el grafo de un vértice otro. Veremos un ejemplo de esta posible representación de grafos usando matrices empleando el podertde computo de Scilab.
Desarrollamos el ejercicio usando los siguientes comandos desde SciNotes, un editor con las funciones  propias de Scilab que nos permite guardar el trabajo hecho con extesiones .sci o .sce.


Con M la matriz de adyacencia del grafo definido.Y como resultados obtenemos en la consola de Scilab:

Ejecución de inicio:
  cargando entorno inicial

-->M=[0,1,1,0,0;
-->zeros(1,2),1,zeros(1,2);
-->zeros(2,3),eye(2,2);
-->1,0,1,zeros(1,2)]
 M  =

    0.    1.    1.    0.    0. 
    0.    0.    1.    0.    0. 
    0.    0.    0.    1.    0. 
    0.    0.    0.    0.    1. 
    1.    0.    1.    0.    0. 

-->M^2
 ans  =

    0.    0.    1.    1.    0. 
    0.    0.    0.    1.    0. 
    0.    0.    0.    0.    1. 
    1.    0.    1.    0.    0. 
    0.    1.    1.    1.    0. 

-->M^3
 ans  =

    0.    0.    0.    1.    1. 
    0.    0.    0.    0.    1. 
    1.    0.    1.    0.    0. 
    0.    1.    1.    1.    0. 
    0.    0.    1.    1.    1. 

-->M^4
 ans  =

    1.    0.    1.    0.    1. 
    1.    0.    1.    0.    0. 
    0.    1.    1.    1.    0. 
    0.    0.    1.    1.    1. 
    1.    0.    1.    1.    1. 

-->L=M+M^2+M^3+M^4
 L  =

    1.    1.    3.    2.    2. 
    1.    0.    2.    1.    1. 
    1.    1.    2.    2.    1. 
    1.    1.    3.    2.    2. 
    2.    1.    4.    3.    2.  

Toda la teoría empleada proviene del texto Elementos de Matemática Discretas, V.V.A.A, Editorial Sanz y Torres.


lunes, 23 de julio de 2012

Cálculo-Estudio de maximos/mínimos con contour

Se presenta aquí un problema clásico en varios cursos de cálculo vectorial; la determinación de maximos y mínimos usando conjuntos de nivel (ya sean curvas o superficies). En nuestra caso, vamos a estudiar una función compuesta de una cuadrática con una exponencial. Esta la vemos en el libro Cálculo vectorial, de Tromba y Marsden, ya citado con anterioridad. Nosotros corroboraremos haciendo uso de las curvas de nivel con el comando contour=map, que nos dibujará una proyección en el plano xy n curvas de nivel, con n un número entero positivo, y contour=surface, realizando una aproximación de estas en la imagen de la función, que, exactamente, todos los puntos de máximo locales se encuentran en el dominio representado por la circunferencia de radio 1 y centro en (0,0) (verde oscuro, en la pantalla). Para estos dibujos hemos usado el paquete draw de Maxima y se ha trabajado directamente desde Wxmaxima. Para más información sobre el tema se puede visitar:








lunes, 16 de julio de 2012

Graph-Cubo en 4 dimensiones

Se presenta aquí un grafo que representa un hipercubo (un cubo en cutro dimensiones) usando, en el paquete graph, el comando cube_graph(4).



Cálculo-estudio de función exponencial

Se presenta aquí el estudio de una función exponencial de tipo e elevado a la inversa de (x-y). Vemos como es discontinua para todos aquellos puntos que cumplen la condición de que x=y. Para observarla mejor, hacemos uso de la interfaz gráfica gnuplot, del que se presenta dos vistas.






Cálculo- Superficies paramétricas con draw

Se dibuja aquí una superficie paramétrica versionando una que aparece en el texto de Riotorto Primeros pasos en Maxima, y haciendo uso del paquete draw. Aparece como transparente (surface_hide=false) como opaca (surface_hide=true).





Cálculo-Prueba del hessiano

Aquí aparece el resultado producido por Wxmaxima de un ejercicio propuesto en el texto de J. Marsden y A.Tromba Cálculo vectorial (editorial Pearson-Addison Wesley), en el tema 3, sección 3.3, sobre el uso del test del hessiano para definir si un punto crítico es un máximo o un mínimo. Aquí vemos como definida la función, vamos obteniendo de ella los resultados que queremos; el punto crítico (entrada %i18), las diferenciales de la función (%i21) una gráfica de la función y su hessiano. Lástima que, en este caso, no podemos decir nada más sobre el punto crítico (0,0) pues el determinante de este es 0 (salida %o27) y tendríamos que realizar un estudio completo de este. Hemos hecho uso del apostrofe ' con el fin de obtener las celdas %o19,%o21 con una expresión literal de la diferencial.


miércoles, 11 de julio de 2012

Graphs para Matemáticas Discretas- Algunos comandos, ejemplos y ejercicios.

Resumen- Expondremos aquí algunos resultados obtenidos con el paquete de Maxima graphs, utilizando algunos conceptos extraídos en [1] y resolveremos algunas cuestiones planteadas en [2], texto basado en los contenidos referidos a la teoría de grafos incluidos en los actuales planes de estudio de la asignatura Matemáticas Discretas, los cuales requieren el concepto de grafo orientado, camino hamiltoniano, estudio de grafos planos por el Teorema de Kuratowski, etc.
Y daremos un ejemplo de construcción de grafos con los de tipo K3,3, K4,4 y K5, realizando además un estudio completo de ellos. Para mayor sencillez trabajaremos con la interfaz wxMaxima para Windows.
Lo primero que debemos de hacer, al igual que con otros paquetes de Maxima es cargarlo. Para ello introducimos el siguiente comando:
load(graphs)$
Algunos comandos útiles de este paquete, que será lo que utilizaremos aquí viene dados en [1] y por el menú de ayuda de Maxima ( F1). Para tratar el tema de grafos tal como plantea la asignatura son más que suficientes. Por otra parte, el paquete tiene algunas herramientas prediseñadas que nos permiten representar algunos grafos característicos. Algunas son:

  1. grid_graph(n,m) Obtenemos un grafo en forma de rejilla de dimensiones nxm.
  2. complete_graph (n) Devuelve el grafo completo de n vértices.
  3. cycle_digraph (n) Devuelve el ciclo dirigido de n vértices.
  4. cycle_graph (n) Devuelve el ciclo de n vértices.
  5. cuboctahedron_graph () Devuelve el grafo cubooctaédrico.
  6. cube_graph (n) . Devuelve el cubo de n dimensiones.
  7. dodecahedron_graph () Devuelve el grafo del dodecaedro.
  8. empty_graph (n) Devuelve un grafo sin vértices.
  9. wheel_graph (n) Devuelve el grafo de rueda de n+1 vértices.
Insistir en el que hay muchas más herramientas en el menú de ayuda de Maxima y wxMaxima ( F1). Ahora resolveremos dos problemas. 
1º- Representación de los grafos k5 y k7. Vemos que podemos obtener la representación gráfica de estos grafos insertando, una vez cargado los paquetes, los siguientes comandos:

l:complete_graph(5);
f:complete_graph(7) ;
draw_graph(l,show_id=false)$
draw_graph(f,show_id=false)$
en una o dos celdas de entrada (F5). Obtenemos las imágenes:

2º- Estudio de K3,3, K4,4 y K5 usando una descripción gráfica, la matriz de adyacencia. ¿Son k3,3 y k5 grafos planos? Teniendo en cuenta las conclusiones anteriores, ¿Es k4,4 un grafo plano?
En la siguiente serie de comandos obtenemos el grafo k3,3; en efecto, siguiendo el modelo que aparece en [2] ( página, 176) hemos dibujado un grafo en forma de rejilla de 3,2 y hemos construido el que aparece en la imagen; para ello hemos usado los comandos add_edges() y remove_edges()

En el estudio del grafo, que viene dado por los comandos print_graphs, adjancy_matrix() e is_conneceted() además de is_planar(). Siendo estos dos últimos productores de valores booleanos ( false y true). Así pues, vemos que, en el test, k3,3 es conexo pero no es planar. Lo mismo pasa con K5



Con k4,4 ocurre lo mismo que en los casos anteriores. En tal caso, podemos ver que, si le aplicamos un estudio de una subdisivisión elemental ( [2],177) tenemos que existe algunas isomorfas a k3,3. Por el Teorema de Kuratowski, esto implica que no es planar. En la siguiente serie de instrucciones tenemos algunas de ellas. 

Bibliografia
[1] Primeros pasos en Maxima, Riotorto, Mario Rodriguez.
[2]Elementos de Matemáticas Discretas, V.V.A.A. Ed. Sanz y Torres. ISBN:84-88667-35-3
 



lunes, 9 de julio de 2012

Draw-Triedro I

Triedro a tres colores utilizando  el paquete draw y tres colores para resolver el sistema de ecuaciones x=1,y=1,z=0.

Los comandos usados son:




Grafos ( Paquete graphs)-

Grafo del dodecaedro, realizado con el paquete graphs de Maxima y ejecutado desde wxMaxima y el camino hamiltoniano en azul. Este grafo sirve para estudiar  una posible solución en el denominado juego de Hamilton,del cual podemos saber en: 




martes, 3 de julio de 2012

Objetivos del blog


Este blog, como se sugerencia en la introducción tiene la finalidad que la de explotar las herramientas informáticas de cálculo simbólico y matricial Mawxima (y por ende de wxMaxima, interfaz gratuita que viene con el programa) y de Scilab, haciendo hincapié en problemas característicos de la geometría diferencial y analítica, la matemática discreta, el cálculo de probabilidades y el estudio de funciones de varias variables.

Unas cuantas cosas sobre los programas usados
Máxima es un motor de cálculo simbólico escrito en lenguaje Lips publicado bajo la licencia GNU GPL que cuenta, entre otras, con varias herramientas destinadas al estudio de integrales , funciones, derivadas y potentes motores gráficos de 2 y 3 dimensiones.
Puede descargarse en el enlace:


El programa se basa en Macsyma , desarrollado en el MIT a principios de los años 70, y usándose una versión desarrollada por el profesor de la Universidad de exas William Séller. Para saber más de su trabajo, se puede visitar el siguiente enlace:


Ademas de trabajar con la consola, puede usarse la interfaz gráfica wxMaxima, distribuido junto el programa, o por el editor Texmacs o con el modo Imaxima.




Por otra parte, Scilab se trata de un software matemático elaborado en común por el INRIA y el ENPC y distribuido por el Scilab Consiortium. Posee potentes herramientas gráficas, de álgebra linea, destinadas al estudio del cálculo vectorial, etc. Además de poseer la propiedad de crear funciones y procedimientos nuevos usando fortran, C++, etc.

Puede encontrarse en el siguiente enlace:


Se indicará que tipo de programa se usa en todo momento, y, cuando se a necesario, el origen de la información necearía para desarrollar las entradas.

Algunos textos interesantes


Resumen- En esta entrada introduciremos algunas lecturas bastante acertadas para empezar trabajar con Maxima ( y wxMaxima) y Scilab. Aunque son programas con paquetes de ayuda bastante completos, ha veces se requiere un poco de ayuda para trabajar con ellos ( por no decir que su lectura a veces resulta frustrante).  El autor agradecería al lector que si sabe de más me informe y e incluirlas en el próximo artículo:

Graphics with Máxima. Haager, Wilhem. Edición digital:

Primeros pasos en Maxima. Rodríguez Riotorto, Mario. Edición digital:

www.telefonica.net/web2/biomates/maxima/max.pdf

Manual de uso de Máxima y wxMaxima en asignaturas de cálculo diferencial,
Ecuaciones Diferenciales con Maxima, Vallejo, Jose Antonio. Ediciones en pdf obtenidas en:

A Máxima-Gnuplot Interface. Rodríguez Riotorto, Mario. Edición digital:

Casi todos los textos citados están bajo el dominio GNU free luego se pueden descargar y divulgarse sin problemas. Las direcciones de obtención no son únicas. Aquí solo se pretende facilitar un poco las cosas y tener una guía fija para su obtención.

Por otra parte, tenemos los siguientes textos para trabajar con Scilab, bastante escuetos pero de lectura complicada:

Introducción a Scilab. Mora Escobar, Hector Manuel. Edición digital :

personal.us.es/echevarria/documentos/ApuntesScilab.pdf

Scilab pour les Lycées. Scilab Development Team. Edición digital:

(Muy básico, una serie de diapositivas con programas sencillos pero bastante útil)

Introduction to Scilab. Scilab Development Team. Edición digital:
http://www.scilab.org/support/documentation/tutorials