Как инвертировать матрицу и целочисленный результат в октаве? - PullRequest
3 голосов
/ 17 января 2010

Я бы хотел получить обратимую матрицу в Octave, но в виде матрицы целых чисел, поэтому:

x = [9,15;19,2];
inv(x)

Здесь я получаю:

[-0.0074906, 0.0561798; 0.0711610, -0.0337079]

но я бы хотел получить [22,17;25,21] кто-нибудь знает, как инвертировать матрицу?

Ответы [ 2 ]

8 голосов
/ 17 января 2010

Инверсия каждого элемента:

x .^ -1

Какие результаты

0.1111    0.0667
0.0526    0.5000

Почему вы хотите получить [22,17;25,21]? Какая математическая операция дала бы такой результат?

6 голосов
/ 22 июня 2015

Инвертировать матрицу в октаве:

Обращение единичной матрицы возвращает единичную матрицу:

octave:3> a = [1,0;0,1]
a =

   1   0
   0   1

octave:4> inv(a)
ans =

   1  -0
   0   1

Обращение матрицы с нулем на диагонали приводит к бесконечности

octave:5> a = [1,0;0,0]
a =

   1   0
   0   0

octave:6> inv(a)
warning: inverse: matrix singular to machine precision, rcond = 0
ans =

   Inf   Inf
   Inf   Inf

Инверсия матрицы с полными значениями, подобная этой:

octave:1> a = [1,2;3,4]
a =
   1   2
   3   4

octave:2> inv(a)
ans =    
  -2.00000   1.00000
   1.50000  -0.50000

Для описания того, что происходит под капотом обратной функции:

https://www.khanacademy.org/math/precalculus/precalc-matrices/inverting_matrices/v/inverse-of-a-2x2-matrix

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