线性代数Python计算:向量组线性相关的判断

在这里插入图片描述
对给定的 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= a11a21am1 ,α2= a12a22am2 ,,αn= a1na2namn
齐次线性方程组
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学,读正版书好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值