miércoles, 24 de abril de 2013

El problema de Pothenot


Curioseando por los libros de matemáticas me encontré con el llamado problema de Pothenot - Snellius, o problema de los cuatro puntos. Lo podemos ver por Internet. En resumidas cuentas se trata de determinar la posición de un punto P respecto de otros de posición conocida A, B, C, mediante los ángulos de observación alfa y beta. No me voy a meter ahora en la resolución trigonométrica, porque el sitio donde lo encontré por primera vez solo trataba de la resolución gráfica sobre una carta terrestre o marina. Al principio me costó entenderlo. Luego con el dibujo que pone ahí arriba y la explicación correspondiente lo entendí completamente e incluso me pareció sumamente sencillo.
Imaginemos la situación. Estoy, por ejemplo, en un barco en el mar en un punto P de posición desconocida. Y tengo frente a mí tres puntos bien determinados en la costa y que figuran en un mapa que tengo sobre la mesa. Me basta con tomar los ángulos alfa y beta, es decir, medir la abertura de los puntos A y B, así como la de B y C, para sobre el mapa encontrar los centros de las circunferencias O1 y O2. Trazando las circunferencias puedo determinar por sus intersección la distancia PB, y por lo tanto también las otras PA y PC. La distancia se mide con la escala del mapa, claro.
A continuación pongo la explicación que figura en el libro de Constantini en delicioso - y claro - italiano. Todo el truco consiste en abrir sobre A el ángulo alfa en sentido antihorario y luego girar en sentido horario un ángulo recto. La intersección con la mediatriz del segmento AB nos dará el centro O1. Y lo mismo para el ángulo beta respecto de la distancia BC. Para ver mejor el dibujo ampliar con el ratón.
L’angolo α è l’angolo sotto cui dal punto P si vede il segmento AB. Il luogo geometrico di P è dunque una circonferenza di cui AB è una corda. Si ricordi che, data una circonferenza, tutti gli angoli alla circonferenza che insistono su una data corda hanno ampiezza metà dell’angolo al centro che insiste sulla stessa corda.
Ruotando in senso orario il segmento AB intorno al punto A di un angolo pari a (π/2−α) e intersecandolo con l’asse del segmento AB si determina il centro O1 della circonferenza luogo cercata (praticamente, per non fare calcoli, si può ruotare in senso antiorario il segmento AB di un angolo α e quindi ruotarlo in senso orario di un angolo retto). Tutti i punti della circonferenza c1 sono, con riguardo al valore di α, possibili soluzioni per P.
La stessa costruzione può essere sviluppata sul secondo segmento BC: il centro della circonferenza è l’intersezione del segmento CB ruotato in senso antiorario di un angolo (π/2−β) con l’asse del segmento BC. Tutti i punti della circonferenza c2 sono, con riguardo al valore di β, possibili soluzioni per P.
Pier Francesco Costantini – ITG “Canova” –
rev. 1.1 - 19/11/2010
Vicenza 10.

sábado, 20 de abril de 2013

Tangente interior a dos circunferencias


Vamos perfecionándonos en el LibreCAD. Ese dibujo se refiere a la relación entre los radios de dos circunferencias O y O', el ángulo central ß y la distancia entre sus centros OO', así como entre esos mismos elementos y la longitud de la tangente AB interior a las dos circunferencias. Las medidas o cotas que pone ahí no son muy exactas, puesto que fueron tomadas a ojo, pero sí se aproximan bastante a los resultados exigidos por las fórmulas. En fin, que esto del CAD es estimulante. Sin meternos por ahora en proyectos complicados sí sirve muy bien para dibujos de tipo geométrico.

miércoles, 17 de abril de 2013

Sobre teoremas de la Geometría


Es una cosa divertida demostrar teoremas geométricos. Supongamos, por ejemplo, este teorema: "El valor de un ángulo inscrito en una circunferencia es igual a la mitad del arco interceptado por sus lados" (medido en grados o en radianes).
Esta proposición no es evidente de entrada. Si hacemos un dibujo y trazamos alguna recta auxiliar quizás lo empecemos a ver. Aun así, caben tres casos: que uno de los lados pase por el centro de la circunferencia (el caso por el que deberíamos empezar), o que este centro sea interior o exterior al ángulo. A su vez este teorema se apoya en otros, que hemos de tener presentes, como el que un ángulo externo de un triángulo tiene por medida la suma de los ángulos internos no adyacentes del triángulo, y que los ángulos centrales se miden por la amplitud del arco que interceptan sus lados. Este último enunciado más bien es una definición. En cuanto a la primera, la de la medida de un ángulo externo, ésa sí me parece evidente.
Muchos de estos teoremas son útiles y, sin embargo, poco conocidos. Por ejemplo, que "el ángulo formado por dos cuerdas que se cortan en el interior de una circunferencia, tiene por medida la semisuma de los arcos que abarcan sus lados". Este teorema depende del anterior.
Podríamos poner otros muchos, por supuesto. Muchos se aclaran inmediatamente en cuanto trazamos alguna recta auxiliar. Por ejemplo, es de todos conocido que "el área de un trapecio cualquiera es igual a la mitad del producto de su altura por la semisuma de las bases". Pero intentemos demostrarlo. No es difícil.
Algunos consideran a la vieja geometría como una especie de juego de niños por aquello de que la aprendieron - si la aprendieron - de niños. Pero de eso nada. Nada desarrolla tanto la capacidad mental y lógica como la geometría cuando se estudia como debe ser estudiada, a base de las demostraciones.
Y, para terminar, otro par de teoremas, tan fáciles que casi me da vergüenza proponerlos: Demostrar que "el área del cuadrado inscrito en una circunferencia tiene siempre por medida la mitad de la del circunscrito a esa misma circunferencia", o que "el área del círculo inscrito en un cuadrado es la mitad del área del círculo circunscrito a ese mismo cuadrado". O, finalmente, que la relación de las áreas del círculo y del cuadrado circunscrito es igual a pi/4.
Por cierto, un tema apasionante es el de las construcciones. Intentemos transformar, por ejemplo, un rectángulo en un cuadrado con la misma área, utilizando solo regla y compás. Si lo conseguimos quizás nos sirva para demostrar - una demostración más - de una forma puramente geométrica, como se hizo en la antigüedad, el teorema de Pitágoras, que ha rendido a las matemáticas más sevicios que ningún otro.
Pido perdón por el dibujito. Es que me estoy estrenando con el LibreCad. Con el tiempo nos iremos perfeccionando. Por lo menos ahí damos una idea de lo que he comentado.

