如何测试ojalgo中两个MatrixStore的相等程度直到一定程度?

问题描述 投票:1回答: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) );

返回True。

equality ojalgo
1个回答
0
投票
NumberContext accuracy = ...
storeB.equals(storeA.multiply(storeX), accuracy);
© www.soinside.com 2019 - 2024. All rights reserved.