我只知道一种很笨很笨的方法,计算量很大。仅供参考一下,有不对的地方请指出来,共同进步。
这组基包含了n个线性无关的向量X1、X2......Xn,从中选出任意选出k个向量(k依次取n,n-1,n-2......1)生成相应的子空间。(则有n!/(k!*(n-k)!)种情况)
不妨设这个子空间为L{X1,X2......Xk}={q | q=p1*X1+......+pk*Xk,pi是数字}(不变子空间的定义)。
然后在这个子空间中任取一个向量q,得到q在基X1、X2......Xn下的坐标X=(p1,p2......pk,0,0......0),然后求出q经过线性变换T(q)后在基X1、X2......Xn下的坐标Y=AX。最后判断Y是不是属于L{X1,X2......Xk}={q | q=p1*X1+......+pk*Xk,pi是数字},即判断一下Y中第k个元素以后是不是全是零,若全是零,则这个子空间是不变子空间,否则不是。依此类推,直到把所有的k,以及k个向量时的每一种情况都考虑。
T的不变子空间是由变换矩阵A的特征向量张成的线性空间span(a1,a2...an)
其中a1..an是A的特征向量。