对给定的mmm-维向量组
α1=(a11a21⋮am1),α2=(a12a22⋮am2),⋯,αn=(a1na2n⋮amn)\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​=⎝⎜⎜⎜⎛​a11​a21​⋮am1​​⎠⎟⎟⎟⎞​,α2​=⎝⎜⎜⎜⎛​a12​a22​⋮am2​​⎠⎟⎟⎟⎞​,⋯,αn​=⎝⎜⎜⎜⎛​a1n​a2n​⋮amn​​⎠⎟⎟⎟⎞​
为计算它的一个最大无关组,计算与矩阵A=(α1,α2,⋯,αn)\boldsymbol{A}=(\boldsymbol{\alpha}_1,\boldsymbol{\alpha}_2,\cdots,\boldsymbol{\alpha}_n)A=(α1​,α2​,⋯,αn​)等价的最简行阶梯阵。设其非零行数,即A\boldsymbol{A}A的秩为rrr。则前rrr列对应由rrr个向量构成最大无关组,后n−rn-rn−r列则为其他向量被最大无关组线性表示的系数。可以利用博文《消元法与矩阵初等变换》定义的rowLadder函数和simplestLadder函数,定义如下计算向量组的最大无关组的函数。

import numpy as np                              #导入numpy
def maxIndepGrp(A):m,n=A.shape                                 #读取向量位数m和个数nr,order=rowLadder(A,m,n)                    #计算行阶梯阵simplestLadder(A,r)                         #计算最简行阶梯阵return r,order,A[:r,r:]

程序很简单,第3行读取矩阵的行数m和列数n,也就是向量的维数和个数。第4行调用rowLadder函数(见博文《消元法与矩阵初等变换》)将A变换为行阶梯阵,返回秩r和对列顺序的可能改变order。第5行调用simplestLadder函数(见博文《消元法与矩阵初等变换》)将A变换为最简阶梯阵。第6行返回3个值:A的秩r,也是最大无关组所含向量个数;向量顺序数组order;最简阶梯阵的后r行n-r列构成的块A[:r,r:],其中每一列数据对应一个不在最大无关组中的向量被最大无关组线性表示的系数。
例1 用Python计算向量组
α1=(2143),α2=(−11−66),α3=(−1−22−9),α4=(11−27),α5=(2449)\boldsymbol{\alpha}_1=\begin{pmatrix}2\\1\\4\\3\end{pmatrix},\boldsymbol{\alpha}_2=\begin{pmatrix}-1\\1\\-6\\6\end{pmatrix},\boldsymbol{\alpha}_3=\begin{pmatrix}-1\\-2\\2\\-9\end{pmatrix},\boldsymbol{\alpha}_4=\begin{pmatrix}1\\1\\-2\\7\end{pmatrix},\boldsymbol{\alpha}_5=\begin{pmatrix}2\\4\\4\\9\end{pmatrix}α1​=⎝⎜⎜⎛​2143​⎠⎟⎟⎞​,α2​=⎝⎜⎜⎛​−11−66​⎠⎟⎟⎞​,α3​=⎝⎜⎜⎛​−1−22−9​⎠⎟⎟⎞​,α4​=⎝⎜⎜⎛​11−27​⎠⎟⎟⎞​,α5​=⎝⎜⎜⎛​2449​⎠⎟⎟⎞​
的一个最大无关组,并将不属于最大无关组的向量用最大无关组线性表示。

import numpy as np                                  #导入numpy
from utility import maxIndepGrp                     #导入maxIndepGrp
a1=np.array([2,1,4,3],dtype='float').reshape(4,1)   #向量组设置
a2=np.array([-1,1,-6,6],dtype='float').reshape(4,1)
a3=np.array([-1,-2,2,-9],dtype='float').reshape(4,1)
a4=np.array([1,1,-2,7],dtype='float').reshape(4,1)
a5=np.array([2,4,4,9],dtype='float').reshape(4,1)
A=np.hstack((a1,a2,a3,a4,a5))                       #组成矩阵
_,n=A.shape                                         #向量个数
r,order,expr=maxIndepGrp(A)                        #计算秩,向量顺序,线性表达式系数
print('最大无关组:',end='')
for i in range(r):                                  #最大无关组print('a%d'%(order[i]+1),end=' ')
print()
for i in range(n-r):                                #其他向量线性表示式print('a%d=(%.0f)a%d'%(order[r+i]+1,expr[0,i],order[0]+1),end='')for j in range(1,r):print('+(%.0f)a%d'%(expr[j,i],order[j]+1),end='')print()

程序的第2~6行设置向量组a1,a2,a3,a4,a 5。第7行组合成矩阵A。第8行读取A的列数,也就是向量个数n。第9行调用上述程序定义的maxIndepGrp函数,计算A的列数r,即最大无关组所含向量个数;跟踪变换过程中向量间相对位置变化的数组order和不属于最大无关组各向量由最大无关组线性表示的系数expr。第11~12行的for语句利用order的前r个元素确定最大无关组。第14~18行的for语句利用2-维数组expr输出每个不属于最大无关组的向量被最大无关组线性表示式。运行程序,输出

