线性代数 --- 线性代数基本定理下(四个基本子空间他们两两正交,且互为正交补)

2023-11-08

正交子空间

        前面我们已经知道了,两个向量的内积为0是勾股定理的另一种表现形式。现在我们来研究一下两个子空间之间的正交。虽然,我很不喜欢一上来就先给个定义,但我这里还是要给,sorry!

        现有两个子空间V和W,如果V中的任何一个向量v和W中的任何一个向量w都正交,则子空间V正交于子空间W。

        如果说线性代数基本定理的上半部分,告诉了我们A的列空间C(A)与A的行空间C(A^{T})的维数都是r(they are drawn the same size), 剩下的两个零空间,A的零空间和A的左零空间的维度则分别是n-r和m-r。那么线性代数基本定理的下半部分则告诉我们,这四个基本子空间是两两正交的,且互为正交补


零空间与行空间正交

        对于任何mxn的矩阵A,在R^{n}中,A的零空间与行空间正交。记作,N(A)\perp C(A^{T})

证明:

        首先,我们回到A的零空间的定义,A的零空间是齐次方程组Ax=0,所有的解x的集合。那么,按照零空间的定义,我们在Ax=0的零空间中,随便找一个向量w(他是Ax=0的一个解),他满足Ax=0。现在我们把他展开如下:

\large Aw=\begin{bmatrix} ... &Row_1 & ...\\ ...& ... &... \\ ... &Row_m & ... \end{bmatrix}\begin{bmatrix} w_1\\ ...\\ w_n \end{bmatrix}= \begin{bmatrix} 0\\ ...\\ 0 \end{bmatrix}

        根据第一行方程,我们得到A的第一行Row1乘以w等于0,根据第二行方程,得到A的第二行Row2乘以w等于0,一直到最后一个方程,A的最后一行Rowm乘以w等于0。按照内积的定义:

\large x\cdot y=x^{T}y=\begin{bmatrix} x_1 &... &x_n \end{bmatrix}\begin{bmatrix} y_1\\ ...\\ y_n \end{bmatrix}=x_1y_1+...+x_ny_n

        我们有(把n维向量的内积看成是各元素逐一相乘后的累加和):

\large \begin{matrix} (Row_1ofA)\cdot w=(Col_1ofA^{T})\cdot w=0\\ ...\\ (Row_mofA)\cdot w=(Col_mofA^{T})\cdot w=0 \end{matrix}

        即,Row1正交于w,Row2正交于w......Rowm正交于w。即w正交于A中的每一行,因此,向量w也正交于他们的线性组合,即,A的行空间。(注:一般情况下,我们更喜欢用矩阵转置的列组合来描述A的行空间。即,我们把A中的每行,看成是A^{T}中的每一列,则A中各行的线性组合等价于A^{T}中各列的线性组合)如此一来,我们就证明了,向量w正交于A的每一行。

        反过来,我们也证明一下A的行空间中的任意一个向量v和零空间中的任意一个向量都正交。设向量x1,x2,....xn是在A的零空间中任意选择的若干个向量。按照零空间的定义,只要向量是A的零空间中的向量,则一定满足方程组Ax1=0,Ax2=0,....Axn=0。又因为行空间中的任意一个向量v,要么是A的某一行,要么是行的线性组合。则,根据前面的方程组,分别有,v乘以v1等于0(即,向量v正交于x1),向量v正交于x2,.....向量v正交于xn。这说明,A的行空间中的任意一个向量v,正交于A的零空间中的任意向量,因此v正交于A的零空间。

最终得到,A的零空间N(A)正交于A的行空间C(A^{T})。

 例1:


左零空间与列空间正交

        对于任何mxn的矩阵A,在R^{m}中,A的左零空间与列空间正交。记作,C(A)\perp N(A^{T})

证明:

        同上,假设w是A的左零空间中的任意一个向量,根据A的左零空间的定义,有:

\large w^{T}A=\begin{bmatrix} w_1 &... &w_m \end{bmatrix}\begin{bmatrix} ... & ... & ...\\ Col1&... &Coln \\ ...& ...&... \end{bmatrix}=\begin{bmatrix} 0 &... &0 \end{bmatrix}

然后再根据内积的定义(把n维向量的内积看成是各元素逐一相乘后的累加和),可知:

\large \begin{matrix} w_1\cdot Col1=w_1^{T}Col1=0\\ ...\\ w_m\cdot Coln=w_m^{T}Coln=0 \end{matrix}

        由此可见,A的左零空间中的一个任意向量w,正交于A中的每一列,从而他也正交于这些列的每一种线性组合v,而v又是A的列空间中的一个任意向量。因此,我们说,A的左零空间N(A^{T})正交于A的列空间C(A)。Q.E.D。

 例2:


THE BIG PICTURE(I)


正交补

 正交补:

        设V是\large R^{n}的子空间,则所有正交于V的向量所在的空间,叫做V的正交补,记作\large V^{\perp }

        

        根据之前的学习,我们知道了,A的四个基本子空间他们两两正交,即,互为正交子空间。但,事实上,两个正交的子空间V和W,可以互为正交子空间,但不一定是互为正交补。

        例如,子空间V是一个R^{3}的子空间,是由向量【0,1,0】所张成的一条直线。子空间W也是R3的子空间,是由向量【0,0,1】所张成的一条直线。V和W两个子空间中的任何一个向量都正交,因此得到两个子空间两两正交。但是,两个子空间的维度dim(V)+dim(W)=1+1=2,并不等于3。也就是说两个子空间加在一起并没有充满整个R^{3},因此,V并不是W的正交补。如下图所示,W+V的组合,只能张成一个二维平面,正好等于二者维度的和2。

         实际上,在空间R^{3}中,子空间W的正交补,应该是一个二维平面(如下图所示),而上图中的V只是一条直线,是W的正交补的一部分。

         也就是说,在空间R^{n}中的两个子空间V和W,如果互为正交补,则两个子空间的维度的和等于n,即两个正交的子空间可以张成整个R^{n}空间。即:


 两两正交的行空间与零空间互为正交补

         考虑上面的这个秩为1的矩阵,已知A的行空间与零空间正交。他的行空间是由向量【1,3】所张成的一条直线。向量【-3,1】'是零空间的基底,他的零空间是常数c和向量【-3,1】张成的一条直线【-3c,c】。因为行空间与零空间互为正交子空间,所以,来自行空间的向量【1,3】,【2,6】,【3,9】和【-3,1】都正交。(或者说,假设向量【x1,x2】是A的零空间的一个任意向量,则一定有向量【1,3】,【2,6】,【3,9】和【x1,x2】都正交)

        A的行空间是R^{2}的子空间,维数=rank=1,是一条线。A的零空间也是R^{2}的子空间,维数=n-r=1,也是一条直线。我们发现,(零空间的维度=1)+(行空间的维度=1)=(n=2)。这一发现对于其他的所有矩阵也适用,即:

行空间的维度+零空间的维度=矩阵A的列数n

        我们发现,A的零空间和行空间的关系,不仅仅是正交,而且,零空间N(A)还包含了所有正交于行空间的向量,反之亦然。

         因此,我称A的零空间是行空间的正交补,或者说他们互为正交补。因为,你无法找到一个垂直于A的行空间却不属于A的零空间的向量。


 两两正交的列空间与左零空间互为正交补

        此外,A的列空间与左零空间正交。向量【1,2,3】是列空间的基底,A的列空间是由它所张成的。向量【1,1,-1】是左零空间的一个解,它与列向量【1,2,3】正交。或者说,对于任何一个左零空间的向量【x1,x2,x3】,一定满足x^{T}A=0,因而,一定有向量【x1,x2,x3】和第一列【1,2,3】,第二列【3,6,9】都正交。

        A的列空间是R^{3}的子空间,维数=rank=1(行秩=列秩),是由基底【1,2,3】张成的一条直线。A的左零空间也是R^{3}的子空间,维数=m-r=2,是由m-r个特解所张成的一个平面。

求解A的左零空间:

\large A^{T}=\begin{bmatrix} 1 &2 &3 \\ 3& 6 &9 \end{bmatrix}        \large U^{T}=\begin{bmatrix} 1 &2 &3 \\ 0& 0 &0 \end{bmatrix}

 共两个自由列,对应两个自由变量x2,x3。

\large U^{T}x=\begin{bmatrix} 1 &2 &3 \\ 3& 6 &9 \end{bmatrix}\begin{bmatrix} x1\\ x2\\ x3 \end{bmatrix}=0

现在分别令x2=1,x3=0和x2=0,x3=1分别求解Ux=0,共得到两个特解向量【-2,1,0】和【-3,0,1】,这两个向量都与A的各列正交,且张成了一个二维平面。同样,我们发现,(左零空间的维度=2)+(列空间的维度=1)=(m=3),推广到其他线性方程组,得到:

