1

ojalgo 是否提供了一种有效的方法来测试两个矩阵是否相等?

例如,我想知道 MatrixStore A 是否等于 MatrixStore B 直到某个容差水平。

我可以使用嵌套的 for 循环来实现一个简单的测试,但是我想知道在更大的矩阵上是否有一种计算效率更高的方法。

我想要实现的是类似于 Python numpy 的 allclose 方法,其中用户可以指定两个输入 numpy 数组和一个容差值来检查这两个数组是否等于那个程度。

假设我有 2 个 MatrixStores 随机填充

storeA = storeFactory.makeFilled(5,5,new Weibull(5.0,2.0));
storeB = storeFactory.makeFilled(5,1,new Weibull(5.0,2.0));

我解方程 Ax=B

SolverTask linsolv = SolverTask.PRIMITIVE.make(storeA, storeB);
storeX = linsolv.solve(storeA,storeB);

我知道 storeX 在一定程度上应该等于 storeB ,但是我该如何验证呢?

我期望以下或一些允许比较 2 个矩阵的函数

storeB.equals( storeA.multiply(storeX) );

返回真。

4

1 回答 1

0
NumberContext accuracy = ...
storeB.equals(storeA.multiply(storeX), accuracy);
于 2019-03-26T09:30:26.183 回答