找到使特征值等于零的参数值(Matlab)

时间:2014-07-31 04:36:06

标签: matlab eigenvalue

假设我有一个2x2矩阵

  {b+2 b}
  {-4  5}

如何使用Matlab查找 b 的值来解决这个问题,它给出了特征值为0的情况?

1 个答案:

答案 0 :(得分:4)

正如Yvon雄辩地指出的那样,你只需确定b的值就会使该矩阵的行列式等于0.如果从线性代数理论中回忆起,矩阵的特征值可以通过解决这个等式:

det(A - lambda*I) = 0

A将是您找到特征值的矩阵,lambda将是矩阵的特征值,I是具有{{1}维度的唯一矩阵},其中n x nn具有相同的行/列数。注意,特征值只能用方形矩阵找到。此外,线性代数理论表明矩阵将具有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
  • 矩阵的行列式不等于0

因为你强迫其中一个特征值为0,你实际上正在做的是确定x = -10/9 的值,如果你要使用这个矩阵并形成一个2 x,它会生成无数个解。 2方程组。您还发现b的值不允许此矩阵具有逆矩阵。

要仔细检查,如果我们将b替换为矩阵,我们会得到:

b = -10/9

查找此矩阵的行列式确实为0.此外,行列式的一个属性是,如果其中一行是另一行的倍数,则行列式自动为0.我们可以清楚地看到这是第一行可以通过取第二行并乘以[ 8/9, -10/9] [ -4, 5] 得到。