lunes, 16 de noviembre de 2009

No hay nada nuevo bajo el Sol

En mi clase de historia de la ciencia, nos hicieron investigar un poco sobre el positivismo en México. Debo de admitir que antes de esto no sabía nada sobre dicha forma de pensar. Quedé maravillado con estas cosas. Y fue más mi impacto cuando fui hilando los hechos que se llevaron antes, durante y después del porfiriato....

Mis ideas han ido avanzando y evolucionando según aprendo más. En un principio me consideré ateo, luego apóstata, y parece ser que ahora en otro el nombre que he adoptado...

Principios mínimos del positivismo mexicano:

I. La humanidad, como un conjunto, es un organismo que vive y crece, aunque formado de órganos separados, a saber: hombres y mujeres que le sirven.

II. Su progreso se ha señalado por las diferentes religiones que han existido desde los tiempos más remotos hasta nuestros días.

III. Todas han sido buenas y útiles en su época; pero han sido necesariamente invalidas a medida que han crecido los conocimientos del hombre y que han surgido nuevas necesidad.

IV. La última, el cristianismo, aunque en algún aspecto inferior a algunas de las más viejas religiones, fue, en el conjunto, superior a ellas, no en la credibilidad de sus asertos, sino en su utilidad personal y social.

V. El crecimiento del conocimiento positivo (o la ciencia) ha desacreditado de tal suerte las doctrinas cristianas, que ha llegado la época de su desaparición.

VI. Ninguna religión puede tener en el futuro influjo común, lo que es lo mismo, alguna utilidad, exceptuando las que se funden en la ciencia.

VII. No hay ninguna demostración de la existencia de Dios o de la inmortalidad de lo que llaman los cristianos “el alma”. Por consiguiente, ni afirmamos ni negamos esas doctrinas. Simplemente las hacemos a un lado como fundamentos de la religión.

VIII. El ser más grande y más benéfico que conocemos (aunque ni omnipotente ni perfecto) es la humanidad, es decir, el ser formado de todos los que en el pasado, en el presente y en el porvenir han contribuido, están contribuyendo y contribuirán al perfeccionamiento del gran ser al que pertenecen.

IX. A este ser deseamos ofrecer nuestro amor, servicio y veneración. No es Dios, pero ocupa el lugar de Dios. Cada uno puede servirle obrando de acuerdo con la máxima: "vivir para los demás".

X. En el servicio de la humanidad hallamos todo lo que era útil en el servicio de Dios.

XI. Las reglas de moral, generalmente aceptadas, se han supuesto que han sido reveladas y dictadas por Dios. En realidad se llegó a ellas por la reflexión de los hombres buenos y sabios de todas las edades, que, a no dudar, sinceramente se creían ellos mismos inspirados por Dios.

XII. Aceptamos esas reglas como el don, no de Dios, sino de la humanidad, y esperamos todavía un perfeccionamiento ulterior y continuo de ellas.

XIII. La necesidad más inmediata y urgente de nuestro tiempo es la formación de una sociedad religiosa universal fundada en los principios mencionados, en los que los hombres y mujeres de todas las naciones independientes y políticamente separadas estén unidos intelectual y moralmente, como los estuvieron los pueblos de occidente europeo, por la Iglesia en la Edad Media. Esa sociedad será un poderoso elemento para los buenos, aun cuando sus adeptos sean solamente una fracción pequeña de la población.


domingo, 1 de noviembre de 2009

Mejorando la casa

¿Quién no recuerda este programa con Tim Allen en el canal 5? Era un muy buen programa. Trataba de un “hombre herramienta” (técnico, electricista, plomero, etc) que tenía su programa de herramientas (Tool Time). En el programa, le pasaban accidentes que eran divertidos para los televidentes. Tenía un asistente, Al Borland, quien hacía prácticamente todo el trabajo.

Tim Taylor (papel de Tim Allen) tenía una esposa y tres hijos. Su vecino, Wilson, la hacía de terapeuta de Tim cuando el hombre herramienta tenía algún problema (cada episodio, haha). Wilson Wilson (si, nombre y apellido) venía a ser la “cara” (porque nunca la mostró toda) de la sabiduría. Daba consejos y hablaba sobre filosofía (o algo por el estilo). Tim siempre entendía el punto de Wilson, pero lo repetía de forma equivocada.

Tool Time para mí fue un sueño hace tiempo. Imagínense, tener su propio show de herramientas, armar proyectos que iban desde armar una silla hasta remodelar una casa (aquí iría el sonido de simio que emitía Tim). Lo más hermoso fue cuando hacía las “cosas del hombre”. Llegó a hacer un baño, una cocina y un cuarto del hombre.

