簡體   English   中英

如何在MATLAB中求解行列式?

[英]How do I solve a determinant in MATLAB?

舉個簡單的例子,假設你有這個矩陣:

M = [omega 1;
     2     omega];

並且您需要求解滿足條件det M = 0omega的值。 你是如何在MATLAB中做到這一點的?

這肯定很簡單,但我還沒有找到這個功能。

對於矩陣可能是任何事物的一般情況,您可能希望創建矩陣的符號表示,計算行列式,並求解感興趣的變量。 您可以分別使用符號數學工具箱中的 SYMDETSOLVE函數執行此操作:

>> 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 上面,我用一個字符串表達式做了。 但是,我可以使用SYMSw定義為符號變量,然后像在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM