举一个简单的例子,假设你有这个矩阵:
M = [omega 1;
2 omega];
并且您需要求解满足条件omega
的{{1}}的值。
你是如何在MATLAB中做到这一点的?
这肯定很简单,但我还没有找到这个功能。
答案 0 :(得分:13)
对于矩阵可能是任何事物的一般情况,您可能希望创建矩阵的符号表示,计算行列式,并求解感兴趣的变量。您可以分别使用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
是一个符号矩阵,就像第一个例子中一样。
答案 1 :(得分:2)
如果您没有符号工具箱,请使用文件交换中找到的sympoly工具箱。
sympoly omega
roots(det([omega 1;2 omega]))
ans =
-1.4142
1.4142
答案 2 :(得分:0)
确定的是: om * om - 1 * 2 = 0
所以你会得到:om * om = 2
正式定义是:[a b; c d] = a d - b c
我会研究简化确定性,找到解决未知数的解算器。