2 回答
![?](http://img1.sycdn.imooc.com/545863f50001df1702200220-100-100.jpg)
TA贡献1788条经验 获得超4个赞
由于您的最终矩阵将采用矩形形式,因此简单的特征值方法将不起作用。您需要使用 sympy 库
import sympy
import numpy as np
matrix = np.array([
[0, 5, 0],
[0, -10, 0]
])
_, indexes = sympy.Matrix(matrix).T.rref() # T is for transpose
print(indexes)
这将打印线性独立行的索引。要进一步从矩阵打印它们,请使用
print(matrix[indexes,:])
要回答您的具体问题,请检查两个向量是否线性相关。如果您始终要检查两个向量,那么您绝对可以在之后使用 if 语句。
if len(indexes) == 2:
print("linearly independant")
else:
print("linearly dependant")
![?](http://img1.sycdn.imooc.com/533e4ce900010ae802000200-100-100.jpg)
TA贡献1887条经验 获得超5个赞
如果矩阵的一个特征值为零,则其对应的特征向量是线性相关的。
因此,以下代码适用于简单的情况:
from sympy import *
import numpy as np
from scipy import linalg
from numpy import linalg
matrix = np.array([[0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 1, 0], [1, 0, 0,
1]])
(lambdas, V) = np.linalg.eig(matrix.T)
print matrix[lambdas == 0, :]
输出:[[0 1 1 0]]
添加回答
举报