El baño tenía televisión, teléfono, luz estilo estadio, asiento reclinador en el escusado, objetos de acero inoxidable… En fin, todo un sueño hecho realidad.


La cocina del hombre…. (sonido de Tim). Contaba con un mega asador, un macro ondas (requería de chaleco de plomo y lentes para ser operado), accesorios de acero inoxidable y un sistema de arranque para abrir la cocina. Además, contaba con lo mejor: un carnicero dentro del refrigerador. Al terminar, la cocina se cerraba e iniciaba el modo de “auto-lavado”.


No recuerdo bien el cuarto del hombre, pero recuerdo que tenía un bar-tender y una mesa de billar que tomaba el lugar de la cama.


En Tool Time se podían también ver a las asistentes. La segunda: Heidi (interpretada por Debbie Dunning, y la segunda: Lisa (interpretada por Pamela Anderson). ¿Pamela Anderson? Si, así es. No sé porqué en esta serie no saca su “verdadero” potencial, cosa(s) que hubiera levantado el raiting (y vaya que sí).


No pude ver completa la serie, ya luego me enteré que duró 8 temporadas. Dejo este LINK de Taringa para que puedan bajar la serie completa (sin subtítulos). Me trae buenos recuerdos, y muchas ideas para intentar implementar un día.

domingo, 31 de mayo de 2009

Corazon Matematico

Recientemente hice un documento que explica cómo hacer un corazón usando funciones matemáticas (particularmente en Mathematica). Pero a la hora de que lo quise colocar como post (Ctrl+C), las funciones me las indicaba como error, y honestamente me dio flojera cambiar TODO para colocarlo en el post. Así que subí un documento en word (2007), donde pongo el post original. Coloqué el documento en Megaupload, dejo el link y una imagen de lo que se puede hacer:

http://www.megaupload.com/?d=FP266KIS


martes, 3 de marzo de 2009

Newton-Raphson C#

El método de Newton-Raphson (para encontrar raíces). Aquí el programa se detiene cuando el valor del error porcentual es menor al indicado por el usuario. SOLO FUNCIONA PARA LA FUNCIÓN YA DADA. El usuario no puede meter la función:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/* Tarea de Newton Raphson
* Autor: Jonathan Astudillo López
* Fecha: 2 de marzo del 2009
*
*/

namespace NewtonRaphson
{
class ProgramNewtonRaphson
{
static double fx(double x)
{
return x-Math.Cos(x);//Función
}

static double dfx(double x)
{
return 1+Math.Sin(x);//Derivada
}

static void Main(string[] args)
{
double toler,x1,x0,ea;//variables
int i;
string answer;

Console.WriteLine("Programa Newton Raphson para la función x-cos(x)");
Console.ReadLine();

do
{

Console.WriteLine("Coloca el valor inicial, x0");//Pedir el valor de x0, me pareció interesante pedirselo al usario
x0 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Coloca el valor de la tolerancia");
toler = Convert.ToDouble(Console.ReadLine());

x1 = x0 - (fx(x0) / dfx(x0));//Newton Raphson
i = 1;
ea = Math.Abs(((x1 - x0) / x1) * 100);

Console.WriteLine();
Console.WriteLine("# de itereación\t x0\t x1\t f(x0)\t df(x0)\t Error");
do
{
Console.WriteLine();
Console.WriteLine("{0} \t{1:0.0000000000}\t{2:0.0000} \t {3:0.0000} \t {4:0.0000} \t {5:0.0000}", i, x0, x1, fx(x0), dfx(x0), ea);
x1 = x0 - (fx(x0) / dfx(x0)); //esto es lo que será la nueva x1
i = i + 1; //en si no cambia los datos, solo nos indica el número de iteraciones que se han hecho
ea = Math.Abs(((x1 - x0) / x1) * 100);//lo que importa en el while

} while (Math.Abs(ea) > toler); //Se hará el ciclo mientras que ea sea mayor al valor dado en tol

Console.ReadLine();
Console.WriteLine("¿Quieres hacerlo de nuevo? Escribe SI para hacerlo de nuevo");
answer=Console.ReadLine();
} while (answer == "si" || answer == "SI" || answer == "Si" || answer == "sI");
}
}
}

Campo eléctrico en C#

Campo eléctrico:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/* Tarea de funciones, Campo eléctrico
* Autor: Jonathan Astudillo López
* Fecha: 9 de febrero del 2009
*
*/

namespace CampoElectrico
{
class ProgramFuncionesCampoElectrico
{
static double campo(double q, double x, double a, double k)
{
return (((q * x * k*Math.Pow(10, 9)) / (Math.Pow((x * x + a * a), 1.5))));//la ecuación del campo eléctrico

}
static void Main()
{
double qu, xu, au; //declaramos las variables que vamos a usar
string respuestausuario; //lo que el usuario va a introducir
const double ku=9; // k es una constante para estos cálculos
double campoelectrico;
string answer;

do //uso el do para que ejectue el programa hasta la condición indicada en while
{

Console.WriteLine("Bienvenido a la aplicación para el campo eléctrico");
Console.WriteLine();
Console.WriteLine("Presiona enter para continuar");
Console.ReadLine();
Console.WriteLine("Introduce el valor de q");//el usuario introduce el primer valor, q
respuestausuario = Console.ReadLine();
qu = Convert.ToDouble(respuestausuario);//se convierte a double lo que el usario escribió
//se hará lo mismo con el resto de las variables

Console.WriteLine("Introduce el valor de x");
respuestausuario = Console.ReadLine();
xu = Convert.ToDouble(respuestausuario);

Console.WriteLine("Introduce el valor de a");
respuestausuario = Console.ReadLine();
au = Convert.ToDouble(respuestausuario);

campoelectrico = campo(qu, xu, au, ku);

Console.WriteLine("El campo eléctrico es ={0}", campoelectrico);//resultado final

Console.ReadLine();
Console.WriteLine("¿Quieres calcular otro campo eléctrico? (si/no)");//le pregunta al usario que quiere hacerlo de nuevo
answer = Console.ReadLine();
}

while (answer == "si" || answer == "Si" || answer == "SI");//si el usario coloca otra cosa que no sea lo mencionado, se sale

}
}
}

Van der Waals C#

Van der Waals, tal vez la fórmula esté mal (Creo que me la dieron mal), pero lo imporante es la estructura del código. Le empecé a agregar if's para las contantes (a y b), pero luego me di cuenta que eran MUCHOS elementos (dah!!! ya sé), y pues lo dejé solo en tres elementos...:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/* Tarea de funciones, Van der Waals
* Autor: Jonathan Astudillo López
* Fecha: 9 de febrero del 2009
*
*/

namespace Van_der_Waals
{
class ProgramVanderWaals
{
static double presion(double n, double t, double v, double a, double b, double r)
{
return (((n * r * t) / (v - n * b)) - ((a * Math.Pow(n, 2)) / Math.Pow(v, 2)));
}
static void Main()
{
double nu,tu,vu,au,bu; //declaramos las variables que vamos a usar
string respuestausuario; //lo que el usuario va a introducir
const double ru = 0.08206; // r es una constante para estos cálculos
double presionu;
string answer;

do
{

Console.WriteLine("Bienvenido a la aplicación para la presión mediante la ecuación de Van der Waals");
Console.WriteLine("Introduce el valor de n (número de moles)");//el usuario introduce el primer valor, n
respuestausuario = Console.ReadLine();
nu = Convert.ToDouble(respuestausuario);//se convierte a double lo que el usario escribió
//se hará lo mismo con el resto de las variables

Console.WriteLine("Introduce el valor de T (temperatura en Kelvin)");
respuestausuario = Console.ReadLine();
tu = Convert.ToDouble(respuestausuario);

Console.WriteLine("Introduce el valor de V (volumen en litros)");
respuestausuario = Console.ReadLine();
vu = Convert.ToDouble(respuestausuario);

Console.WriteLine("Introduce el valor de a (constante de Van der Waals)");
respuestausuario = Console.ReadLine();
au = Convert.ToDouble(respuestausuario);

Console.WriteLine("Introduce el valor de b (otra constante de Van der Waals) ");
respuestausuario = Console.ReadLine();
bu = Convert.ToDouble(respuestausuario);

presionu = presion(nu, tu, vu, au, bu, ru);

if (au == 0.034 && bu == .0237)
Console.WriteLine("Escogiste el Helio");
else if (au == .211 && bu == .0171)
Console.WriteLine("Escogiste el Neón");
else if (au == 1.34 && bu == .0322)
Console.WriteLine("Escogiste Arsénico");
else
Console.WriteLine("Quien sabe qué elemento escogiste");

Console.WriteLine("La presión en atmósferas es ={0}", presionu);

Console.ReadLine();
Console.WriteLine("¿Quieres calcular otra presión? (si/no)");
answer=Console.ReadLine();
}
while (answer =="si"|| answer=="Si"|| answer=="SI");

}
}
}

Convertidor de Temperaturas C#

Les dejo un convertidor de temperaturas (solo de C a F). Tiene como "plus" adevertencias, usando if's (no afecta a nada en el cálculo, fue un requisito para la tarea):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/* Tarea de programa para convertir temperaturas
* Autor: Jonathan Astudillo López
* Fecha: 28 de enero del 2009
*
*/

namespace ConvertirTemperatura
{
class Programatermometro
{
static void Main()
{
//Variables para guardar los grados Celsius y Fahrenheit
double cel, far;
string usuario;

// Enseñar las opciones que tiene el usuario
Console.WriteLine("Elige el tipo de conversion");
Console.WriteLine("Presiona F si quieres convertir Celsius a Fahrenheit");
Console.WriteLine("Presiona C si quieres convertir Fahrenheit a Celsius");
Console.WriteLine("Elige F ó C: ");

// Recoger lo que puso el usuario
usuario = Console.ReadLine();

// Hacer las deciciones segun lo que haya marcado el usuario
//Las partes de switch y case fueron puestas a partir del tutorial 4
switch (usuario)

{
//El usuario puede elegir entre F mayúscula o minuscula, dará igual
case "F":
case "f":
Console.WriteLine("Conversion a F");

//Aparece en pantalla
Console.Write("Escribe los grados Celsius: ");

//Se leen los grados Celsius y se convierten a double
cel = Convert.ToDouble(Console.ReadLine());

// Se obtienen los grados Fahrenheit
far = cel * 9.0 / 5.0 + 32;

//Se muestran los grados Fahrenheit resultantes
Console.WriteLine("{0} grados Celsius son {1} grados Fahrenheit", cel, far);

//Se muestra un mensaje dependiendo de la temperatura
if (far < 97.5)
Console.WriteLine("Debajo de lo normal");
else if (far > 97.5 && far < 99.5)
Console.WriteLine("Normal");
else if (far <> 99.5)
Console.WriteLine("Un poco alta");
else
Console.WriteLine("Peligro");
Console.ReadLine();

//Si el usuario eligió C, se harán los cálculos correspondientes
//El usuario puede elegir entre C mayúscula o minuscula, dará igual
break;
case "C":
case "c":
Console.WriteLine("Conversion a C");

//Aparece en pantalla
Console.Write("Escribe los grados Fahrenheit: ");

//Se leen los grados Fahrenheit y se convierten a double
far = Convert.ToDouble(Console.ReadLine());

// Se obtienen los grados Celsius
cel = (far-32) * 5.0 / 9.0;

//Se muestran los grados Celsius resultantes
Console.WriteLine("{0} grados Fahrenheit son {1} grados Celsius", far, cel);

//Se muestra un mensaje dependiendo de la temperatura
if (cel < 36.4)
Console.WriteLine("Debajo de lo normal");
else if (cel > 36.4 && cel < 37.5)
Console.WriteLine("Normal");
else if (cel <> 37.5)
Console.WriteLine("Un poco alta");
else
Console.WriteLine("Peligro");
Console.ReadLine();
break;
}

}
}
}

Calcular el volumen de un cilindro en C#

Abro una nueva sección, sobre C#. Mi intención no es enseñarlo, ya que estoy aprendiendo como parte de mi clase de Métodos Numéricos. Sé poco, y por desgracia el curso deja fuera muchas cosas. Sin embargo, a lo largo del mismo he batallado haciendo los códigos. Por lo tanto he decidido postear MIS códigos por si a alguien le ayudan. Los códigos no son los mejores ni los más eficientes.... A estas alturas no me preocupan los derechos de autor. Pienso que deberían de ser un modelo, más que fusilarse todo.

Les dejo mi primer programa, uno muy sencillo: calcular el volumen de un cilindro:

using System;

class VolumenCilindro
{
static void Main()
{
double radio;
double altura;
double volumen;
string respuesta;
Console.Write("Escribe el radio en metros:");
respuesta = Console.ReadLine();
radio = Convert.ToDouble(respuesta);
Console.Write("Escribe la altura (tambien en metros):");
respuesta = Console.ReadLine();
altura = Convert.ToDouble(respuesta);
volumen = Math.PI * radio*radio*altura;
Console.WriteLine("El volumen del cilindro de radio {0}, altura {1} es: {2}m3",radio, altura, volumen);
Console.ReadLine();
}
}

jueves, 5 de febrero de 2009

Chistes para ingenieros

Chistes solo para ingenieros, sin ofensas, pero si no saben de matemáticas, no le van a entender. Explicarlos les quita el chiste, pero si quieren se los explico...

1)¿Qué le dijo un vector a otro vector?

¿Tienes un momento?



2)Estaba Jesús con cons discipulos, y les dijo: "y=x^2".
"Pero maestro, ¿Eso qué es?", preguntaron sus discipulos.
"Una parábola"


3)Había una fiesta de funciones; estaban el seno, coseno, tangente, etc. La exponencial estaba sola, y las demás funciones le preguntaron:

"¿Porqué no te integras?"

A lo que contestó: "Da igual"