草庐IT

线性代数学习笔记4-1:线性方程组的数学和几何意义、零空间/解空间/核

Insomnia_X 2024-04-20 原文

从线性代数的视角看线性方程组

求解方程 A x ⃗ = v ⃗ \mathbf A\vec x=\vec v Ax =v 首先说明系数矩阵的行数和列数的意义

  • 对于系数矩阵 A \mathbf A A,其行数代表方程个数,列数代表未知量个数
  • 对于系数矩阵 A \mathbf A A,矩阵对应线性变换
    矩阵行数代表变换后的基向量、 x ⃗ \vec x x v ⃗ \vec v v 等向量的坐标分量数,也就是这些向量所处空间的维度;
    (上面说过,若有 r o w row row行,则列空间必为 R r o w \mathbf R^{row} Rrow的子空间,因为 r o w row row个分量最多只能描述 r o w row row维空间中的向量)
  • 列数代表列向量/变换后的基向量个数(然而这些基向量可能是线性相关的)

下面进一步展开说明,并从线性代数的视角看线性方程组

线性方程组的数学意义

从矩阵向量乘法看问题:
A x ⃗ = v ⃗ \mathbf A\vec x=\vec v Ax =v 相当于用向量 x ⃗ \vec x x 提供的系数对矩阵 A \mathbf A A的列向量做线性组合

线性方程组的几何意义

A x ⃗ = v ⃗ \mathbf A\vec x=\vec v Ax =v 的几何意义是,已知一个线性变换 A \mathbf A A,我们要寻找一个向量 x ⃗ \vec x x ,使之在变换后与向量 v ⃗ \vec v v 重合
或者说,在 A \mathbf A A的列空间(线性变换后的新的向量空间)中,寻找合适的”坐标“,对应于向量 v ⃗ \vec v v

