如何在MATLAB中求解行列式?

Roo*_*ook 3 matlab matrix symbolic-math determinants

举个简单的例子,假设你有这个矩阵:

M = [omega 1;
     2     omega];
Run Code Online (Sandbox Code Playgroud)

你需要解决omega满足条件的值det M = 0.你是如何在MATLAB中做到这一点的?

这肯定很简单,但我还没有找到这个功能.

gno*_*ice 13

对于矩阵可能是任何事物的一般情况,您可能希望创建矩阵的符号表示,计算行列式,并求解感兴趣的变量.为此,您可以使用,分别是功能SYM,DET,并求解符号数学工具箱:

>> 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
Run Code Online (Sandbox Code Playgroud)

还有不同的方法来创建初始矩阵A.上面,我用一个字符串表达式做了.但是,我可以使用SYMS定义w为符号变量,然后像在MATLAB中一样构造矩阵:

syms w
A = [w 1; 2 w];
Run Code Online (Sandbox Code Playgroud)

现在A是一个符号矩阵,就像在第一个例子中一样.