La manera de calcular el epsilon es muy sencilla, solo es necesario tomar un numero cualquiera y dividirlo entre dos consecutivamente hasta que el resultado sea igual que el numero dividido, esto significa que ya no fue posible subdividirlo mas ya que es la cantidad mas pequeña soportada por el registro del procesador. El error producido por este paso finto entre dos números produce un error de truncamiento, debido a hay en imposible representar exactamente un numero que no sea un múltiplo exacto de el epsilon de la maquina, que es caso usual. Los errores de truncamiento se acumulan por esto cuando se realiza un operación muchas veces se puede notar muy fácilmente el efecto que estos producen en los cálculos.
El código en C++ a continuación contiene un bucle que calcula el epsilon de la maquina y tiene un demostración de los errores de truncamiento en una sumatoria.
Código: Seleccionar todo
#include
#include
#include
using namespace std;
long double epsilon=1;
long double suma = 1;
int main(void)
{
// Para encontrar el epsilon de la maquina
while(epsilon+1.0>1.0){
epsilon=epsilon/2.0;
}
cout.setf(ios::scientific);
cout <<setprecision(16)<<"\nEl epsilon de la maquina = "<epsilon<"\n\n";
// Esta suma es para ver el error de truncamiento
for(int i = 1; i<=10000; i++)
{
suma = suma + 0.000010000000;
}
epsilon = 10000 * 0.000010000000 + 1;
cout <setprecision(16)<"El producto es = "<epsilon<"\n";
cout <setprecision(16)<"La suma es = "<suma<"\n";
cout <setprecision(16)<"El error acumulado es = "<suma-epsilon<"\n\n";
return 0;
}
No hay comentarios:
Publicar un comentario