设数域PPP上的向量空间PnP^nPn的线性变换TTT,在某个基下其变换矩阵A=(α1,α2,⋯,αn)\boldsymbol{A}=(\boldsymbol{\alpha}_1,\boldsymbol{\alpha}_2,\cdots,\boldsymbol{\alpha}_n)A=(α1​,α2​,⋯,αn​)。TTT的值域T(Pn)T(P^n)T(Pn)为α1,α2,⋯,α1\boldsymbol{\alpha}_1,\boldsymbol{\alpha}_2,\cdots,\boldsymbol{\alpha}_1α1​,α2​,⋯,α1​的生成空间,TTT的核K(T)K(T)K(T)为Ax=o\boldsymbol{Ax}=\boldsymbol{o}Ax=o的解空间。因此,只要构造出TTT在PnP^nPn的某个基底下的矩阵A\boldsymbol{A}A,利用博文《向量组的最大无关组计算》定义的maxIndepGrp函数,计算α1,α2,⋯,αn\boldsymbol{\alpha}_1,\boldsymbol{\alpha}_2,\cdots,\boldsymbol{\alpha}_nα1​,α2​,⋯,αn​的最大无关组,就是T(Pn)T(P^n)T(Pn)的基底。用博文《线性方程组的通解》定义的mySolve函数,计算Ax=o\boldsymbol{Ax}=\boldsymbol{o}Ax=o的基础解系,就是K(T)K(T)K(T)的基底。
例1 用Python计算在ℝ4^44的自然基上矩阵为A=(1021−121312552−21−2)∈\boldsymbol{A}=\begin{pmatrix}1&0&2&1\\-1&2&1&3\\1&2&5&5\\2&-2&1&-2\end{pmatrix}\inA=⎝⎜⎜⎛​1−112​022−2​2151​135−2​⎠⎟⎟⎞​∈ℝ2×2^{2\times2}2×2的线性变换TTT的值域T(T(T(ℝ4)^4)4)与核K(T)K(T)K(T)。