viernes, 12 de abril de 2013

De hélices y espirales


Una de las figuras geométricas más interesante es la hélice. No pensemos en la "hélice" de un barco o de un avión, sino en un cuerpo helicoidal, como puede ser un muelle de colchón, por ejemplo. Helicoidales son los tornillos, sacacorchos, escaleras de caracol,... Los hilos que forman una cuerda están arrollados unos en otros de forma helicoidal, los tirabuzones de las niñas, coletas, etc., tienen también estructura helicoidal. Las antiguas torres o zigurats tenían también rampas helicoidales para subir a su cima. En la naturaleza tenemos ejemplos de espirales en los cuernos de muchos animales, en conchas de moluscos, en el largo colmillo del nerval, en la cóclea del oído humano y en el cordón umbilical de los mamíferos. El ADN está formado por dos hebras complementarias que se arrollan en espiral. En el reino vegetal en tallos, zarcillos, semillas,...y en meteorología en los remolinos de los ciclones. Como vemos los ejemplos son abundantes. Hay dos tipos de espirales antagónicas: una es dextrorsa o dextrógira, por girar a derechas, es decir, por avanzar girando en el sentido de las manecillas del reloj, como los tornillos, y otra sinistrorsa o levógira, por avanzar girando en el sentido contrario al de las agujas del reloj. Estas dos formas son irreconciliables y opuestas.
Pues bien, a propósito de hélices vamos a plantear un pequeño problema que nos trae nuestro amigo Martin Gardner en "Ajá".
Una torre cilíndrica de 100 metros de altura tiene en su interior un ascensor, y por el exterior, una escalera de caracol que forma un ángulo constante de 60º con la vertical. El diámetro de la torre son 13 metros. Para subir a la terraza de la torre, los señores Pisapoco toman el ascensor. En cambio su hijo Quico prefiere subir corriendo por las escaleras. Al llegar arriba, Quico está sin aliento.
Chaval, dijo el señor Pisapoco, no es un milagro que llegues con la lengua fuera, pues habrás tenido que hacer por lo menos cuatro veces la distancia que hemos subido nosotros.
Estás equivocado, papá, replicó Quico. Solo tuve que hacer el doble.
¿Quién tiene razón?
Una indicación: en realidad tanto la altura como el diámetro de la torre son datos irrelevantes.

jueves, 11 de abril de 2013

Convertir un número decimal a binario


Este es un programa en C++ para convertir un número decimal a binario.
El algoritmo consiste en dividir el número dado decimal por 2 y obtener el cociente y el resto. El cociente se vuelve a dividir por 2 y se obtiene un nuevo resto. El proceso se repite "mientras (while)" el producto del cociente por el divisor sea menor o igual al dividendo; esto es, mientras se cumpla la condición q*2<=dv. En otras palabras, "mientras quepa", que decíamos en la escuela. El número binario se escribe empezando por el último cociente y siguiendo por los restos obtenidos hasta el primero. El programa da hasta el número decimal 2047. Si se quiere alargar basta con modificar N, que está puesto a 10.

#include<iostream>
#define N 10
using namespace std;
int main()
{
int dv;
int q=1,i;
int Q,R[N];
cout<<"Dame el número: ";cin>>dv;
for(i=0;i<N;i++){
while(q*2<=dv)
q++;
Q=q-1;
R[i]=dv-Q*2;
dv=Q;q=1;
}
cout<<Q; for(i=N-1;i>=0;i--) cout<<R[i];
cout<<endl;
return 0;
}




miércoles, 10 de abril de 2013

La moqueta del señor Tachuela



