线性代数学习总结
内容
不断变化的世界使我们产生时间观念。正确描述事物状态及其不同时间下的变化至关重要。我们知道在三维空间下如何描述物体的位置。然而除了长宽高,世界上还有很多决定事物状态的因素。如决定人们心情的因素、决定天气的因素。这些因素又该如何合理的描述?线性代数给了我们答案。
代数
一 矩阵乘法
1.向量点乘
例如:
(1)
(2)
(3)
等式左边的第一个向量表示你有什么,左边的第二个向量表示你各拿几个,而等式的左边表示你获得了什么。
所以:
向量点乘(dot product)是一种组合(combination)
2.矩阵乘向量
我们把(1)和(2)合并一下,得到
(4)
这时,表示你各拿几个的向量变成了两行(两组),也就成了矩阵(向量是只有一行或一列的矩阵)。
表示你各拿几个的一个向量也叫一组权重(weights)。
在 [1 0 1]中,第一个1对应着dp,第二个0对应着math,第三个1对应着problem,我们不可以随意调换位置。所以:
向量是有顺序的一组数字,每个数字都是该向量的一个因素(element)
因素横着排列的向量叫做行向量(row vector),因素竖着排列的向量叫做列向量(column vector)
到这里我们可以更具体的描述一下第一个结论。向量点乘是一种组合,但
向量点乘向量可以是列向量中各个因素的一个组合
(4)可以分步计算
行成的
依然有顺序,仍然是一个向量。比较向量点乘向量,我们可以看出
矩阵乘向量可以是列向量中各个因素的多个有顺序的组合
3.向量乘矩阵
但是形成组合的成分并不一定非要是向量中的各个元素,也可以是不同向量之间的组合。
我们可以把(1)(2)(3)改写成(5)(6):
(5)
(6)
我们看一下(5)
它左边的那个矩阵是两个行向量组成:
第一个行向量表示两次组合中先拿什么,第二个行向量表示组合时先后拿什么
权重的第一个元素表示的是矩阵中第一个行向量的个数,第二个元素表示左侧第二个行向量的个数。
矩阵中每个行向量内部因素比例不变,整体完成矩阵内向量与向量之间的组合。
向量乘矩阵可以是矩阵中各个行向量有顺的多个组合
但是(6)不同于(5),因为向量在乘法符号的左边,权重在右边:
效果是dpproblem和mathproblem的结合
形成行向量的因素作为组合成分,乘法符号右侧的矩阵是权重的信息
可以看出他们不满足乘法交换律。
4.矩阵乘矩阵
假如我们有两个dp问题怎么办呢?
之前仅仅是把单词放在一起,并没有说明他们是如何组合的。而上式中终于写出了:dp+2*problem
也就是只有乘法来控制数量,加法来组合不同向量。这样的组合方式才是线性代数讨论的组合,即线性组合。
所以所有已概括的结论中,组合前面都要加上“线性”两个字。同时控制数量的数是属于什么数要事先规定好(经常被规定为是实数,也有虚数域)。
不过这还没有结束,严谨性是数学的特点。上文所说的“加法”和“乘法”也只不过是个名字而已。它们到底指的是什么运算,遵循什么样的规则需要明确规定。
线性代数中还有这8条规则
x+y=y+x
x+(y+z)=(x+y)+z
存在唯一的“零向量”使任意x都有x+0=x
每个x都存在相反数使得x+(-x)=0
1x=x
(c1c2)x=c1(c2x)
c(x+y)=cx+cy
(c1+c2)x=c1x+c2x
它们是用于描述和约束在线性代数中的加法,乘法的运算。
特别要注意的是,这些运算都有一个原点(0),为了允许正负的出现。
线性组合:向量乘上各自对应的标量后再相加所形成的组合。(满足上述对乘法、加法的规则)
二 矩阵的意义
1.矩阵的静态含义
当把矩阵以静态信息来看待时,其信息的侧重点在于状态二字。
向量可用于描述一个事物的状态,该事物的状态由向量内各个因素来描述。
而矩阵可以视为多个维度(因素的个数)相同的向量的有序排列。
同时矩阵也可以视为一个“向量”,用于描述一个事物的状态,内部的每个向量就是矩阵的“因素”,该事物的状态由矩阵内各个向量来描述。
多个标量有序排列后形成向量,多个向量有序排列后形成矩阵,多个矩阵有序排列后形成三维张量(3D tensor)。 所以标量可以视为因素个数为1的向量,向量可以视为因素个数为1的矩阵,矩阵可以视为因素个数为1的三维张量。
2.坐标值与坐标系
描述一个事物的状态需要在一个选好的坐标系中进行,所以矩阵所包含的信息从来都是成对出现。
比如向量,这个向量并没有被赋予任何数值。但已经确定了我们要在dp的数量和problem的数量的两个因素(两个维度)下描述数据。
换句话说,坐标系已被规定好。所以当写出任何具有实际数值的向量,如时,坐标系(二维向量空间)和坐标值就同时被确定了。它实际上是
和
的缩写。二者无法分割。即使是,虽然dp,problem前没有任何具体数字。但依然包含所有因素间的比例相同的隐含信息。调换2和1的顺序同时也表示坐标轴之间的调换。
3.矩阵的动态信息
当把矩阵以动态信息来看待时,其信息的侧重点在于变化二字。这时的矩阵可以看做是一个方程。
变化可以理解为由于矩阵的作用,事物本身的变化,也可以理解为坐标系的变化。
向量可用于控制变化时所用成分的数量,即一组权重。
矩阵可以视为多个维度(因素的个数)相同的权重的有序排列。可对另一个矩阵的静态信息进行批量变化。
三 矩阵乘法的意义
矩阵可以被视为载有状态和变化两种信息的媒介。而矩阵乘法就是变化的行为。
在一个矩阵内,把矩阵内的向量理解为向量或权重都可以。
但是当两个矩阵进行矩阵乘法时,一旦选择以动态信息理解其中一个矩阵,另一个矩阵的信息就会被瞬间静态信息。
两个矩阵相乘,一个矩阵提供状态信息,另个矩阵提供变化信息。
两个矩阵相乘A*B时,
当把前者矩阵(A)中行向量理解成若干组权重,后者矩阵(B)中的行向量就是要形成组合的成分。
例如
解释90=1*11+2*14+3*17
当把后者矩阵(B)中列向量理解成若干组权重,前者矩阵(A)中的列向量就是要形成组合的成分。
注意对应行向量与列向量。
转置一个矩阵可以理解为调换一个矩阵的动态与静态信息。
单位矩阵可以被理解为动态与静态信息相同。
回想线性组合的描述(向量乘上各自对应的标量后再相加所形成的组合),因为向量的维度和权重的维度要一一对应。所以,
矩阵A(m by n)和矩阵B(p by q)能够做乘法的条件是 n = p
四 向量空间
1.空间的意义
空间的本质是一种集合。而且是能容纳所有要描述状态的集合。若超出空间范围,就要寻找正确的空间。
那什么是要描述状态呢?
这要从什么是线性代数说起。
我们是知道了什么是线性(就是那8条条件)
那什么是代数?
代数可以是任何概念
它可以是dp,可以是math,也可以是数字
而且不仅仅是物体,它也可是抽象概念
一个比较好的描述是:向量空间是描述状态的线性空间,所以:
向量空间是能容纳所有线性组合的状态空间
2.什么状态空间能容纳所有的线性组合?
假如我们要描述一个点的位置,向量的维度就是二维的,那么一个大圆盘能不能容纳所有的线性组合?肯定不能。
因为线性组合是向量乘以各自对应的标量后再相加所形成的组合,而这个标量是实数域的时候,由于实数域无线延伸,那么乘以标量后的状态也会无限延伸。所以向量空间一定是各个维度都像实数轴一样可以无线延伸。最终得到的将不会是一维下的线段,二维下的圆盘。而一定是一维下的无限延伸的直线,二维下的无限延伸的平面。
向量空间的基本特点就是各个维度都能无限延伸,且过原点。
之所以用状态二字,是因为刚才的两个维度,可以用于描述速度和时间。这时两个维度所展开的依然是一个平面,但却不是描述位置的平面。
五 子空间
子空间(subspace)可以被想成是向量空间内的向量空间,同样要满足能够容纳线性组合的条件。
1.最小子空间
只有一个状态的空间(集合)。这个状态不是其他状态,就是0。只有这样才可以在乘以标量后依然不会跑出空间外。
2.空集是否能为向量空间
不可以,空集是没有任何元素的集合,既然什么状态都没有,又怎么能够容纳线性组合。
最小的向量空间是只包含零向量的空间
3.假如上图的圆盘是个无线延伸的平面,那平面的子空间可以是平面上所有直线吗?
不可以,8个运算规则中明确规定了,一定要有原点,这样才可以包含正负。所以这个平面的子空间是所有过原点的直线,加上中心的那个原点自己所组成的最小子空间,再加上这个平面自身(最大的子空间)。
六 线性无关
1.因素的选择
但左侧的向量并不是
4个维度。而是三个。因为problem和problem是一个东西。
我们想用的是若干个毫不相关的因素去描述状态。在线性空间下的毫不相关,叫做线性无关。
2.要描述的状态是由向量来描述时怎么办?
判断两个向量是否线性无关时,可以看他是否在空间下平行。
但怎么判断几个向量之间(不一定是两个)是否线性无关?我们需要可靠的依据。
线性无关(linearly independent): 当ci表示权重,vi表示向量时,c1v1+…+ckvk=0只发生在当c1=..=ck全都等于零时。
换句话说,这些向量不可以通过线性组合形成彼此。形成彼此的情况只能是他们都是零向量。
七 张成
注意词的属性和关联词。
张成(spanning)是一个动词,动词的主语是一组向量(a set of vectors)。
描述的是一组向量通过线性组合所能形成子空间。描述的内容并不是形成的这个空间,而是形成的这个行为,是4个向量,但只可以张成一个三维空间。(因为有两维线性相关,所以并不能张成4维)
八 基底
一个向量空间的一个基底(A basis for a vector space V)是一串有顺序的向量(asequence of vectors),满足:
A、向量之间彼此线性无关 (不可多余)
B、这些向量可以张成向量空间V (不可过少)
刚刚好可以张成向量空间V的一串向量是该向量空间V的一个基底。
基底是一个类似people的复数名词,是从属于某个空间的,而不是矩阵,也不是向量。
九 维度
一个向量空间可以有无数个基底。但每个基底所包含的向量的个数(the number of vectors in every basis)是一个空间的维度。
注意:维度是空间的概念,而不是描述一个具体的向量。人们常说的n维向量实际是指n维向量空间内的向量,由于在讨论时并未给向量指定任何实际的数值,所以可以是任何值,可以张成整个空间。所以其真正描述的依旧是一个空间。并且,维度是站在观察者角度,希望在某个向量空间下尽可能的描述物体状态而选择的,并不一定是被描述者真实处在的空间。
但若是你觉得理解起来有困难。就简单记住:
互不相关的因素的个数是一个向量空间的维度
十 秩
矩阵可以视为动态和静态信息的媒介。而一个具体的矩阵到底涵盖了多少信息可以由秩(rank)来描述。
指的是一个矩阵的所有列向量所能张成的空间的维度。
矩阵的所有列向量所张成的空间叫做列空间(column space)
矩阵的所有行向量所张成的空间叫做行空间(row space)
一个矩阵的列空间的维度是这个矩阵的秩,同时也等于该矩阵行空间的维度
秩是用于描述矩阵所包含信息量的。
线性变换
最终我们想要做的就是述事物的变化。上文所有的内容都可以说是为此刻所做的铺垫。
矩阵乘以矩阵可以视作一个矩阵内部向量的批量线性变换(linear ransformation)。所以可以仅讨论由矩阵乘以向量所形成的一次线性变换。
1.什么是变换
一个从n维实数域(Rn)到m维实数域( Rm)的变换(transformation or mapping or function)T是将n维实数域(Rn)空间下任意一个向量转换成为在m维实数域( Rm)空间下对应向量T(x)
其中n维实数域(Rn)空间叫做变换的domain,m维实数域( Rm)空间叫做该变换
的codomain。
向量T(x)叫做向量x的image(变换T行为下的)
所有image组成的集合叫做变换T的range
而线性变换是是指线性规则所造成的变换,T()是由一个矩阵A来实现的。此时你就会看到无处不在的式子:
y=Ax:列向量x左乘一个矩阵后得到列向量y
例如
x是三维空间的向量(即A的domain是三维),而经过线性变换后,变成了二维空间的向量y(即A的codomain是二维)。
矩阵A可以被理解成一个函数(function),将三维空间下的每个向量投到二维空间下。
y=Ax也可以理解为x经由一个外力A,使其状态发生了改变。
分割线
几何
上面是从代数意义上的线性代数,下面我们来谈谈几何意义的线性代数。
一 向量
1.向量的意义
在不同的人眼中,向量有不同的含义
物理:向量是空间中的箭头,决定向量的是长度与方向
数学:向量可以是任何东西,只要两个向量相加且标量与向量相乘有意义即可。
计算机:向量是有序的数字列表
在下文,我们将向量考虑为从原点开始的一个有向箭头,如下
2.向量的计算
加法
我们平移第二个向量,是它的起点与第一个向量的终点重合
再画一个向量,从第一个向量的起点出发,指向第二个向量的终点
但是为什么要这么定义呢?
我们可以把每一个向量看做向某方向移动一定的距离
相加的话,就是先沿着v运动,再沿着w运动,最后总体效果相当于沿着v+w运动。
你也可以把它想成数轴上加法的一种拓展。
例如2+5就相当于先移动2,再移动5
假如我们以数学化的思想看待矢量相加的话:
平移以后
我们可以把它看成四段位移:向右1,向上2,向左3,向下1。
假如我们把四段都贴到轴上
所以我们就得到了新的向量
所以,我们得到了数学意义上的向量相加
(图中应为x1+x2,y1+y2)
乘法
它的几何意义就是把向量伸长或缩短
这种操作在几何角度就是“缩放”(Scaling)
其实这和标量的英文非常相似:“Scalars”
在数学意义上就更好理解了
直接将其分别相乘就行了
二 线性组合
1.基向量
在坐标系中,有两个非常重要的向量,分别是î和ĵ
假如我现在有一个向量(3,-2)
现在想象我们向量的x坐标是一个标量,把î拉伸为原来的三倍,y坐标也是标量把ĵ反向拉伸为2倍
这样的话,这个向量实际上是两个经过缩放后的向量和
而且î和ĵ是xy坐标系的“基向量”,合称坐标系的基
但是当我们根据这两个特殊的基向量构造坐标系的时候,就有一个有趣的问题:我们可以选择完全不同的两个坐标系吗,获得一个完全合理的新坐标系。
假如我们随便找两个不同的向量(不共线),随便缩放,相加的话,我们就能得到所有二维平面中的向量
由此可见î和ĵ就能表示所有的向量。
所以当我们用数字描述向量的时候,它都依赖于我们使用的基。
2.线性组合
我们用两个标量乘向量的和叫作两个向量的线性组合
为什么是线性呢?
我们用几何的方式来直观理解一下,就是固定一个向量,让另一个自由变换
就是得到了两条相交直线
假如任意两条向量组合的话,就要考虑是否有别的情况了
向量共线的情况下,所产生的向量的终点被限制在一条过原点的直线上
实际上还有一种情况:两个向量都是零向量,那就只能待在原点了
还有一些术语:
所有可以表示为给定向量的线性组合的向量的集合叫给定向量所张成的空间
所以,对于大部分二维向量来说,它们张成的空间是所有二维向量的集合。
共线时,张成的空间就是一条直线
当你想象所有的二维向量把直线填满时,就会觉得非常拥挤
而且当你想象向量填满二维空间时就更挤了
所以人们就常用点来代替向量。
二维向量把直线填满时,直接考虑整条直线就行了,填满二维空间的话就直接想象整个平面就行了。
3.线性相关
现在我们有一个新的术语来描述那种共线的情况。
假如你有多个向量,并且可以删去其中一个而不减小张成的空间。这样的情况我们称作他们是“线性相关”的
也就是其中有一个向量是另几个向量的线性组合:它落在其他向量的张成空间中。
反之,如果所有的向量都给了张成空间增加了新的维度,我们就叫他们“线性无关”
三 线性变换
说完组合,说说线性变换
变换的事迹意义是函数。普通的函数是待人数字,输出数字,线性变换是输入向量,输出向量
而为什么要用变换而不是函数呢?
因为变换暗示了要用运动的方式来思考线性变换
1.线性变换的几何意义
假如输入一个向量,输出一个向量
我们可以想象这个向量移动到了输出向量的位置
要理解整个变换,我们可以再想象坐标系中所有的向量都移动到了对应输出的位置
因为向量看做箭头时非常拥挤,我们可以把它当成点来考虑
这样的话运动就可以用点的位移来表示了。
以后我们同中就是用坐标线的变换来表示线性变换,这样比较直观。如:
变为
那就有疑问了,是不是可以随便乱动了呢?
并不是,因为“线性变换”被限制在了“线性”的条件下
直观的说,如果一个变换是有以下的性质,我们就叫他线性的:
比如,这些就不是线性变换
我们看这个变换
它看上去非常和善,都是直的,但是:
其实,你可以把线性变换看成“保持网格线平行且等距分布”
2.线性变换的代数意义
但是如何用数值来表述线性变换呢?
其实就是上文说的,想一个函数,带入向量,输出向量
这样的话,就只需要记录两个基变量的变换后的位置
我们考虑(-1,2)的向量
当我们变换后
通过观察以前的表格,我们能看出来变化后的i落在了(1,-2)j在(3,0)
也就是说,-1i加上2j代表的向量,就是我们所要求的向量
也就是说,我们只需要记录下变换后的i和j,就可以找出所有的变化的向量。
所以不需要看图就能说出整个变化
一个二维变换只有四个数字就能完全确定
我们可以吧ij放在同一个矩阵中,我们叫2*2矩阵
这样我们就引申出了向量乘矩阵的定义
下面有几个比较特殊的线性变换
假如变换后的ij是线性相关的
他们就会把一整个二维空间压到一条直线上
这就是列线性相关
四 矩阵乘法
1.复合变换
但是有时候我们想描述两次连续的线性变换的话,该怎么办呢?
比如先做一次旋转,再做一次剪切
我们把这个线性变换叫作复合变换。
2.矩阵乘法
我们也可以直接记录变换啊i和j
所以这个矩阵就包含了这个复合变换的所有信息
但是它自己也表示一个线性变换,这该怎么考虑呢?
我们考虑一个向量,先旋转剪切后输出和直接进行那一个线性变换是等价的。
所以,我们把它先乘旋转矩阵,再乘剪切矩阵和直接乘那一个复合矩阵是相同的:
这样的话,我认为复合矩阵是两个矩阵的乘积应该是合理的
(矩阵从右向左读,相当于f(g(x)),先读g(x))
我们现在还不知道这个矩阵相乘是如何计算出来的,但是我们要时刻记住矩阵的几何意义:线性变换
我们再看一个例子:
这里有个矩阵,我们叫它m1
我们又找了个矩阵,叫m2
我们要求m1m2相继变化的矩阵
这样的话,我们可以先看看i走到哪了
我们把第一次变换后的i拿出了,乘一下m2,就能得到复合变换后的i
j同理
随后我们就得到了结果
然而各个结果具有普遍性,假如我们用符号代替
于是我们就得到了公式
这就是如何矩阵乘
3.推论
时刻记住它的几何意义,这对矩阵乘的理解非常有帮助
比如,乘法交换律在矩阵中是否有效:
比如我们先剪切,再旋转
和先旋转,再剪切
他们显然不同,所以:
我们没有进行任何计算,就求出了
我们还可以非常简便的证明结合律
在代数,我们需要设一堆东西,麻烦的计算。。
但是在几何中,我们就可以非常愉快的想一想:这是三个变换,顺序都一样,所以是相同的。。。
五 行列式
1.行列式的定义
我们知道了有趣的一些变换,现在想象一些变换,有的把空间想外拉伸,有的把空间向内挤压。
那这些空间到底被拉伸了多少?
举个例子
它将i伸长为原来的三倍,j伸长为原来的两倍
假如我们关注一个单位正方形
变换后,他变成了一个2*3的矩形
面积从1变到了6
再举个例子,我们看一眼剪切
但是变换后不变
所以,即使整个变换将空间向右挤压,但是对于这个单位正方形来说,他的面积并不改变
实际上,你只要知道这个单位正方形的面积变换的比例,就能知道任意区域的面积变换
其实,无论一个方格怎么变换,
对于其他方格,都有对应的变换
这其实是因为“网格线保持平行且等距分布”的前提得出的
假如不是正方形的话,可以用很多正方形代替它
因为所有小正方形都按比例变换,所以整个形状都按比例变换
这个特殊的比例,就是变换的比例,就叫线性变换的行列式
2.行列式的意义
关于如何计算行列式等等再说,现在重要是理解它的意义
比如,一个矩阵的行列式的大小为3,就是把面积增加为原来的3倍
一个矩阵的行列式的大小为0.5,就是把面积减少一半
假如矩阵的行列式是0话,就表示它把整个平面压到了一条线或一个点上
还有一点,完整概念下想行列式是允许出现负值的
但是如何把一个区域缩放负数倍呢?
负数就是好像把空间翻转了
你可以想象一张纸,负值就是把它翻转了
这种变化的术语是改变了空间的定向
另一种方式来思考就是通过i和j
在初始状态时j在i的左边
变化后
当空间定向发生改变是,行列式为负
但是行列式的绝对值还是区域面积缩放的比例
为什么空间定向变换会改变它的符号呢?
你可以把行列式看做一个函数
这就很好理解了
3.计算行列式
那么,该如何计算行列式呢?
对于一个二维矩阵的话,公式是这样的
下面是他的直观来源
假如b和c恰好为0
则矩阵的面积就是ad,即使bc只有一个为0
它是一个平行四边形,面积依旧为ad
粗略的说,假如c也不为0,它就表示平行四边形在对角线方向上拉伸或缩小了多少
假如你迫切得想知道bc的精确含义,这有个图可以帮助
对于三阶行列式的话,公式是这样的
三阶行列式的本质就是他们围成的体积
其实真正的线性代数远不止这一点,写出这篇文章就是对目前所学一点线性代数皮毛的总结。希望这篇文章让线性代数在脑中有了一点模糊的概念,以后用(学)到线性代数时,可以有一点的帮助。
Thanks for reading.