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 に答える