Este pequeño problema está tomado del libro de Martin Gardner "Ajá", una verdadera mina para cuestiones de matemáticas, lógica e ingenio en general.
La sociedad Tachuela S.A recibió el encargo de enmoquetar de pared a pared un corredor anular en la nueva terminal del aeropuerto. Cuando el señor Tachuela recibió los planos montó en cólera. Tan sólo daban la longitud de una cuerda tangente a la pared interior.
¿Cómo voy a darles un presupuesto, si no conozco la superficie de pasillo a enmoquetar?, exclamó el señor Tachuela. Sin embargo, en cuanto se presentó en la oficina del señor Dosaros, éste no tardó en convencerle de que no necesitaba más datos en absoluto. 
¿Cuál es la formulita, si existe, que nos dé el área de una corona circular sólo en función de la longitud de la cuerda que corte la corona de lado a lado tocando en un punto del círculo interior?
Como es para mí difícil - por el momento - poner dibujos aquí, cada uno debe imáginarselo a su manera trazando de paso los radios de las dos circunferencias concéntricas. En cuanto se dé cuenta de que estos forman con la cuerda un triángulo puede deducir inmediatamente la fórmula. Es casi "trivial"; sin embargo, Gardner llama a esta fórmula "un teorema sorprendente". Es curioso que no dependa para nada de los radios de las dos circunferencias implicadas. El teorema establece que "el área de una corona circular cualquiera es igual al área del círculo cuyo diámetro sea el máximo segmento que pueda trazarse en el interior del anillo".
Es fácil extender este procedimiento para calcular el volumen - y de paso el peso, por ejemplo - de un cilindro de paredes gruesas. Solo se necesita la cuerda de las bases. Luego el señor Gardner habla de una esfera perforada por un agujero... pero eso vamos a dejarlo para otro día porque no lo tengo aún maduro.

lunes, 8 de abril de 2013

¿Quién es el dueño del pececito?


Vamos a poner aquí un acertijo matemático que, según dicen, es del mismo Einstein. Anda por internet, lo ví y me gustó. Para resolverlo hay que armarse de paciencia y proceder con método.

Tenemos 5 casas de cinco colores diferentes y en cada una de ellas vive una persona de una nacionalidad diferente.Cada uno de los dueños bebe una bebida diferente, fuma una marca de cigarrillos diferente y tiene una mascota diferente.
Tenemos las siguientes claves:
- El británico vive en la casa roja.
- El sueco tiene un perro.
- El danés toma té.
- La casa verde esta a la izquierda de la blanca.
- El dueño de la casa verde toma café.
- La persona que fuma Pall Mall tiene un pájaro.
- El dueño de la casa amarilla fuma Dunhill.
- El que vive en la casa del centro toma leche.
- El noruego vive en la primera casa.
- La persona que fuma Brends vive junto a la que tiene un gato.
- La persona que tiene un caballo vive junto a la que fuma Dunhill.
- El que fuma Bluemasters bebe cerveza.
- El alemán fuma prince.
- El noruego vive junto a la casa azul.
- El que fuma Brends tiene un vecino que toma agua.
Y por ultimo la pregunta:
¿Quién es el dueño del pececito?

Esa torre semidestruida se conoce con el nombre de la torre de Peñarudes, está cerca de Oviedo y data de la Edad Media. Era una torre de observación y vigilancia para controlar el "camín de los moros" y poder prepararse a tiempo. Se ve desde Oviedo y supongo que por medio de señales luminosas de algún tipo serviría para alertar a tiempo a la defensa.

sábado, 6 de abril de 2013

Una fiesta familiar


Vamos a poner aquí algún problema que nos sirva para discurrir un poco. Lo trae Ian Stewart en uno de sus libros.
Fue una fiesta maravillosa - dijo Lucilla a su amiga Harriet.
¿Quiénes estaban?
A ver. Había un abuelo, una abuela, dos padres, dos madres, cuatro hijos, de los cuales dos eran varones y dos hembras, tres nietos, un hermano, dos hermanas, un suegro, una suegra y una nuera.
¡Vaya! Ventitrés personas.
No, menos que eso. Mucho menos.
¿Cuál es el número mínimo, el tamaño más pequeño de esa población, compatible con la descripción de Lucilla?
Doy el resultado: 7. Que cada uno se haga el arbolito para ver cómo es la cosa. Y de paso que adivine dónde está tomada la foto de arriba. Esos pinos son bastante reveladores. Adelanto que el lugar es famoso en el mundo entero.

viernes, 15 de julio de 2011

La serie armónica


Pongo aquí un programa en C para calcular los 100 primeros términos de la serie armónica. Contra lo que parece esta serie no es convergente, aunque crece tan lentamente que da la impresión de que lo es.

#include <stdio.h>
#define T_ENES 100
main()
{
int n;
float t[101];
float s[101];
s[0]=0;
for(n=1;n <= T_ENES;n++){
t[n]=1.0/n;
s[n] = s[n-1] + t[n];
}
for(n=1;n <= T_ENES;n++)
if(n%11 != 0)
printf("%.4f\t",s[n]);
else printf("\n");
return 0;
}

domingo, 10 de julio de 2011

Un programa en C para contar frecuencias

