# 5.2 线性方程与二次型

例：求齐次线性方程组\$$ \begin{cases} x\_1+x\_2+x\_5 = 0 \ x\_1+x\_2-x\_3 & = 0 \ x\_3+x\_4+x\_5 & = 0 \end{cases}

$$$
使用矩阵的rank()方法，可以查看矩阵的秩 []:A=Matrix([[1, 1, 0, 0, 1], [1, 1, -1, 0, 0], [0, 0, 1, 1, 1], [0,0,0,0,0],[0,0,0,0,0]]) A, A.rank() []: ![](../media/41ac3d4d7b73a35667debc43f112f19c.png) 由运算结果可知，A的秩为3，因此A应有两个线性无关的解。 使用矩阵的nullspace()可以查看矩阵A的零空间的对应的向量列表，这些向量张成了矩阵A的零空间。 []:A.nullspace() []: ![](../media/d8c332bd02638ef4b4d5bfad1d1ce750.png) 使用矩阵的eigenvects()方法可以查看矩阵对应的特征值，特征值重数以及对应的特征向量。使用eigenvalues()可以单独查看矩阵对应的特征值。 []:A.eigenvects() []: ![](../media/a5bdffc3960e36c88c2d22ffef7aa184.png) 取为该齐次方程组的基础解系, 该齐次方程组的通解为为任意数) 例：设矩阵$$A= \begin{pmatrix} 1 & 2 \\ 2 & 1 \end{pmatrix}$$，求正交矩阵$$P$$，使$$P^{-1}AP$$为对角矩阵。 使用矩阵A的diagonalize()方法将求出使，矩阵P以及D。 []:A=Matrix([[1, 2], [2, 1]]) P, D = A.diagonalize() P, D ![](../media/4f13e4340161f334c649d16b717eaf10.png)[]: 由于digonalize()求出的特征向量之间不正交，因此可逆矩阵P非正交矩阵。我们需要将特征向量进行施密特正交化 GramSchmidt()方法将gramm - schmidt过程应用于一组向量。 GramSchmidt()方法的使用方法如下： GramSchmidt(vlist, orthonormal=False) vlist为向量的列表。 orthonormal参数是一个布尔值，设为True将返回正交化向量 []: L=[A.eigenvects()[0][2][0],A.eigenvects()[1][2][0]] L_schmidt=Matrix(GramSchmidt(L, True)).reshape(2, 2) L_schmidt []: ![](../media/4af723d147d51389a908fcce164e861a.png) ，且 例：求矩阵$$A= \begin{pmatrix} 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \end{pmatrix}$的特征值和特征向量。 []:A=Matrix([[0, 1, 1], [1, 0, 1], [1, 1, 0]]) A.eigenvals() []:![](../media/08e0426150a2335eba2c5e4f6ca35a12.png) 矩阵的特征值 []:A.eigenvects() []: ![](../media/1f1820c7526f01ce7bc9df3a00e1df40.png) 由运算结果可知，为矩阵的属于特征值的两个线性无关的特征向量，为矩阵的属于特征值的特征向量.
$$$
