c - C 程序中的错误小于预期

标签 c numerical-methods

我编写了一个 C 程序来计算沿路径的微分方程的解。该代码已使用 double 完成。

我不明白为什么我只得到 10^-21(绝对错误)的错误。假设 double 只提供大约 16 位精度。

误差是计算出来的,但计算了一个常量的差值,该常量在数学过程中已知是不变的,以找到解决方案。这方面的细节无关紧要。我的问题只是如何才能获得比使用的假定精度限制更少的错误。

使用 gcc 我有以下精度参数:

Min Epsilon Double: 0.000000000000000222044604925031
Digits mantissa (bit precission) double: 53

非常感谢。

最佳答案

答案可能是你在 x86/x86_64 上使用 GCC,计算不是太复杂,所以编译器优化它们以在具有 long double 的 80 位浮点寄存器内部处理。精度,从而为您提供更好的结果。

或者可能是你用精度这个词来描述绝对误差,而当实际值在10-5相对误差在10-16量级,绝对误差在10-21量级.

或其他,视上下文而定。 你看,细节实际上是相关的。

关于c - C 程序中的错误小于预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22858068/

相关文章:

c - 如何防止数组冲突?

c# - 如何在 VS 2010 中使用大整数

c++ - 使用哪个数值库从 Matlab 移植到 C++?

c++ - 规范化时避免奇怪的单应性值

python - Python 中正向替换的数值稳定性

c - C 4byte float ieee754中没有运算符的乘法和除法

C : non blocking sockets with timeout : how to avoid busy waiting?

c - 使用 posix 线程的可测试 C 应用程序

c++ - Delphi 和 C/C++ DLL

c++ - 如何将字符串转换为任意长度的整数