Se que este post ya está muerto, pero quiero dar la respuesta a la pregunta que se planteó inicialmente ya que no se llegó a dar. En ese momento aún era una conjetura, pero ya se ha demostrado que los agujeros negros pierden masa a través de la radiación de Hawking, basada en la teoría cuántica.
Según la teoría cuántica es posible que en el vacío se formen pares de partículas-antipartículas que, casi instantáneamente, se anulan mutuamente y desaparecen. Si esto sucede cerca de un agujero negro, existe la posibilidad de que una de estos partículas caiga en el agujero negro, provocando que la otra salga despedida a la velocidad de la luz en forma de radiación gamma. Cuando esto sucede (y se ha probado que es así), la partícula que cae en el agujero negro reacciona con una partícula del interior del agujero negro destruyéndola. De esta manera el agujero negro pierde masa. El tiempo que tarda en evaporarse un agujero negro es:
t_ev= 5120*π*√(ħ*G[sup]2[/sup]*m[sub]0[/sub][sup]3[/sup]/(ħ*c[sup]4[/sup])
donde π=3.1415926..., pi
ħ=1.055*10
-34, constante reducida de plank
G=6.67*10
-11, constante de gravitación universal
c=3*10
8, velocidad de la luz
A mi me gusta la astrofísica, es lo que quiero estudiar, de manera que quería ayudar a los visitantes del foro que buscan respuesta a preguntas como estas.
Yo he creado un programa muy sencillo para calcular el radio de Schwarzschild, la temperatura en la superfície del agujero negro (horizonte de sucesos) y el tiempo que tardan en evaporarse.
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <cstdlib>
long double calcr (long double);
long double calcT (long double );
long double calct_ev (long double);
long double calcm ();
void mostrar ();
void mostraT ();
void mostrat_ev ();
void mostratot ();
void mostram ();
void error ();
void reiniciar ();
using namespace std;
int main ()
{inicio:
unsigned int a;
cout << "Escriu 0 per calcular el radi de Schwarzschild \n"
<< "Escriu 1 per calcular la temperatura a la superficie del forat negre \n"
<< "Escriu 2 per calcular el temps d'evaporacio \n"
<< "Escriu 3 per calcular-ho tot alhora \n"
<< "Escriu 4 per calcular la massa \n";
bucle1:
cin >> a;
switch (a)
{
case 0: {
mostrar ();
break;
}
case 1: {
mostraT();
break;
}
case 2: {
mostrat_ev ();
break;
}
case 3: {
mostratot ();
break;
}
case 4: {
mostram ();
break;
}
default:
{
cout << "Nombre incorrecte \n";
goto bucle1;
}
}
reiniciar ();
}
void mostrar ()
{
long double m;
cout << "Escriu la massa del forat negre: ";
cin >> m;
cout << "El radi del forat negre mesura " << calcr (m) << " m" << "\n\n";
return;
}
void mostraT ()
{
long double m;
cout << "Escriu la massa del forat negre: ";
cin >> m;
cout << "A la superficie del forat negre hi ha una temperatura de " << calcT (m) << " k" << "\n\n";
return;
}
void mostrat_ev ()
{
long double m;
cout << "Escriu la massa del forat negre: ";
cin >> m;
cout << "El forat negre s'evaporara en " << calct_ev (m) << " anys" << "\n\n";
}
void mostratot ()
{
long double m;
cout << "Escriu la massa del forat negre: ";
cin >> m;
cout << "El radi del forat negre mesura " << calcr (m) << " m" << endl;
cout << "A la superficie del forat negre hi ha una temperatura de " << calcT (m) << " k" << endl;
cout << "El forat negre s'evaporara en " << calct_ev (m) << " anys" << "\n\n";
return;
}
long double calcr (long double m)
{
const long double G=6.67e-11,
c=3e8;
return (2*G*m/(c*c));
}
long double calcT (long double m)
{
const long double c=3e8,
pi=3.1415926,
h=1.034e-34,
Kb=1.38e-23,
G=6.67e-11;
return (h*c*c*c/(8*pi*G*m*Kb));
}
long double calct_ev (long double m)
{
const long double pi=3.1415926,
G=6.67e-11,
c=3e8,
h=1.034e-34;
return (5120*pi*G*G*m*m*m/(h*c*c*c*c*31557600));
}
void mostram ()
{
unsigned int a;
long double r,
T,
t_ev,
m;
const long double c=3e8,
G=6.67e-11,
pi=3.1415926,
Kb=1.38e-23,
h=1.034e-34;
cout << "\nEscriu 0 per calcular la masa a partir del radi de Schwarzschild, \n"
<< "\nEscriu 1 per calcular la masa a partir de la temperatura \n"
<< "\nEscriu 2 per calcular la masa a partir del temps d'evaporacio: ";
bucle2:
cin >> a;
switch (a)
{
case 0:
{
cout << "\nEscriu el radi de Schwarzschild: ";
cin >> r;
m=(r*c*c/(2*G));
cout << "La massa es " << m << endl;
break;
}
case 1:
{
cout << "\nEscriu la temperatura: ";
cin >> T;
m=(h*c*c*c/(8*pi*G*Kb*T));
cout << "La massa es " << m << endl;
break;
}
case 2:
{
cout << "\nEscriu el temps d'evaporacio: ";
cin >> t_ev;
m=(cbrt(t_ev*h*c*c*c*c*31557600/(5120*pi*G*G)));
cout << "La massa es " << m << endl;
break;
}
default:
{
cout << "\nNumero incorrecto";
goto bucle2;
}
}
}
void reiniciar ()
{
int s;
cout << "Escriu 0 per reiniciar el programa \n"
<< "Escriu 1 per sortir \n";
bucle3:
cin >> s;
switch (s)
{
case 0:
{
system ("CLS");
main ();
}
case 1: exit (0);
}
}