import numpy as np                               #导入numpy
from fractions import Fraction as F                 #导入Fraction
np.set_printoptions(formatter=                      #设置输出数据格式{'all':lambda x:str(F(x).limit_denominator())})
A=np.array([[1,0,2,1],                             #设置矩阵A[-1,2,1,3],[1,2,5,5],[2,-2,1,-2]],dtype='float')
r,ind,_=maxIndepGrp(A)                             #A的列向量最大无关组
print('值域基底:')
print(A[:,ind[:r]])
o=np.array([0,0,0,0]).reshape(4,1)
X=mySolve(A,o)                                     #Ax=o的解集
print('核基底:')
print(X[:,1:])

程序的第5~8行设置线性变换矩阵A。第9行调用maxIndepGrp函数(见博文《向量组的最大无关组计算》)计算矩阵A中列向量的最大无关组,返回A的秩r和表示A中各列调整后的顺序ind,ind[0:r](或简略为ind[:r])为列向量的最大无关组下标。第11行输出A中列向量最大无关组作为值域的基底。第13行调用mySolve函数(见博文《线性方程组的通解》),计算齐次线性方程组Ax=o\boldsymbol{Ax}=\boldsymbol{o}Ax=o的解空间X。回忆X中第1列为零解,基础解系存于X[:,1:]中,第15行作为核的基底输出之。运行程序,输出

值域基底:
[[ 1  0][-1  2][ 1  2][ 2 -2]]
核基底:
[[ -2  -1][-3/2 -2][  1   0][  0   1]]

即T(T(T(ℝ4)={x∣x=λ1(1−112)+λ2(022−2)},λ1,λ2∈^4)=\{\boldsymbol{x}|\boldsymbol{x}=\lambda_1\begin{pmatrix}1\\-1\\1\\2\end{pmatrix}+\lambda_2\begin{pmatrix}0\\2\\2\\-2\end{pmatrix}\},\lambda_1,\lambda_2\in4)={x∣x=λ1​⎝⎜⎜⎛​1−112​⎠⎟⎟⎞​+λ2​⎝⎜⎜⎛​022−2​⎠⎟⎟⎞​},λ1​,λ2​∈ℝ,K(T)={x∣x=c1(−2−3210)+c2(−1−201)},c1,c2∈K(T)=\{\boldsymbol{x}|\boldsymbol{x}=c_1\begin{pmatrix}-2\\-\frac{3}{2}\\1\\0\end{pmatrix}+c_2\begin{pmatrix}-1\\-2\\0\\1\end{pmatrix}\},c_1,c_2\inK(T)={x∣x=c1​⎝⎜⎜⎛​−2−23​10​⎠⎟⎟⎞​+c2​⎝⎜⎜⎛​−1−201​⎠⎟⎟⎞​},c1​,c2​∈ℝ。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

线性代数Python计算:线性变换的值域与核相关推荐

  1. 线性代数Python计算导引

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

  2. 线性代数Python计算:向量的模及向量间的夹角

    numpy的dot函数计算两个向量α\boldsymbol{\alpha}α和β\boldsymbol{\beta}β的内积: dot(a,b)\text{dot(a,b)}dot(a,b) 两个参数 ...

  3. 线性代数Python计算:向量空间坐标变换

    向量空间中两组基AAA和BBB之间相互线性表示构成的矩阵为过渡阵.若两组基中之一为自然基,譬如AAA为自然基,则基BBB的各向量在自然基下的坐标即构成基AAA到基BBB的过渡阵P\boldsymbol ...

  4. 线性代数Python计算:向量组的最大无关组计算

    对给定的mmm-维向量组 α1=(a11a21⋮am1),α2=(a12a22⋮am2),⋯,αn=(a1na2n⋮amn)\boldsymbol{\alpha}_1=\begin{pmatrix}a ...

  5. 如何用python计算函数的值域_(Max第一篇)Python基础代数运算大全

    @[TOC](目录) 1. 基础运算 1.1 运算代码表格 python中的基本运算符的使用是最基本的内容,需要把每一个运算所使用的符号记住,会对之后的编程有很大的作用 符号 定义 + Additio ...

  6. 线性代数Python计算:Python的布尔代数

    设B={0,1}B=\{0,1\}B={0,1},定义BBB上的或.与.非运算如下 构成布尔代数(B,∨,∧,¬)(B,\vee,\wedge,\neg)(B,∨,∧,¬). Python中所有的关系 ...

  7. 线性代数Python计算:消元法与矩阵初等变换

    对线性方程组 {a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2⋯⋯⋯am1x1+am2x2+⋯+amnxn=bn\begin{cases}a_{11}x_1+ ...

  8. 线性代数Python计算:Python数系

    Python作为计算机程序设计语言,受计算机物理结构的限制,无法表示出完整的整数集合ℤ.有理数集合ℚ.实数集合ℝ及复数集合ℂ.然而,Python所模拟的ℤ.ℚ.ℝ和ℂ在大多数实际应用中可以满足需求. ...

  9. 线性代数Python计算:线性方程组的通解

    对齐次线性方程组 {a11x1+a12x2+⋯+a1nxn=0a21x1+a22x2+⋯+a2nxn=0⋯⋯⋯am1x1+am2x2+⋯+amnxn=0(1)\begin{cases}a_{11}x_ ...

最新文章

  1. RHEL6搭建本地yum源
  2. Lattice diamond IPexpress 例子 - PLL
  3. CodePush使用调研
  4. 正则化与L0、L1、L2范数略解
  5. C++ 字符串编程训练1
  6. N次剩余(详解+例题+代码)
  7. ORA-27300错误
  8. 基于ZYNQ FPGA实现数据采集与传输系统设计
  9. pythonmap和list_(Python)list的内建函数 filter(), map(), 和 reduce()
  10. python学习之面向对象学习进阶
  11. linux查找启动程序的路径
  12. html透明颜色代码,CSS背景颜色透明
  13. 无线通信学习笔记(三)
  14. bugkuCTF—杂项—旋转跳跃
  15. js将html转换成string
  16. 我新鲜出炉的 plist 图集拆图工具!github
  17. 忘记Jenkins管理员密码的解决办法
  18. windows上配置深度学习(李沐-动手学深度学习)
  19. “盘古”走向产业山峦,打开了一串AI落地的新脑洞
  20. GameFramework框架——使用过程中遇到的问题

热门文章

  1. 外部浏览器打开微信小程序指定页面
  2. Nodejs Error: read ECONNRESET
  3. Linux Suse 查看 wwn 号 的方法
  4. AI虚拟数字人制作技术方法及价格
  5. 前端vue使用jszip压缩文件
  6. 华为首发鸿蒙手机,华为首发鸿蒙手机亮相,麒麟9000+55W快充+120Hz,依旧一机难求...
  7. 【转】ssa/ass字幕格式全解析
  8. 通信铁塔及机房最全手册
  9. 仿微信相册旋转箭头 - 不恢复原位 - androi view旋转180属性动画
  10. 华为平板 M3 青春版评测:华丽视觉体验,十分靠谱