Tengo este blog medio abandonado, porque me dedico al otro, de temática general. Este tendría que ser de matemáticas, pero tengo bastante problema con lo de usar signos matemáticos como a mí me gustaría. En tiempos atrás usé el Tex para poner exámenes y para escribir en general, es genial, pero no veo la manera de introducirlo aquí. Si alguno lo sabe que me ayude. Mientras tanto voy a seguir poniendo programas de C, Python y Pascal, que me entretienen bastante. Quizás a alguno le sirvan. Este, en C, está inspirado en uno que ví en Deitel y Deitel. Se trata de contar el número de veces que aparece, en este caso, un número del 1 a 10. La sentencia esencial es ++frecuencia[clases[i]]. Se mueve uno de los diez contadores cada vez que en el barrido del bucle aparece un determinado número. Por ejemplo, clases[0] es 1, y clases[1] es 3; entonces se moverán, es decir, contarán, frecuencia[1] y frecuencia[3]. Me parece muy agudo. Se puede adaptar fácilmente para contar letras, por ejemplo.
.................
Bueno, no hay forma de poner el programa escrito. El signo "<" lo interpreta a su manera. No hay manera de poder poner programas en este editor. Solo cabe poner el pantallazo. Es decir, la foto de mi editor.



Aquí abajo pongo en una fotografía de pantalla el mismo programa adaptado a contar letras. Para verlo bien ampliarlo con el ratón:



domingo, 10 de abril de 2011

Arreglando el último programa de Pascal



Hay que perfeccionarse todos los días un poco. Así que aquí está el programa del último día un poco retocadito. ¡Hasta funciona! Lo de arriba es una prueba para ver si se pueden poner así los programas. Y lo de abajo también. Evidentemente, en un editor adecuado se ven las cosas mucho mejor.

program pruf12 (input, output);
var
i:integer;
cantidad:array[1..100] of real;
fecha:packed array[1..100] of string[2];
cpto: array[1..100] of string[30];
c,suma,reman:real;
mes:string[10];

begin
i:=0;
write('Mes actual: ');
readln(mes);
write('Remanente del mes anterior: ');
readln(reman);
repeat
i:=i+1;
writeln('Apunte nº',i);
write('Fecha: '); readln(fecha[i]);
write('Concepto (no metas acentos): '); readln(cpto[i]);
write('Cantidad ingres. o gast. (+/-): ');readln(c);
cantidad[i]:=c;
writeln('-----------');
until c=0;
i:=1;
suma:=reman;
writeln(mes);
writeln('Remanente del mes anterior: ',suma:10:2);
writeln('Fecha Concepto...........Entrada ..Salida ...Saldo.....');
while cantidad[i]<>0 do
begin
suma:= suma + cantidad[i];
write(fecha[i],': ');
write(cpto[i]:15,'...');
if (cantidad[i]>0) then
begin
write(cantidad[i]:10:2);
writeln(suma:20:2);
end
else
begin
write(cantidad[i]:20:2);
writeln(suma:10:2);
end;
i:=i+1;
end;
writeln;
writeln('..........Saldo final: ',suma:29:2);
end.

Y así es como queda la salida:


sábado, 9 de abril de 2011

Perfeccionando el Pascal



Arreglando un poquito el programa del otro día en Pascal. Serviría para una contabilidad doméstica. Un poco la "cuenta de la vieja". Los gastos hay que meterlos como números negativos. Si ponemos acentos o eñes en el concepto nos descabala la salida - que fácilmente se descabala-. Que cada uno lo arregle a su manera.


program pruf12 (input, output);
var
i:integer;
cantidad:array[1..100] of real;
fecha:packed array[1..100] of string[8];
cpto: array[1..100] of string[30];
c,suma:real;

begin
i:=0;
repeat
i:=i+1;
writeln('Apunte nº',i);
write('Fecha: '); readln(fecha[i]);
write('Concepto: '); readln(cpto[i]);
write('Cantidad ingres. o gast. (+/-): '); readln(c);
cantidad[i]:=c;
writeln('-----------');
until c=0;
i:=1;
suma:=0;
writeln('Fecha.... Concepto..........   Caja..... Saldo.....');
while cantidad[i] <> 0 do
begin
suma:= suma + cantidad[i];
write(fecha[i],': ');
write(cpto[i]:15,'...');
write(cantidad[i]:10:2);
writeln(suma:10:2);
i:=i+1;
end;
writeln;
writeln('Saldo final: ',suma:10:2);
end.


La salida sería, por ejemplo, así:
Apunte nº1
Fecha: 01/01/11
Concepto: Sueldo recibido
Cantidad ingres. o gast. (+/-): 1346
-----------
Apunte nº2
Fecha: 11/01/11
Concepto: Alquiler del piso
Cantidad ingres. o gast. (+/-): -670
-----------
Apunte nº3
Fecha: 23/01/11
Concepto: Gastos de alimentacion
Cantidad ingres. o gast. (+/-): -346
-----------
Apunte nº4
Fecha: 
Concepto: 
Cantidad ingres. o gast. (+/-): 0
-----------
Fecha....  Concepto..........      Caja.....    Saldo.....
01/01/11: Sueldo recibido...   1346.00   1346.00
11/01/11: Alquiler del pi...        -670.00     676.00
23/01/11: Gastos de alime...   -346.00     330.00


Saldo final:     330.00

El lenguaje Python


