对给定的
m
m
m-维向量组
α
1
=
(
a
11
a
21
⋮
a
m
1
)
,
α
2
=
(
a
12
a
22
⋮
a
m
2
)
,
⋯
,
α
n
=
(
a
1
n
a
2
n
⋮
a
m
n
)
\boldsymbol{\alpha}_1=\begin{pmatrix}a_{11}\\a_{21}\\\vdots\\a_{m1}\end{pmatrix},\boldsymbol{\alpha}_2=\begin{pmatrix}a_{12}\\a_{22}\\\vdots\\a_{m2}\end{pmatrix},\cdots,\boldsymbol{\alpha}_n=\begin{pmatrix}a_{1n}\\a_{2n}\\\vdots\\a_{mn}\end{pmatrix}
α1=
a11a21⋮am1
,α2=
a12a22⋮am2
,⋯,αn=
a1na2n⋮amn
齐次线性方程组
x
1
α
1
+
x
2
α
2
+
⋯
+
x
n
α
n
=
o
x_1\boldsymbol{\alpha}_1+x_2\boldsymbol{\alpha}_2+\cdots+x_n\boldsymbol{\alpha}_n=\boldsymbol{o}
x1α1+x2α2+⋯+xnαn=o
是否有非零解决定了
α
1
,
α
2
,
⋯
,
α
n
\boldsymbol{\alpha}_1,\boldsymbol{\alpha}_2,\cdots,\boldsymbol{\alpha}_n
α1,α2,⋯,αn是否线性相关。所以,可以利用博文《线性方程组的通解》定义的mySolve函数解方程组
A
x
=
o
\boldsymbol{Ax}=\boldsymbol{o}
Ax=o,其中
A
=
(
α
1
,
α
2
,
⋯
,
α
n
)
\boldsymbol{A}=(\boldsymbol{\alpha}_1,\boldsymbol{\alpha}_2,\cdots,\boldsymbol{\alpha}_n)
A=(α1,α2,⋯,αn),
o
\boldsymbol{o}
o为
m
m
m-维零向量。若函数返回的解集(2-维数组)列数大于1(除了零解还有非零解),则线性相关(有非零解),否则线性无关。
例1 用Python判断向量组
(
−
1
3
1
)
,
(
2
1
0
)
,
(
1
4
1
)
\begin{pmatrix}-1\\3\\1\end{pmatrix},\begin{pmatrix}2\\1\\0\end{pmatrix},\begin{pmatrix}1\\4\\1\end{pmatrix}
−131
,
210
,
141
是否线性相关。
import numpy as np #导入numpy
a1=np.array([-1,3,1]).reshape(3,1) #向量组
a2=np.array([2,1,0]).reshape(3,1)
a3=np.array([1,4,1]).reshape(3,1)
o=np.zeros((3,1)) #零向量
A=np.hstack((a1,a2,a3)) #矩阵A
X=mySolve(A,o) #解齐次线性方程组
_,t=X.shape #读取解集列数
if t>1: #有非零解
print('a1,a2,a3线性相关。')
print('(%s)a1+(%s)a2+(%s)a3=o'%
(X[0,1],X[1,1],X[2,1]))
else: #只有零解
print('a1,a2,a3线性无关。')
程序的第2~4行设置向量组a1,a2,a3,注意调用数组的reshape函数将数组设置为列向量。第5行设置零向量o。第6行将向量作为列组合成矩阵A。第7行调用mySolve函数解齐次线性方程组 A x = o \boldsymbol{Ax}=\boldsymbol{o} Ax=o,返回解集X。注意,mySolve的返回值是一个2-维数组:第1列表示方程组的特解,自第2列起表示齐次方程组或导出组的基础解系。第8行读取X的列数t。第9~14行的if-else语句就齐次线性方程组是否有非零解(解集X的列数t是否大于1)分别输出对应信息:若有非零解(t>1),输出向量组线性相关的信息并用X的第2列(列标为1)数据给出向量组的零线性组合;否则输出线性无关信息。运行程序,输出
a1,a2,a3线性相关。
(-1.0)a1+(-1.0)a2+(1.0)a3=o
即
−
α
1
−
α
2
+
α
3
=
o
-\boldsymbol{\alpha}_1-\boldsymbol{\alpha}_2+\boldsymbol{\alpha}_3=\boldsymbol{o}
−α1−α2+α3=o,线性相关。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。