高等数学问题的符号解(7)--线性代数问题

线性关系意即数学对象之间的关系是以一次形式来表达的。例如,在解析几何里,二维空间中直线的方程是二元一次方程;三维空间中平面的方程是三元一次方程,而直线则视为是两个平面相交,由两个三元一次方程所组成的方程组来表示。
把含有n个未知量的一次方程称为线性方程。线性方程组是各个方程均为线性方程的方程组。线性方程组是最重要的一类代数方程组,大量的科学技术问题,最终往往归结为解线性方程组。

矩阵的运算

例:已知$\alpha = [1,2,3]^{T},\beta = [4,5,6]^{T}$,求$\mid\alpha\mid,\alpha^{T},\alpha\cdot\beta,\alpha\times\beta$

1
2
3
4
5
6
7
8
9
10
import sympy as sp

A = sp.Matrix([[1],[2],[3]])
B = sp.Matrix([[4],[5],[6]])

print('A的模为', A.norm())
print('A的模的浮点数为', A.norm().n())
print('A的转置矩阵为', A.T)
print('A和B的点乘为', A.dot(B))
print('A和B的叉乘为', A.cross(B))

例:已知$A = \begin{bmatrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 9 & 10 & 11 & 12 \\ 13 & 14 & 15 & 16 \end{bmatrix}, B = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}$
(1)求$\mid A \mid ,R(A),A^{T},(A+10E)^{-1},A^{2},AB$
(2)构造分块矩阵$\begin{bmatrix} A & B \end{bmatrix}, \begin{bmatrix} A \\ B \end{bmatrix}$
(3)构造矩阵A1(提出A的左上角子块得到的矩阵)
(4)构造矩阵A2(删除A的第四行得到的矩阵)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import sympy as sp
import numpy as np

A = sp.Matrix(np.arange(1,17).reshape(4,4))
B = sp.eye(4)

print('A的行列式为', sp.det(A))
print('A的秩为', A.rank())
print('A的转置矩阵为', A.T) # 等价于A.tramspose()
print('所求的逆矩阵为', (A+10*B).inv())
print('A的平方为', A**2)
print('A和B的乘积为', A*B)

print('横连矩阵为:', A.row_join(B))
print('纵连矩阵为:', A.col_join(B))

print('A1为:', A[0:2,0:2])

A2 = A.copy()
A2.row_del(3)
print('A2为:', A2)

齐次线性方程组的符号解

例:求下列齐次线性方程组的基础解系
$
\begin{cases}
x_{1}-5x_{2}+2x_{3}-3x_{4} = 0\\
5x_{1}+3x_{2}+6x_{3}-x_{4} = 0\\
2x_{1}+4x_{2}+2x_{3}+x_{4} = 0
\end{cases}
$

1
2
3
4
5
import sympy as sp

A = sp.Matrix([[1,-5,2,-3],[5,3,6,-1],[2,4,2,1]])

print('A的零空间(基础解系)为', A.nullspace())

非齐次线性方程组的符号解

例:求下列非齐次线性方程组的符号解
$
\begin{cases}
2x_{1}+x_{2}-5x_{3}+x_{4} = 8\\
x_{1}-3x_{2}-6x_{4} = 6\\
2x_{2}-x_{3}+2x_{4} = -2\\
x_{1}+4x_{2}-7x_{3}+6x_{4} = 2
\end{cases}
$

1
2
3
4
5
6
7
import sympy as sp

A = sp.Matrix([[2,1,-5,1],[1,-3,0,-6],[0,2,-1,2],[1,4,-7,6]])
b = sp.Matrix([8,6,-2,2])

print('系数矩阵A的秩为', A.rank())
print('线性方程组的唯一解为', A.inv()*b)

例:求下列非齐次线性方程组的通解
$
\begin{cases}
x_{1}+x_{2}-3x_{3}-x_{4} = 1\\
3x_{1}-x_{2}-3x_{3}+4x_{4} = 4\\
x_{1}+5x_{2}-9x_{3}-8x_{4} = 0
\end{cases}
$

1
2
3
4
5
6
7
8
9
import sympy as sp

A = sp.Matrix([[1,1,-3,-1],[3,-1,-3,4],[1,5,-9,-8]])
b = sp.Matrix([1,4,0])
b.transpose()

C = A.row_join(b) # 构造增广矩阵

print('增广矩阵的行最简形为:\n', C.rref())

通过上述返回值可以看出, 增广矩阵的列向量组的最大无关组由第1列、第2列组成, 对应的行最简形的列是单位坐标向量
求得的行最简形矩阵为
$
\begin{bmatrix} 1 & 2 & -3/2 & 3/4 & 5/4 \\ 0 & 1 & -3/2 & -7/4 & -1/4 \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix}
$
通过行最简形矩阵可以写出原方程组的等价方程组为
$
\begin{cases}
x_{1} = \frac{3}{2}x_{3}-\frac{3}{4}x_{4}+\frac{5}{4}\\
x_{2} = \frac{3}{2}x_{3}+\frac{7}{4}x_{4}-\frac{1}{4}
\end{cases}
$
所以方程组的通解为
$\begin{bmatrix} x_{1} \\ x_{2} \\ x_{3} \\ x_{4} \end{bmatrix} = c_{1}\begin{bmatrix} \frac{3}{2} \\ \frac{3}{2} \\ 1 \\ 0 \end{bmatrix} + c_{2}\begin{bmatrix} -\frac{3}{4} \\ \frac{7}{4} \\ 0 \\ 1 \end{bmatrix} + \begin{bmatrix} \frac{5}{4} \\ -\frac{1}{4} \\ 0 \\ 0 \end{bmatrix}, c_{1},c_{2} \in R$

特征值和特征向量

例:求下列矩阵的特征值和特征向量
$A = \begin{bmatrix} 0 & -2 & 2 \\ -2 & -3 & 4 \\ 2 & 4 & -3 \end{bmatrix}$

1
2
3
4
5
6
import sympy as sp

A = sp.Matrix([[0,-2,2],[-2,-3,4],[2,4,-3]])

print('A的特征值为:', A.eigenvals())
print('A的特征向量为:', A.eigenvects())

对于特征值-8的特征向量为$\xi_{1} = [-1/2,-1,1]^{T}$, 对于特征值1的两个线性无关的特征向量为$\xi_{2} = [-2,1,0]^{T},\xi_{3} = [2,0,1]^{T}$

0%