Pues hablando de lenguajes de programación, ahora está de moda el Python. No es un lenguaje como el C o el Pascal. Es un lenguaje interpretado, que en ese sentido se parece a aquel mítico BASIC de nuestra juventud. Pero, al parecer, es muy potente y muy fácil de aprender. Yo empecé ayer mismo, no leí más que cuatro cosas y ya hice algunos programillas. Aquí pongo mi último "parto". Hasta puede ser bueno para hacer concursos, exámenes y otros divertimentos. Desde luego, no es muy sofisticado, pero se puede prolongar todo lo que la memoria dé de sí:

#!/usr/bin/env python2.6
# La linea anterior parece que es necesaria. No utilizar en el programa acentos, enyes o el signo de abrir interrogacion. Parece que te la arma.
count=0
print("Cual es la capital del Principado de Asturias?")
nombre=raw_input()
if (nombre=="Oviedo") or (nombre=="oviedo"):
print "Enhorabuena, has acertado"
print "Efectivamente,",nombre,"es la capital del Principado."
count=count+1
print "Tienes",count,"puntos a tu favor"
else:
print "Lo siento, has perdido"
print nombre, "no es la capital del Principado."
print "Tienes",count,"puntos a tu favor"
#-----------------Comentario---------------------
print "----------------------------"
print "Como se llama el idioma propio de los asturianos?"
idioma=raw_input()
if (idioma=="Bable") or (idioma=="bable"):
print "Enhorabuena, has acertado"
print "Efectivamente, el ",idioma,"es el idioma propio de los asturianos"
count=count+1
print "Tienes",count,"puntos a tu favor"
else:
print "Lo siento, has perdido"
print idioma,"no es el idioma propio de los asturianos"
print "Tienes",count,"puntos a tu favor"

Como se ve. coser y cantar. No hay que andar declarando tipos ni cosas por el estilo. Lo único con lo que hay que andar con cuidado es con las indentaciones, como se ve en las sentencias condicionales.
¿Alguna dirección? Esa de ahí abajo puede ser buena para empezar.
http://mundogeek.net/archivos/2008/01/16/mi-primer-programa-en-python/
o bien, http://www.mclibre.org/consultar/python/index.html
Estos programas se escriben con un editor de texto; yo uso el Gedit de Ubuntu y estoy muy contento con él. Luego se guardan con la extensión .py. Desde la consola hay que poner en GNU Linux la orden chmod +x nombre_programa.py para hacerlo ejecutable. Estos programas no se compilan; en realidad son una serie de órdenes que se dan al intérprete. Luego se ejecuta con ./nombre_programa.py
También se pueden ejecutar paso a paso desde la consola sin más que poner, por ejemplo,  mario@mario-desktop:~$ python
automáticamente entras en Python y empiezas a dar órdenes que se ejecutan inmediatamente. En este sentido es ideal como calculadora superpotente.
Ya seguiremos hablando de Python.

viernes, 8 de abril de 2011

programas en pascal


Hablando de programas en informatica, es bueno ejercitarse en varios lenguajes. El C tiene fama de ser el lenguaje por excelencia, el de los expertos, pues con él se han construido los sistemas operativos, pero no es muy amigable. Parece que el C++ arregló algo eso. Y, desde luego, el Pascal, me parece a mí, es el más elegante, claro y didáctico. Pues nada, por divertirnos solo, voy a poner aquí el último "parto", que acabo de hacer hace unos momentos. Es el clásico problema de sumar una serie de cantidades que le vas dando. Puede resultar hasta útil, pero solo se consideran los ingresos. Otro día lo completamos con las salidas.

program pruf12 (input, output);
var
i,last:integer;
cantidad:array[1..100] of real;
c,suma:real;
begin
i:=0;
repeat
i:=i+1;
write('Dame la cantidad ',i, ': ');
readln(c);
cantidad[i]:=c;
until c=0;
i:=1;
suma:=0;
while cantidad[i]<>0 do
begin
suma:= suma + cantidad[i];
write('Cantidad ingresada: ',cantidad[i]:10:2);
writeln('..... Suma acumulada: ',suma:10:2);
i:=i+1;
end;
writeln;
writeln('Cantidad total ingresada: ',suma:10:2);
end.

Se compila en GNU Linux con gpc nombre.pas -o nombre. En este caso el nombre que yo le he dado es pruf12.pas
Luego se ejecuta con ./nombre
Para terminar de ingresar cantidades se introduce 0.

lunes, 14 de marzo de 2011

Un programilla en C


Aquí ponemos un programilla en C, que hemos hecho por divertirnos, por si a alguno le interesa duplicar cualquier altar cúbico, tenga las dimensiones que tenga. :-)

Programa mat1.c
#include < stdio.h >
#include < math.h >
/*Ojo, al compilar con GNU-Linux añadir -lm; es decir gcc mat1.c -o mat1 -lm; mat1 es el nombre del ejecutable. Se ejecuta en la consola con ./mat1 */
double main()
{
double a,h,rc,na;
/*Cálculo del cubo doble; "na", nueva arista; "h", ln de la raiz cúbica de 2, "rc" raiz cúbica de 2, exponencial de h.*/
printf("Deme la longitud de la arista 'a' del cubo: ");
scanf("%lf",&a);
h=(log(2))/3; //También podríamos poner rc=pow(2.0,0.3333)
rc=exp(h);
/*"na", nueva arista, que resulta de multiplicar la primitiva por raíz cúbica de 2 */
na=rc*a;
printf("Nueva arista = %lf\n",na);
printf("Comprobación, el volumen del cubo primitivo valía %lf y el del doble vale %lf\n",pow(a,3), pow(na,3));
return 0;
}
Comentarios: No podemos copiar y pegar el programa sin más; hay algunos caracteres sospechosos que puede no reconocerlos el compilador, como mayor, menor que, <, >, &, que es el ampersand... Quizás necesitemos algunos retoques. A buen entendedor...

