jjzjj

python : Ramer-Douglas-Peucker (RDP) algorithm with number of points instead of epsilon

我想为RDPalgorithm修改以下python脚本目的是不使用epsilon而是选择我想在最后保留的点数:classDPAlgorithm():defdistance(self,a,b):returnsqrt((a[0]-b[0])**2+(a[1]-b[1])**2)defpoint_line_distance(self,point,start,end):if(start==end):returnself.distance(point,start)else:n=abs((end[0]-start[0])*(start[1]-point[1])-(start[0]-point[0]

python - Python 中的机器 Epsilon

我目前正在学习的一本手册(我是新手)说:"Numberswhichdifferbylessthanmachineepsilonarenumericallythesame"使用Python,可以通过键入获得浮点值的机器epsiloneps=numpy.finfo(float).eps现在,如果我检查1+eps/10!=1我得到False。但是如果我检查0.1+eps/10!=0.1我得到True。如果我将eps除以100,我的后一个逻辑表达式将变为False。那么,机器epsilon是如何工作的呢?Python文档只是说"Thesmallestrepresentablepositiven

c# - 为什么将 double.epsilon 添加到一个值会产生相同的值,完全相等?

我有一个单元测试,测试边界:[TestMethod][ExpectedException(typeof(ArgumentOutOfRangeException))]publicvoidCreateExtent_InvalidTop_ShouldThrowArgumentOutOfRangeException(){varinvalidTop=90.0+Double.Epsilon;newExtent(invalidTop,0.0,0.0,0.0);}publicstaticreadonlydoubleMAX_LAT=90.0;publicExtent(doubletop,doubleri

floating-point - 在 Go 中获取机器 epsilon 的最简单方法

在Go中获取机器epsilon的最简单方法是什么?float的其他方面如何,例如精度、最小指数、最大指数、摆动等?我意识到有math/const包,其中包含不同浮点类型(http://golang.org/src/pkg/math/const.go)的最大值和最小值,但没有其他信息。我想知道的一个原因是验证我是否已达到机器可以执行的给定计算的最大精度,这样我就不会提前退出或尝试比需要的时间更长的时间。另一个只是出于好奇。谢谢编辑:为了好玩,我在学校的一些笔记中查找了如何手动计算epsilon的乐趣,这里是c++http://play.golang.org/p/XOXwIdNfsa的粗略

c++ - 如何(可移植地)在 C 和 C++ 中获取 DBL_EPSILON

我在Linux(AS3)上使用GCC3.4并试图找出获得DBL_EPSILON,或者至少是一个不错的近似值。如何以编程方式获取它? 最佳答案 在C++中是std::numeric_limits::epsilon(). 关于c++-如何(可移植地)在C和C++中获取DBL_EPSILON,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1566198/

python numpy机器epsilon

我想了解什么是机器epsilon。根据维基百科,可以这样计算:defmachineEpsilon(func=float):machine_epsilon=func(1)whilefunc(1)+func(machine_epsilon)!=func(1):machine_epsilon_last=machine_epsilonmachine_epsilon=func(machine_epsilon)/func(2)returnmachine_epsilon_last但是,它只适用于double。我有兴趣修改它以支持单精度数字。我读到可以使用numpy,尤其是numpy.float32类

Java:双机ε不是最小的x,使得1 + x!= 1?

我正在尝试确定doublemachineepsilon在Java中,使用它的定义是最小的可表示double值x使得1.0+x!=1.0,就像在C/C++。根据维基百科,这台机器的epsilon等于2^-52(其中52是double尾数位数-1)。我的实现使用Math.ulp()函数:doubleeps=Math.ulp(1.0);System.out.println("eps="+eps);System.out.println("eps==2^-52?"+(eps==Math.pow(2,-52)));结果如我所愿:eps=2.220446049250313E-16eps==2^-52

Java 双重比较 epsilon

我编写了一个类,用Java中的两个double来测试相等、小于和大于。我的一般情况是比较可以精确到半美分的价格。59.005与59.395相比。我为这些情况选择的epsilon是否足够?privatefinalstaticdoubleEPSILON=0.00001;/***Returnstrueiftwodoublesareconsideredequal.Testsiftheabsolute*differencebetweentwodoubleshasadifferencelessthen.00001.This*shouldbefinewhencomparingprices,becau

java - JUnit assertEquals(双倍预期,双倍实际,双倍ε)

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:JUnit:assertEqualsfordoublevalues显然assertEquals(doubleexpected,doubleactual)已被弃用。考虑到JUnit的广泛使用,JUnit的javadocs令人惊讶地缺乏。你能告诉我如何使用新的assertEquals(doubleexpected,doubleactual,doubleepsilon)? 最佳答案 Epsilon是您的“模糊因子”,因为double可能不完全相等。Epsilon

java - 对于 double 值,assertEquals 的 delta 或 epsilon 参数的含义

我有一个关于JUnitassertEquals以测试double值的问题。阅读APIdoc我可以看到:@DeprecatedpublicstaticvoidassertEquals(doubleexpected,doubleactual)Deprecated.UseassertEquals(doubleexpected,doubleactual,doubledelta)instead.(注意:在旧的文档版本中,delta参数称为epsilon)delta(或epsilon)参数是什么意思? 最佳答案 Epsilon是2个数字可以偏离