什么时候两个向量被认为是“接近的”?

计算科学 误差估计
2021-12-24 21:55:07

我想用数字检查某个向量关系是否像

α1v1+...+αkvk=c (1)
持有(其中vi,c是向量100或更多组件)。为此,我使用最小二乘近似,为了查看误差,我评估了差异的范数
α1v1+...+αkvkc.
所有都是数值计算的,因此它们会出现错误。向量的大小为分量。vic100

我什么时候可以说误差足够小,即关系在数字上成立?(1)

我问这个问题是因为我得到了之间的误差,这看起来相当大,但如果我们从组件角度来看,平均误差很小。0.21

2个回答

您想比较两个标量的“相等性”。当然,这在浮点运算中不起作用,但人们经常做的是查看与两个单独组件的大小相比差异是否很小。换句话说,将接近 。 is true for a suitably chosen . 在这里,您将差异与您获取差异的对象的平均大小进行比较。的典型大小为10a=kαkvkcac

|ac|ε|a|+|c|2
εε1012如果您处理浮点数:足够小以至于它确实算小,但与的浮点舍入误差相比,它足够大,您可以在计算中承担合理数量的操作(当然,这些操作中的每一个都会累积到这些数量的数值误差)。1016ac

scipy.numpy里面有比较两个数组的功能allclose看看那里的默认值。

但是,这取决于您可以在数字上称为接近的问题...除了舍入误差之外,您可能还需要考虑近似误差等。

此外,您可以采取很多规范。问题通常伴随着规范。在有限元计算中,通常采用质量矩阵加权的欧几里得范数M然后,M适当地对误差向量的分量进行加权。