列空间的维度+左零空间的维度=矩阵A的行数m


线性代数基本定理下

        这样一来,我们就得到了线性代数得基本定理的下半部分,前半部分指出了四个基本子空间的维数,包括行空间的维数等于列空间的维数。但现在我们知道,他们不仅相互垂直,或者说是两两正交,更重要的是他们互为正交补。即:

R^{n}中,零空间与行空间互为正交补。

 在R^{m}中,列空间与左零空间互为正交补。


再看Ax=b

        如此一来,我们又可以从另一个角度去审视线性方程组Ax=b。根据我们之前的理解,只有当b等于A的各列的线性组合时,或者说,只有b属于A的列空间时,Ax=b才有解。(这是Ax=b的一种直观理解)。        

        而,当我们知道了线性代数基本定理的下半部分以后,我们会说,Ax=b有解,当且仅当b垂直于A的左零空间。(这是Ax=b的一种间接理解)

         根据这一定理,有时候,我们不太好判断A的各列是否可以通过线性组合得到b,在这个时候,我们也可以换一种方法,验证一下\large y^{T}b是否等于0。

例如:

         对于上述方程组而言,对于给定的b,我们可以通过判断b是否可以通过A各列的线性组合得到,同时,我们还可以先求出一个左零空间的向量y=(1,1,1),然后再看判断给定的b是否和y正交。根据向量的内积定理,我们得到b1+b2+b3=0。因此,对于上例中的Ax=b方程组而言,Ax=b是否有界,只需要判断b中所有元素的和是否等于0。这就大大的简化了,我们对方程组是否有解的判断!


 THE BIG PICTURE(II)

         有了线性代数基本定理的下半部分,即他们互为正交补,我们就可以把R^{n}中的任何一个向量,正交分解成属于子空间V的一部分和属于子空间W的另一部分。假设现有3x2的矩阵A,且秩为1,则他的行空间和零空间的维度都分别为1,都是R^{2}的子空间。现在我们把R^{2}这个二维空间看成是充满整个二维坐标的平面,这样一来两个一维的正交子空间就好比是二维坐标系中的x轴与y轴。在二维坐标系中的任何一个向量都可以分解成,沿x轴方向的向量v和沿y轴方向的向量u的和。(如下图所示)

         把这个想法推广到R^{n}维空间中的任何两个互为正交补的子空间V和W,则,任何一个属于R^{n}的向量x,都可以表示成x=v+u。向量v是x在子空间V上的投影,向量u是x在子空间W上的投影。而这,就是整个线性代数中最重要的一张插图"THE BIG PICTURE(II)"所揭示的内容

        THE BIG PICTURE(II)总结了线性代数的全部基本定理,他是对矩阵A的一种诠释!

1,对于R^{n}中的一个任意向量x都可以被分解为x=x_{r}+x_{n}这两个分量。

2,矩阵A乘以行空间中的向量x_{r},得到列空间中的向量Ax,即,向量b。即,Ax_{r}=Ax=b。  

3,矩阵A乘以零空间中的向量x_{n},得到全零向量。即,Ax_{n}=0。

综上,如果我们用A乘以分解后的x,得到:

Ax=A(\large x_{r}+\large x_{n})= A\large x_{r}+A\large x_{r}=b+0=b

 (全文完)

作者 --- 松下J27

参考文献(鸣谢):

1,线性代数及其应用,侯自新,南开大学出版社,1990.

2,Linear Algebra and Its Applications(Fourth Edition) - Gilbert Strang

3,Introduction to Linear Algebra,Fifth Edition - Gilbert Strang

古诗词赏析

《己亥杂诗》---龚自珍

九州生气恃(shì)风雷,

万马齐喑(yīn)究可哀。

我劝天公重抖擞,

不拘一格降人才。

  

 (配图与本文无关)

