我优化了exponential
exp函数。我正在检查有关标准数学exp
函数的输出。Res_opt
和Res_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/