Octave中自动生成的A-λI矩阵rref行化简异常,手动输入正常
手动计算矩阵特征值/特征向量时rref()结果异常问题
问题背景
我尝试不使用eig()函数,手动计算矩阵的特征值与特征向量,具体步骤为:
- 第一步:通过
poly()生成特征多项式,再用roots()求解特征值; - 第二步:对每个特征值λ,构造矩阵A-λI,执行
rref()行化简操作获取特征向量。
异常现象
针对某一矩阵,自动生成的A-λI矩阵调用rref()得到错误结果,但手动输入完全相同的矩阵时,rref()能返回正确结果。相同逻辑处理另一矩阵时则运行正常。
复现代码
无法正常运行的矩阵案例
% 此矩阵下无法正常运行 A_2 = [24 -10 8;-7 33 4;0 0 38]; I = [1 0 0;0 1 0;0 0 1]; p2 = poly(A_2); % 特征多项式 av2 = roots(p2); % 特征值 D = [av2(1)*I(:,1), av2(2)*I(:,2), av2(3)*I(:,3)]; % 对角矩阵 A_2_1=A_2-av2(1)*I % 第一个特征值对应的A-λI矩阵 rref(A_2_1) B=[-14 -10 8;-7 -5 4;0 0 0] % 手动重写的A_2_1矩阵 rref(B)
可正常运行的矩阵案例
% 此矩阵下可正常运行 A_2 = [4 0 1;-2 1 0;-2 0 1]; I = [1 0 0;0 1 0;0 0 1]; p2 = poly(A_2); % 特征多项式 av2 = roots(p2); % 特征值 D = [av2(1)*I(:,1), av2(2)*I(:,2), av2(3)*I(:,3)]; % 对角矩阵 A_2_1=A_2-av2(1)*I % 第一个特征值对应的A-λI矩阵 rref(A_2_1) B=[1 0 1;-2 -2 0;-2 0 -2] % 手动重写的A_2_1矩阵 rref(B)
内容的提问来源于stack exchange,提问作者iker garcia
相关产品推荐
相关产品推荐

