7

我想在 Octave 中得到一个可逆矩阵,但作为整数矩阵,所以:

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

我在这里得到:

[-0.0074906, 0.0561798; 0.0711610, -0.0337079]

但我想让[22,17;25,21] 任何人知道如何反转矩阵?

4

3 回答 3

13

每个元素的倒数是:

x .^ -1

哪些结果

0.1111    0.0667
0.0526    0.5000

为什么要得到[22,17;25,21]?什么样的数学运算会产生这样的结果?

于 2010-01-17T00:51:13.530 回答
9

以八度音阶反转矩阵:

您对矩阵的逆是什么感到困惑,这里没有人知道您想要输出什么,所以这里有一些线索。

如果你反转一个单位矩阵,你会得到单位矩阵:

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

   1   0
   0   1

octave:4> inv(a)
ans =

   1   0
   0   1

非方阵(m×n 矩阵,m != n)没有逆矩阵

x = [9,15;19,2;5,5]; 
inv(x) 
%error: inverse: argument must be a square matrix

反转对角线上为零的矩阵会导致无穷大:

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

于 2015-06-22T17:35:02.690 回答
2

我很晚了,不知道如何有效地回答这个问题,但看起来你正在寻找矩阵的模逆,特别是 mod 26。

x = [9,15,19,2];
modulus = 26;
inverse_determinant = mod_inverse(det(x),modulus)

你必须自己实现 mod_inverse 函数,但算法应该很容易找到。如果这仅适用于小的模值,那么线性搜索应该足够有效。

result = mod(det(x)*inv(x)*inverse_determinant,modulus)`
于 2019-12-26T05:15:08.450 回答