Неправильный результат при умножении матриц в R? - PullRequest
0 голосов
/ 17 июня 2020

Я получаю странные результаты при умножении этих двух матриц в R:

> matrix3

    [1,]  3.19747172 -2.806e-05 -0.00579284 -0.00948720 -0.01054026  0.17575719
    [2,] -0.00002806  2.000e-08  0.00000057  0.00000006 -0.00000009 -0.00000358
    [3,] -0.00579284  5.700e-07  0.00054269  0.00001793 -0.00002686 -0.00310465
    [4,] -0.00948720  6.000e-08  0.00001793  0.00003089  0.00002527 -0.00066290
    [5,] -0.01054026 -9.000e-08 -0.00002686  0.00002527  0.00023776 -0.00100898
    [6,]  0.17575719 -3.580e-06 -0.00310465 -0.00066290 -0.00100898  0.03725362

> matrix4
              [,1]
    x0    2428.711
    x1 1115178.561
    x2   74411.013
    x3  925700.445
    x4   74727.396
    x5   13342.182

> matrix3%*%matrix4
                  [,1]
    [1,] 78.4244581753
    [2,] -0.0023802299
    [3,]  0.1164568885
    [4,] -0.0018504732
    [5,] -0.0006493249
    [6,] -0.1497822396

Дело в том, что если вы попытаетесь умножить эти две матрицы в Excel, вы получите:

>78.4824494081686
>-0.0000419022486847151
>0.112430295996347
>-0.000379343461780479
>0.000340414687578061
>-0.14454024116344

И, используя онлайн-матрицы, я тоже добился отличного результата. Буду признателен за вашу помощь в понимании того, как получить тот же результат в р.

1 Ответ

1 голос
/ 18 июня 2020

Проблема возникла из-за использования функции inv () из библиотеки (matlib). matrix3 является результатом инвертирования с использованием функции inv (). Не уверен, почему, когда я использовал функцию resolve () для обратного преобразования, а затем продолжил нормально, я получил правильную матрицу. Возможно, в функции inv () есть какое-то округление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...