最大无关组:a1 a2 a4
a3=(-1)a1+(-1)a2+(-0)a4
a5=(4)a1+(3)a2+(-3)a4

写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

线性代数Python计算:向量组的最大无关组计算相关推荐

  1. matlab矩阵最大无关组,MATLAB 第十二章 矩阵的秩与向量组的最大无关组.ppt

    MATLAB 第十二章 矩阵的秩与向量组的最大无关组 MATLAB 高等数学实验 实验十二矩阵的秩与向量组的最大无关组 实验目的 学习利用MATLAB命令求矩阵的秩, 对矩阵进行初等行变换, 求向量组 ...

  2. matlab极大无关组,matlab最大无关组

    与<matlab最大无关组>相关的范文 课程设计任务书 2011-2012学年第一学期 专业: 通信工程 学号: 姓名: 课程设计名称: 信息论与编码课程设计 设计题目: 对称信道容量的求 ...

  3. 向量组的极大无关组和秩的证明题

    设向量组(I)可由向量组(II)线性表出,且秩r(I)=r(II),证明向量组r(I)=r(II)

  4. 线性代数Python计算导引

    线性代数是深度学习的数学基础之一,理论完备,方法经典.Python是当下AI系统首选开发工具,易学好用.教学中攒下两者结合的多个课题,覆盖大学理工科<线性代数>课程内容,写成博文以飨读者. ...

  5. 线性代数Python计算:线性变换的值域与核

    设数域PPP上的向量空间PnP^nPn的线性变换TTT,在某个基下其变换矩阵A=(α1,α2,⋯,αn)\boldsymbol{A}=(\boldsymbol{\alpha}_1,\boldsymbo ...

  6. 线性代数之极大无关组的求法

                                                     线性代数之极大无关组的求法 注:行列式常见计算方法链接汇总 三角法 . 降阶法  .迭代法  .拆分凑 ...

  7. 线性代数学习笔记2-2:向量空间、子空间、最大无关组、基、秩与空间维数

    向量空间 向量空间就是一些向量的集合,并且满足:向量空间对于这些向量的线性组合封闭(任意向量间的加法.数乘,得到的向量仍属于这个向量空间) 具体来说,向量空间中的元素(向量)的加法和数乘满足8条公理 ...

  8. 线性代数 04.07 向量组的线性相关性 习题课

    n维向量⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ 运算 ...

  9. 怎么根据矩阵判断极大无关组_如何判断向量是否是矩阵的极大无关组?

    首先你这个提问不是很严谨哦ε3ε 极大无关组是向量组里面的概念,而在矩阵里没有极大无关组这个概念,虽然向量组合并在一起可以看成一个矩阵,但不能说矩阵有极大无关组. 我们先从概念出发,极大线性无关组:在 ...

最新文章

  1. 【原】YUI压缩与CSS media queries下的bug
  2. Scala学习笔记-5
  3. Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
  4. java reader_Java之字符输入流,Reader类的简单介绍
  5. 中低频量化交易策略研发05_推进分析
  6. 406. 根据身高重建队列
  7. Nali:一个离线查询 IP 地理信息和 CDN 提供商的终端利器
  8. gvim 命令行粘贴_vim-如何在光标所在的行中粘贴?
  9. @SuppressLint(HandlerLeak),或Handler使用有警告;
  10. MongoDB客户端Robo 3T安装使用
  11. 大一新生HTML期末作业 学生个人网页设计作业 HTML5响应式个人简历网站模板 web前端网页制作课作业
  12. android系统体系结构,Android系统的五层体系结构解析
  13. 计算机系统时钟中断,什么是时钟中断时钟中断的举例
  14. 各应用市场(安卓)的入口整理:
  15. 使用R进行pubmed爬虫
  16. 基于二哈实现多人人脸学习和识别
  17. 选择使用Yarn来做Docker的调度引擎
  18. Redisson的看门狗watchDog机制是怎么实现的?
  19. 如何解决vmfution 虚拟机键盘鼠标延迟问题
  20. 什么是MISRA?如何满足该行业标准?

热门文章

  1. 4.7寸iPhone6未配蓝宝石屏
  2. Python 就业方向以及就业岗位,你都了解吗?
  3. ​能让德国人放弃现金支付​,也没谁了
  4. html表单window.onload,html事件绑定总结以及window.onload和document.body.onload事件
  5. 【面试题】抽象类和接口的联系和区别
  6. 【数据库篇】Redis知识点
  7. Echarts-授人以鱼不如授人以渔
  8. (一)人工智能大纲摘要:《人工智能发展白皮书-技术架构篇(2018年9月)》
  9. 7.1 预装客户应用 导致设置等系统应用几率报错
  10. 气压传感器BMP180的使用心得