3

簡単な例として、次のマトリックスがあるとします。

M = [omega 1;
     2     omega];

omega条件を満たすの値を求める必要がありますdet M = 0。これを MATLAB でどのように行うのですか?

それは確かに単純なものですが、私はまだ機能を見つけていません。

4

3 に答える 3

13

行列が何でもよい一般的なケースでは、行列の記号表現を作成し、行列式を計算し、対象の変数を解きます。Symbolic Math Toolboxの関数SYMDET、およびSOLVEをそれぞれ使用して、これを行うことができます。

>> A = sym('[w 1; 2 w]');  % Create symbolic matrix
>> solve(det(A),'w')       % Solve the equation 'det(A) = 0' for 'w'

ans =

  2^(1/2)
 -2^(1/2)

>> double(ans)             % Convert the symbolic expression to a double

ans =

    1.4142
   -1.4142

初期行列を作成する方法もいくつかありますA。上記では、1 つの文字列式でそれを行いました。ただし、代わりにSYMSを使用してシンボリック変数として定義wし、MATLAB で通常行うように行列を作成することもできます。

syms w
A = [w 1; 2 w];

これAは、最初の例と同じように記号行列です。

于 2009-11-10T18:44:16.607 に答える
2

シンボリックツールボックスがない場合は、ファイル交換にあるシンポリツールボックスを使用してください。

sympoly omega
roots(det([omega 1;2 omega]))
ans =
      -1.4142
       1.4142
于 2009-11-11T11:44:30.140 に答える
0

確定は: om * om - 1*2 = 0

したがって、次のようになります: om*om = 2

正式な定義は次のとおりです。cd] = ad - bc

私は、確定的なものを単純化し、未知のものを解くためのソルバーを見つけることを検討します。

于 2009-11-10T18:38:10.217 に答える