<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>No numerable &#187; mates</title>
	<atom:link href="http://nonumerable.net/tag/mates/feed/" rel="self" type="application/rss+xml" />
	<link>http://nonumerable.net</link>
	<description>Metaverso en expansión de Juan Manuel Almodóvar (Janzo)</description>
	<pubDate>Thu, 28 Aug 2008 12:29:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Generador de grafos aleatorio</title>
		<link>http://nonumerable.net/generador-de-grafos-aleatorio/</link>
		<comments>http://nonumerable.net/generador-de-grafos-aleatorio/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 10:39:55 +0000</pubDate>
		<dc:creator>Janzo</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[grafos]]></category>

		<category><![CDATA[mates]]></category>

		<category><![CDATA[redes]]></category>

		<guid isPermaLink="false">http://nonumerable.net/generador-de-grafos-aleatorio/</guid>
		<description><![CDATA[Un sencillo generador de grafos aleatorios con sagemath
Se llama matriz de adyacencia de un grafo a una matriz cuadrada para representar relaciones entre pares de vértices. Un 1 en la fila i columna j representa una arista entre los vertices i y j.
Es decir, la matriz de adyacencia:

M=Matrix([[1,0,1,1],[0,1,0,1],[1,1,0,1],[0,1,0,1]])
M
[1 0 1 1]
[0 1 0 1]
[1 1 [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Un sencillo generador de grafos aleatorios con sagemath</p></blockquote>
<p>Se llama matriz de adyacencia de un grafo a una matriz cuadrada para representar relaciones entre pares de vértices. Un 1 en la fila i columna j representa una arista entre los vertices i y j.<br />
Es decir, la matriz de adyacencia:<br />
<code><br />
M=Matrix([[1,0,1,1],[0,1,0,1],[1,1,0,1],[0,1,0,1]])<br />
M</p>
<p>[1 0 1 1]<br />
[0 1 0 1]<br />
[1 1 0 1]<br />
[0 1 0 1]<br />
</code><br />
Ejecutada con este código:<br />
<code>M=Matrix([[1,0,1,1],[0,1,0,1],[1,1,0,1],[0,1,0,1]])<br />
G = Graph(M)<br />
G.plot().show()</code></p>
<p>Representa el siguiente grafo<br />
<a href='http://nonumerable.net/wp-content/uploads/2008/03/sage0.png' title='sage0.png'><img src='http://nonumerable.net/wp-content/uploads/2008/03/sage0.png' alt='sage0.png' /></a></p>
<p>Modificando ese código se puede construir un sencillo generador de grafos aleatorio.<br />
Para generar un 1 o un 0 aleatoriamente utilizamos: <code>int(round(random()))</code><br />
y para crear un vector de 10 componentes <code>[i for i in range(10)]</code>. Combinando ambas <code>[int(round(random())) for i in range(10)]</code> se generan vectores como:<br />
<code>[0, 0, 1, 0, 0, 0, 1, 1, 0, 0]</code><code></p>
<p>Así que finalmente el generador de grafos aleatorio quedaría así<br />
<code><br />
print("Generador de grafos aleatorio")<br />
nVect=12<br />
M=Matrix([[int(round(random())) for i in range(nVect)] for i in range(nVect)])<br />
G = Graph(M);<br />
G.plot().show()</code><br />
<a href='http://nonumerable.net/wp-content/uploads/2008/03/sage1.png' title='sage1.png'><img src='http://nonumerable.net/wp-content/uploads/2008/03/sage1.png' alt='sage1.png' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://nonumerable.net/generador-de-grafos-aleatorio/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Empotrando superficies parametrizadas</title>
		<link>http://nonumerable.net/empotrando-superficies-parametrizadas/</link>
		<comments>http://nonumerable.net/empotrando-superficies-parametrizadas/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 00:52:48 +0000</pubDate>
		<dc:creator>Janzo</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[howto]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[jmol]]></category>

		<category><![CDATA[mates]]></category>

		<category><![CDATA[superficies]]></category>

		<guid isPermaLink="false">http://nonumerable.net/empotrando-superficies-parametrizadas/</guid>
		<description><![CDATA[Con Sagemath podemos mostrar curvas y superficies en un applet interactivo de java. Ha sido una odisea de dos días conseguir empotrar el applet en el blog, pero finalmente aquí está el resultado.
En el tutorial oficial de Sagemath hay unos ejemplos sencillos de algunas parametrizaciones,  no teneis más que copiarlas en vuestro sage local [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Con Sagemath podemos mostrar curvas y superficies en un applet interactivo de java. Ha sido una odisea de dos días conseguir empotrar el applet en el blog, pero finalmente aquí está el resultado.</p></blockquote>
<p>En el tutorial oficial de <a href="http://sagemath.org/">Sagemath</a> hay unos <a href="http://www.sagemath.org/doc/html/tut/node22.html">ejemplos sencillos</a> de algunas parametrizaciones,  no teneis más que copiarlas en vuestro sage local o en el <a href="https://www.sagenb.org/">notebook público online</a> para ver el estupendo resultado. Utiliza <a href="http://jmol.org">Jmol</a> para su visualización, un <abbr title="mini aplicación">applet</abbr> de java para la representación de moléculas que permite rotar, hacer zoom, y algunas cosas más.</p>
<p>Para emportar el applet con la superficie en nuestro blog primero necesitaremos obtener el fichero con la superficie, en la lista de correo de sage me explican <a href="http://groups.google.com/group/sage-edu/browse_thread/thread/299ee0452396d38c">un truco para encontrarlo</a>. Añadimos la sentencia <code>open ('a.txt', 'w')</code> lo cual hará aparecer al evaluar un enlace a la ruta donde se guardan los ficheros de datos de esa evaluación. Debe ser algo como <strong>https://localhost:8000/home/admin/73/cells/1/a.txt</strong> quitamos el <strong>a.txt</strong> de la ruta y entonces encontramos varios ficheros. Lo que nos interesa realmente es el fichero zip que dentro tiene un fichero de malla <strong>.pmesh</strong>. Lo guardamos para utilizarlo posteriormente.</p>
<p>Ahora vamos a instalar Jmol en wordpress. No hay mucho que hacer, descargamos el paquete de binarios de la página oficial y lo descomprimimos por ejemplo en el directorio <strong>wp-content/jmol</strong><br />
Necesitamos ahora una molécula para representar, por ejemplo la de <a href='/wp-content/uploads/2008/03/caffeine.xyz' title='cafeina'>cafeína</a>, que colocamos tambien el el directorio <strong>wp-content</strong>.<br />
En un nuevo post escribimos el código:</p>
<pre name="code" class="jscript">

&lt;applet name=&quot;jmol&quot; code=&quot;JmolApplet&quot;
           archive=&quot;/wp-content/jmol/JmolApplet.jar&quot;
           width=&quot;200&quot; height=&quot;200&quot; mayscript=&quot;true&quot;&gt;
  &lt;param name=&quot;progressbar&quot; value=&quot;true&quot;/&gt;
  &lt;param name=&quot;load&quot; value='/wp-content/caffeine.xyz'/&gt;
&lt;/applet&gt;
</pre>
<p>¡Y listo! Ahora deberías tener una preciosa molécula alcalina como esta girando por tu blog. Por cierto que <a href="http://es.wikipedia.org/wiki/Cafe%C3%ADna">es la misma molécula</a> que la teína, guaranina y mateína.</p>
<p><center><br />
<applet name="jmol" code="JmolApplet" archive="http://nonumerable.net/wp-content/jmol/JmolApplet.jar"<br />
        width="200" height="200" mayscript="true"></p>
<param name="progressbar" value="true"/>
<param name="load" value='http://nonumerable.net/wp-content/uploads/2008/03/caffeine.xyz'/>
<param name="script" value='set spin Z 10; spin;'/>
</applet><img src='/wp-content/uploads/2008/03/150px-caffeinesvg.png' alt='cafeína' /><br />
(si no la ves prueba recargando el explorador)<br />
</center><br />
Ahora puedes probar el zoom con la rueda del ratón; pinchar y rotarla; pulsar Shift, pinchar y desplazar en horizontal el ratón; pulsar Alt Gr y pinchar para desplazarla.</p>
<p>Con Jmol funcionando vamos a representar ahora la superficie que hemos obtenido en sage, bastaría con subir el fichero <strong>.pmesh</strong> y sustituir en el script la linea que representa una molécula: </p>
<pre name="code" class="jscript">
&lt;param name=&quot;load&quot; value='/wp-content/caffeine.xyz'/&gt;
</pre>
<p>Por esta otra que representa la superficie (<strong>sf.pmesh</strong>):</p>
<pre name="code" class="jscript">
&lt;param name=&quot;script&quot; value='pmesh &quot;/wp-content/sf.pmesh&quot;'/&gt;
</pre>
<p>Quedando así:</p>
<pre name="code" class="jscript">

&lt;applet name=&quot;jmol&quot; code=&quot;JmolApplet&quot;
           archive=&quot;/wp-content/jmol/JmolApplet.jar&quot;
           width=&quot;200&quot; height=&quot;200&quot; mayscript=&quot;true&quot;&gt;
  &lt;param name=&quot;progressbar&quot; value=&quot;true&quot;/&gt;
  &lt;param name=&quot;script&quot; value='pmesh &quot;/wp-content/sf.pmesh&quot;'/&gt;
&lt;/applet&gt;
</pre>
<p>Por supuesto se puede cambiar el path del .pmesh para utilizar ficheros subidos con el interfaz de carga de wordpress en el directorio <strong>/wp-content/uploads</strong>.</p>
<p>Otra forma alternativa de hacerlo, pero que requiere editar el fichero de cabecera del blog es la siguiente:<br />
En <strong>header.php</strong> colocamos:</p>
<pre name="code" class="jscript">

&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
function insertJmol(me,width,height,myPmesh) {
   document.getElementById(me).innerHTML =
   '&lt;applet width=&quot;'+width+'&quot; height=&quot;'+height+
   '&quot; code=&quot;JmolApplet&quot; archive=&quot;/wp-content/jmol/JmolApplet.jar&quot;&gt;'
   +'&lt;param name=&quot;progressbar&quot; value=&quot;true&quot;&gt;'
   +'&lt;param name=&quot;script&quot; value='+&quot;'pmesh&quot;+'&quot;'+myPmesh+'&quot;'+&quot;'&quot;+'&gt;';
 }
//--&gt;
&lt;/script&gt;
</pre>
<p>Y en los post llamamos al applet con:</p>
<pre name="code" class="jscript">

&lt;div class=&quot;jmol&quot; id=&quot;caffeine_applet&quot;&gt;
&lt;img src=&quot;/wp-content/logo.png&quot; onLoad=&quot;insertJmol('caffeine_applet',400,400,'/wp-content/file.pmesh')&quot; alt=&quot;caffeine screenshot&quot;/&gt;
&lt;/div&gt;
</pre>
<p>(No hay que olvidar subir la imagen de precarga <strong>logo.png</strong>).<br />
No sé muy bien cual es la ventaja de esto, pero en las páginas de Jmol recomiendan hacerlo así. La verdad a mi este método me da  problemas cuando coloco en un post más de un applet, pero lo pongo para que quede la referencia.</p>
<p>Con cualquiera de las dos formas obtendremos el applet Jmol con nuestra superficie empotrado en el blog ¿no es estupendo? :-)</p>
<p><center><br />
<applet name="jmol" code="JmolApplet" archive="/wp-content/jmol/JmolApplet.jar"<br />
        width="400" height="400" mayscript="true"></p>
<param name="progressbar" value="true"/>
<param name="script" value='pmesh mesi "/wp-content/uploads/2008/03/twistedtorus.pmesh"; set spin Z 10; spin; color $mesi red;'/>
</applet></p>
<p><a href='/wp-content/uploads/2008/03/twistedtorus.pmesh' title='twistedTorus'>twistedTorus</a></p>
<p><abbr title="Pruebe a recargar el explorador">¿No se visualiza?</abbr> | <abbr title="Zoom con la rueda del ratón; Shift rotación horizontal; Alt Gr desplazarla">Controles</abbr><br />
</center></p>
<p>Si las superficies generadas con sagemath os saben a poco y quereis explorar las posibilidades de la herramienta aquí teneis una batería de enlaces:</p>
<ul>
<li>Ejemplo interactivo con la <a href="http://chemapps.stolaf.edu/jmol/docs/examples-11/pmesh.htm">molécula de agua</a></li>
<li><a href="http://jmol.sourceforge.net/demo/">Demostraciones</a> de Jmol</li>
<li><a href="http://www.rcsb.org/pdb/home/home.do">Protein Data Bank</a></li>
<li>Documentación de Jmol para <a href="http://chemapps.stolaf.edu/jmol/docs/?ver=11.0">scripts interactivos</a>, en especial la propiedad <a href="http://chemapps.stolaf.edu/jmol/docs/?ver=11.0#pmesh">pmesh</a> (el ejemplo de cafeina es muy bueno).</li>
<li><a href="http://www.callutheran.edu/Academic_Programs/Departments/BioDev/omm/scripting/molmast.htm">Introducción al scripting</a></li>
<li>Movimientos del <a href="http://www.biotopics.co.uk/JmolApplet/mousemovement.html">ratón</a></li>
</ul>
<p>Y para acabar agradecer a todos aquellos que han aguantado mi inglés de todo a cien en las listas de correo:</p>
<ul>
<li>Robert Bradshaw y William Stein de la <a href="http://groups.google.com/group/sage-edu/browse_thread/thread/299ee0452396d38c">lista de correo de sagemath</a></li>
<li>Angel Herráez de la <a href="http://jmol.sourceforge.net/project/">lista de correo de jmol-users</a></li>
</ul>
<p><strong>Actualización: </strong>Hay un pequeño problema con las url, tengo que ponerlas absolutas si no quiero que nada más se vea en la página principal del blog y no en las páginas individuales de los post. Seguro que se soluciona con algún atributo de path de wordpress&#8230; investigaré.<br />
<strong>¡Solucionado!<br />
</strong>Cambiamos la ruta <strong>wp-content/</strong> por <strong>/wp-content</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nonumerable.net/empotrando-superficies-parametrizadas/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
