簡単な例として、次のマトリックスがあるとします。
M = [omega 1;
2 omega];
omega
条件を満たすの値を求める必要がありますdet M = 0
。これを MATLAB でどのように行うのですか?
それは確かに単純なものですが、私はまだ機能を見つけていません。
簡単な例として、次のマトリックスがあるとします。
M = [omega 1;
2 omega];
omega
条件を満たすの値を求める必要がありますdet M = 0
。これを MATLAB でどのように行うのですか?
それは確かに単純なものですが、私はまだ機能を見つけていません。
行列が何でもよい一般的なケースでは、行列の記号表現を作成し、行列式を計算し、対象の変数を解きます。Symbolic Math Toolboxの関数SYM、DET、および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
は、最初の例と同じように記号行列です。
シンボリックツールボックスがない場合は、ファイル交換にあるシンポリツールボックスを使用してください。
sympoly omega
roots(det([omega 1;2 omega]))
ans =
-1.4142
1.4142
確定は: om * om - 1*2 = 0
したがって、次のようになります: om*om = 2
正式な定義は次のとおりです。cd] = ad - bc
私は、確定的なものを単純化し、未知のものを解くためのソルバーを見つけることを検討します。