假设我有一个2x2矩阵
{b+2 b}
{-4 5}
如何使用Matlab查找 b 的值来解决这个问题,它给出了特征值为0的情况?
答案 0 :(得分:4)
正如Yvon雄辩地指出的那样,你只需确定b
的值就会使该矩阵的行列式等于0.如果从线性代数理论中回忆起,矩阵的特征值可以通过解决这个等式:
det(A - lambda*I) = 0
A
将是您找到特征值的矩阵,lambda
将是矩阵的特征值,I
是具有{{1}维度的唯一矩阵},其中n x n
与n
具有相同的行/列数。注意,特征值只能用方形矩阵找到。此外,线性代数理论表明矩阵将具有A
个特征值。因为您明确指出其中一个特征值为0并且想要求解n
,所以这简化为:
b
您可以通过简单地执行det(A) = 0
计算2 x 2矩阵的行列式来手动解决这个问题,假设您的矩阵是这种形式:
xz - yw
因此,在您的情况下,我们有:
[x y]
[w z]
在MATLAB中,您可以使用符号数学工具箱以符号方式执行此操作:
(b+2)*5 - (b)*(-4) = 0
5*b + 10 + 4*b = 0
9*b + 10 = 0
b = -10/9
在MATLAB中,syms b
A = [b + 2 b; -4 5];
detA = det(A);
x = solve(detA == 0, b);
因此给了我们:
x
要使矩阵可逆,应满足以下任何一个:
因为你强迫其中一个特征值为0,你实际上正在做的是确定x =
-10/9
的值,如果你要使用这个矩阵并形成一个2 x,它会生成无数个解。 2方程组。您还发现b
的值不允许此矩阵具有逆矩阵。
要仔细检查,如果我们将b
替换为矩阵,我们会得到:
b = -10/9
查找此矩阵的行列式确实为0.此外,行列式的一个属性是,如果其中一行是另一行的倍数,则行列式自动为0.我们可以清楚地看到这是第一行可以通过取第二行并乘以[ 8/9, -10/9]
[ -4, 5]
得到。