方程有解的条件:
对于 A x ⃗ = v ⃗ \mathbf A\vec x=\vec v Ax =v 若向量 v ⃗ \vec v v 位于矩阵 A \mathbf A A的列空间内,那么方程就有解;否则方程无解

  • 线性变换不压缩空间时,即矩阵满秩,即 d e t ( A ) ≠ 0 det(\mathbf A)\neq 0 det(A)=0,方程组存在唯一解(因为线性变换在同一维度下进行,变换前后的向量一一对应,确定变换后的向量 v ⃗ \vec v v ,也就确定变换前的向量 x ⃗ \vec x x

具体如何求解
d e t ( A ) ≠ 0 det(\mathbf A)\neq 0 det(A)=0时逆矩阵 A − 1 \mathbf A^{-1} A1存在
方程两边同乘 A − 1 \mathbf A^{-1} A1即可求解方程: x ⃗ = A − 1 v ⃗ \vec x=\mathbf A^{-1}\vec v x =A1v
其几何意义是,从 v ⃗ \vec v v 开始“”倒带“,进行逆变换并跟踪 v ⃗ \vec v v 的动向,最终可以得到初始的 x ⃗ \vec x x

  • 线性变换会压缩空间时(如:平面变为线),即矩阵不满秩,即 d e t ( A ) = 0 det(\mathbf A)=0 det(A)=0,方程不一定有解
    如果向量 v ⃗ \vec v v 恰好处于被压缩后的空间(列空间)内,解存在;否则无解

之前通过逆矩阵 A − 1 \mathbf A^{-1} A1求解方程;
而在这种情况下,不存在逆矩阵 A − 1 \mathbf A^{-1} A1
其几何意义是,不存在逆变换能将一条线”解压缩“为一个平面(这样必将出现单个输入对应多个输出,这不符合函数映射的定义)

矩阵的零空间/解空间/核

对于方程 A x ⃗ = v ⃗ \mathbf A\vec x=\vec v Ax =v ,列空间关注系数矩阵 A \mathbf A A,而零空间关注解向量 x ⃗ \vec x x

矩阵的零空间(Null Space)/核(Kernal)

  1. 经过线性变换后,将会落在原点/零向量的向量的集合
  2. 方程 A x ⃗ = 0 ⃗ \mathbf A\vec x=\vec 0 Ax =0 所有解向量 x ⃗ \vec x x 构成的集合
  3. 零空间也叫解空间,即齐次线性方程组所有解向量构成的集合

ps. 与之前同理,如果向量 x ⃗ \vec x x n n n个分量,那么零空间一定是 R n \mathbf R^n Rn的子空间

零空间和线性无关性、秩结合在一起考虑:
矩阵的零空间只有0点(方程 A x = 0 \mathbf A \boldsymbol x=\boldsymbol 0 Ax=0有唯一零解,没有非零解)    ⟺    \iff 矩阵列满秩(线性变换没有压缩空间)    ⟺    \iff 所有列向量线性无关
后面将会看到,方程消元后,给出了列相关性/秩/零空间(基础解系)等所有信息

零空间几何意义:考虑3x3矩阵,线性变换后空间维度被压缩的情况

  • 矩阵满秩,不管变换如何,原点仍落在原点(线性变换保证原点位置不变),零空间为一个点
    (零空间也是线性空间,零空间必然包含零向量 0 ⃗ \vec 0 0
  • 矩阵秩为2,则有一条线上的向量将被压缩到零向量位置,与之重叠,则零空间为一条线
  • 矩阵秩为1,则有一个平面上的向量将被压缩到零向量位置,与之重叠,则零空间为一个平面

另外,从零空间的思路出发,对于 v ⃗ \vec v v 不是零向量的一般情况,我们也更能理解为什么有时方程的解不唯一:空间被压缩时,大量的高维度的向量被压缩到低维度空间中的同一个向量 v ⃗ \vec v v 的位置,它们有可能是一条线/一个平面…

当然,和零空间不同,此时所有的解向量 x ⃗ \vec x x 的集合就一定不是一个向量空间,原因很简单:这些解中一定不包含零向量 0 ⃗ \vec 0 0 ,也就是说,此时的解的集合是不经过原点的直线/平面
这也是为什么解空间(这个向量空间)仅仅是指齐次线性方程组所有解向量构成的集合,而非齐次线性方程组的解的集合,不能称为”“

总结

  • 每个齐次线性方程组都对应一个线性变换 A x ⃗ = v ⃗ \mathbf A\vec x=\vec v Ax =v
  • d e t ( A ) ≠ 0 det(\mathbf A)\neq 0 det(A)=0时,这个变换不会压缩空间,则解为 x ⃗ = A − 1 v ⃗ \vec x=\mathbf A^{-1}\vec v x =A1v
  • d e t ( A ) = 0 det(\mathbf A)= 0 det(A)=0时,这个变换会压缩空间,不一定有解;
    具体的,仅当 v ⃗ \vec v v 位于矩阵 A \mathbf A A的列空间内( v ⃗ \vec v v 是在同维度/同二维平面or一维直线内的可能的输出),解存在
  • v ⃗ \vec v v 是零向量,零空间给出方程所有可能的解
    从零空间的思路出发,我们也更能理解为什么有时方程的解不唯一

有关线性代数学习笔记4-1:线性方程组的数学和几何意义、零空间/解空间/核的更多相关文章

  1. 旋转矩阵的几何意义 - 2

    点向量坐标矩阵的几何意义介绍旋转矩阵的几何含义之前,先介绍一下点向量坐标矩阵的几何含义点:在一维空间下就是一个标量,如同一条直线上,以任意某一个位置为0点,以一定的尺度间隔为1,2,3...,相反方向为-1,-2,-3...;如此就形成了一维坐标系,这时候任何一个点都可以用一个数值表示,如点p1=5,即即从原点出发沿着x轴正方向移动5个尺度;点p2=-3,负方向移动3个尺度;     在一维坐标系上过原点做垂直于一维坐标系的直线,则形成了二维坐标系,此时描述一个点需要两个数值来表示点p3=(3,2),即从原点出发沿着x轴正方向移动3个尺度,在此基础上沿着y轴正方向移动两个尺度的位置就是点p3。

  2. ruby-on-rails - 从应用程序中自定义文件夹内的命名空间自动加载 - 2

    我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty

  3. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  4. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  5. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  6. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  7. ruby - 我如何学习 ruby​​ 的正则表达式? - 2

    如何学习ruby​​的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby​​的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/

  8. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

  9. 机器学习——时间序列ARIMA模型(四):自相关函数ACF和偏自相关函数PACF用于判断ARIMA模型中p、q参数取值 - 2

    文章目录1、自相关函数ACF2、偏自相关函数PACF3、ARIMA(p,d,q)的阶数判断4、代码实现1、引入所需依赖2、数据读取与处理3、一阶差分与绘图4、ACF5、PACF1、自相关函数ACF自相关函数反映了同一序列在不同时序的取值之间的相关性。公式:ACF(k)=ρk=Cov(yt,yt−k)Var(yt)ACF(k)=\rho_{k}=\frac{Cov(y_{t},y_{t-k})}{Var(y_{t})}ACF(k)=ρk​=Var(yt​)Cov(yt​,yt−k​)​其中分子用于求协方差矩阵,分母用于计算样本方差。求出的ACF值为[-1,1]。但对于一个平稳的AR模型,求出其滞

  10. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

随机推荐