C++程序 寻找机器ε

C++程序 寻找机器ε

机器ε是ε的最小值,使得1 + ε不等于1。机器ε是一种机器相关的浮点值,它提供了浮点运算中由四舍五入引起的相对误差的上限。数学上,对于每种浮点类型,它等价于1.0和大于1.0的最小可表示值之间的差。

在C中,机器epsilon在标准头文件中被指定为FLT_EPSILON、DBL_EPSILON和LDBL_EPSILON。这三个宏分别给出了浮点、双精度和长双精度类型的机器ε值。

在C++中,类似的宏在标准头文件中也是可用的。在C++中,首选的方法是使用std::numeric_limits::epsilon() – 指定在标准头文件中。

在Java中,它被称为ULP(最后一位单位)。您可以使用java.lang.Math包和Math.ulp()方法找到它。

在Python3中,这些信息在sys.float_info中可用,对应于C99中的float.h。
这是std::numeric_limits::epsilon()的C++等效版本。

>>> import sys   
>>> sys.float_info.epsilon 
//寻找机器ε的C++程序
#include<iostream>
#include <cfloat>
using namespace std;
  
//使用一个初始值为EPS的函数
void machineEpsilon(float EPS)
{
    //取一个浮点类型的变量
    float prev_epsilon;
  
    //执行,直到条件满足
    while ((1+EPS) != 1)
    {
        //将ε的值复制到前一个ε值中
        prev_epsilon = EPS;
  
        //除以2
        EPS /=2;
    }
  
    //输出程序的结果
    cout << "机器ε是: " << prev_epsilon << endl;
}
  
//主程序
int main()
{
    //将函数调用计算初始值为0.5的机器ε
    machineEpsilon(0.5);
  
    return 0;
}
//寻找机器ε的Java程序
  
import java.util.*;
  
class Count{
  
    //使用一个初始值为EPS的函数
  
    public static void machineEpsilon(double EPS)
    {
        //取一个浮点类型的变量
        double prev_epsilon = 0.0;
   
        //执行,直到条件满足
        while ((1+EPS) != 1)
        {
            //将ε的值复制到前一个ε值中
            prev_epsilon = EPS;
   
            //除以2
            EPS /=2;
        }
   
        //输出程序的结果
        System.out.print( "机器ε是: "
                         + prev_epsilon);
    }   
      
    public static void main(String[] args)
    {
        //将函数调用计算初始值为0.5的机器ε
        machineEpsilon(0.5);
  
    }
}
# Python程序,求机器精度
  
# 用一个初始值EPS来计算机器精度
def machineEpsilon(EPS):
  
    # 使用浮点类型变量
    # 运行直到满足条件
    while ((1+EPS) != 1):
  
        # 将epsilon的值复制
        # 给先前的epsilon
        prev_epsilon = EPS
   
        # 将epsilon除以2
        EPS = EPS / 2
   
    # 打印输出程序
    print( "机器精度是:",
            prev_epsilon )
  
# 主函数
# 调用计算机器精度的函数
# 初始值为0.5
machineEpsilon(0.5);
      
# 本代码由
# "rishabh_jain" 提供。

输出:

机器精度是:1.19209e-07

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例