![]() |
如何在MATLAB中求解行列式?
作为一个简单的示例,假设您具有以下矩阵:
M = [omega 1; 2 omega]; 并且需要求解满足条件det M = 0的omega值。您如何在MATLAB中执行此操作? 它肯定很简单,但是我还没有找到该功能。 回答: 对于矩阵可以是任何东西的一般情况,您需要创建矩阵的符号表示形式,计算行列式,并求解感兴趣的变量。您可以分别使用[URL="http://www.mathworks.com/access/helpdesk/help/toolbox/symbolic/"]Symbolic Math Toolbox中的[/URL] [URL="http://www.mathworks.com/access/helpdesk/help/toolbox/symbolic/sym.html"]SYM[/URL] , [URL="http://www.mathworks.com/access/helpdesk/help/toolbox/symbolic/det.html"]DET[/URL]和[URL="http://www.mathworks.com/access/helpdesk/help/toolbox/symbolic/solve.html"]SOLVE[/URL]函数来执行此操作: >> 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 。上面,我用一个字符串表达式做到了。但是,我可以改用[URL="http://www.mathworks.com/access/helpdesk/help/toolbox/symbolic/syms.html"]SYMS[/URL]将w定义为符号变量,然后像在MATLAB中通常那样构造一个矩阵: syms w A = [w 1; 2 w]; 现在, A是一个符号矩阵,就像在第一个示例中一样。 [url=https://stackoverflow.com/questions/1710184]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 10:00。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.