Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Эквивалент numpy.linalg.lstsq в библиотеке Java Apache Commons Math?

Автор вопроса: gliptakОтветов: 1

У меня есть следующий вызов numpy.linalg.lstsq:

http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.lstsq.html

x = [[ 0.69314718] [ 1.09861229] [ 1.38629436] [ 1.60943791] [ 1.79175947] [ 1.94591015]]

y = [ 0. 0.20273255 0.5815754 0.7520387 0.96885669 1.09861229]

l = numpy.linalg.lstsq(x, y)

который возвращает

l -> кортеж: (массив ([ 0,46323573]), массив ([ 0,25872885]), 1, массив ([ 3,63269497]))

Может ли кто-нибудь указать эквивалентную функцию (если она доступна) в

http://commons.apache.org/math/

(или, возможно, в какой-то другой математической библиотеке Java...)

  • Я даже отдаленно не разбираюсь в Java, но быстрый просмотр документов, похоже, указывает на то, что вы хотите этого: commons.apache.org/math/api-2.1/org/apache/commons/math/linear/ Joe Kington 16.02.2011

pythonscipyjavamathapache-commons

Ответы

Ответ 1 · рейтинг 2 · gliptak

Спасибо за указатель Джо.

Вот код для справки:

double[][] testSquare = {{0.69314718}, {1.09861229}, {1.38629436}, {1.60943791}, {1.79175947}, {1.94591015}};
RealMatrix matrix = MatrixUtils.createRealMatrix(testSquare);
SingularValueDecomposition svd = new SingularValueDecomposition(matrix);
DecompositionSolver ds=svd.getSolver();
double[] b = {0.0, 0.20273255, 0.5815754, 0.7520387, 0.96885669, 1.09861229};
ds.solve(b)[0];

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы