如何计算矩阵的特征值:手工与软件两套方案
如何计算矩阵的特征值,核心思路是求解特征方程det(A−λE)=0,λ即为特征值;手工计算适合2阶、3阶方阵,4阶及以上方阵手工展开行列式计算量陡增,容易出现代数运算失误,矩阵元素含参数时也可使用该方程推导,数值矩阵阶数大于等于4,优先用MATLAB、Python等工具数值求解。特征方程由特征向量定义Ax=λx变形得到,A是原矩阵,E是同阶单位矩阵,det代表行列式运算,解出来的λ可以是实数或者复数;实对称矩阵的特征值一定为实数,非对称实矩阵可能出现共轭复数特征值。该方法适用边界是,你必须掌握行列式展开、一元多项式求根,无多项式求根能力时,无法完成手工求解。
矩阵的特征值手工计算流程
你先写出矩阵A,构造A减去λ乘以单位矩阵E,单位矩阵只有主对角线元素为1,其余全部为0,矩阵阶数和A保持一致。这个新矩阵A−λE被称为特征矩阵,你要计算它的行列式,行列式计算结果会得到关于λ的一元n次多项式,n等于方阵阶数,这个多项式就是特征多项式。把特征多项式设置等于0,得到特征方程,对多项式因式分解,求解方程的根,得到的全部根就是矩阵A的所有特征值,重根要按重数保留。2阶矩阵的特征多项式是二次多项式,求根操作简单;3阶矩阵展开后是三次多项式,因式分解难度明显上升。
算2阶矩阵是手工计算最简单场景,举矩阵A=[[1,2],[3,4]],构造A−λE=[[1−λ,2],[3,4−λ]],行列式等于(1−λ)(4−λ)−6,展开化简得到λ²−5λ−2=0,套用一元二次求根公式,就能算出两个特征值。
重根处理不能省略。如果特征方程存在重根,对应的特征值称为重特征值,代数重数等于根的重数,几何重数是独立特征向量数量,几何重数小于或者等于代数重数。判断矩阵能否对角化时,这个关系是核心判断依据。
矩阵的特征值软件数值计算
高阶矩阵放弃手工计算,改用数值算法,工业、科研场景大多使用QR迭代算法求解特征值,该算法不直接构造特征多项式,规避高阶多项式求根带来的数值误差。Python的numpy库中,numpy.linalg.eig函数可以同时输出特征值与对应特征向量;MATLAB中直接调用eig(A),返回矩阵全部特征值。浮点数计算会存在微小舍入误差,结果需要结合精度要求取舍。
| 计算方法 | 适用矩阵阶数 | 主要难点 | 输出精度特点 |
|---|---|---|---|
| 手工特征方程法 | 2阶、3阶 | 行列式展开、多项式因式分解 | 解析精确解,代数运算易出错 |
| QR数值迭代法 | 任意阶方阵 | 无法得到解析表达式 | 浮点近似解,误差可控 |
复数特征值只会出现在非对称实方阵中。
你可以用迹和行列式快速校验结果。矩阵所有特征值相加等于矩阵的迹,迹就是主对角线元素之和;矩阵所有特征值相乘等于矩阵行列式的值。算出特征值之后,用这两个等式检验,快速排查计算错误,比如2阶矩阵算出两个特征值,求和对照迹,乘积对照行列式,不相等就说明计算存在错误。一个典型错误操作是,构造特征矩阵时把单位矩阵写成全1矩阵,会直接得到完全错误的特征多项式,最终特征值全部失效。
部分特殊矩阵可以直接读取特征值,不用完整求解特征方程。对角矩阵、上三角矩阵、下三角矩阵,特征值就是主对角线上的所有元素,你可以直接摘抄,省去行列式求解步骤。实对称矩阵除了特征值全为实数,还能保证不同特征值对应的特征向量相互正交。
特征值有基础运算性质,方便简化计算。矩阵A的k倍,特征值是原特征值的k倍;A的m次幂,特征值是原特征值的m次幂;A可逆时,A逆矩阵的特征值等于原特征值的倒数。这些性质可以在不重新求解特征方程的前提下,直接推导相关矩阵特征值,减少重复计算工作量。
