maxima对于非常简单的相等(等于)失败

时间:2018-08-11 22:47:46

标签: precision equals fractions maxima

我有一个非常简单的数值比较,其最大值失败。我打开了详细模式和调试模式,但看不到任何其他详细信息。是否需要指定一些内容(我为fpprec尝试了其他值,但没有用)。

(%i2) is(equal(18225979/30454181, 0.5984721441039565));

(%o2)                                false

只要参数等于十进制后的12位数字,我希望最大值返回true。在此先感谢您的解决方案和建议。 -布雷迪

1 个答案:

答案 0 :(得分:2)

我认为您想要的是类似is(abs(x - y)/abs(y) < 1e-12)的数字,其中xy是有问题的数字。

is(equal(x, y))被实现为is(ratsimp(x - y) = 0)。这与对多个数字进行简单测试的方式有微妙的区别。我的建议是按照上述建议测试绝对相对差异。