Matlab GCD搜索非整数(***)

Matlab GCD搜索非整数(***),matlab,numbers,floating,greatest-common-divisor,Matlab,Numbers,Floating,Greatest Common Divisor,我真的不知道怎么解决这个问题?有人能帮我吗 求一组数据的最大公约数的近似值一个非整数向量 数字。一般来说,它们没有精确的公约数。解决方案 此外,浮点数应具有一定的近似精度。例如。: x=[3.33084.4449 7.7828 12.2273 14.440521.1161] epsilon = 0.01; d = find_gcd(x,epsilon) d = 1.1111 % verifying result x/d ans = 2.9978 4.0005 7.0046 11.0046 12.

我真的不知道怎么解决这个问题?有人能帮我吗

求一组数据的最大公约数的近似值一个非整数向量 数字。一般来说,它们没有精确的公约数。解决方案 此外,浮点数应具有一定的近似精度。例如。: x=[3.33084.4449 7.7828 12.2273 14.440521.1161]

epsilon = 0.01;
d = find_gcd(x,epsilon)
d =
1.1111
% verifying result
x/d
ans =
2.9978 4.0005 7.0046 11.0046 12.9966 19.0047
error = x/d – round(x/d)
error =
-0.0022 0.0005 0.0046 0.0046 -0.0034 0.0047

也许使用欧几里德算法作为程序是正确的?

到目前为止,您尝试了什么?你可以看看gcd和rat函数。是的,但gdc适用于浮点数?这是我的第一个想法,但我认为gcd仅适用于整数,在这种情况下,我不能在我的问题中使用rat,然后使用gcd。您可能还需要根据epsilon的意思将x四舍五入到小数点后两位。当然,gcd只适用于整数,因为浮点值是无限可除的。你的问题没有很好的定义或明确。ε表示我们可以假设的最大误差。你说的定义不明确是什么意思?你还不明白什么?我需要找到一个函数,它给我一组浮点的最大除数,在这个例子中有x=[3.3308 4.4449 7.7828 12.2273 14.4405 21.1161],结果必须是+/-ε的范围。