版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27​

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性代数 --- 线性代数基本定理下(四个基本子空间他们两两正交,且互为正交补) 的相关文章

  • matlab入门基础:矩阵操作(一)

    系列笔记目录 第二节 矩阵操作 一 创建特殊矩阵 矩阵的运算 文章目录 系列笔记目录 前言 一 创建特殊矩阵 二 矩阵运算 1 矩阵元素的修改 2 矩阵的变维 3 矩阵的变向 4 矩阵的抽取 练习 三 矩阵的数学运算 总结 前言 MATLA
  • 矩阵、行列式

    矩阵 行列式差异 矩阵 行列式 运算结果 可看成一个表格 可看成一个数 行列数 可以不等 必须相等 两个矩阵 或行列式 相等 每个元素对应相等 结果相等即可 相加 各对应元素相加 一行 或列 元素相加 数乘矩阵 常数k乘每个元素 常数k乘一
  • python 读写pcd

    1 读点云的3种方式 第一种 pip3 install python pcl import pcl pcd ndarray pcl load args pcd path to array 3 不要intensity pcd ndarray
  • numpy广播机制

    NumPy的广播机制 文章目录 NumPy的广播机制 Broadcast 最简单的广播机制 稍微复杂的广播机制 广播机制到底做了什么 一个典型的错误案例 一个正确的经典示例 一种更便捷的计算方式 Broadcast 广播是numpy对不同形
  • 差分 【一维差分和二维差分】

    全文目录 一维差分 差分数组的构建 二维差分 差分矩阵的构建 一维差分 首先来了解一下差分的性质 差分是前缀和的逆运算 如果说前缀和是 S f n 那么差分就是 D f 1 n 也就是说 原数组是差分数组的前缀和 原数组 a i 差分数组
  • jsp+Echarts实现图表可视化,连接数据库,从数据库拿数据

    实现可视化的图表 jsp mysql eclipse 从数据库拿数据改变表格的数据算是echarts的初始入门案例的升级版 想了解Echarts的各位大大 传送门 https echarts apache org examples zh e
  • 【论文笔记】基于Control Barrier Function的二次规划(QP)控制

    文章目录 写在前面 问题描述 RBF 1 Logarithmic 2 Inverse type 3 Reciprocal ZBF 两者的联系 CBF构建 RCBF ZCBF QP设计 ES CLF CLF CBF QP 写在前面 原论文 C
  • 图谱论学习—拉普拉斯矩阵背后的含义

    目录 一 为什么学习拉普拉斯矩阵 二 拉普拉斯矩阵的定义与性质 三 拉普拉斯矩阵的推导与意义 3 1 梯度 散度与拉普拉斯算子 3 2 从拉普拉斯算子到拉普拉斯矩阵 一 为什么学习拉普拉斯矩阵 早期 很多图神经网络的概念是基于图信号分析或图
  • MATLAB之LU分解法(十)

    LU分解 1 LU分解的基础知识 矩阵的LU分解又称为矩阵的三角分解 即将一个矩阵分解为一个下三角矩阵L和一个上三角矩阵U 即 A L U A LU A LU 其在方程组的求解和求矩阵的逆有许多应用 LU分解的求解命令是lu 基本使用格式如
  • 提取任务相关成分的TRCA算法

    提取任务相关成分的TRCA算法 1 TRCA算法简介 2 TRCA算法原理与推导 3 Ensemble TRCA算法原理简介 1 TRCA算法简介 虽然基于CCA的方法在识别SSVEP信号方面具有不错的表现 但这类方法的性能仍旧易受到自发脑
  • GPU编程 CUDA C++ 线性代数求解器 cuSolver库

    cuSolver库较cuBLAS库更为高级 其能处理矩阵求逆 矩阵对角化 矩阵分解 特征值计算等问题 cuSolver库的实现是基于cuBLAS库和cuSPARSE库这两个基本库 cuSolver库的功能类似于Fortran中的LAPACK
  • 逆矩阵的算法

    花了10分钟 终于明白矩阵的逆到底有什么用 首先 我们先来看看这个数的倒数 倒数 其实矩阵的逆矩阵也跟倒数的性质一样 不过只是我们习惯用A 1表示 问题来了 既然是和倒数的性质类似 那为什么不能写成1 A 其实原因很简单 主要是因为矩阵不能
  • 万向锁,简单表述,一文看懂

    万向锁问题 看了下百度知乎 居然 很少有说清楚的 想起自己第一次接触的时候 也是一头雾水 特此解释 1 什么是万向锁问题 欧拉角顺序有很多 当中比较常用的 一种 便是用 偏航 俯仰 滚转 yaw pitch roll 三个角度来描述一个旋转
  • 泊松重建算法原理介绍

    目录 1 泊松重建算法 2 泊松重建核心思想及原理 3 泊松算法流程 本文出自CSDN点云侠 原文链接 爬虫自重 把自己当个人 1 泊松重建算法 泊松重建是Kazhdan M在2006年提出的基于八叉树和泊松方程的一种网格三维重建算法 其本
  • matlab 计算点云中值

    目录 一 概述 1 算法概述 2 主要函数 二 代码示例 三 结果展示 四 参数解析 输入参数 输出参数 五 参考链接 本文由CSDN点云侠原创 原文链接 如果你不是在点云侠的博客中看到该文章 那么此处便是不要脸的爬虫 一 概述
  • 第一章 函数 极限 连续

    第一章 函数 极限 连续 第一节 函数 一 函数的概念及常见函数 1 函数概念 函数的两个基本要素 对应关系 定义域 判断两函数相等 从函数的两基本要素入手 即两函数的对应关系 表达式 定义域相同 对 于 任 意 x
  • 机器学习入门——线性代数简单回顾

    本节课程回顾了一些简单但常用的线性代数知识 很基础的 我会直接跳过 并对矩阵的一些运算进行编程实现 3 1 矩阵的加法和标量乘法 矩阵加法 要求行列数要相等 然后 每个元素对应相加 exp 矩阵的标量乘法 每个元素都要乘 exp 3 2 矩
  • 用Czerny-Turner系统检测钠灯双线

    1 摘要 Czerny Turner系统被广泛用于分析光源的光谱信息 通常 首先用抛物面反射镜对光源进行准直 然后用衍射光栅对颜色进行空间分离 在这个例子中 我们提出了一种由反射镜和衍射光栅组成的Czerny Turner系统 用于检测钠双
  • Herriott池的建模

    摘要 在气体光谱学中 为了获得足够灵敏的吸收测量 通常要求具有较长的光程长度 充气体积包裹在反射镜之间的多通道单元是满足这一要求的一种方式 同时在途中控制光束发散 避免了对超大设备的需求 Herriott单元是这种系统的一个例子 其特点是使
  • 短视频账号矩阵系统3年技术独立源头正规开发搭建

    短视频账号矩阵3年技术独立开发打造是一个非常有挑战性和前景的项目 以下是一些建议 帮助你成功打造一个成功的短视频账号矩阵 1 确定目标受众 首先需要明确你的目标受众是谁 了解他们的兴趣爱好 年龄 性别等 以便为他们提供他们感兴趣的内容 2

