在Matlab中不用eig()命令求方阵的特征值和特征向量矩阵,并判断其是否可以对角化
#本文仅针对标题所示问题的代码解答,若相关概念不熟,请去资料。
#不要问我为什么放着好好的eig()命令不用,反而去写一堆代码。这得去问我们的好老师(/(ㄒoㄒ)/~~)。
思路:
1、先得到输入值A的维度大小,判断其是否为方阵;
2、生成与A同维度的一个单位矩阵,由(λE-A)x=0解得特征值λ;
3、将每个特征值λ带入原式,解齐次线性方程组,得到基础解系;
4、将每个基础解系合并,并去掉相同列向量,即可得到特征向量矩阵;
代码实现:
function [v,d]=tzz(A)
syms v
n=size(A