Sé que debería usar una tolerancia para comparar números de coma flotante. Pero para comparar vectores, puedo pensar en 3 posibles soluciones correspondientes a diferentes métricas de distancia:
- Compare los componentes de cada vector individualmente: los vectores son iguales si los 3 están dentro de la tolerancia. Esta opción se comportaría como la norma uniforme , dando un cubo de tolerancia.
- Compare la suma de todas las diferencias absolutas con cierta tolerancia. Esto se comportaría como la norma del taxi , dando un simplex de tolerancia.
- Calcule la longitud euclidiana de (vecA - vecB) y vea si está dentro de la tolerancia. Esto daría la norma euclidiana estándar con una esfera de tolerancia.
Pero mi principal preocupación es la estabilidad numérica. La norma euclidiana "parece" la mejor opción, pero me preocupa que todos los cálculos induzcan más errores de redondeo. En menor medida, la opción 2 también podría introducir errores. (Por ejemplo, si el componente x de los vectores es mucho mayor que y y z , sumar todas las diferencias podría afectar cualquier contribución de y y z ). Por lo tanto, actualmente me estoy inclinando hacia la opción 1.
¿Alguien puede opinar sobre una opinión autorizada sobre este problema?