我优化了exponential exp函数。我正在检查有关标准数学exp函数的输出。
Res_optRes_std是我的两个输出。

我首先检查了绝对错误:

Abs_error = abs(Res_opt - Res_std )

我放了MAX_DEV = 0.500000(通过考虑我的算法)

并检查:
  if(Abs_error > MAX_DEV){
     printf("Error message").
     return 0;
   }

在少数情况下,此Abs_error的值大于0.50000的值,并且我的测试用例失败了(但是我觉得对于该输入,导出的结果很好,因为这是一个特例)。

因此,我决定检查相对误差。

但我的查询是,我应该使用以下逻辑检查相对误差或相对误差百分比-
ACC_BAND = 0.400000000000000;
double min_acc_range = 1 - ACC_BAND;
double max_acc_range = 1 + ACC_BAND;

Relative_error =   abs(Res_opt - Res_std)/Res_std ;

if ((Relative_error < min_acc_range) || (Relative_error > max_acc_range)) {
 printf("Error message");
}

要么
Percentage_Relative_error =   1 - (abs(Res_opt - Res_std)/Res_std)*100 ;

if ((Percentage_Relative_error < min_acc_range) || (Percentage_Relative_error > max_acc_range)) {
 printf("Error message");
}

最佳答案

您没有把它度量为错误……这一切都与准确性有关。
在这里,您使用绝对错误。但是您可以使用相对误差百分比相对误差

相对误差百分比是相对误差度量值。在一般情况下,它们的最终精度将相同。

但是好的做法取决于您的值(value)限制。

如果值较小,则相对误差百分比很好,因为 1.0 2.0 不在您的上限值 10.0 的附近。

如果值较大,则在 10000007 10000008 附近的位置,相对误差必须更好。

因此,取决于您的值(value)限制,您可以决定。

关于c - 我应该检查相对误差或相对误差百分比吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61620430/

10-09 18:30