1,0 + ε-mach > 1,0
El épsilon es el número decimal más pequeño que, sumado a 1, la computadora nos arroja un valor diferente de 1, es decir, que no es redondeado.
Representa la exactitud relativa de la aritmética del computador. La existencia del épsilon de la máquina es una consecuencia de la precisión finita de la aritmética en coma flotante.
En C:
#include <stdio.h> #include <stdlib.h> long double epsilon=1; long double suma = 1; int main(int argc, char *argv[]) { float machEps = 1.0f; printf( "Epsilon inicial, 1 + Epsilon Inicial\n\n\n" ); do { printf( "%G\t%.20f\n", machEps, (1.0f + machEps) ); machEps /= 2.0f; } while ((float)(1.0 + (machEps/2.0)) != 1.0); printf( "\nEl Epsilon de la maquina es: %G\n", machEps ); system("PAUSE"); return 0; }
En C++:
#include <cstdlib> #include <iostream> #include <iomanip> using namespace std; long double epsilon=1; long double suma = 1; int main(int argc, char *argv[]) { while(epsilon+1.0>1.0){ epsilon=epsilon/2.0; } cout.setf(ios::scientific); cout <<std::setprecision(20)<<epsilon<<'\n'; system("PAUSE"); return EXIT_SUCCESS; }
Existe un overflow
ResponderEliminar