[英]How do I solve a determinant in MATLAB?
舉個簡單的例子,假設你有這個矩陣:
M = [omega 1;
2 omega];
並且您需要求解滿足條件det M = 0
的omega
的值。 你是如何在MATLAB中做到這一點的?
這肯定很簡單,但我還沒有找到這個功能。
對於矩陣可能是任何事物的一般情況,您可能希望創建矩陣的符號表示,計算行列式,並求解感興趣的變量。 您可以分別使用符號數學工具箱中的 SYM , DET和SOLVE函數執行此操作:
>> 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
就像第一個例子中的符號矩陣一樣。
如果您沒有符號工具箱,請使用文件交換中找到的sympoly工具箱。
sympoly omega
roots(det([omega 1;2 omega]))
ans =
-1.4142
1.4142
確定的是:om * om - 1 * 2 = 0
所以你會得到:om * om = 2
正式的定義是:[ab; cd] = a d - b c
我會研究簡化確定性,找到解決未知數的解算器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.