matlab - 如何求解 MATLAB 中的行列式?

标签 matlab matrix symbolic-math determinants

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

M = [omega 1;
     2     omega];

并且您需要求解满足条件 det M = 0omega 的值。 您如何在 MATLAB 中执行此操作?

肯定是个简单的东西,但是我还没有找到功能。

最佳答案

对于矩阵可以是任何东西的一般情况,您可能希望创建矩阵的符号表示、计算行列式并求解感兴趣的变量。您可以分别使用函数 SYM 来执行此操作, DET , 和 SOLVE来自 Symbolic Math Toolbox :

>> 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。上面,我用一个字符串表达式来完成。但是,我可以改用 SYMSw 定义为符号变量,然后像通常在 MATLAB 中那样构造矩阵:

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

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

关于matlab - 如何求解 MATLAB 中的行列式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1710184/

相关文章:

java - MATLAB : access uigetdir's internal java methods

matlab - 如何在 MATLAB 中打印带有注释的文件?

r - 如何使用核心 R 操作/访问 "dist"类实例的元素?

python - 符号简化以最少数量的加法和乘法运算

matlab:重叠圆圈下的区域

python - 3D numpy 数组如何转置

excel - 每次循环后将信息写入 Excel

python - 如何使用 SymPy 替换模式

python - SymPy:如何使用常量计算表达式?

matlab - Matlab ode45基本设置