La duplicación del volumen del altar II


Nos habíamos quedado con el grave problema de duplicar el volumen del altar, que era un cubo perfecto. Parece ser que uno de los canteros - los canteros eran los ingenieros de entonces - dió enseguida con la solución. "Para alargar una longitud - dijo - yo la multiplico por un número conveniente, mayor que 1 si la quiero alargar y menor que 1 si la quiero acortar". Claro, para ellos un número algo mayor que uno era siempre una fracción porque no manejaban los números decimales como nosotros. De esta manera fueron capaces de plantear esta ecuación, a su manera (no empleaban nuestra misma notación):

(ax)³ = 2a³

a³x³ = 2a³

x³ = 2

x = 2¹/³

Es decir, el número por el que tenían que multiplicar la arista era la raíz cúbica de 2. Naturalmente, no sabían hallar esa raiz. Solo por aproximaciones  sucesivas encontraron el número que podemos obtener ahora con un solo golpe de nuestras calculadoras: 1,25992105... que, por cierto, es un número irracional, algo que a ellos los traía completamente descolocados.
Supongamos, por ejemplo, que el altar fuese un cubo de 1,25 metros de arista. La nueva medida tendría que ser 1,5749 mts. Efectivamente, el altar tenía un volumen de 1,9531 mc. y ahora tendría 3,9062 mc.
Para aquellas mentes se planteó un grave problema: ¿Cómo es posible que existan números que no puedan ser expresados de ninguna manera por un par de números "normales"? El problema ya había aparecido con la diagonal del cuadrado y con la longitud de la circunferencia (o la relación de la longitud con el diámetro). De todos modos aquellos sacerdotes con la ayuda del cantero pudieron tallar un altar que se ajustaba bastante bien a las medidas exigidas por ¿Apolo?, mientras se quedaban muy pensativos sobre lo que el dios les había dado a entender. Habían aparecido magnitudes "incomensurables" entre sí. No era posible medir exactamente, por ejemplo, la diagonal del cuadrado tomando como unidad de medida el lado y partes alícuotas de este, aunque fueran infinitamente pequeñas. Todo un misterio que se cernió sobre las sabias cabezas de los matemáticos durante muchos años. Un misterio que, como suele ocurrir, desencadenó amplios desarrollos más adelante.

viernes, 11 de marzo de 2011

La duplicación del volumen del altar

Vamos a proponer un problema antiguo. En una ocasión un sabio propuso a los sacerdotes de no sé que templo griego el siguiente problema:

El altar del templo es un bloque cúbico, ¿cuánto se tendrían que alargar los lados de ese cubo para que su volumen resultase exactamente el doble?


Los sacerdotes hicieron un altar cúbico con sus lados el doble de largos que el antiguo. El sabio se rió mucho y les dijo que habían decepcionado a su dios, porque el volumen del altar resultaba ahora ocho veces mayor que el antiguo y además era tan grande que ya no servía para nada.
Los sacerdotes plantearon entonces una ecuación que resultaba ser así:

(a+x)³ = 2a³

Pero cuando se pusieron a resolver esa ecuación se encontraron con dificultades insalvables. Efectivamente:

a³ + 3a² x + 3ax² + x³ = 2a³
x³ + 3ax² + 3a²x - a³ = 0

Entonces pensaron dar a a un valor determinado, puesto que representa la longitud conocida de la arista del primitivo cubo, por ejemplo, 1. Pero aun así, la ecuación resultaba insoluble para ellos:

x³ + 3x² + 3x -1 = 0

¿Cómo se puede plantear la ecuación para que resulte sumamente fácil su solución?
La solución mañana.



domingo, 9 de enero de 2011

Algunos problemas más


 "Una columna de soldados marcha a una velocidad de 5 Km/hora. Un enlace a caballo va desde la cabeza de la columna hasta el final de la misma y regresa inmediatamente, empleando un tiempo total de 10 minutos. Suponiendo que la velocidad del enlace es de 10 Km/hora, hallar la longitud de la columna". 

Solución:
Cuando el enlace camina en contra de la columna habrá recorrido la longitud de la misma menos lo que ésta haya avanzado, y cuando camina con la columna, rebasándola, habrá recorrido la longitud de la misma más lo que ésta, en ese mismo intervalo de tiempo, haya avanzado. Total, si 
v1 es la velocidad del enlace y t el tiempo que tarda en alcanzar la retaguardia, v2 la velocidad de la columna, t' = 10 minutos - t, el tiempo del viaje de regreso, y x la longitud de la columna tendremos:
x=v1*t + v2*t

