舉一個簡單的例子,假設你有這樣的矩陣:如何解決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