Как я могу проверить равенство двух MatrixStore в ojalgo до определенной степени? - PullRequest
1 голос
/ 26 марта 2019

Предоставляет ли ojalgo эффективный способ проверить, равны ли две матрицы?

Например, я хотел бы знать, равен ли MatrixStore A MatrixStore B до определенного уровня допуска.

Я мог бы реализовать наивный тест, используя вложенный цикл for, однако я хотел бы знать, существует ли более вычислительно эффективный способ сделать это на больших матрицах.

То, что я пытаюсь достичь, является чем-то вродеМетод allclose Python numpy, где пользователь может указать два входных массива 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.

1 Ответ

0 голосов
/ 26 марта 2019
NumberContext accuracy = ...
storeB.equals(storeA.multiply(storeX), accuracy);
...