x= v1*t' - v2*t'
por lo tanto,
v1*t + v2*t = v1*t' - v2*t' 
es decir,
 10*t + 5*t = 10*(1/6 - t) - 5*(1/6 - t)

Resolviendo para 
t (1/24 horas) y sustituyendo en cualquiera de los dos miembros, puesto que ambos expresan la longitud de la columna, esta resulta ser de 5/8 de kilómetro. Lo de 1/6 es la manera de convertir 10 minutos en horas para que case con las velocidades expresadas en Kms/hora.

 "Se dispone de 4 litros de una solución anticongelante de agua y glicerina al 10%. Hallar el número de litros de solución que se deben reemplazar por igual cantidad de glicerina para que la solución resultante sea del 25%. Los tantos por ciento son en volumen".

Solución:
¿Qué cantidad de glicerina tenemos en la solución final?: La que había, menos la sustraída, más la añadida; es decir: (0,10)(4) - (0,10)*x + x = (0,25)(4).

"Un mineral de oro y cuarzo tiene una masa de 100 gramos. La densidad del oro es de 19,3, la del cuarzo 2,6 y la del mineral 6,4 (gramos por centímetro cúbico). Hallar la masa de oro que contiene el mineral". 

Solución:
Sabiendo que la densidad se define como masa /volumen, es decir, d=m/V, => V=m/d. El volumen de la muestra es igual a la suma de los volúmenes del oro y del cuarzo (suponiendo que no haya más elementos). Como la densidad se define como el cociente de la masa por el volumen (d=m/V), entonces V=m/d. Planteamos la ecuación:
x/do + (m-x)/dc = m/dm

donde x es la cantidad de oro, do la densidad del oro, dc la del cuarzo, dm la de la muestra y m la masa de la muestra.
Como tenemos datos: 
x/19.3 + (100 - x)/2.6 = 100/6.4

Ver los datos hace unos días. Se resuelve y da 68.5 gramos de oro, 

lunes, 6 de diciembre de 2010

El álgebra y las mezclas

Seguimos con esto de los planteamientos de ecuaciones. Ahora veamos uno de mezclas. Estos problemas siempre han sido un poco “dificilillos”. Pero son fáciles si logramos pescar alguna idea firme.
Hallar la masa de agua que se debe evaporar de 40 kg de una solución salina al 20% para que resulte una solución al 50%. Los porcentajes son en masa.
Los problemas, mientras no se diga lo contrario, están tomados del libro de Murray R. Spiegel, Álgebra Superior (col. Schaum).
Lo primero que advertiremos es que estamos hablando de kilogramos, no de litros. Lo segundo, es una observación “de sentido común”: la sal no se evapora. Por lo tanto, la sal que había antes de evaporarse el agua es la misma que habrá después. ¿Cuánta había antes?. Pues, 0,20(40 kg.), es decir, 8 kg de sal. ¿Cuánta habrá después? Pues, 0,50(40 kg – x). Después de evaporarse x kg de agua – no sabemos cuántos – la solución pesará 40 kg – x, evidentemente, y la sal representará el 50% de esta mezcla. Por lo tanto:

Sal que había antes (20% de la mezcla) = sal que habrá después (50% de la mezcla)

8 = 0,50(40 – x)

8 = 20 – 0,50x

0,50x = 20 – 8 = 12

x = 24 kg

Es decir, se habrán evaporado 24 kilogramos de agua. Ahora tendremos 8 kg de agua y 8 kg de sal. En total 16 kg de solución, de mezcla. Es decir, una solución al 50%. Cualquiera que esté un poco entrenado en resolver problemas aritméticos hubiera encontrado la solución inmediatamente, sin escribir una línea, por un razonamiento elemental: Si tenemos 8 kg de sal y la solución ha de ser al 50% tendremos al final 8 kg de agua, es decir, 16 kg de solución, y se habrán marchado el resto – 24 kg -. Esto es cierto. Por eso los que resuelven problemas aritméticos tienen esa fama de “listos”. Son muy agudos. Pero el álgebra es un camino más metódico y más seguro. También conviene distinguir en este problema tres cosas distintas: una es el agua, otra la sal, y otra la mezcla. Hay quienes podrían discurrir así: Si se me han marchado 24 kg de agua, al final tendré 16 kg de agua... y 8 kg de sal, luego 32 kg de solución... ¡No! Al final tendrás 16 kg de mezcla, de los cuales 8 kg son de agua. Efectivamente, 8 kg de agua más 24 kg que se te han marchado son los 32 kg de agua, que había al principio.

martes, 16 de febrero de 2010

Concepto de tangente trigonométrica


