举一个简单的例子,假设你有这样的矩阵:如何解决MATLAB中的行列式?
M = [omega 1;
2 omega];
,你需要解决的omega
满足条件det M = 0
值。 你如何在MATLAB中做到这一点?
这当然很简单,但我还没有找到功能。
举一个简单的例子,假设你有这样的矩阵:如何解决MATLAB中的行列式?
M = [omega 1;
2 omega];
,你需要解决的omega
满足条件det M = 0
值。 你如何在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
。上面,我用一个字符串表达式做了它。不过,我可以改用SYMS定义w
作为一个象征性的变量,然后构造一个矩阵,你通常会在MATLAB:
syms w
A = [w 1; 2 w];
现在A
是一个象征性的矩阵只是因为它是在第一个例子。
井确定的是: OM * OM - 1 * 2 = 0
所以,你会得到:OM * OM = 2
的正式定义为:A B; c d] = a d - b c
我会研究简化确定性,并找到求解器来解决未知问题。
是的,很明显。但上面给出的仅仅是一个例子。我的问题没有这样一个微不足道的案例。 – Rook 2009-11-10 18:39:15
如果您没有符号工具箱,请使用文件交换中找到的sympoly工具箱。
sympoly omega
roots(det([omega 1;2 omega]))
ans =
-1.4142
1.4142
我不知道符号矩阵......这很酷。你有我的投票。 – monksy 2009-11-10 18:58:00
史蒂文< - 他说了什么。正是我所希望的...... ftw。 – Rook 2009-11-10 19:27:54
呃,另一个matlabism ......我对此并不满意。我不喜欢那个sym采用字符串而不是矩阵。这可能会导致一些挫折。 – monksy 2009-11-10 19:35:16