2015-11-08 38 views
0

所以我有代码需要sqrt并采取arctans并从弧度转换为度,这使我不是很精确的值。在没有使用CAS的情况下,是否有任何事情可以做,以检查事物是否平等,而不是四舍五入?不确定度的问题

+1

如果两个'double'的差值小于0.0001那么它们是相等的。 – Sweeper

+0

发布你的代码可能是有用的......但是对于双打,你永远不能确定它们是平等的,所以你必须为abs(a-b)<0.00001'做些什么。 –

+0

@Davidvanrijn理想情况下,我不想轮到,也可能要看几万亿次迭代,所以四舍五入会严重影响最终结果。 – Sam

回答

1

我假定CAS意味着计算机代数系统 ...

实际的方法来测试,如果两个数相等时,有在计算(测量精度或)错误的可能性被检查,如果该差值小于由所计算的数字中的估计误差确定的“增量”。

问题是找到一个很好(足够)的错误估计。从空中拉出一个数字(如0.0001)可能会导致误报或漏报。要做到这一点,你实际上需要做一个数值分析你的计算得到一个可靠的估计。


很明显......你在这个问题上花费的时间应该取决于你得到“正确”答案的重要性,即对计划以及使用计划的人而言,误报或否定的后果是什么。


1 - 为了记录,CAS可能不会帮你在这里。涉及这种类型的计算的问题通常没有代数解决方案。

+0

计算必须与椭圆反弹并检查它何时返回到原始点,所以如果它曾经做过,CAS(不是,我的意思是计算机代数系统)最终描述了简化的值,所以那么一样? – Sam

+0

它可能工作,但有两个问题。 1)是否有解析解决方案? 2)一个(愚蠢的)CAS可以找到解决方案吗? –

+0

我很肯定CAS不需要甚至能够进行微积分,但万一,你告诉我: 编辑:代码就像500个字符太长,lemme screencap。 http://prntscr.com/91ezde – Sam