Uno de los conceptos fundamentales de la trigonometría es el de tangente. Este concepto es muy antiguo; en realidad, es quizás el primero. Los griegos ya habían demostrado que en un triángulo rectángulo cualquiera, prescindiendo de su tamaño, la relación entre los catetos era siempre la misma para un determinado ángulo agudo. Es un corolario de la semejanza de triángulos. Así, para un ángulo de 45º la relación vale 1, para 30º, raíz de 3 dividida por 3, para 60º, raíz de 3, etc. Esto tenía una aplicación inmediata, que era el poder medir objetos de gran tamaño o inaccesibles sustituyendo la medición directa por el ángulo de "elevación" o de "depresión". Así podemos medir la altura de una torre sin subir a ella, o de una montaña, o la distancia de un barco de la costa, la anchura de un río, etc. Parece ser que ya ellos elaboraron unas rudimentarias tablas para determinados valores que hacían corresponder el número que resulta de dividir el cateto opuesto por el cateto contiguo, concepto de tangente trigonométrica, con el ángulo agudo correspondiente. Este concepto tiene numerosas aplicaciones prácticas. No necesitamos más que una regla y un aparatito llamado teodolito o un sextante primitivo para medir ángulos. El concepto algebraico que hemos de retener firmemente es: tan(angulo)=altura/distancia.
Esto no se demuestra, es una definición, un concepto. De aquí que altura=distancia*tan(angulo), que es la ecuación que vamos a utilizar constantemente. Si en vez de ángulos de elevación tratamos con ángulos de depresión, entonces la altura es conocida y lo que se trata de medir es la distancia, luego: distancia=altura/tan(angulo), es decir, distancia=altura*cotan(angulo), puesto que la cotangente se define como la inversa de la tangente. Si quisiéramos medir la anchura de un río, por ejemplo, el problema es el mismo, la "altura" sería la anchura del río, y la "distancia" lo que tendríamos que caminar por la orilla del río para volver a enfocar un punto en la otra orilla.
Vamos a resolver un problema elemental, pero típico de esta clase:
Problema 1. Si la altura del sol sobre el horizonte (ángulo de elevación) es en cierto momento de 42º, calcular la altura de un árbol cuya sombra tiene 25 pies de largo. (Rich, Geometría plana con coordenadas).
Aquí de paso podemos divertirnos un poco pasando pies a metros. Estos pasos se llaman conversiones y constituyen casi la mitad de todos los problemas de física, química y matemáticas. Hay quienes tienen problemas con esto, pero no tiene por qué ser así. El método mecánico que nunca falla consiste en multiplicar siempre el dato por una fracción cuyo numerador sea la unidad a la que queremos pasar y cuyo denominador sea la unidad que queremos convertir. Esta fracción vale 1 porque los dos numeritos expresan la equivalencia de las distintas unidades, por ejemplo, 0.30 mts/1 pie, si queremos pasar de pies a metros, o 1 pie/0.30 mts si queremos pasar de metros a pies. Este sistema vale para todo. Por ejemplo, si quiero pasar de grados a radianes: 3.1416 rad/180º o al revés, de radianes a grados: 180º/3.1416 rad. En el caso que nos ocupa escribiríamos: 25 pies*0.30 mts/1 pie. Pies se cancelan (podemos tacharlos), y nos quedan metros. En este caso: 7.5 mts. Así que ecuación: altura=distancia*tan(angulo),
altura=7.5 mts*tan(42)=6.7530 mts.
Otro problema del mismo estilo:
Problema 2
. Enrique mira la cima de un edificio bajo un ángulo de elevación de 21º. El piso es horizontal. El teodolito con el que mide el ángulo está a 5 pies por encima del piso y a 200 pies (horizontalmente) del edificio. Hallar al altura de éste. (Rich, ibidem). Aquí lo mismo. Primero convertimos pies -> mts: 5 pies*0.30 mts/1 pie= 1.5 mts; 200 pies *0.30 mts/1 pie=60 mts. Ahora aplicamos ecuación: altura=distancia*tan(angulo); altura=60*tan(21)=23 mts. Si añadimos la altura del teodolito: 24.5 mts. Es conveniente para más seguridad dibujar siempre un esquemita para no equivocarse de catetos. La definición firme es: tangente=cateto opuesto/cateto contiguo.
El que sea aficionado al C puede divertirse un poco con este pequeño programa. Para compilarlo en Linux acceder a la consola (línea de comandos) y teclear: gcc -o anguloelev anguloelev.c -lm. Para ejecutarlo ./anguloelev.
.........................................
Programa anguloelev.c
/* Al compilar es necesario poner la directiva -lm */
/* by M.H., Febrero 2010 */
#include  "stdio.h"
#include  "math.h" 
#define PI 3.1416
double distancia, ang_elevacion,altura,minutos,segundos;
double main(){
puts("Se quiere calcular la altura de un edificio a base de medir desde un cierto punto al nivel del");
puts("suelo el ángulo de elevación del extremo más alto del edificio y la distancia desde el observador a la base del mismo.");
printf("Dame el ángulo de elevación (grados sexagesimales):");scanf("%lf",&ang_elevacion);
printf("Dame los minutos:");scanf("%lf",&minutos);
printf("Dame los segundos:");scanf("%lf",&segundos);
printf("Dame la distancia a la base en metros:");scanf("%lf",&distancia);
segundos=segundos/60; /*Conversión de segundos a fracción de minuto*/
minutos=minutos+segundos; /*Agregación a minutos*/
minutos=minutos/60; /*Conversión de minutos a fracción de grado*/
ang_elevacion=ang_elevacion+minutos; /*Agregación a grados*/
ang_elevacion=ang_elevacion*PI/180; /*Conversión de grados a radianes*/
altura=distancia*tan(ang_elevacion); /*Cálculo de la altura*/
printf("La altura del edificio es de %.4lf metros\n",altura);
return 0;
}
............................................