随机推荐

  • 一篇文章带你了解国际化,以及springboot当中如何实现国际化

    国际化一般在中大型公司领域会用得到 有时候会面对一些外国客户等 这时候就需要做一些多语言功能 来提升项目的可读性 本文带你了解什么是国际化以及他的用法 目录 理解国际化概念 简单了解国际化原理 国际化demo练习 1 引入依赖 2 创建多语
  • C#6.0新语法

    一 自动属性初始化 在以前的C 版本中 属性是这样写的 1 public int Id get set 2 public string Name get set 在C 6 0中 属性可以自动赋初始值 例如 1 public string N
  • freeRTOS手册 第六章 . 中断管理

    如果我对本翻译内容享有所有权 允许任何人复制使用本文章 不会收取任何费用 如有平台向你收取费用与本人无任何关系 第六章 中断管理 章节介绍和范围 事件 嵌入式实时系统必需对环境中的事件做出响应 比如 外部网络设备收到一个发送给TCP IP栈
  • gc垃圾回收四种方法

    标记清除算法 标记清除 Mark Sweep 算法 包含 标记 和 清除 两个阶段 首先标记出所有需要回收的对象 在标记完成后统一回收掉所有被标记的对象 标记清除算法是最基础的收集算法 后续的收集算法都是基于该思路并对其缺点进行改进而得到的
  • 使用Docker-镜像命令

    镜像名称 首先来看下镜像的名称组成 镜名称一般分两部分组成 repository tag 在没有指定tag时 默认是latest 代表最新版本的镜像 如图 这里的mysql就是repository 5 7就是tag 合一起就是镜像名称 代表
  • C#--使用Process类kill进程

    1 背景 static变量 static变量也称作静态变量 静态变量和非静态变量的区别是 静态变量被所有的对象所共享 在内存中只有一个副本 它当且仅当在类初次加载时会被初始化 而非静态变量是对象所拥有的 在创建对象的时候被初始化 存在多个副
  • 使用 Qt designer

    使用 Qt designer 1 配置Qt designer外部工具 2 Qt designer Qt 设计师 使用 2 1 创建保存文件ui 2 2 pyuic5 exe 工具 转化成为py文件 2 3 直接导入UI文件 2 qrc资源管
  • C# 正则表达式进阶

    文章目录 限定开头和结尾 匹配汉字 1 9反向引用 分组构造 具名的分组构造 断言 零宽度正预测先行断言 断言某位置后面是xxx 零宽度负预测先行断言 断言某位置后面不是xxx 零宽度正预测后发断言 断言某位置前面是xxx 零宽度负预测后发
  • 第二十七篇 SeNet——论文翻译

    文章目录 摘要 1 简介 2 相关工作 3 压缩和激励块 3 1 压缩 全局信息嵌入 3 2激励 自适应再校正 3 3 实例化 4 模型和计算复杂性 5 实验 5 1 图像分类 5 2 场景分类 5 3 COCO上的目标检测 5 4 ILS
  • 保研之路——复旦计算机学院预推免

    复旦计算机学院预推免 个人情况 高校复试参与情况 复旦计算机学院直硕 9 19 9 20 结语 嗯 抱着不白花这么多路费住宿费的初衷准备写一个保研经验贴 希望学弟学妹少花点钱吧orz 我的战术大概是只要学校给我发了邀请我就去 除了时间冲突的
  • windows配置selenium

    文章目录 1 确定chrome版本 2 下载并配置chrome驱动 3 测试 1 确定chrome版本 在chrome中访问 chrome settings help 可以看到当前版本 111 0 5563 111 64位 2 下载并配置c
  • matlab读取sheet1_matlab读取excel数据的方法步骤详解

    在Excel中录入好数据以后经常需要被matlab读取 具体该如何读取呢 下面是由学习啦小编分享的matlab读取excel数据的方法 以供大家阅读和学习 matlab读取excel数据的方法 matlab读取Excel数据步骤1 如果数据
  • Vue/JS自定义指令:实现元素滑动、移动端适配以及边界处理

    核心属性 Element clientWidth 元素可视宽度 Element clientHeight 元素可视高度 MouseEvent clientX 鼠标相对于浏览器左上顶点的水平坐标 MouseEvent clientY 鼠标相对
  • 微服务如何治理

    微服务远程调用可能有如下问题 注册中心宕机 服务提供者B有节点宕机 服务消费者A和注册中心之间的网络不通 服务提供者B和注册中心之间的网络不通 服务消费者A和服务提供者B之间的网络不通 服务提供者B有些节点性能变慢 服务提供者B短时间内出现
  • 每日学习07:Comparable接口的CompareTo的用法

    接口 Comparable 此接口强行对实现它的每个类的对象进行整体排序 这种排序被称为类的自然排序 类的 compareTo 方法被称为它的自然比较方法 字符串 数组列表 数组 所有可以 排序 的类都实现了java lang Compar
  • ThinkPHP5.1开发企业微信支付到零钱

    Wxpay php
  • npm启动vue应用开发服务器过程分析

    关于 npm run serve 命令启动vue应用开发环境的过程分析 1 npm run 命令执行时 npm run 命令执行时 会把 node modules bin目录添加到执行环境的PATH变量中 全局的没有安装的包 在node m
  • 本地IDEA中使用SonarQube扫描代码

    文章目录 背景 步骤 安装插件 配置 使用 背景 为了提高效率 在走代码CICD流程里的Sonarqube之前 先在本地提前进行一次扫描和修复 步骤 安装插件 2种方式 在IDE的插件管理中心安装名为 SonarQube Community
  • 爬虫高级应用(15. 基于Charles抓包软件抓取手机APP数据)

    目录 写在前面 配置安装Charles 安装Charles 下载相关证书 电脑证书 手机证书 设置代理 实操案例 抓取手机APP爱吾游戏宝盒数据 写在前面 移动App多使用异步的方式从服务端获取数据 抓取数据之前 要先分析移动App用于获取
  • 线性代数 --- 线性代数基本定理下(四个基本子空间他们两两正交,且互为正交补)

    正交子空间 前面我们已经知道了 两个向量的内积为0是勾股定理的另一种表现形式 现在我们来研究一下两个子空间之间的正交 虽然 我很不喜欢一上来就先给个定义 但我这里还是要给 sorry 现有两个子空间V和W 如果V中的任何一个向量v和W中的任