精华内容
下载资源
问答
  • 矩阵论】《理解矩阵》学习笔记
    千次阅读
    2019-12-29 19:54:40

    说来惭愧,自己以前对于一些自然科学课程的学习方式确实不太正确,无论是在学习《线性代数》还是《矩阵论》,还是之前高中、本科学习的其他自然科学课程时,只求如何解答拿分而不求深入理解。这也是随着做科研时间的增加,涉及的知识面越来越广,这些弊端也就越发显露。如果这个过程颠倒,先通过实际应用让你明白学习这些课程的意义所在,这样或许可以让你带有目的性地去学习。最近在看《矩阵论》时,看到了孟岩大佬的《理解矩阵》,个人感觉学习一门课程就应该以此方式学习,所以整理了一下学习笔记,下面的内容大部分出于孟岩大佬在《理解矩阵》三节中的内容(原本打算自己浓缩一下,但是发现作者写的内容都是层层递进,连贯性比较强,所以基本上都是复制的),传送门:
    理解矩阵(一)
    理解矩阵(二)
    理解矩阵(三)

    学习一门学问,最重要的是把握主干内容,迅速建立对于这门学问的整体概念,不必一开始就考虑所有的细枝末节和特殊情况,自乱阵脚。

    前序

    很多人能够很熟练地解答各种线性代数的难题,或者以线性代数为工具进行各种科研和应用工作,但是对于这门课程初学者提出的问题、看上起很基础却无法回答,例如:

    • 矩阵究竟是什么东西?向量可以被认为是具有n个相互独立的性质(维度)的对象的表示,矩阵又是什么呢?我们如果认为矩阵是一组列(行)向量组成的新的复合向量的展开式,那么为什么这种展开式具有如此广泛的应用?特别是,为什么偏偏二维的展开式如此有用?如果矩阵中每一个元素又是一个向量,那么我们再展开一次,变成三维的立方阵,是不是更有用?

    • 矩阵的乘法规则究竟为什么这样规定?为什么这样一种怪异的乘法规则却能够在实践中发挥如此巨大的功效?很多看上去似乎是完全不相关的问题,最后竟然都归结到矩阵的乘法,这难道不是很奇妙的事情?难道在矩阵乘法那看上去莫名其妙的规则下面,包含着世界的某些本质规律?如果是的话,这些本质规律是什么?

    • 行列式究竟是一个什么东西?为什么会有如此怪异的计算规则?行列式与其对应方阵本质上是什么关系?为什么只有方阵才有对应的行列式,而一般矩阵就没有(不要觉得这个问题很蠢,如果必要,针对m x n矩阵定义行列式不是做不到的,之所以不做,是因为没有这个必要,但是为什么没有这个必要)?而且,行列式的计算规则,看上去跟矩阵的任何计算规则都没有直观的联系,为什么又在很多方面决定了矩阵的性质?难道这一切仅是巧合?

    • 矩阵为什么可以分块计算?分块计算这件事情看上去是那么随意,为什么竟是可行的?

    • 对于矩阵转置运算AT,有(AB)T = BTAT,对于矩阵求逆运算A-1,有(AB)-1 = B-1A-1。两个看上去完全没有什么关系的运算,为什么有着类似的性质?这仅仅是巧合吗?

    • 为什么说P-1AP得到的矩阵与A矩阵“相似”?这里的“相似”是什么意思?

    • 特征值和特征向量的本质是什么?它们定义就让人很惊讶,因为Ax =λx,一个诺大的矩阵的效应,竟然不过相当于一个小小的数λ,确实有点奇妙。但何至于用“特征”甚至“本征”来界定?它们刻划的究竟是什么?

    对于这些问题,经常会使得使用线性代数多年的人感到为难。所以只能用“就是这么规定的,你记住会用就行”来敷衍。即使通过纯粹的数学证明也很难回答,不能使提问者满意,这就是在线性代数教学中直觉性丧失的后果。包括我所学习的课程中,印象中的课堂教学都是通过介绍定理,数学证明开始和结束的。所以说,帮助学生建立起直觉,有助于理解那些抽象的概念,进而理解数学的本质。

    线性空间

    首先说说空间(space),这个概念是现代数学的命根子之一,从拓扑空间开始,一步步往上加定义,可以形成很多空间。线形空间其实还是比较初级的,如果在里面定义了范数,就成了赋范线性空间。赋范线性空间满足完备性,就成了巴那赫空间;赋范线性空间中定义角度,就有了内积空间,内积空间再满足完备性,就得到希尔伯特空间。
    总之,空间有很多种。你要是去看某种空间的数学定义,大致都是“存在一个集合,在这个集合上定义某某概念,然后满足某些性质”,就可以被称为空间。这未免有点奇怪,为什么要用“空间”来称呼一些这样的集合呢?大家将会看到,其实这是很有道理的。
    我们一般人最熟悉的空间,毫无疑问就是我们生活在其中的(按照牛顿的绝对时空观)的三维空间,从数学上说,这是一个三维的欧几里德空间,我们先不管那么多,先看看我们熟悉的这样一个空间有些什么最基本的特点。仔细想想我们就会知道,这个三维的空间:1. 由很多(实际上是无穷多个)位置点组成;2. 这些点之间存在相对的关系;3. 可以在空间中定义长度、角度;4. 这个空间可以容纳运动,这里我们所说的运动是从一个点到另一个点的移动(变换),而不是微积分意义上的“连续”性的运动,

    上面的这些性质中,最最关键的是第4条。第1、2条只能说是空间的基础,不算是空间特有的性质,凡是讨论数学问题,都得有一个集合,大多数还得在这个集合上定义一些结构(关系),并不是说有了这些就算是空间。而第3条太特殊,其他的空间不需要具备,更不是关键的性质。只有第4条是空间的本质,也就是说,容纳运动是空间的本质特征

    认识到了这些,我们就可以把我们关于三维空间的认识扩展到其他的空间。事实上,不管是什么空间,都必须容纳和支持在其中发生的符合规则的运动(变换)。你会发现,在某种空间中往往会存在一种相对应的变换,比如拓扑空间中有拓扑变换,线性空间中有线性变换,仿射空间中有仿射变换,其实这些变换都只不过是对应空间中允许的运动形式而已

    因此只要知道,“空间”是容纳运动的一个对象集合,而变换则规定了对应空间的运动。

    下面我们来看看线性空间。线性空间的定义任何一本书上都有,但是既然我们承认线性空间是个空间,那么有两个最基本的问题必须首先得到解决,那就是:

    1. 空间是一个对象集合,线性空间也是空间,所以也是一个对象集合。那么线性空间是什么样的对象的集合?或者说,线性空间中的对象有什么共同点吗?

    2. 线性空间中的运动如何表述的?也就是,线性变换是如何表示的?

    我们先来回答第一个问题,回答这个问题的时候其实是不用拐弯抹角的,可以直截了当的给出答案。线性空间中的任何一个对象,通过选取基和坐标的办法,都可以表达为向量的形式。向量是很厉害的,只要你找到合适的基,用向量可以表示线性空间里任何一个对象。这里头大有文章,因为向量表面上只是一列数,但是其实由于它的有序性,所以除了这些数本身携带的信息之外,还可以在每个数的对应位置上携带信息。为什么在程序设计中数组最简单,却又威力无穷呢?根本原因就在于此。这是另一个问题了,这里就不说了。
    下面来回答第二个问题,这个问题的回答会涉及到线性代数的一个最根本的问题。

    线性空间中的运动,被称为线性变换。也就是说,你从线性空间中的一个点运动到任意的另外一个点,都可以通过一个线性变化来完成。那么,线性变换如何表示呢?很有意思,在线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换)。而使某个对象发生对应运动的方法,就是用代表那个运动的矩阵,乘以代表那个对象的向量。

    简而言之,在线性空间中选定基之后,向量刻画对象,矩阵刻画对象的运动,用矩阵与向量的乘法施加运动。

    矩阵和线性变换

    所谓变换,就是空间中一个点到另一个点的跃迁。
    矩阵的完整定义为:矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定了一组基,那么对于任何一个线性变换,都能用一个确定的矩阵加以描述。
    同样的,对于一个线性变换,只要选定了一组基,那么就可以找到一个矩阵来描述这个线性变换。换一组基,就得到一个不同的矩阵,所有的这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。
    类比作者举的例子:在给一头猪拍照时,从不同角度拍摄可以得到从多个角度对这头猪的描述,但是这些描述并不是这头猪本身。
    既然这样的话,给定两个矩阵,怎么判断它们是描述同一线性变换的呢?定理就是:若矩阵A和B是同一线性变换T的两个不同描述(选定的基不同,也就是坐标系不同,所以会不同),则一定能找到一个非奇异(方阵,行列式不为零)矩阵P,使得A与B之间满足: A = P − 1 B P A = P^{-1}BP A=P1BP,也即是矩阵A与B相似,所以可以这么理解相似矩阵:所谓相似矩阵,就是对同一个线性变换的不同描述矩阵。这样的话,就是同一头猪(线性变换)的不同角度的照片(矩阵)也可以成为相似照片。而上面的特征矩阵P就是A矩阵所基于的基和B矩阵所基于的基,这两组基之间的变换关系。
    到现在的话就明白了,一组相似矩阵都是同一个线性变换的描述。这样的话,再来看研究生的《矩阵论》课程,其中讲到的各种各样的相似变换,例如相似标准型、对角化之类的内容,都要求变换之后得到的矩阵与之前的矩阵相似,为的就是保证变换前后的两个矩阵是描述同一个线性变换的。之所以要进行这种相似变换,目的是有些描述矩阵比其他的一般矩阵性质更好。再拿猪的例子,一头猪拍摄的一组照片毕竟也是有美丑之分的。
    所以到现在为止,矩阵作为线性变换的描述基本上说清楚了,另外就是,矩阵不仅可以作为线性变换的描述,而且可以作为一组基的描述。作为变换的矩阵,不但可以把线性空间中的一个点给变换到另一个点去,而且也能把线性空间中的一个基(坐标系)变换到另一个基(坐标系)中去。而且变换点和变换坐标系有异曲同工的效果。

    总结前面知识:

    1. 首先有空间,空间可以容纳对象运动的。一种空间对应一类对象。
    2. 有一种空间叫线性空间,线性空间是容纳向量对象运动的。
    3. 运动是瞬时的,因此也被称为变换。
    4. 矩阵是线性空间中运动(变换)的描述。
    5. 矩阵与向量相乘,就是实施运动(变换)的过程。
    6. 同一个变换,在不同的坐标系下表现为不同的矩阵,但是它们的本质是一样的,所以本征值相同。

    只考虑n维线性空间的n阶非奇异矩阵。一组矩阵就是由一组向量组成的,而且如果矩阵非奇异的话(每组向量都是线性无关的),也就是可以成为线性空间的一个坐标系,这样矩阵就描述了一个坐标系。前面说了矩阵是描述运动的(线性变换),而这并不矛盾,因为运动等价于坐标系变换,或者固定坐标系下的一个对象的变换等价于固定对象所处的坐标系的变换,也就是运动是相对的。
    对坐标系施加变换的方法,就是让表示那个坐标系的矩阵与表示那个变化的矩阵相乘

    从变换和坐标系的观点解释矩阵乘法M×N:
    1、从变换的观点看,对坐标系N施加M变换,就是把组成坐标系N的每一个向量施加M变换。
    2、从坐标系的观点看,在M坐标系中表现为N的另一个坐标系,这也归结为,对N坐标系基的每一个向量,把它在I坐标系中的坐标找出来,然后汇成一个新的矩阵。

    矩阵M的行列式实际上是组成M的各个向量按照平行四边形法则搭成一个n维立方体的体积。

    更多相关内容
  • 由于传统的高斯矩阵、伯努利矩阵等观测矩阵在硬件上实现比较困难,观测矩阵的构建一直是压缩传感硬件实现的关键问题之一,因此,选择构建合适的观测矩阵,对于嵌入式视觉压缩传感的实现具有重要的意义。针对嵌入式...
  • 关键技术是:(i)提出一种检索图像内容纹理统计特征的新方法。定义若干规范灰度像素模式基元;计算这些基元沿不同方向和不同跨距成对出现的概率,可以组成灰度-基元共生矩阵;该矩阵可用来描述图像纹理方面的特征...
  • 一、知识点回顾、 1、线性规划三要素、 2、线性规划一般形式、 3、线性规划标准形式、 二、线性规划解、可行解、最优解、 三、阶梯型矩阵、 四、阶梯型矩阵向量、 五、基、基向量、基变量、非基变量、





    一、知识点回顾





    1、线性规划三要素


    线性规划三要素 :

    • 决策变量 : x 1 , x 2 , ⋯ x_1 , x_2 , \cdots x1,x2,
    • 目标条件 : 决策变量的线性函数 , 求最大值或最小值 ;
    • 约束条件 : 一组由决策变量组成的等式或不等式 ;


    2、线性规划一般形式


    m a x ( m i n ) z = ∑ j = 1 n c j x j { ∑ j = 1 n a i j x j = b i ( i = 1 , 2 ⋯ m ) x j ≥ 0 ( i = 1 , 2 ⋯ n ) \begin{array}{lcl}max (min) z = \sum_{j=1}^{n}c_j x_j\\ \\ \begin{cases} \sum_{j=1}^{n} a_{ij}x_j = b_i & (i = 1 , 2 \cdots m) \\ \\x_j \geq 0 & (i = 1 , 2 \cdots n) \end{cases}\end{array} max(min)z=j=1ncjxjj=1naijxj=bixj0(i=1,2m)(i=1,2n)



    3、线性规划标准形式


    标准形式特点及转化步骤 : 按照如下顺序进行处理 ;

    • 约束条件都是等式 , 且右侧常数 ≥ 0 \geq 0 0 , 小于等于不等式加上松弛变量 , 大于等于不等式减去剩余变量 ;
    • 决策变量 ≥ 0 \geq 0 0 , 没有约束的变量 x j = x j ′ − x j ′ ′ x_j = x_j' - x_j'' xj=xjxj , 使用两个变量代替 1 1 1 个变量 ;
    • 目标函数求最大值 , 如果是求最小值 , 目标函数 × − 1 \times -1 ×1 ;

    线性规划标准形式 :

    m a x Z = ∑ j = 1 n c j x j s . t { ∑ j = 1 n a i j x j ≤ ( = ⋅ ≥ ) b i i = 1 , 2 , ⋯   , m x j ≥ 0 j = 1 , 2 , ⋯   , n \begin{array}{lcl}max Z = \sum_{j = 1}^{n} c_j x_j\\\\ s.t \begin{cases} \sum_{j = 1}^{n} a_{ij} x_j \leq ( = \cdot \geq) b_i & i = 1,2,\cdots,m \\ \\ x_j \geq 0 & j= 1, 2,\cdots,n \end{cases}\end{array} maxZ=j=1ncjxjs.tj=1naijxj(=)bixj0i=1,2,,mj=1,2,,n





    二、线性规划解、可行解、最优解



    线性规划标准形式如下 :

    m a x Z = ∑ j = 1 n c j x j s . t { ∑ j = 1 n a i j x j = b i i = 1 , 2 , ⋯   , m x j ≥ 0 j = 1 , 2 , ⋯   , n \begin{array}{lcl}max Z = \sum_{j = 1}^{n} c_j x_j\\\\ s.t \begin{cases} \sum_{j = 1}^{n} a_{ij} x_j = b_i & i = 1,2,\cdots,m \\ \\ x_j \geq 0 & j= 1, 2,\cdots,n \end{cases}\end{array} maxZ=j=1ncjxjs.tj=1naijxj=bixj0i=1,2,,mj=1,2,,n



    可行解 : 满足约束条件的解 , 称为可行解 ;

    可行域 : 所有的可行解组成的集合 , 称为可行域 ;

    最优解 : 使目标函数达到最大值的可行解 , 称为最优解 ;


    线性规划求解就是在 可行解 中找出一个 最优解 ;


    将线性规划转化为标准形式 , 就可以使用求解方程组的方法 , 求解线性规划的可行解 ;





    三、阶梯型矩阵



    拿到一个方程组 A X = B AX = B AX=B , 其中

    • A A A m × n m \times n m×n 的矩阵
    • X X X n × 1 n \times 1 n×1 维向量
    • B B B m × 1 m \times 1 m×1 维向量

    这是线性规划的矩阵形式 , 参考 【运筹学】线性规划数学模型 ( 三要素 | 一般形式 | 向量形式 | 矩阵形式 ) VI 线性规划数学模型矩阵形式


    解上述方程组 , 使用高斯方程 , 高斯消元法 ;

    将系数矩阵 A A A B B B 做成一个矩阵 ( A B ) \bigl( A B \bigr) (AB) , 进行行变换 , 消元成阶梯形式 , 此时可以判断该方程组是否有解 , 如果有 , 可以将所有的解解出来 , 求解时 , 阶梯元素很关键 ,

    阶梯型矩阵参考 : 矩阵中每行的第一个不为零的元素 , 其左侧和下方全是 0 ;



    高斯消元法示例 : 求解下面的方程组 ;

    { x 1 + x 2 + x 3 = 8 x 2 − x 3 = 2 \begin{cases} x_1 + x_2 + x_3 = 8 \\ \\ x_2 - x_3 = 2 \end{cases} x1+x2+x3=8x2x3=2

    ( A B ) \bigl( A B \bigr) (AB) 矩阵为 [ 1 1 1 8 0 1 − 1 2 ] \begin{bmatrix} &1 & 1 & 1 & 8 & \\\\ &0 & 1 & -1 & 2 & \end{bmatrix} 10111182


    找到阶梯型矩阵 : 前两列就是阶梯型矩阵 ;

    在这里插入图片描述

    前两列的矩阵 [ 1 1 0 1 ] \begin{bmatrix} &1 & 1 & \\\\ &0 & 1 & \end{bmatrix} 1011 就是特殊矩阵 , 分别是 x 1 x_1 x1 x 2 x_2 x2 对应的矩阵 ;

    在这里插入图片描述

    x 3 x_3 x3 是特殊的变量 , 其可以任意取值的 , x 3 x_3 x3 取任意值时 , 通过阶梯型矩阵 , 可以计算出 x 1 x_1 x1 x 2 x_2 x2 的值 ;


    假设 x 3 x_3 x3 取值为 k k k , 那么 :

    • x 2 = k + 2 x_2 = k + 2 x2=k+2
    • x 1 = 6 − 2 k x_1 = 6 - 2k x1=62k




    四、阶梯型矩阵向量



    { x 1 + x 2 + x 3 = 8 x 2 − x 3 = 2 \begin{cases} x_1 + x_2 + x_3 = 8 \\ \\ x_2 - x_3 = 2 \end{cases} x1+x2+x3=8x2x3=2

    方程组中有如下向量 :

    • x 1 x_1 x1 对应的矩阵列向量 [ 1 0 ] \begin{bmatrix} &1 & \\\\ &0 & \end{bmatrix} 10 称为 P 1 P_1 P1 ,

    • x 2 x_2 x2 对应的矩阵列向量 [ 1 1 ] \begin{bmatrix} &1 & \\\\ &1 & \end{bmatrix} 11 称为 P 2 P_2 P2 ,

    • x 3 x_3 x3 对应的矩阵列向量 [ 1 − 1 ] \begin{bmatrix} &1 & \\\\ &-1 & \end{bmatrix} 11 称为 P 3 P_3 P3 ,

    写成向量形式 (   P 1   P 2   P 3   b   ) \bigl( \ P_1 \ P_2 \ P_3 \ b \ \bigr) ( P1 P2 P3 b ) , 在上方程组的矩阵中 , 找到阶梯型矩阵后 , 阶梯型矩阵对应的向量 P 1 P_1 P1 P 2 P_2 P2 是特殊的 ;


    (   P 1   P 2   ) \bigl( \ P_1 \ P_2 \ \bigr) ( P1 P2 ) 两个列向量构成了 2 × 2 2 \times 2 2×2 二阶方阵 , 该方阵是阶梯型矩阵 , 是可逆的 ;


    可逆矩阵参考


    上述方程组可以写成 P 1 x 1 + P 2 x 2 + P 3 x 3 = b P_1x_1 + P_2 x_2 + P_3x_3 = b P1x1+P2x2+P3x3=b 形式 ;

    有如下计算推导过程 :

    A X = B AX = B AX=B

    P 1 x 1 + P 2 x 2 + P 3 x 3 = b P_1x_1 + P_2 x_2 + P_3x_3 = b P1x1+P2x2+P3x3=b

    (   P 1   P 2   ) ( x 1 x 2 ) + P 3 x 3 = b \bigl( \ P_1 \ P_2 \ \bigr) \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} + P_3x_3 = b ( P1 P2 )(x1x2)+P3x3=b

    (   P 1   P 2   ) \bigl( \ P_1 \ P_2 \ \bigr) ( P1 P2 ) 当做一个矩阵 B B B , 将 ( x 1 x 2 ) \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} (x1x2) 当做一个矩阵 X B X_B XB ;

    将整个系数矩阵 除了 B B B 之外剩下的矩阵称为 N N N , 对应的变量矩阵称为 X N X_N XN ;

    B X B + N X N = b BX_B + NX_N = b BXB+NXN=b


    在上述矩阵的表达式中 , 方程组 { x 1 + x 2 + x 3 = 8 x 2 − x 3 = 2 \begin{cases} x_1 + x_2 + x_3 = 8 \\ \\ x_2 - x_3 = 2 \end{cases} x1+x2+x3=8x2x3=2一定有一个系数矩阵的子矩阵 B B B 是特殊的矩阵 ;



    B B B 矩阵与 A A A 矩阵的关系 :


    • A A A 矩阵是 m × n m \times n m×n 维的矩阵 , m m m 行 , n n n 列 , n n n 个变量 , m m m 个等式 ;

    • A A A 的秩为 m m m , n ≥ m n \geq m nm ;

    • 矩阵 B B B 就是 m × m m \times m m×m 的方阵 ;


    线性规划前提 :

    • 这里说明一下 , 如果 n ≤ m n \leq m nm , 那么该方程组有唯一解 , 或无解 ;

    • 整个运筹学讨论的就是等式个数 m m m 少于变量个数 n n n , 有多个解的情况下 , 如何找出最优解 , 因此其矩阵的秩就是等式个数 m m m ;





    五、基、基向量、基变量、非基变量



    A A A 矩阵是 m × n m \times n m×n 维的矩阵 , m m m 行 , n n n 列 , 线性规划中 , n n n 个变量 , m m m 个等式 ;

    矩阵 A A A 的秩是 m m m , 即等式个数 ;

    矩阵 A A A 中肯定能找到一个可逆的方阵 , 矩阵 B B B ;

    矩阵 B B B 是矩阵 A A A 中的满秩子矩阵 , 则称该 矩阵 B B B 是线性规划问题的一个 基 ;


    P 1 x 1 + P 2 x 2 + P 3 x 3 = b P_1x_1 + P_2 x_2 + P_3x_3 = b P1x1+P2x2+P3x3=b

    上述示例中的 (   P 1   P 2   ) \bigl( \ P_1 \ P_2 \ \bigr) ( P1 P2 ) 就是线性规划中的基 ;

    (   P 1   P 2   ) \bigl( \ P_1 \ P_2 \ \bigr) ( P1 P2 ) , (   P 1   P 3   ) \bigl( \ P_1 \ P_3 \ \bigr) ( P1 P3 ) , (   P 2   P 3   ) \bigl( \ P_2 \ P_3 \ \bigr) ( P2 P3 ) 都是线性规划的基 ;



    基向量 : 上述 基矩阵 中的 P 1 , P 2 , P 3 P_1 , P_2 , P_3 P1,P2,P3 列向量 , 称为 基向量 ;

    基变量 : 与基向量相乘的 x 1 , x 2 , x 3 x_1 , x_2, x_3 x1,x2,x3 变量 , 称为 基变量 ;

    非基变量 : 基变量之外的其它变量 , 称为非基变量 ;

    展开全文
  • 提取耦合系数矩阵是提高滤波器调谐效率的关键。该文提出了一种基于Jacobi矩阵逆特征值理论的耦合系数矩阵提取方法,它通过测量滤波器单端口反射系数的相位得出矩阵的特征值,进而通过求解Jacobi矩阵的逆特征值问题由...
  • 摘 要 : 特征提取是合成孔径雷达自动目标识别的关键技术 ,同时也是难点问题之一. 本文提出了一种基于非 负矩阵分解算法与 Fisher 线性判别方法的合成孔径雷达图像目标识别的方法 ,通过基于基向量非负加权组合的形式 ...
  • 关键技术之一是地址码的构造。 针对大多数光学正交码(OOC)的构造算法都是基于OOC的内积表示的事实,它们只能构造某些参数OOC,并且(F,K,1),OOC的基数较小。 它不能满足光网络的要求。 提出并仿真了一种...
  • 从直流潮流入手,结合矩阵理论,提出一种基于网络拓扑结构确定潮流转移区域及计算潮流转移量的方法,基于此定义潮流转移分布熵和负荷冲击灵敏度熵,提出关键线路综合评价指标。该指标既能衡量线路断开后系统内潮流...
  • 矩阵的前世今生

    2018-01-25 19:43:17
    coffeecato写在前面:在游戏开发的过程中总会遇到矩阵相关的问题,而我自从大学《线性代数》蒙混过关之后,就很少再去了解这方面的东西。总对矩阵这东西讳莫如深,搞不懂,却躲不掉。今天在理解矩阵矩阵背后的现实...

    coffeecato写在前面:

    在游戏开发的过程中总会遇到矩阵相关的问题,而我自从大学《线性代数》蒙混过关之后,就很少再去了解这方面的东西。总对矩阵这东西讳莫如深,搞不懂,却躲不掉。今天在理解矩阵,矩阵背后的现实意义 发现了孟岩前辈于10年前写的文章,一口气读完,连我这种数学渣都能在大脑中对矩阵有了大概的认知。游戏开发,尤其涉及到图形学方面,很多时候不只是公式的堆砌,更多的时候需要理解公式背后的几何意义才能更好的运用。而矩阵就是横在很多像我一样的数学渣与图形学之间的一道鸿沟,读完此文真的想重新再学一遍《线性代数》。

    此外,本文行文的过程让我多次联想到很像刘未鹏前辈在《暗时间》中分析问题的过程。学习抽象的概念,一定要多问几个为什么,搞清楚某个概念出现的原因,出现时用于解决的问题,要远比背下公式机械地去解题重要的多,也深刻的多。


    原文地址:http://blog.csdn.net/myan/article/details/647511


    理解矩阵(一)

    前不久chensh出于不可告人的目的,要充当老师,教别人线性代数。于是我被揪住就线性代数中一些务虚性的问题与他讨论了几次。很明显,chensh觉得,要让自己在讲线性代数的时候不被那位强势的学生认为是神经病,还是比较难的事情。

    可怜的chensh,谁让你趟这个地雷阵?!色令智昏啊!

    线性代数课程,无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙。比如说,在全国一般工科院系教学中应用最广泛的同济线性代数教材(现在到了第四版),一上来就介绍逆序数这个前无古人,后无来者的古怪概念,然后用逆序数给出行列式的一个极不直观的定义,接着是一些简直犯傻的行列式性质和习题——把这行乘一个系数加到另一行上,再把那一列减过来,折腾得那叫一个热闹,可就是压根看不出这个东西有嘛用。大多数像我一样资质平庸的学生到这里就有点犯晕:连这是个什么东西都模模糊糊的,就开始钻火圈表演了,这未免太无厘头了吧!于是开始有人逃课,更多的人开始抄作业。这下就中招了,因为其后的发展可以用一句峰回路转来形容,紧跟着这个无厘头的行列式的,是一个同样无厘头但是伟大的无以复加的家伙的出场——矩阵来了!多年之后,我才明白,当老师犯傻似地用中括号把一堆傻了吧叽的数括起来,并且不紧不慢地说:这个东西叫做矩阵的时候,我的数学生涯掀开了何等悲壮辛酸、惨绝人寰的一幕!自那以后,在几乎所有跟学问二字稍微沾点边的东西里,矩阵这个家伙从不缺席。对于我这个没能一次搞定线性代数的笨蛋来说,矩阵老大的不请自来每每搞得我灰头土脸,头破血流。长期以来,我在阅读中一见矩阵,就如同阿Q见到了假洋鬼子,揉揉额角就绕道走。

    事实上,我并不是特例。一般工科学生初学线性代数,通常都会感到困难。这种情形在国内外皆然。瑞典数学家Lars Garding在其名著Encounter with Mathematics中说:如果不熟悉线性代数的概念,要去学习自然科学,现在看来就和文盲差不多。然而按照现行的国际标准,线性代数是通过公理化来表述的,它是第二代数学模型,...,这就带来了教学上的困难。事实上,当我们开始学习线性代数的时候,不知不觉就进入了第二代数学模型的范畴当中,这意味着数学的表述方式和抽象性有了一次全面的进化,对于从小一直在第一代数学模型,即以实用为导向的、具体的数学模型中学习的我们来说,在没有并明确告知的情况下进行如此剧烈的paradigm shift,不感到困难才是奇怪的。

    大部分工科学生,往往是在学习了一些后继课程,如数值分析、数学规划、矩阵论之后,才逐渐能够理解和熟练运用线性代数。即便如此,不少人即使能够很熟练地以线性代数为工具进行科研和应用工作,但对于很多这门课程的初学者提出的、看上去是很基础的问题却并不清楚。比如说:

    矩阵究竟是什么东西?向量可以被认为是具有n个相互独立的性质(维度)的对象的表示,矩阵又是什么呢?我们如果认为矩阵是一组列(行)向量组成的新的复合向量的展开式,那么为什么这种展开式具有如此广泛的应用?特别是,为什么偏偏二维的展开式如此有用?如果矩阵中每一个元素又是一个向量,那么我们再展开一次,变成三维的立方阵,是不是更有用?

    矩阵的乘法规则究竟为什么这样规定?为什么这样一种怪异的乘法规则却能够在实践中发挥如此巨大的功效?很多看上去似乎是完全不相关的问题,最后竟然都归结到矩阵的乘法,这难道不是很奇妙的事情?难道在矩阵乘法那看上去莫名其妙的规则下面,包含着世界的某些本质规律?如果是的话,这些本质规律是什么?

    行列式究竟是一个什么东西?为什么会有如此怪异的计算规则?行列式与其对应方阵本质上是什么关系?为什么只有方阵才有对应的行列式,而一般矩阵就没有(不要觉得这个问题很蠢,如果必要,针对m x n矩阵定义行列式不是做不到的,之所以不做,是因为没有这个必要,但是为什么没有这个必要)?而且,行列式的计算规则,看上去跟矩阵的任何计算规则都没有直观的联系,为什么又在很多方面决定了矩阵的性质?难道这一切仅是巧合?

    矩阵为什么可以分块计算?分块计算这件事情看上去是那么随意,为什么竟是可行的?

    对于矩阵转置运算AT,有(AB)T = BTAT,对于矩阵求逆运算A-1,有(AB)-1 = B-1A-1。两个看上去完全没有什么关系的运算,为什么有着类似的性质?这仅仅是巧合吗?

    为什么说P-1AP得到的矩阵与A矩阵相似?这里的相似是什么意思?

    * 特征值和特征向量的本质是什么?它们定义就让人很惊讶,因为Ax =λx,一个诺大的矩阵的效应,竟然不过相当于一个小小的数λ,确实有点奇妙。但何至于用特征甚至本征来界定?它们刻划的究竟是什么?

    这样的一类问题,经常让使用线性代数已经很多年的人都感到为难。就好像大人面对小孩子的刨根问底,最后总会迫不得已地说就这样吧,到此为止一样,面对这样的问题,很多老手们最后也只能用:就是这么规定的,你接受并且记住就好来搪塞。然而,这样的问题如果不能获得回答,线性代数对于我们来说就是一个粗暴的、不讲道理的、莫名其妙的规则集合,我们会感到,自己并不是在学习一门学问,而是被不由分说地抛到一个强制的世界中,只是在考试的皮鞭挥舞之下被迫赶路,全然无法领略其中的美妙、和谐与统一。直到多年以后,我们已经发觉这门学问如此的有用,却仍然会非常迷惑:怎么这么凑巧?

    我认为,这是我们的线性代数教学中直觉性丧失的后果。上述这些涉及到如何能怎么会的问题,仅仅通过纯粹的数学证明来回答,是不能令提问者满意的。比如,如果你通过一般的证明方法论证了矩阵分块运算确实可行,那么这并不能够让提问者的疑惑得到解决。他们真正的困惑是:矩阵分块运算为什么竟然是可行的?究竟只是凑巧,还是说这是由矩阵这种对象的某种本质所必然决定的?如果是后者,那么矩阵的这些本质是什么?只要对上述那些问题稍加考虑,我们就会发现,所有这些问题都不是单纯依靠数学证明所能够解决的。像我们的教科书那样,凡事用数学证明,最后培养出来的学生,只能熟练地使用工具,却欠缺真正意义上的理解。

    自从1930年代法国布尔巴基学派兴起以来,数学的公理化、系统性描述已经获得巨大的成功,这使得我们接受的数学教育在严谨性上大大提高。然而数学公理化的一个备受争议的副作用,就是一般数学教育中直觉性的丧失。数学家们似乎认为直觉性与抽象性是矛盾的,因此毫不犹豫地牺牲掉前者。然而包括我本人在内的很多人都对此表示怀疑,我们不认为直觉性与抽象性一定相互矛盾,特别是在数学教育中和数学教材中,帮助学生建立直觉,有助于它们理解那些抽象的概念,进而理解数学的本质。反之,如果一味注重形式上的严格性,学生就好像被迫进行钻火圈表演的小白鼠一样,变成枯燥的规则的奴隶。

    对于线性代数的类似上述所提到的一些直觉性的问题,两年多来我断断续续地反复思考了四、五次,为此阅读了好几本国内外线性代数、数值分析、代数和数学通论性书籍,其中像前苏联的名著《数学:它的内容、方法和意义》、龚昇教授的《线性代数五讲》、前面提到的Encounter with Mathematics(《数学概观》)以及Thomas A. Garrity的《数学拾遗》都给我很大的启发。不过即使如此,我对这个主题的认识也经历了好几次自我否定。比如以前思考的一些结论曾经写在自己的blog里,但是现在看来,这些结论基本上都是错误的。因此打算把自己现在的有关理解比较完整地记录下来,一方面是因为我觉得现在的理解比较成熟了,可以拿出来与别人探讨,向别人请教。另一方面,如果以后再有进一步的认识,把现在的理解给推翻了,那现在写的这个snapshot也是很有意义的。

    因为打算写得比较多,所以会分几次慢慢写。也不知道是不是有时间慢慢写完整,会不会中断,写着看吧。

    --------------------------------------------------------------------------

    今天先谈谈对线形空间和矩阵的几个核心概念的理解。这些东西大部分是凭着自己的理解写出来的,基本上不抄书,可能有错误的地方,希望能够被指出。但我希望做到直觉,也就是说能把数学背后说的实质问题说出来。

    首先说说空间(space),这个概念是现代数学的命根子之一,从拓扑空间开始,一步步往上加定义,可以形成很多空间。线形空间其实还是比较初级的,如果在里面定义了范数,就成了赋范线性空间。赋范线性空间满足完备性,就成了巴那赫空间;赋范线性空间中定义角度,就有了内积空间,内积空间再满足完备性,就得到希尔伯特空间。

    总之,空间有很多种。你要是去看某种空间的数学定义,大致都是存在一个集合,在这个集合上定义某某概念,然后满足某些性质,就可以被称为空间。这未免有点奇怪,为什么要用空间来称呼一些这样的集合呢?大家将会看到,其实这是很有道理的。

    我们一般人最熟悉的空间,毫无疑问就是我们生活在其中的(按照牛顿的绝对时空观)的三维空间,从数学上说,这是一个三维的欧几里德空间,我们先不管那么多,先看看我们熟悉的这样一个空间有些什么最基本的特点。仔细想想我们就会知道,这个三维的空间:1. 由很多(实际上是无穷多个)位置点组成;2. 这些点之间存在相对的关系;3. 可以在空间中定义长度、角度;4. 这个空间可以容纳运动,这里我们所说的运动是从一个点到另一个点的移动(变换),而不是微积分意义上的连续性的运动,

    上面的这些性质中,最最关键的是第4条。第12条只能说是空间的基础,不算是空间特有的性质,凡是讨论数学问题,都得有一个集合,大多数还得在这个集合上定义一些结构(关系),并不是说有了这些就算是空间。而第3条太特殊,其他的空间不需要具备,更不是关键的性质。只有第4条是空间的本质,也就是说,容纳运动是空间的本质特征。

    认识到了这些,我们就可以把我们关于三维空间的认识扩展到其他的空间。事实上,不管是什么空间,都必须容纳和支持在其中发生的符合规则的运动(变换)。你会发现,在某种空间中往往会存在一种相对应的变换,比如拓扑空间中有拓扑变换,线性空间中有线性变换,仿射空间中有仿射变换,其实这些变换都只不过是对应空间中允许的运动形式而已。

    因此只要知道空间是容纳运动的一个对象集合,而变换则规定了对应空间的运动。

    下面我们来看看线性空间。线性空间的定义任何一本书上都有,但是既然我们承认线性空间是个空间,那么有两个最基本的问题必须首先得到解决,那就是:

    1. 空间是一个对象集合,线性空间也是空间,所以也是一个对象集合。那么线性空间是什么样的对象的集合?或者说,线性空间中的对象有什么共同点吗?

    2. 线性空间中的运动如何表述的?也就是,线性变换是如何表示的?

    我们先来回答第一个问题,回答这个问题的时候其实是不用拐弯抹角的,可以直截了当的给出答案。线性空间中的任何一个对象,通过选取基和坐标的办法,都可以表达为向量的形式。通常的向量空间我就不说了,举两个不那么平凡的例子:

    L1. 最高次项不大于n次的多项式的全体构成一个线性空间,也就是说,这个线性空间中的每一个对象是一个多项式。如果我们以x0, x1, ..., xn为基,那么任何一个这样的多项式都可以表达为一组n+1维向量,其中的每一个分量ai其实就是多项式中x(i-1)项的系数。值得说明的是,基的选取有多种办法,只要所选取的那一组基线性无关就可以。这要用到后面提到的概念了,所以这里先不说,提一下而已。

    L2. 闭区间[a, b]上的n阶连续可微函数的全体,构成一个线性空间。也就是说,这个线性空间的每一个对象是一个连续函数。对于其中任何一个连续函数,根据魏尔斯特拉斯定理,一定可以找到最高次项不大于n的多项式函数,使之与该连续函数的差为0,也就是说,完全相等。这样就把问题归结为L1了。后面就不用再重复了。

    所以说,向量是很厉害的,只要你找到合适的基,用向量可以表示线性空间里任何一个对象。这里头大有文章,因为向量表面上只是一列数,但是其实由于它的有序性,所以除了这些数本身携带的信息之外,还可以在每个数的对应位置上携带信息。为什么在程序设计中数组最简单,却又威力无穷呢?根本原因就在于此。这是另一个问题了,这里就不说了。

    下面来回答第二个问题,这个问题的回答会涉及到线性代数的一个最根本的问题。

    线性空间中的运动,被称为线性变换。也就是说,你从线性空间中的一个点运动到任意的另外一个点,都可以通过一个线性变化来完成。那么,线性变换如何表示呢?很有意思,在线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换)。而使某个对象发生对应运动的方法,就是用代表那个运动的矩阵,乘以代表那个对象的向量。

    简而言之,在线性空间中选定基之后,向量刻画对象,矩阵刻画对象的运动,用矩阵与向量的乘法施加运动。

    是的,矩阵的本质是运动的描述。如果以后有人问你矩阵是什么,那么你就可以响亮地告诉他,矩阵的本质是运动的描述。(chensh,说你呢!)

    可是多么有意思啊,向量本身不是也可以看成是n x 1矩阵吗?这实在是很奇妙,一个空间中的对象和运动竟然可以用相类同的方式表示。能说这是巧合吗?如果是巧合的话,那可真是幸运的巧合!可以说,线性代数中大多数奇妙的性质,均与这个巧合有直接的关系。


    理解矩阵(二) 

    接着理解矩阵。

    上一篇里说矩阵是运动的描述,到现在为止,好像大家都还没什么意见。但是我相信早晚会有数学系出身的网友来拍板转。因为运动这个概念,在数学和物理里是跟微积分联系在一起的。我们学习微积分的时候,总会有人照本宣科地告诉你,初等数学是研究常量的数学,是研究静态的数学,高等数学是变量的数学,是研究运动的数学。大家口口相传,差不多人人都知道这句话。但是真知道这句话说的是什么意思的人,好像也不多。简而言之,在我们人类的经验里,运动是一个连续过程,从A点到B点,就算走得最快的光,也是需要一个时间来逐点地经过AB之间的路径,这就带来了连续性的概念。而连续这个事情,如果不定义极限的概念,根本就解释不了。古希腊人的数学非常强,但就是缺乏极限观念,所以解释不了运动,被芝诺的那些著名悖论(飞箭不动、飞毛腿阿喀琉斯跑不过乌龟等四个悖论)搞得死去活来。因为这篇文章不是讲微积分的,所以我就不多说了。有兴趣的读者可以去看看齐民友教授写的《重温微积分》。我就是读了这本书开头的部分,才明白高等数学是研究运动的数学这句话的道理。

    不过在我这个《理解矩阵》的文章里,运动的概念不是微积分中的连续性的运动,而是瞬间发生的变化。比如这个时刻在A点,经过一个运动,一下子就跃迁到了B点,其中不需要经过A点与B点之间的任何一个点。这样的运动,或者说跃迁,是违反我们日常的经验的。不过了解一点量子物理常识的人,就会立刻指出,量子(例如电子)在不同的能量级轨道上跳跃,就是瞬间发生的,具有这样一种跃迁行为。所以说,自然界中并不是没有这种运动现象,只不过宏观上我们观察不到。但是不管怎么说,运动这个词用在这里,还是容易产生歧义的,说得更确切些,应该是跃迁。因此这句话可以改成:

    矩阵是线性空间里跃迁的描述

    可是这样说又太物理,也就是说太具体,而不够数学,也就是说不够抽象。因此我们最后换用一个正牌的数学术语——变换,来描述这个事情。这样一说,大家就应该明白了,所谓变换,其实就是空间里从一个点(元素/对象)到另一个点(元素/对象)的跃迁。比如说,拓扑变换,就是在拓扑空间里从一个点到另一个点的跃迁。再比如说,仿射变换,就是在仿射空间里从一个点到另一个点的跃迁。附带说一下,这个仿射空间跟向量空间是亲兄弟。做计算机图形学的朋友都知道,尽管描述一个三维对象只需要三维向量,但所有的计算机图形学变换矩阵都是4 x 4的。说其原因,很多书上都写着为了使用中方便,这在我看来简直就是企图蒙混过关。真正的原因,是因为在计算机图形学里应用的图形变换,实际上是在仿射空间而不是向量空间中进行的。想想看,在向量空间里相一个向量平行移动以后仍是相同的那个向量,而现实世界等长的两个平行线段当然不能被认为同一个东西,所以计算机图形学的生存空间实际上是仿射空间。而仿射变换的矩阵表示根本就是4 x 4的。又扯远了,有兴趣的读者可以去看《计算机图形学——几何工具算法详解》。

    一旦我们理解了变换这个概念,矩阵的定义就变成:

    矩阵是线性空间里的变换的描述

    到这里为止,我们终于得到了一个看上去比较数学的定义。不过还要多说几句。教材上一般是这么说的,在一个线性空间V里的一个线性变换T,当选定一组基之后,就可以表示为矩阵。因此我们还要说清楚到底什么是线性变换,什么是基,什么叫选定一组基。线性变换的定义是很简单的,设有一种变换T,使得对于线性空间V中间任何两个不相同的对象xy,以及任意实数ab,有:
    T(ax + by) = aT(x) + bT(y)

    那么就称T为线性变换。

    定义都是这么写的,但是光看定义还得不到直觉的理解。线性变换究竟是一种什么样的变换?我们刚才说了,变换是从空间的一个点跃迁到另一个点,而线性变换,就是从一个线性空间V的某一个点跃迁到另一个线性空间W的另一个点的运动。这句话里蕴含着一层意思,就是说一个点不仅可以变换到同一个线性空间中的另一个点,而且可以变换到另一个线性空间中的另一个点去。不管你怎么变,只要变换前后都是线性空间中的对象,这个变换就一定是线性变换,也就一定可以用一个非奇异矩阵来描述。而你用一个非奇异矩阵去描述的一个变换,一定是一个线性变换。有的人可能要问,这里为什么要强调非奇异矩阵?所谓非奇异,只对方阵有意义,那么非方阵的情况怎么样?这个说起来就会比较冗长了,最后要把线性变换作为一种映射,并且讨论其映射性质,以及线性变换的核与像等概念才能彻底讲清楚。我觉得这个不算是重点,如果确实有时间的话,以后写一点。以下我们只探讨最常用、最有用的一种变换,就是在同一个线性空间之内的线性变换。也就是说,下面所说的矩阵,不作说明的话,就是方阵,而且是非奇异方阵。学习一门学问,最重要的是把握主干内容,迅速建立对于这门学问的整体概念,不必一开始就考虑所有的细枝末节和特殊情况,自乱阵脚。

    接着往下说,什么是基呢?这个问题在后面还要大讲一番,这里只要把基看成是线性空间里的坐标系就可以了。注意是坐标系,不是坐标值,这两者可是一个对立矛盾统一体。这样一来,选定一组基就是说在线性空间里选定一个坐标系。就这意思。

    好,最后我们把矩阵的定义完善如下:

    矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定一组基,那么对于任何一个线性变换,都能够用一个确定的矩阵来加以描述。

    理解这句话的关键,在于把线性变换线性变换的一个描述区别开。一个是那个对象,一个是对那个对象的表述。就好像我们熟悉的面向对象编程中,一个对象可以有多个引用,每个引用可以叫不同的名字,但都是指的同一个对象。如果还不形象,那就干脆来个很俗的类比。

    比如有一头猪,你打算给它拍照片,只要你给照相机选定了一个镜头位置,那么就可以给这头猪拍一张照片。这个照片可以看成是这头猪的一个描述,但只是一个片面的的描述,因为换一个镜头位置给这头猪拍照,能得到一张不同的照片,也是这头猪的另一个片面的描述。所有这样照出来的照片都是这同一头猪的描述,但是又都不是这头猪本身。

    同样的,对于一个线性变换,只要你选定一组基,那么就可以找到一个矩阵来描述这个线性变换。换一组基,就得到一个不同的矩阵。所有这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。

    但是这样的话,问题就来了如果你给我两张猪的照片,我怎么知道这两张照片上的是同一头猪呢?同样的,你给我两个矩阵,我怎么知道这两个矩阵是描述的同一个线性变换呢?如果是同一个线性变换的不同的矩阵描述,那就是本家兄弟了,见面不认识,岂不成了笑话。

    好在,我们可以找到同一个线性变换的矩阵兄弟们的一个性质,那就是:

    若矩阵AB是同一个线性变换的两个不同的描述(之所以会不同,是因为选定了不同的基,也就是选定了不同的坐标系),则一定能找到一个非奇异矩阵P,使得AB之间满足这样的关系:

    A = P-1BP

    线性代数稍微熟一点的读者一下就看出来,这就是相似矩阵的定义。没错,所谓相似矩阵,就是同一个线性变换的不同的描述矩阵。按照这个定义,同一头猪的不同角度的照片也可以成为相似照片。俗了一点,不过能让人明白。

    而在上面式子里那个矩阵P,其实就是A矩阵所基于的基与B矩阵所基于的基这两组基之间的一个变换关系。关于这个结论,可以用一种非常直觉的方法来证明(而不是一般教科书上那种形式上的证明),如果有时间的话,我以后在blog里补充这个证明。

    这个发现太重要了。原来一族相似矩阵都是同一个线性变换的描述啊!难怪这么重要!工科研究生课程中有矩阵论、矩阵分析等课程,其中讲了各种各样的相似变换,比如什么相似标准型,对角化之类的内容,都要求变换以后得到的那个矩阵与先前的那个矩阵式相似的,为什么这么要求?因为只有这样要求,才能保证变换前后的两个矩阵是描述同一个线性变换的。当然,同一个线性变换的不同矩阵描述,从实际运算性质来看并不是不分好环的。有些描述矩阵就比其他的矩阵性质好得多。这很容易理解,同一头猪的照片也有美丑之分嘛。所以矩阵的相似变换可以把一个比较丑的矩阵变成一个比较美的矩阵,而保证这两个矩阵都是描述了同一个线性变换。

    这样一来,矩阵作为线性变换描述的一面,基本上说清楚了。但是,事情没有那么简单,或者说,线性代数还有比这更奇妙的性质,那就是,矩阵不仅可以作为线性变换的描述,而且可以作为一组基的描述。而作为变换的矩阵,不但可以把线性空间中的一个点给变换到另一个点去,而且也能够把线性空间中的一个坐标系(基)表换到另一个坐标系(基)去。而且,变换点与变换坐标系,具有异曲同工的效果。线性代数里最有趣的奥妙,就蕴含在其中。理解了这些内容,线性代数里很多定理和规则会变得更加清晰、直觉。

    这个留在下一篇再写吧。

    因为有别的事情要做,下一篇可能要过几天再写了。


    理解矩阵(三)

    这两篇文章发表于去年的4月。在第二部分结束的时候,我说:
           “
    矩阵不仅可以作为线性变换的描述,而且可以作为一组基的描述。而 作为变换的矩阵,不但可以把线性空间中的一个点给变换到另一个点去,而且也能够把线性空间中的一个坐标系(基)表换到另一个坐标系(基)去。而且,变换点 与变换坐标系,具有异曲同工的效果。线性代数里最有趣的奥妙,就蕴含在其中。理解了这些内容,线性代数里很多定理和规则会变得更加清晰、直觉。

    这个留在下一篇再写吧。

    因为有别的事情要做,下一篇可能要过几天再写了。 ”

    然而这一拖就是一年半。一年半以来,这两篇粗糙放肆的文章被到处转载,以至于在Google的搜索提示中,我的名字跟矩阵是一对关联词汇。这对于学生时代数学一直很差的我来说,实在是令人惶恐的事情。数学是何等辉煌精致的学问!代表着人类智慧的最高成就,是人与上帝对话的语言。而我实在连数学的门都还没进去,不要说谈什么理解,就是稍微难一些的题目我也很少能解开。我有什么资格去谈矩阵这样重要的一个数学概念呢?更何况,我的想法直观是直观,未见的是正确的啊,会不会误人子弟呢?因此,算了吧,到此为止吧,我这么想。
            
    是时不时收到的来信逐渐改变了我的想法。
            
    一年半以来,我收到过不下一百封直接的来信,要求我把后面的部分写出来。这些来信大部分是国内的网友和学生,也有少数来自正在国外深造的朋友,大部分是鼓励,有的是诚挚的请求,也有少数严厉斥责我不守承诺。不管是何种态度,这都表明他们对我这一点点小小的思考成果的鼓励,特别是对于我这种思维的视角和尝试的鼓励。他们在信中让我知道,尽管我的数学水平不高,但是我这种从普通人(而不是数学家)视角出发,强调对数学概念和规则的直觉理解的思路,对于很多人是有益的。也许这条路子在数学中绝非正道,也不会走得很远,但是无论如何,在一定的阶段,对一部分人来说,较之目前数学教材普遍采用的思路,这种方式可能更容易理解一些。既然是可能对一部分人有帮助的事情,那么我就不应该心存太多杂念,应该不断思考和总结下去。
           
    所以,下面就是你们来信要求我写出来的东西。
           
    首先来总结一下前面两部分的一些主要结论:
    1. 
    首先有空间,空间可以容纳对象运动的。一种空间对应一类对象。
    2. 
    有一种空间叫线性空间,线性空间是容纳向量对象运动的。
    3. 
    运动是瞬时的,因此也被称为变换。
    4. 
    矩阵是线性空间中运动(变换)的描述。
    5. 
    矩阵与向量相乘,就是实施运动(变换)的过程。
    6.
     同一个变换,在不同的坐标系下表现为不同的矩阵,但是它们的本质是一样的,所以本征值相同
            
    下面让我们把视力集中到一点以改变我们以往看待矩阵的方式。我们知道,线性空间里的基本对象是向量,而向量是这么表示的:
            [a1, a2, a3, ..., an]
           
    矩阵呢?矩阵是这么表示的:
            a11, a12, a13, ..., a1n
            a21, a22, a23, ..., a2n
                         ...
            an1, an2, an3, ..., ann
            
    不用太聪明,我们就能看出来,矩阵是一组向量组成的。特别的,n维线性空间里的方阵是由nn维向量组成的。我们在这里只讨论这个n阶的、非奇异的方阵,因为理解它就是理解矩阵的关键,它才是一般情况,而其他矩阵都是意外,都是不得不对付的讨厌状况,大可以放在一边。这里多一句嘴,学习东西要抓住主流,不要纠缠于旁支末节。很可惜我们的教材课本大多数都是把主线埋没在细节中的,搞得大家还没明白怎么回事就先被灌晕了。比如数学分析,明明最要紧的观念是说,一个对象可以表达为无穷多个合理选择的对象的线性和,这个概念是贯穿始终的,也是数学分析的精华。但是课本里自始至终不讲这句话,反正就是让你做吉米多维奇,掌握一大堆解偏题的技巧,记住各种特殊情况,两类间断点,怪异的可微和可积条件(谁还记得柯西条件、迪里赫莱条件...?),最后考试一过,一切忘光光。要我说,还不如反复强调这一个事情,把它深深刻在脑子里,别的东西忘了就忘了,真碰到问题了,再查数学手册嘛,何必因小失大呢?
            
    言归正传。如果一组向量是彼此线性无关的话,那么它们就可以成为度量这个线性空间的一组基,从而事实上成为一个坐标系体系,其中每一个向量都躺在一根坐标轴上,并且成为那根坐标轴上的基本度量单位(长度1)。
            
    现在到了关键的一步。看上去矩阵就是由一组向量组成的,而且如果矩阵非奇异的话(我说了,只考虑这种情况),那么组成这个矩阵的那一组向量也就是线性无关的了,也就可以成为度量线性空间的一个坐标系。结论:矩阵描述了一个坐标系。
            “
    慢着!,你嚷嚷起来了,你这个骗子!你不是说过,矩阵就是运动吗?怎么这会矩阵又是坐标系了?
            
    嗯,所以我说到了关键的一步。我并没有骗人,之所以矩阵又是运动,又是坐标系,那是因为——
            “
    运动等价于坐标系变换
            
    对不起,这话其实不准确,我只是想让你印象深刻。准确的说法是:
           “
    对象的变换等价于坐标系的变换
           
    或者:
           “
    固定坐标系下一个对象的变换等价于固定对象所处的坐标系变换。
           
    说白了就是:
            “
    运动是相对的。”        
            
    让我们想想,达成同一个变换的结果,比如把点(1, 1)变到点(2, 3)去,你可以有两种做法。第一,坐标系不动,点动,把(1, 1)点挪到(2, 3)去。第二,点不动,变坐标系,让x轴的度量(单位向量)变成原来的1/2,让y轴的度量(单位向量)变成原先的1/3,这样点还是那个点,可是点的坐标就变成(2, 3)了。方式不同,结果一样。
            
    从第一个方式来看,那就是我在《理解矩阵》1/2中说的,把矩阵看成是运动描述,矩阵与向量相乘就是使向量(点)运动的过程。在这个方式下,
           Ma = b
           
    的意思是:
           “
    向量a经过矩阵M所描述的变换,变成了向量b
            
    而从第二个方式来看,矩阵M描述了一个坐标系,姑且也称之为M。那么:
            Ma = b
    的意思是:
            “
    有一个向量,它在坐标系M的度量下得到的度量结果向量为a,那么它在坐标系I的度量下,这个向量的度量结果是b
            
    这里的I是指单位矩阵,就是主对角线是1,其他为零的矩阵。
            
    而这两个方式本质上是等价的。
            
    我希望你务必理解这一点,因为这是本篇的关键。
            
    正因为是关键,所以我得再解释一下。
            
    M为坐标系的意义下,如果把M放在一个向量a的前面,形成Ma的样式,我们可以认为这是对向量a的一个环境声明。它相当于是说:
            “
    注意了!这里有一个向量,它在坐标系M中度量,得到的度量结果可以表达为a。可是它在别的坐标系里度量的话,就会得到不同的结果。为了明确,我把M放在前面,让你明白,这是该向量在坐标系M中度量的结果。
           
    那么我们再看孤零零的向量b
           b
           
    多看几遍,你没看出来吗?它其实不是b,它是:
           Ib
          
    也就是说:在单位坐标系,也就是我们通常说的直角坐标系I中,有一个向量,度量的结果是b
           
      Ma = Ib的意思就是说:
           “
    M坐标系里量出来的向量a,跟在I坐标系里量出来的向量b,其实根本就是一个向量啊!
           
    这哪里是什么乘法计算,根本就是身份识别嘛。
           
    从这个意义上我们重新理解一下向量。向量这个东西客观存在,但是要把它表示出来,就要把它放在一个坐标系中去度量它,然后把度量的结果(向量在各个坐标轴上的投影值)按一定顺序列在一起,就成了我们平时所见的向量表示形式。你选择的坐标系(基)不同,得出来的向量的表示就不同。向量还是那个向量,选择的坐标系不同,其表示方式就不同。因此,按道理来说,每写出一个向量的表示,都应该声明一下这个表示是在哪个坐标系中度量出来的。表示的方式,就是 Ma,也就是说,有一个向量,在M矩阵表示的坐标系中度量出来的结果为a。我们平时说一个向量是[2 3 5 7]T,隐含着是说,这个向量在 I 坐标系中的度量结果是[2 3 5 7]T,因此,这个形式反而是一种简化了的特殊情况。
            
    注意到,M矩阵表示出来的那个坐标系,由一组基组成,而那组基也是由向量组成的,同样存在这组向量是在哪个坐标系下度量而成的问题。也就是说,表述一个矩阵的一般方法,也应该要指明其所处的基准坐标系。所谓M,其实是 IM,也就是说,M中那组基的度量是在 I 坐标系中得出的。从这个视角来看,M×N也不是什么矩阵乘法了,而是声明了一个在M坐标系中量出的另一个坐标系N,其中M本身是在I坐标系中度量出来的。
           
    回过头来说变换的问题。我刚才说,固定坐标系下一个对象的变换等价于固定对象所处的坐标系变换,那个固定对象我们找到了,就是那个向量。但是坐标系的变换呢?我怎么没看见?
           
    请看:
           Ma = Ib
           
    我现在要变MI,怎么变?对了,再前面乘以个M-1,也就是M的逆矩阵。换句话说,你不是有一个坐标系M吗,现在我让它乘以个M-1,变成I,这样一来的话,原来M坐标系中的aI中一量,就得到b了。
           
    我建议你此时此刻拿起纸笔,画画图,求得对这件事情的理解。比如,你画一个坐标系,x轴上的衡量单位是2y轴上的衡量单位是3,在这样一个坐标系里,坐标为(11)的那一点,实际上就是笛卡尔坐标系里的点(2, 3)。而让它原形毕露的办法,就是把原来那个坐标系:
           2 0
           0 3
           
    x方向度量缩小为原来的1/2,而y方向度量缩小为原来的1/3,这样一来坐标系就变成单位坐标系I了。保持点不变,那个向量现在就变成了(2, 3)了。
           
    怎么能够让“x方向度量缩小为原来的1/2,而y方向度量缩小为原来的1/3”呢?就是让原坐标系:
          2 0
          0 3
           
    被矩阵:
           1/2   0
             0   1/3
           
    左乘。而这个矩阵就是原矩阵的逆矩阵。
           
    下面我们得出一个重要的结论:
            “
    对坐标系施加变换的方法,就是让表示那个坐标系的矩阵与表示那个变化的矩阵相乘。
            
    再一次的,矩阵的乘法变成了运动的施加。只不过,被施加运动的不再是向量,而是另一个坐标系。
            
    如果你觉得你还搞得清楚,请再想一下刚才已经提到的结论,矩阵MxN,一方面表明坐标系N在运动M下的变换结果,另一方面,把M当成N的前缀,当成N的环境描述,那么就是说,在M坐标系度量下,有另一个坐标系N。这个坐标系N如果放在I坐标系中度量,其结果为坐标系MxN
            
    在这里,我实际上已经回答了一般人在学习线性代数是最困惑的一个问题,那就是为什么矩阵的乘法要规定成这样。简单地说,是因为:
            1. 
    从变换的观点看,对坐标系N施加M变换,就是把组成坐标系N的每一个向量施加M变换。
            2. 
    从坐标系的观点看,在M坐标系中表现为N的另一个坐标系,这也归结为,对N坐标系基的每一个向量,把它在I坐标系中的坐标找出来,然后汇成一个新的矩阵。
            3. 
    至于矩阵乘以向量为什么要那样规定,那是因为一个在M中度量为a的向量,如果想要恢复在I中的真像,就必须分别与M中的每一个向量进行內积运算。我把这个结论的推导留给感兴趣的朋友吧。应该说,其实到了这一步,已经很容易了。
            
    综合以上1/2/3,矩阵的乘法就得那么规定,一切有根有据,绝不是哪个神经病胡思乱想出来的。
            
    我已经无法说得更多了。矩阵又是坐标系,又是变换。到底是坐标系,还是变换,已经说不清楚了,运动与实体在这里统一了,物质与意识的界限已经消失了,一切归于无法言说,无法定义了。道可道,非常道,名可名,非常名。矩阵是在是不可道之道,不可名之名的东西。到了这个时候,我们不得不承认,我们伟大的线性代数课本上说的矩阵定义,是无比正确的:
            “
    矩阵就是由mn列数放在一起组成的数学对象。
            
    好了,这基本上就是我想说的全部了。还留下一个行列式的问题。矩阵M的行列式实际上是组成M的各个向量按照平行四边形法则搭成一个n维立方体的体积。对于这一点,我只能感叹于其精妙,却无法揭开其中奥秘了。也许我掌握的数学工具不够,我希望有人能够给我们大家讲解其中的道理了。
            
    我不知道是否讲得足够清楚了,反正这一部分需要您花些功夫去推敲。
            
    此外,请大家不必等待这个系列的后续部分。以我的工作情况而言,近期内很难保证继续投入脑力到这个领域中,尽管我仍然对此兴致浓厚。不过如果还有(四)的话,可能是一些站在应用层面的考虑,比如对计算机图形学相关算法的理解。但是我不承诺这些讨论近期内会出现了。

    展开全文
  • 理解矩阵矩阵背后的现实意义

    千次阅读 多人点赞 2018-01-15 16:28:19
    这是很早以前已经看过的,最近无意中又把保存的文章翻出来时,想起很多朋友问过矩阵,虽对矩阵似懂非懂,但却很想弄懂它,希望这几篇文章能帮你一下,故转之: 线性代数课程,无论你从行列式入手还是直接从矩阵入手...

    原文链接(排版稍作调整)
    http://www.360doc.com/content/14/0824/14/202378_404267225.shtml

    这是很早以前已经看过的,最近无意中又把保存的文章翻出来时,想起很多朋友问过矩阵,虽对矩阵似懂非懂,但却很想弄懂它,希望这几篇文章能帮你一下,故转之:

    线性代数课程,无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙。比如说,在全国一般工科院系教学中应用最广泛的同济线性代数教材(现在到了第四版),一上来就介绍逆序数这个“前无古人,后无来者”的古怪概念,然后用逆序数给出行列式的一个极不直观的定义,接着是一些简直犯傻的行列式性质和习题——把这行乘一个系数加到另一行上,再把那一列减过来,折腾得那叫一个热闹,可就是压根看不出这个东西有嘛用。大多数像我一样资质平庸的学生到这里就有点犯晕:连这是个什么东西都模模糊糊的,就开始钻火圈表演了,这未免太“无厘头”了吧!于是开始有人逃课,更多的人开始抄作业。这下就中招了,因为其后的发展可以用一句峰回路转来形容,紧跟着这个无厘头的行列式的,是一个同样无厘头但是伟大的无以复加的家伙的出场——矩阵来了!多年之后,我才明白,当老师犯傻似地用中括号把一堆傻了吧叽的数括起来,并且不紧不慢地说:“这个东西叫做矩阵”的时候,我的数学生涯掀开了何等悲壮辛酸、惨绝人寰的一幕!自那以后,在几乎所有跟“学问”二字稍微沾点边的东西里,矩阵这个家伙从不缺席。对于我这个没能一次搞定线性代数的笨蛋来说,矩阵老大的不请自来每每搞得我灰头土脸,头破血流。长期以来,我在阅读中一见矩阵,就如同阿Q见到了假洋鬼子,揉揉额角就绕道走。

    事实上,我并不是特例。一般工科学生初学线性代数,通常都会感到困难。这种情形在国内外皆然。瑞典数学家Lars Garding在其名著Encounter with Mathematics中说:”如果不熟悉线性代数的概念,要去学习自然科学,现在看来就和文盲差不多。”,然而“按照现行的国际标准,线性代数是通过公理化来表述的,它是第二代数学模型,…,这就带来了教学上的困难。”事实上,当我们开始学习线性代数的时候,不知不觉就进入了“第二代数学模型”的范畴当中,这意味着数学的表述方式和抽象性有了一次全面的进化,对于从小一直在“第一代数学模型”,即以实用为导向的、具体的数学模型中学习的我们来说,在没有并明确告知的情况下进行如此剧烈的paradigm shift,不感到困难才是奇怪的。

    大部分工科学生,往往是在学习了一些后继课程,如数值分析、数学规划、矩阵论之后,才逐渐能够理解和熟练运用线性代数。即便如此,不少人即使能够很熟练地以线性代数为工具进行科研和应用工作,但对于很多这门课程的初学者提出的、看上去是很基础的问题却并不清楚。比如说:

    矩阵究竟是什么东西?向量可以被认为是具有n个相互独立的性质(维度)的对象的表示,矩阵又是什么呢?我们如果认为矩阵是一组列(行)向量组成的新的复合向量的展开式,那么为什么这种展开式具有如此广泛的应用?特别是,为什么偏偏二维的展开式如此有用?如果矩阵中每一个元素又是一个向量,那么我们再展开一次,变成三维的立方阵,是不是更有用?

    矩阵的乘法规则究竟为什么这样规定?为什么这样一种怪异的乘法规则却能够在实践中发挥如此巨大的功效?很多看上去似乎是完全不相关的问题,最后竟然都归结到矩阵的乘法,这难道不是很奇妙的事情?难道在矩阵乘法那看上去莫名其妙的规则下面,包含着世界的某些本质规律?如果是的话,这些本质规律是什么?

    行列式究竟是一个什么东西?为什么会有如此怪异的计算规则?行列式与其对应方阵本质上是什么关系?为什么只有方阵才有对应的行列式,而一般矩阵就没有(不要觉得这个问题很蠢,如果必要,针对m x n矩阵定义行列式不是做不到的,之所以不做,是因为没有这个必要,但是为什么没有这个必要)?而且,行列式的计算规则,看上去跟矩阵的任何计算规则都没有直观的联系,为什么又在很多方面决定了矩阵的性质?难道这一切仅是巧合?

    矩阵为什么可以分块计算?分块计算这件事情看上去是那么随意,为什么竟是可行的?

    对于矩阵转置运算AT,有(AB)T = BTAT,对于矩阵求逆运算A-1,有(AB)-1 = B-1A-1。两个看上去完全没有什么关系的运算,为什么有着类似的性质?这仅仅是巧合吗?

    为什么说P-1AP得到的矩阵与A矩阵“相似”?这里的“相似”是什么意思?

    特征值和特征向量的本质是什么?它们定义就让人很惊讶,因为Ax =λx,一个诺大的矩阵的效应,竟然不过相当于一个小小的数λ,确实有点奇妙。但何至于用“特征”甚至“本征”来界定?它们刻划的究竟是什么?

    这样的一类问题,经常让使用线性代数已经很多年的人都感到为难。就好像大人面对小孩子的刨根问底,最后总会迫不得已地说“就这样吧,到此为止”一样,面对这样的问题,很多老手们最后也只能用:“就是这么规定的,你接受并且记住就好”来搪塞。然而,这样的问题如果不能获得回答,线性代数对于我们来说就是一个粗暴的、不讲道理的、莫名其妙的规则集合,我们会感到,自己并不是在学习一门学问,而是被不由分说地“抛到”一个强制的世界中,只是在考试的皮鞭挥舞之下被迫赶路,全然无法领略其中的美妙、和谐与统一。直到多年以后,我们已经发觉这门学问如此的有用,却仍然会非常迷惑:怎么这么凑巧?

    我认为,这是我们的线性代数教学中直觉性丧失的后果。上述这些涉及到“如何能”、“怎么会”的问题,仅仅通过纯粹的数学证明来回答,是不能令提问者满意的。比如,如果你通过一般的证明方法论证了矩阵分块运算确实可行,那么这并不能够让提问者的疑惑得到解决。他们真正的困惑是:矩阵分块运算为什么竟然是可行的?究竟只是凑巧,还是说这是由矩阵这种对象的某种本质所必然决定的?如果是后者,那么矩阵的这些本质是什么?只要对上述那些问题稍加考虑,我们就会发现,所有这些问题都不是单纯依靠数学证明所能够解决的。像我们的教科书那样,凡事用数学证明,最后培养出来的学生,只能熟练地使用工具,却欠缺真正意义上的理解。

    对于线性代数的类似上述所提到的一些直觉性的问题,两年多来我断断续续地反复思考了四、五次,为此阅读了好几本国内外线性代数、数值分析、代数和数学通论性书籍,其中像

    前苏联的名著《数学:它的内容、方法和意义》、

    龚昇教授的《线性代数五讲》、

    前面提到的Encounter with Mathematics(《数学概观》)

    以及Thomas A. Garrity的《数学拾遗》都给我很大的启发。不过即使如此,我对这个主题的认识也经历了好几次自我否定。比如以前思考的一些结论曾经写在自己的blog里,但是现在看来,这些结论基本上都是错误的。因此打算把自己现在的有关理解比较完整地记录下来,一方面是因为我觉得现在的理解比较成熟了,可以拿出来与别人探讨,向别人请教。另一方面,如果以后再有进一步的认识,把现在的理解给推翻了,那现在写的这个snapshot也是很有意义的。

    因为打算写得比较多,所以会分几次慢慢写。也不知道是不是有时间慢慢写完整,会不会中断,写着看吧。

    今天先谈谈对线形空间和矩阵的几个核心概念的理解。这些东西大部分是凭着自己的理解写出来的,基本上不抄书,可能有错误的地方,希望能够被指出。但我希望做到直觉,也就是说能把数学背后说的实质问题说出来。

    首先说说空间(space),这个概念是现代数学的命根子之一,从拓扑空间开始,一步步往上加定义,可以形成很多空间。线形空间其实还是比较初级的,如果在里面定义了范数,就成了赋范线性空间。赋范线性空间满足完备性,就成了巴那赫空间;赋范线性空间中定义角度,就有了内积空间,内积空间再满足完备性,就得到希尔伯特空间。

    总之,空间有很多种。你要是去看某种空间的数学定义,大致都是“存在一个集合,在这个集合上定义某某概念,然后满足某些性质”,就可以被称为空间。这未免有点奇怪,为什么要用“空间”来称呼一些这样的集合呢?大家将会看到,其实这是很有道理的。

    我们一般人最熟悉的空间,毫无疑问就是我们生活在其中的(按照牛顿的绝对时空观)的三维空间,从数学上说,这是一个三维的欧几里德空间,我们先不管那么多,先看看我们熟悉的这样一个空间有些什么最基本的特点。仔细想想我们就会知道,这个三维的空间:

    1. 由很多(实际上是无穷多个)位置点组成;

    2. 这些点之间存在相对的关系;

    3. 可以在空间中定义长度、角度;

    4. 这个空间可以容纳运动,这里我们所说的运动是从一个点到另一个点的移动(变换),而不是微积分意义上的“连续”性的运动。

    上面的这些性质中,最最关键的是第4条。第1、2条只能说是空间的基础,不算是空间特有的性质,凡是讨论数学问题,都得有一个集合,大多数还得在这个集合上定义一些结构(关系),并不是说有了这些就算是空间。而第3条太特殊,其他的空间不需要具备,更不是关键的性质。只有第4条是空间的本质,也就是说,容纳运动是空间的本质特征。

    认识到了这些,我们就可以把我们关于三维空间的认识扩展到其他的空间。事实上,不管是什么空间,都必须容纳和支持在其中发生的符合规则的运动(变换)。你会发现,在某种空间中往往会存在一种相对应的变换,比如拓扑空间中有拓扑变换,线性空间中有线性变换,仿射空间中有仿射变换,其实这些变换都只不过是对应空间中允许的运动形式而已。

    因此只要知道,“空间”是容纳运动的一个对象集合,而变换则规定了对应空间的运动。

    下面我们来看看线性空间。线性空间的定义任何一本书上都有,但是既然我们承认线性空间是个空间,那么有两个最基本的问题必须首先得到解决,那就是:

    1. 空间是一个对象集合,线性空间也是空间,所以也是一个对象集合。那么线性空间是什么样的对象的集合?或者说,线性空间中的对象有什么共同点吗?

    2. 线性空间中的运动如何表述的?也就是,线性变换是如何表示的?

    我们先来回答第一个问题,回答这个问题的时候其实是不用拐弯抹角的,可以直截了当的给出答案。线性空间中的任何一个对象,通过选取基和坐标的办法,都可以表达为向量的形式。通常的向量空间我就不说了,举两个不那么平凡的例子:

    L1. 最高次项不大于n次的多项式的全体构成一个线性空间,也就是说,这个线性空间中的每一个对象是一个多项式。如果我们以x0, x1, …, xn为基,那么任何一个这样的多项式都可以表达为一组n+1维向量,其中的每一个分量ai其实就是多项式中x(i-1)项的系数。值得说明的是,基的选取有多种办法,只要所选取的那一组基线性无关就可以。这要用到后面提到的概念了,所以这里先不说,提一下而已。

    L2. 闭区间[a, b]上的n阶连续可微函数的全体,构成一个线性空间。也就是说,这个线性空间的每一个对象是一个连续函数。对于其中任何一个连续函数,根据魏尔斯特拉斯定理,一定可以找到最高次项不大于n的多项式函数,使之与该连续函数的差为0,也就是说,完全相等。这样就把问题归结为L1了。后面就不用再重复了。

    所以说,向量是很厉害的,只要你找到合适的基,用向量可以表示线性空间里任何一个对象。这里头大有文章,因为向量表面上只是一列数,但是其实由于它的有序性,所以除了这些数本身携带的信息之外,还可以在每个数的对应位置上携带信息。为什么在程序设计中数组最简单,却又威力无穷呢?根本原因就在于此。这是另一个问题了,这里就不说了。

    下面来回答第二个问题,这个问题的回答会涉及到线性代数的一个最根本的问题。

    线性空间中的运动,被称为线性变换。也就是说,你从线性空间中的一个点运动到任意的另外一个点,都可以通过一个线性变化来完成。那么,线性变换如何表示呢?很有意思,在线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换)。而使某个对象发生对应运动的方法,就是用代表那个运动的矩阵,乘以代表那个对象的向量。

    简而言之,在线性空间中选定基之后,向量刻画对象,矩阵刻画对象的运动,用矩阵与向量的乘法施加运动。

    是的,矩阵的本质是运动的描述。如果以后有人问你矩阵是什么,那么你就可以响亮地告诉他,矩阵的本质是运动的描述。

    可是多么有意思啊,向量本身不是也可以看成是n x 1矩阵吗?这实在是很奇妙,一个空间中的对象和运动竟然可以用相类同的方式表示。能说这是巧合吗?如果是巧合的话,那可真是幸运的巧合!可以说,线性代数中大多数奇妙的性质,均与这个巧合有直接的关系。

    上一篇里说“矩阵是运动的描述”,到现在为止,好像大家都还没什么意见。但是我相信早晚会有数学系出身的网友来拍板转。因为运动这个概念,在数学和物理里是跟微积分联系在一起的。我们学习微积分的时候,总会有人照本宣科地告诉你,初等数学是研究常量的数学,是研究静态的数学,高等数学是变量的数学,是研究运动的数学。大家口口相传,差不多人人都知道这句话。但是真知道这句话说的是什么意思的人,好像也不多。简而言之,在我们人类的经验里,运动是一个连续过程,从A点到B点,就算走得最快的光,也是需要一个时间来逐点地经过AB之间的路径,这就带来了连续性的概念。而连续这个事情,如果不定义极限的概念,根本就解释不了。古希腊人的数学非常强,但就是缺乏极限观念,所以解释不了运动,被芝诺的那些著名悖论(飞箭不动、飞毛腿阿喀琉斯跑不过乌龟等四个悖论)搞得死去活来。因为这篇文章不是讲微积分的,所以我就不多说了。有兴趣的读者可以去看看齐民友教授写的《重温微积分》。我就是读了这本书开头的部分,才明白“高等数学是研究运动的数学”这句话的道理。

    不过在我这个《理解矩阵》的文章里,“运动”的概念不是微积分中的连续性的运动,而是瞬间发生的变化。比如这个时刻在A点,经过一个“运动”,一下子就“跃迁”到了B点,其中不需要经过A点与B点之间的任何一个点。这样的“运动”,或者说“跃迁”,是违反我们日常的经验的。不过了解一点量子物理常识的人,就会立刻指出,量子(例如电子)在不同的能量级轨道上跳跃,就是瞬间发生的,具有这样一种跃迁行为。所以说,自然界中并不是没有这种运动现象,只不过宏观上我们观察不到。但是不管怎么说,“运动”这个词用在这里,还是容易产生歧义的,说得更确切些,应该是“跃迁”。因此这句话可以改成:

    “矩阵是线性空间里跃迁的描述”。

    可是这样说又太物理,也就是说太具体,而不够数学,也就是说不够抽象。因此我们最后换用一个正牌的数学术语——变换,来描述这个事情。这样一说,大家就应该明白了,所谓变换,其实就是空间里从一个点(元素/对象)到另一个点(元素/对象)的跃迁。比如说,拓扑变换,就是在拓扑空间里从一个点到另一个点的跃迁。再比如说,仿射变换,就是在仿射空间里从一个点到另一个点的跃迁。附带说一下,这个仿射空间跟向量空间是亲兄弟。做计算机图形学的朋友都知道,尽管描述一个三维对象只需要三维向量,但所有的计算机图形学变换矩阵都是4 x 4的。说其原因,很多书上都写着“为了使用中方便”,这在我看来简直就是企图蒙混过关。真正的原因,是因为在计算机图形学里应用的图形变换,实际上是在仿射空间而不是向量空间中进行的。想想看,在向量空间里向一个向量平行移动以后仍是相同的那个向量,而现实世界等长的两个平行线段当然不能被认为同一个东西,所以计算机图形学的生存空间实际上是仿射空间。而仿射变换的矩阵表示根本就是4 x 4的。又扯远了,有兴趣的读者可以去看《计算机图形学——几何工具算法详解》。

    一旦我们理解了“变换”这个概念,矩阵的定义就变成:

    “矩阵是线性空间里的变换的描述。”

    到这里为止,我们终于得到了一个看上去比较数学的定义。不过还要多说几句。教材上一般是这么说的,在一个线性空间V里的一个线性变换T,当选定一组基之后,就可以表示为矩阵。因此我们还要说清楚到底什么是线性变换,什么是基,什么叫选定一组基。线性变换的定义是很简单的,设有一种变换T,使得对于线性空间V中间任何两个不相同的对象x和y,以及任意实数a和b,有:
    T(ax + by) = aT(x) + bT(y),那么就称T为线性变换。

    定义都是这么写的,但是光看定义还得不到直觉的理解。线性变换究竟是一种什么样的变换?我们刚才说了,变换是从空间的一个点跃迁到另一个点,而线性变换,就是从一个线性空间V的某一个点跃迁到另一个线性空间W的另一个点的运动。这句话里蕴含着一层意思,就是说一个点不仅可以变换到同一个线性空间中的另一个点,而且可以变换到另一个线性空间中的另一个点去。不管你怎么变,只要变换前后都是线性空间中的对象,这个变换就一定是线性变换,也就一定可以用一个非奇异矩阵来描述。而你用一个非奇异矩阵去描述的一个变换,一定是一个线性变换。有的人可能要问,这里为什么要强调非奇异矩阵?所谓非奇异,只对方阵有意义,那么非方阵的情况怎么样?这个说起来就会比较冗长了,最后要把线性变换作为一种映射,并且讨论其映射性质,以及线性变换的核与像等概念才能彻底讲清楚。我觉得这个不算是重点,如果确实有时间的话,以后写一点。以下我们只探讨最常用、最有用的一种变换,就是在同一个线性空间之内的线性变换。也就是说,下面所说的矩阵,不作说明的话,就是方阵,而且是非奇异方阵。学习一门学问,最重要的是把握主干内容,迅速建立对于这门学问的整体概念,不必一开始就考虑所有的细枝末节和特殊情况,自乱阵脚。

    接着往下说,什么是基呢?这个问题在后面还要大讲一番,这里只要把基看成是线性空间里的坐标系就可以了。注意是坐标系,不是坐标值,这两者可是一个“对立矛盾统一体”。这样一来,“选定一组基”就是说在线性空间里选定一个坐标系,就这意思。

    好,最后我们把矩阵的定义完善如下:

    “矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定一组基,那么对于任何一个线性变换,都能够用一个确定的矩阵来加以描述。”

    理解这句话的关键,在于把“线性变换”与“线性变换的一个描述”区别开。一个是那个对象,一个是对那个对象的表述。就好像我们熟悉的面向对象编程中,一个对象可以有多个引用,每个引用可以叫不同的名字,但都是指的同一个对象。如果还不形象,那就干脆来个很俗的类比。

    比如有一头猪,你打算给它拍照片,只要你给照相机选定了一个镜头位置,那么就可以给这头猪拍一张照片。这个照片可以看成是这头猪的一个描述,但只是一个片面的的描述,因为换一个镜头位置给这头猪拍照,能得到一张不同的照片,也是这头猪的另一个片面的描述。所有这样照出来的照片都是这同一头猪的描述,但是又都不是这头猪本身。

    同样的,对于一个线性变换,只要你选定一组基,那么就可以找到一个矩阵来描述这个线性变换。换一组基,就得到一个不同的矩阵。所有这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。

    但是这样的话,问题就来了如果你给我两张猪的照片,我怎么知道这两张照片上的是同一头猪呢?同样的,你给我两个矩阵,我怎么知道这两个矩阵是描述的同一个线性变换呢?如果是同一个线性变换的不同的矩阵描述,那就是本家兄弟了,见面不认识,岂不成了笑话。

    好在,我们可以找到同一个线性变换的矩阵兄弟们的一个性质,那就是:

    若矩阵A与B是同一个线性变换的两个不同的描述(之所以会不同,是因为选定了不同的基,也就是选定了不同的坐标系),则一定能找到一个非奇异矩阵P,使得A、B之间满足这样的关系:

    A = P-1BP

    线性代数稍微熟一点的读者一下就看出来,这就是相似矩阵的定义。没错,所谓相似矩阵,就是同一个线性变换的不同的描述矩阵。按照这个定义,同一头猪的不同角度的照片也可以成为相似照片。俗了一点,不过能让人明白。

    而在上面式子里那个矩阵P,其实就是A矩阵所基于的基与B矩阵所基于的基这两组基之间的一个变换关系。关于这个结论,可以用一种非常直觉的方法来证明(而不是一般教科书上那种形式上的证明),如果有时间的话,我以后在blog里补充这个证明。

    这个发现太重要了。原来一族相似矩阵都是同一个线性变换的描述啊!难怪这么重要!工科研究生课程中有矩阵论、矩阵分析等课程,其中讲了各种各样的相似变换,比如什么相似标准型,对角化之类的内容,都要求变换以后得到的那个矩阵与先前的那个矩阵式相似的,为什么这么要求?因为只有这样要求,才能保证变换前后的两个矩阵是描述同一个线性变换的。当然,同一个线性变换的不同矩阵描述,从实际运算性质来看并不是不分好环的。有些描述矩阵就比其他的矩阵性质好得多。这很容易理解,同一头猪的照片也有美丑之分嘛。所以矩阵的相似变换可以把一个比较丑的矩阵变成一个比较美的矩阵,而保证这两个矩阵都是描述了同一个线性变换。

    这样一来,矩阵作为线性变换描述的一面,基本上说清楚了。但是,事情没有那么简单,或者说,线性代数还有比这更奇妙的性质,那就是,矩阵不仅可以作为线性变换的描述,而且可以作为一组基的描述。而作为变换的矩阵,不但可以把线性空间中的一个点给变换到另一个点去,而且也能够把线性空间中的一个坐标系(基)表换到另一个坐标系(基)去。而且,变换点与变换坐标系,具有异曲同工的效果。线性代数里最有趣的奥妙,就蕴含在其中。理解了这些内容,线性代数里很多定理和规则会变得更加清晰、直觉。

    这个留在下一篇再写吧。

    因为有别的事情要做,下一篇可能要过几天再写了。

    接着理解矩阵

    上一篇里说“矩阵是运动的描述”,到现在为止,好像大家都还没什么意见。但是我相信早晚会有数学系出身的网友来拍板转。因为运动这个概念,在数学和物理里是跟微积分联系在一起的。我们学习微积分的时候,总会有人照本宣科地告诉你,初等数学是研究常量的数学,是研究静态的数学,高等数学是变量的数学,是研究运动的数学。大家口口相传,差不多人人都知道这句话。但是真知道这句话说的是什么意思的人,好像也不多。简而言之,在我们人类的经验里,运动是一个连续过程,从A点到B点,就算走得最快的光,也是需要一个时间来逐点地经过AB之间的路径,这就带来了连续性的概念。而连续这个事情,如果不定义极限的概念,根本就解释不了。古希腊人的数学非常强,但就是缺乏极限观念,所以解释不了运动,被芝诺的那些著名悖论(飞箭不动、飞毛腿阿喀琉斯跑不过乌龟等四个悖论)搞得死去活来。因为这篇文章不是讲微积分的,所以我就不多说了。有兴趣的读者可以去看看齐民友教授写的《重温微积分》。我就是读了这本书开头的部分,才明白“高等数学是研究运动的数学”这句话的道理。
    不过在我这个《理解矩阵》的文章里,“运动”的概念不是微积分中的连续性的运动,而是瞬间发生的变化。比如这个时刻在A点,经过一个“运动”,一下子就“跃迁”到了B点,其中不需要经过A点与B点之间的任何一个点。这样的“运动”,或者说“跃迁”,是违反我们日常的经验的。不过了解一点量子物理常识的人,就会立刻指出,量子(例如电子)在不同的能量级轨道上跳跃,就是瞬间发生的,具有这样一种跃迁行为。所以说,自然界中并不是没有这种运动现象,只不过宏观上我们观察不到。但是不管怎么说,“运动”这个词用在这里,还是容易产生歧义的,说得更确切些,应该是“跃迁”。因此这句话可以改成:
    “矩阵是线性空间里跃迁的描述”。

    “矩阵是线性空间里的变换的描述。”
    到这里为止,我们终于得到了一个看上去比较数学的定义。不过还要多说几句。教材上一般是这么说的,在一个线性空间V里的一个线性变换T,当选定一组基之后,就可以表示为矩阵。因此我们还要说清楚到底什么是线性变换,什么是基,什么叫选定一组基。线性变换的定义是很简单的,设有一种变换T,使得对于线性空间V中间任何两个不相同的对象x和y,以及任意实数a和b,有:
    T(ax + by) = aT(x) + bT(y),
    那么就称T为线性变换。

    首先来总结一下前面两部分的一些主要结论:
    1. 首先有空间,空间可以容纳对象运动的。一种空间对应一类对象。
    2. 有一种空间叫线性空间,线性空间是容纳向量对象运动的。
    3. 运动是瞬时的,因此也被称为变换。
    4. 矩阵是线性空间中运动(变换)的描述。
    5. 矩阵与向量相乘,就是实施运动(变换)的过程。
    6. 同一个变换,在不同的坐标系下表现为不同的矩阵,但是它们的本质是一样的,所以本征值相同。

    下面让我们把视力集中到一点以改变我们以往看待矩阵的方式。我们知道,线性空间里的基本对象是向量,而向量是这么表示的:
    [a1, a2, a3, …, an]
    矩阵呢?矩阵是这么表示的:
    a11, a12, a13, …, a1n
    a21, a22, a23, …, a2n

    an1, an2, an3, …, ann

    不用太聪明,我们就能看出来,矩阵是一组向量组成的。特别的,n维线性空间里的方阵是由n个n维向量组成的。我们在这里只讨论这个n阶的、非奇异的方阵,因为理解它就是理解矩阵的关键,它才是一般情况,而其他矩阵都是意外,都是不得不对付的讨厌状况,大可以放在一边。这里多一句嘴,学习东西要抓住主流,不要纠缠于旁支末节。很可惜我们的教材课本大多数都是把主线埋没在细节中的,搞得大家还没明白怎么回事就先被灌晕了。比如数学分析,明明最要紧的观念是说,一个对象可以表达为无穷多个合理选择的对象的线性和,这个概念是贯穿始终的,也是数学分析的精华。但是课本里自始至终不讲这句话,反正就是让你做吉米多维奇,掌握一大堆解偏题的技巧,记住各种特殊情况,两类间断点,怪异的可微和可积条件(谁还记得柯西条件、迪里赫莱条件…?),最后考试一过,一切忘光光。要我说,还不如反复强调这一个事情,把它深深刻在脑子里,别的东西忘了就忘了,真碰到问题了,再查数学手册嘛,何必因小失大呢?

    言归正传。如果一组向量是彼此线性无关的话,那么它们就可以成为度量这个线性空间的一组基,从而事实上成为一个坐标系体系,其中每一个向量都躺在一根坐标轴上,并且成为那根坐标轴上的基本度量单位(长度1)。

    现在到了关键的一步。看上去矩阵就是由一组向量组成的,而且如果矩阵非奇异的话(我说了,只考虑这种情况),那么组成这个矩阵的那一组向量也就是线性无关的了,也就可以成为度量线性空间的一个坐标系。结论:矩阵描述了一个坐标系。

    “慢着!”,你嚷嚷起来了,“你这个骗子!你不是说过,矩阵就是运动吗?怎么这会矩阵又是坐标系了?”

    嗯,所以我说到了关键的一步。我并没有骗人,之所以矩阵又是运动,又是坐标系,那是因为:
    对不起,这话其实不准确,我只是想让你印象深刻。准确的说法是:“对象的变换等价于坐标系的变换”。

    或者:
    “固定坐标系下一个对象的变换等价于固定对象所处的坐标系变换。”

    说白了就是:

    “运动是相对的。”

    让我们想想,达成同一个变换的结果,比如把点(1, 1)变到点(2, 3)去,你可以有两种做法。第一,坐标系不动,点动,把(1, 1)点挪到(2, 3)去。第二,点不动,变坐标系,让x轴的度量(单位向量)变成原来的1/2,让y轴的度量(单位向量)变成原先的1/3,这样点还是那个点,可是点的坐标就变成(2, 3)了,方式不同,结果一样。

    从第一个方式来看,那就是我在《理解矩阵》1/2中说的,把矩阵看成是运动描述,矩阵与向量相乘就是使向量(点)运动的过程。在这个方式下,

    Ma = b
    的意思是:
    “向量a经过矩阵M所描述的变换,变成了向量b。”
    而从第二个方式来看,矩阵M描述了一个坐标系,姑且也称之为M。那么:
    Ma = b
    意思是:

    “有一个向量,它在坐标系M的度量下得到的度量结果向量为a,那么它在坐标系I的度量下,这个向量的度量结果是b。”

    这里的I是指单位矩阵,就是主对角线是1,其他为零的矩阵。
    而这两个方式本质上是等价的。
    我希望你务必理解这一点,因为这是本篇的关键。
    正因为是关键,所以我得再解释一下。
    在M为坐标系的意义下,如果把M放在一个向量a的前面,形成Ma的样式,我们可以认为这是对向量a的一个环境声明。它相当于是说:

    “注意了!这里有一个向量,它在坐标系M中度量,得到的度量结果可以表达为a。可是它在别的坐标系里度量的话,就会得到不同的结果。为了明确,我把M放在前面,让你明白,这是该向量在坐标系M中度量的结果。”

    那么我们再看孤零零的向量b:
    b
    多看几遍,你没看出来吗?它其实不是b,它是:
    Ib
    也就是说:“在单位坐标系,也就是我们通常说的直角坐标系I中,有一个向量,度量的结果是b。”
    而 Ma = Ib的意思就是说:
    “在M坐标系里量出来的向量a,跟在I坐标系里量出来的向量b,其实根本就是一个向量啊!”

    这哪里是什么乘法计算,根本就是身份识别嘛。

    从这个意义上我们重新理解一下向量。向量这个东西客观存在,但是要把它表示出来,就要把它放在一个坐标系中去度量它,然后把度量的结果(向量在各个坐标轴上的投影值)按一定顺序列在一起,就成了我们平时所见的向量表示形式。你选择的坐标系(基)不同,得出来的向量的表示就不同。向量还是那个向量,选择的坐标系不同,其表示方式就不同。因此,按道理来说,每写出一个向量的表示,都应该声明一下这个表示是在哪个坐标系中度量出来的。表示的方式,就是 Ma,也就是说,有一个向量,在M矩阵表示的坐标系中度量出来的结果为a。我们平时说一个向量是[2 3 5 7]T,隐含着是说,这个向量在 I 坐标系中的度量结果是[2 3 5 7]T,因此,这个形式反而是一种简化了的特殊情况。

    注意到,M矩阵表示出来的那个坐标系,由一组基组成,而那组基也是由向量组成的,同样存在这组向量是在哪个坐标系下度量而成的问题。也就是说,表述一个矩阵的一般方法,也应该要指明其所处的基准坐标系。所谓M,其实是 IM,也就是说,M中那组基的度量是在 I 坐标系中得出的。从这个视角来看,M×N也不是什么矩阵乘法了,而是声明了一个在M坐标系中量出的另一个坐标系N,其中M本身是在I坐标系中度量出来的。

    回过头来说变换的问题。我刚才说,“固定坐标系下一个对象的变换等价于固定对象所处的坐标系变换”,那个“固定对象”我们找到了,就是那个向量。但是坐标系的变换呢?我怎么没看见?
    请看:
    Ma = Ib
    我现在要变M为I,怎么变?对了,再前面乘以个M-1,也就是M的逆矩阵。换句话说,你不是有一个坐标系M吗,现在我让它乘以个M-1,变成I,这样一来的话,原来M坐标系中的a在I中一量,就得到b了。

    我建议你此时此刻拿起纸笔,画画图,求得对这件事情的理解。比如,你画一个坐标系,x轴上的衡量单位是2,y轴上的衡量单位是3,在这样一个坐标系里,坐标为(1,1)的那一点,实际上就是笛卡尔坐标系里的点(2, 3)。而让它原形毕露的办法,就是把原来那个坐标系:

    2 0
    0 3
    的x方向度量缩小为原来的1/2,而y方向度量缩小为原来的1/3,这样一来坐标系就变成单位坐标系I了。保持点不变,那个向量现在就变成了(2, 3)了。

    被矩阵:
    1/2 0
    0 1/3
    左乘。而这个矩阵就是原矩阵的逆矩阵。

    “对坐标系施加变换的方法,就是让表示那个坐标系的矩阵与表示那个变化的矩阵相乘。”
    再一次的,矩阵的乘法变成了运动的施加。只不过,被施加运动的不再是向量,而是另一个坐标系。

    如果你觉得你还搞得清楚,请再想一下刚才已经提到的结论,矩阵MxN,一方面表明坐标系N在运动M下的变换结果,另一方面,把M当成N的前缀,当成N的环境描述,那么就是说,在M坐标系度量下,有另一个坐标系N。这个坐标系N如果放在I坐标系中度量,其结果为坐标系MxN。

    在这里,我实际上已经回答了一般人在学习线性代数是最困惑的一个问题,那就是为什么矩阵的乘法要规定成这样。简单地说,是因为:
    1. 从变换的观点看,对坐标系N施加M变换,就是把组成坐标系N的每一个向量施加M变换。
    2. 从坐标系的观点看,在M坐标系中表现为N的另一个坐标系,这也归结为,对N坐标系基的每一个向量,把它在I坐标系中的坐标找出来,然后汇成一个新的矩阵。
    3. 至于矩阵乘以向量为什么要那样规定,那是因为一个在M中度量为a的向量,如果想要恢复在I中的真像,就必须分别与M中的每一个向量进行內积运算。我把这个结论的推导留给感兴趣的朋友吧。应该说,其实到了这一步,已经很容易了。

    综合以上1/2/3,矩阵的乘法就得那么规定,一切有根有据,绝不是哪个神经病胡思乱想出来的。
    我已经无法说得更多了。矩阵又是坐标系,又是变换。到底是坐标系,还是变换,已经说不清楚了,运动与实体在这里统一了,物质与意识的界限已经消失了,一切归于无法言说,无法定义了。道可道,非常道,名可名,非常名。矩阵是在是不可道之道,不可名之名的东西。到了这个时候,我们不得不承认,我们伟大的线性代数课本上说的矩阵定义,是无比正确的:
    “矩阵就是由m行n列数放在一起组成的数学对象。”
    好了,这基本上就是我想说的全部了。还留下一个行列式的问题。矩阵M的行列式实际上是组成M的各个向量按照平行四边形法则搭成一个n维立方体的体积。对于这一点,我只能感叹于其精妙,却无法揭开其中奥秘了。也许我掌握的数学工具不够,我希望有人能够给我们大家讲解其中的道理了。
    我不知道是否讲得足够清楚了,反正这一部分需要您花些功夫去推敲。

    展开全文
  • 产品需求分析与市场分析方法汇总(SWOT+PDCA+波士顿矩阵BCG+5W2H分析法+STAR关键事件分析法+目标管理SMART+时间管理紧急重要矩阵+WBS任务分解法) 产品需求分析与市场分析方法汇总 ... 一、KANO模型 ...
  • 推荐系统--安全联邦矩阵分解(7)

    千次阅读 2021-12-18 09:43:22
    联邦学习的关键原则是在不需要知道每个用户的个人原始隐私数据的情况下训练机器学习模型。 在本文中,我们提出了联邦学习设置下的安全矩阵分解框架,称为 FedMF。 首先,我们设计了一个用户级分布式矩阵分解框架,...
  • 山洪灾害风险预警指标的确定是防洪减灾工作中的关键技术问题,但由于山洪实测资料序列较短且山洪灾害样本量较小,难以采用传统的统计模型建立山洪灾害风险预警指标。任何统计模型其本质是建立输入-输出关系,在数学...
  • 孟岩的《理解矩阵

    2020-05-25 00:06:06
    一直很佩服那些以直观角度去理解数学的人,孟岩的《理解矩阵》以一种我从没想过的角度讲解矩阵,将其转载到本站,细细品读。为了便于阅读,我加了一些标题,并删除一些无关紧要的内容。原文在这里。 目录 1. ...
  • 矩阵论(一):广义逆矩阵(上)

    万次阅读 多人点赞 2018-09-11 20:21:22
    左逆矩阵与右逆矩阵 {1}逆 Moore-Penrose广义逆 {1,4}逆与极小范数解 {1,3}逆与最小二乘解 左逆矩阵与右逆矩阵 我们知道,只有方阵才有逆矩阵,且可逆方阵对方阵是有限制条件的,只有行列式不为零的...
  • 矩阵基础原理

    千次阅读 2016-12-28 17:00:07
    关于矩阵的理解,一直都是离散的,不能形成一个系统的概念,下边链接是原来看到过的一个关于矩阵理解的文章,看到有人转载,就也把内容复制了过来,以便后续自己进行知识的系统化。 原文网址戳这里 线性代数课程,...
  • 理解矩阵

    千次阅读 2017-09-24 15:32:16
    这里对看到的这篇“理解矩阵”的文章进行总结,文章从一种比较不一样的角度对矩阵进行了解释,觉得还是挺有意思的,所以在这里记录一下,主要还是对原文进行删减以及加上自己的理解。 线性代数的重要性:用瑞典数学...
  • 矩阵的理解

    千次阅读 2019-03-28 20:36:01
    这是很早以前已经看过的,最近无意中又把保存的文章翻出来时,想起很多朋友问过矩阵,虽对矩阵似懂非懂,但却很想弄懂它,希望这几篇文章能帮你一下,故转之: (一) 前不久chensh出于不可告人的目的,要充当老师...
  • 剖析矩阵的本质及其意义

    万次阅读 多人点赞 2019-11-25 21:16:57
    这是很早以前已经看过的,最近无意中又把保存的文章翻出来时,一直以来都觉得矩阵有种朦朦胧胧的神秘感,归根结底还是对矩阵的本质理解的不够,相信很多初学者跟我有同样的困惑,希望这篇文章能对你有所帮助。...
  • 如果不熟悉线性代数的概念,要去学习自然科学,现在看来就和文盲差不多。...我们如果认为矩阵是一组列(行)向量组成的新的复合向量的展开式,那么为什么这种展开式具有如此广泛的应用?特别是,为什么偏偏二维的...
  • 矩阵的实质意义(1)

    万次阅读 2020-04-16 09:30:27
    比如,如果你通过一般的证明方法论证了矩阵分块运算确实可行,那么这并不能够让提问者的疑惑得到解决。他们真正的困惑是:矩阵分块运算为什么竟然是可行的?究竟只是凑巧,还是说这是由矩阵这种对象的某种本质所必然...
  • AI上推荐 之 隐语义模型(LFM)和矩阵分解(MF)

    千次阅读 多人点赞 2020-08-27 16:08:41
    每一个用户和物品都会有一个隐向量, 如果是想预测某个用户对物品的评分的时候, 就直接物品向量与用户向量内积就可以得到了, 所以预测评分也是非常方便了,所以在隐语义模型里面这两个矩阵非常关键, 那么这两个...
  • 理解矩阵(一)

    2019-07-11 10:24:34
    由于本人最近在研究血液血管仿真类的论文,发现每看一篇论文就会看到矩阵的影子,实在不理解,矩阵为什么可以将各种向量组合在一起就形成了一些神奇的东西,比如 为什么组合公式,(1)至(5),整个血管结构的血流...
  • 压缩感知测量矩阵构造方法研究

    万次阅读 多人点赞 2017-08-03 10:23:11
    可是就算陶哲轩提出的RIP很完美,固定地构建满足K阶RIP且大小为 的测量矩阵可行的,但往往要求参数M相对较大,但是在具体的应用中,构建这样一个超多行的测量矩阵往往是不现实的。虽然困难不小,可是依然有不少...
  • 学习笔记 | 非负矩阵分解(NMF)浅析

    千次阅读 多人点赞 2019-01-31 21:35:25
    这篇博客简单地介绍非负矩阵分解(NMF),包括背景说明、NMF原理简介、代码分享以及NMF在一个趣味问题中的解决方案。
  • 4.4 无线信道传输的权重矩阵H与预编码矩阵 从上述的分析可以看出,MIMO的关键和核心是从信号发送端多天线到信号的接收端的多天线之间的无线信道的特性,即无线信道传输的权重矩阵H。 发送端通过对发送的信号X与传输...
  • 如何预测下一期组合的收益协方差矩阵就成了风险预测模型要解决的关键。 我们很容易想到的组合风险计算方式,就是通过组合内的每只个股的收益率情况得出协方差矩阵。但是,如果我们计算组合中的每一只股票的协方差...
  • 6.5 矩阵的运算及其运算规则 一、矩阵的加法与减法 ... 注意:只有对于两个行数、列数分别相等的矩阵(即同型矩阵),加减法运算才有意义,即加减运算是可行的.  2、 运算性质 (假设运算都是可行
  • 如何理解矩阵

    千次阅读 多人点赞 2017-10-27 09:50:37
    线性代数课程,无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙。比如说,在全国一般工科院系教学中应用最广泛的同济线性代数教材(现在到了第四版),一上来就介绍逆序数这个“前无古人,后无来者...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,427
精华内容 6,570
关键字:

关键可行矩阵