如何在MATLAB中求解行列式?

如何在MATLAB中求解行列式?,matlab,matrix,symbolic-math,determinants,Matlab,Matrix,Symbolic Math,Determinants,举个简单的例子,假设你有这个矩阵: M = [omega 1; 2 omega]; 您需要求解满足条件的det M=0的omega值。 如何在MATLAB中实现这一点 这当然很简单,但我还没有找到函数。那么决定因素是: om*om-1*2=0 所以你会得到:om*om=2 形式定义是:[ab;cd]=ad-bc 我将研究简化确定性,并找到一个解算器来解未知数。对于矩阵可以是任何东西的一般情况,您需要创建矩阵的符号表示,计算行列式,并解出感兴趣的变量。可以分别使用函数和从以下位

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

M = [omega 1;
     2     omega];
您需要求解满足条件的
det M=0
omega
值。 如何在MATLAB中实现这一点

这当然很简单,但我还没有找到函数。

那么决定因素是: om*om-1*2=0

所以你会得到:om*om=2

形式定义是:[ab;cd]=ad-bc


我将研究简化确定性,并找到一个解算器来解未知数。

对于矩阵可以是任何东西的一般情况,您需要创建矩阵的符号表示,计算行列式,并解出感兴趣的变量。可以分别使用函数和从以下位置执行此操作:

也有不同的方法来创建初始矩阵
A
。上面,我用一个字符串表达式实现了这一点。但是,我可以使用将
w
定义为符号变量,然后像通常在MATLAB中一样构造矩阵:

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

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

如果没有符号工具箱,请使用文件交换中的工具箱

sympoly omega
roots(det([omega 1;2 omega]))
ans =
      -1.4142
       1.4142

是的,很明显。但上面给出的只是一个例子。我的问题中没有这么简单的例子。我不知道符号矩阵。。。那很酷。我投你一票,史蒂文,又是一个女强人。。。我对此并不完全满意。我不喜欢sym接受字符串而不是矩阵。史蒂文:我最近对我的答案进行了编辑,从某种程度上解决了你的担忧。此外,如果要将数字矩阵传递给SYM,则不需要将其作为字符串传递。例如:
A=sym([1;2])
sympoly omega
roots(det([omega 1;2 omega]))
ans =
      -1.4142
       1.4142