gpt4 book ai didi

用于查找两个矩阵在给定公差下是否相等的 C 函数

转载 作者:行者123 更新时间:2023-11-30 19:20:53 25 4
gpt4 key购买 nike

我必须比较两个矩阵的元素,如下所示:

Result1 是一个 2*2 矩阵,即

           Result1 = 1.1    1.2
3.1 3.2

Result2 也是一个 2*2 矩阵,即

          Result2 = 1.11     1.99
3.0 9.0

如果我使用 if 语句来比较这些矩阵,那么答案将是不相似的矩阵。但实际上,矩阵 result1 和 result2 的三个元素彼此非常接近,准确度约为 98%,并且有一个元素即 result1 [3] 与元素 result2[3] 完全不同。

我使用的矩阵大小高达 1000*1000,我想用 C 编写一个函数,该函数比较两个矩阵的每个元素,精度为 99%,容差级别为 +1% 或 -1%。

我的函数应该报告如下内容:

98% of the elements macthed with 99% of accuracy, so test passed!!

     or 

75% of the elements macthed with 99% of accuracy, so test failed!!

我们有内置函数来实现这一点吗?我为此使用 ubuntu 12.04。

最佳答案

如果有一个期望值a和一个测试值x,那么测试值与期望值的相对距离为:

rel_diff = (x-a)/a = x/a - 1

如果您想要 ax 对称,那么您可以使用:

rel_diff = abs(a-x)/(a+x)

因此,您可以简单地使用这些来通过 if 语句检查您所需的容差(因为差异的符号可能不感兴趣,您只需要考虑这些的绝对值)。

关于用于查找两个矩阵在给定公差下是否相等的 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20964795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com