孟岩ID:myan
[修改头像]
1553246次访问,排名6好友1人,关注者32
总是在思考存在的问题
myan的文章
原创 146 篇
翻译 0 篇
转载 3 篇
评论 5196 篇
最近评论
lschou520:怎么会忘记印度、日本和欧洲呢?
daijunhua:支持,中华儿女,互相护持地走!
ranzj:我只抱怨自己的努力不够。
ranzj:我毫不怀疑 SilverLight 是个“钱”途无量的玩意儿。
winvc:还有 之前已经看到过一篇署名孟岩的文章了 也是自称学计算机的 在MOP发的文章 题目是《不知名的程序员写给想学编程的朋友》(最后署名前还特别声明了下自己是初中文化全靠自学的 大哥 这样的人全国有几千万 没几个比你这种货色差的)

那文章是看的我想吐 不知道是你还是重名了 不过咋跟你这篇文章风格这么像呢 都是不懂 逻辑混乱 瞎喷
你是自己想不明白问题 但认为自己想……
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
文章分类
收藏
    相册
    测试
    友情链接
    老赵的博客
    存档

    原创 理解矩阵(三)

    新一篇: 从SaaS到S+S:以退为进

             理解矩阵(一)

            理解矩阵(二)

            这两篇文章发表于去年的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维线性空间里的方阵是由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)了。

           怎么能够让“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,矩阵的乘法就得那么规定,一切有根有据,绝不是哪个神经病胡思乱想出来的。
     
            我已经无法说得更多了。矩阵又是坐标系,又是变换。到底是坐标系,还是变换,已经说不清楚了,运动与实体在这里统一了,物质与意识的界限已经消失了,一切归于无法言说,无法定义了。道可道,非常道,名可名,非常名。矩阵是在是不可道之道,不可名之名的东西。到了这个时候,我们不得不承认,我们伟大的线性代数课本上说的矩阵定义,是无比正确的:

            “矩阵就是由m行n列数放在一起组成的数学对象。”

            好了,这基本上就是我想说的全部了。还留下一个行列式的问题。矩阵M的行列式实际上是组成M的各个向量按照平行四边形法则搭成一个n维立方体的体积。对于这一点,我只能感叹于其精妙,却无法揭开其中奥秘了。也许我掌握的数学工具不够,我希望有人能够给我们大家讲解其中的道理了。

            我不知道是否讲得足够清楚了,反正这一部分需要您花些功夫去推敲。

            此外,请大家不必等待这个系列的后续部分。以我的工作情况而言,近期内很难保证继续投入脑力到这个领域中,尽管我仍然对此兴致浓厚。不过如果还有(四)的话,可能是一些站在应用层面的考虑,比如对计算机图形学相关算法的理解。但是我不承诺这些讨论近期内会出现了。



            

            

            




           

          

    发表于 @ 2007年11月03日 21:42:00|评论(loading...)|编辑

    旧一篇: Intel C++编译器和VTune的免费版本

    评论

    #Solstice 发表于2007-11-04 01:15:06  IP: 116.227.25.*
    怒赞!
    #Solstice 发表于2007-11-04 03:03:08  IP: 116.227.25.*
    怒赞!
    #xu_xi 发表于2007-11-04 07:17:36  IP: 61.167.60.*
    抢板凳
    #lzmtw 发表于2007-11-05 11:43:45  IP: 59.34.52.*
    刚打算温习这部分内容.谢谢
    #zhangsq18 发表于2007-11-05 12:12:14  IP: 58.154.237.*
    。。。是在普及矩阵理论吗?

    #microci 发表于2007-11-05 13:03:37  IP: 219.140.60.*
    Good。。。
    #butabuta528 发表于2007-11-05 13:27:22  IP: 192.168.168.*
    写得好 容易让人理解
    #xingranliuyun 发表于2007-11-05 13:36:30  IP: 60.31.198.*
    "矩阵又是坐标系,又是变换。到底是坐标系,还是变换,已经说不清楚了,运动与实体在这里统一了,物质与意识的界限已经消失了,一切归于无法言说,无法定义了。道可道,非常道,名可名,非常名。矩阵是在是不可道之道,不可名之名的东西。"

    看了您这段话,我觉得有点晕,明明矩阵是个数学概念,干吗非要扯到什么“道可道,非常道”之类的东西上去。

    只能想起来当年学代数的时候经常提醒自己:

    线性变换可以用矩阵的形式来呈现,也就是说,矩阵是形式,而变换——也就是各种映射才是本质,而代数的重要任务之一就是研究各种数学结构之间的关系——也就是映射。这样想不全对,不过却能让我对代数有个整体认识,比起只记得矩阵要强的多。

    而且把握住“映射是本质”这一点对写程序也很有好处——那些函数不就是映射吗?而矩阵,还是要通过各种函数来操控的。

    还有,不能同意什么“矩阵是在是不可道之道,不可名之名的东西”——搞不懂就承认自己搞不懂好了,干吗非要弄得那么玄乎呢?

    数学书确实有点枯燥,不过只要耐心读下去,就算不能完全记住,却也能完整地把握住一个体系,而且还可以学到严谨的推理方式和实事求是的态度————严谨,实事求是,这不正是一个程序员需要的基本素质吗?(虽然很多人并没有这些素质,但是那只能说是他们自己不合格罢了)所以说,要想学数学,还是应该认真看看数学书。

    抱歉,话说得有点伤人。
    #wang_jinquan530 发表于2007-11-05 15:07:36  IP: 125.40.51.*
    经典,数学原来如此有趣
    #wodegege10 发表于2007-11-05 16:22:21  IP: 222.58.16.*
    我同意 矩阵是线性变换的表现形式
    变换--映射,它们之间的关系已经忘掉了
    仅仅只讨论矩阵是片面的
    #oyd 发表于2007-11-05 16:53:53  IP: 61.135.152.*
    to xingranliuyun

    我不认可你的看法,我认为你所坚持的态度是对机器的要求,而很显然,现在生产的机器基本上都是具备了严谨和实事求是的态度的,也无须要反复强调了。

    对作为程序员的人来说,严谨和实事求是不过是口号化的东西。口号喊一千遍,效果不一定比看个成人笑话好。
    #qepwqy 发表于2007-11-05 19:51:44  IP: 124.114.203.*
    不错,本人线性代数学的不怎么样,但知道说的真不错。
    #AISTUDY 发表于2007-11-05 21:53:39  IP: 124.115.166.*
    孟老师难得的好文章让我对多年望而却步的矩阵产生了极大的兴趣,一口气读完了三篇连载。谢谢你无私的奉献。
    #GlietBoy 发表于2007-11-05 23:42:55  IP: 221.7.229.*

    老岩又可以当数学家了。对其中的数学定义和表示法的表述,本人觉得不好。老岩同志,下次,希望您写的东西,能表述准确些,而不是刚入大一新生。呵呵。
    #JJWorm 发表于2007-11-06 11:00:25  IP: 125.70.230.*
    首先很感谢孟老师难得的好文章, 但看了以后, 更加的失落. 孟老师对我下面的观点是这么理解和认识的呢, 谢谢指点.
    我一直也喜欢在数学的公式中去找答案,去发现直观意义. 在贴子中,发现了原还有许多同样的朋友. 但更重要的收获,是在回复中一些朋友启发到. 直觉可能不是数学的全部. 直觉不是数学的终点, 确定性不是数学的本原.那么数学你到底是要做什么的啊........... 要崩溃了. 我从小一直以为世界本质是美好的, 一切最终是追寻着真善美的目标. 但现实一再告诉我们, 假设有上帝, 那么它不一定会是真善美的代言人. 一切的一切都指向的是"存在". 为了存在没有任何标尺. 数学也是世界的一部分, 那么它也不会有责任去真善美. 再美好的直观解释让我能激动一时,更多的是失落. 说得有点乱,请多多见谅
    逻辑可以等待, 希望它真的是永恒.
    #pzhuyy 发表于2007-11-06 16:36:41  IP: 219.136.235.*
    不错.
    #Zanmato 发表于2007-11-11 20:10:57  IP: 222.66.175.*
    孟老师,您好。

    今天偶然读了您的文章,最开始是从您的那篇过渡技术的文章读起,深以为然。

    继而在旁边的回复中看到了这个理解矩阵系列,大一时那些令我苦苦不得要领的公式和概念再次浮现脑海中。幸有这几年下来一些相关领域之内关于矩阵应用之经验,方不致彻底的与这样一套美妙的数学体系老死不相往来。

    今日看了您的文章,更是激发起了对此类知识无限的求知欲。

    真心感谢您创作出这样的文章,并希望以后能有机会再次读到类似的文章。

    PS:感觉孟老师这篇文章的思路很像一篇很火的历史题材小说《明朝那些事儿》,非常欣赏。
    #kezhong 发表于2007-11-12 20:26:39  IP: 58.213.113.*
    对于线性代数,我还有一些不懂的地方,还请老师下次文章的时候介绍一下。
    那就是四元组运算的第四维.
    OpenGL里面的ShadowMatrix,在不使用分支判断语句的情况下,对方向光和点光源光做了ShadowMatrix,我一直不明白为什么表示光纤的四元组有那么强大的威力。
    还望老师答疑。
    #Tranquilizer 发表于2007-11-13 11:23:17  IP: 218.185.53.*
    推广数学是好事,不过不必把很简单的东西写得神乎其神。只要学过一点CG原理的人,都知道maxtrix 是可以用来位移,压缩,拉伸。这些基本操作只要几个例子就能说明白。vector图形软件像Illustrator, Flash. 物件(object) 内部操作都是用一系列matrix来纪录的。你如果想把matrix学的深一点,建议你去学一点openGL。故作高深实在令人反感。
    #kaoziji 发表于2007-11-13 15:17:24  IP: 222.66.13.*
    “直观”!
    中国的填鸭式教育,就是缺少让学生建立起对知识的“直观”概念。
    #kaoziji 发表于2007-11-13 15:19:41  IP: 222.66.13.*
    “直观”!
    中国的填鸭式教育,就是缺少让学生建立起对知识的“直观”概念。
    #ccss01 发表于2007-12-03 00:20:52  IP: 222.212.224.*

    三篇都看过,这是第一次发表评论。
    孟岩关于矩阵、变换、坐标系的阐述,有些地方确实很直观。
    不过这种直观有某些局限性。就是说在某一个应用方面这样来理解和思考会很直观。普遍看来一些对概念的理解不具备“普适性”。

    不过,课本上的数学用于都很抽象很枯燥,也正是这种抽象的语言,才精准的描述了人类对数学某些局部理解的精微。这些描述的语言可能可以有更完善的改进,就像编写的程序有些地方的语句可以改得更巧妙更坚固一样。孟岩对矩阵理解的这种描述的改进是出于处理计算机图形学当中要用到各种变换而进行深入思考的结果。总的说来有闪光的地方。也有使用起来不是那么灵光的词语。
    比如说矩阵就是运动。这样理解相对有些狭隘。
    不过总体看来还是瑕不掩瑜的。
    数学书上的语言是经过千锤百炼的。也容许我们每个人按自己的理解方式来理解。那么数学书上这种描述就是一个好的语言。它言辞很单调枯燥,可是道理是对的。那么就看你怎样对它加工,使它明确、使它华丽、使它完美。使它更易于理解和使用。这个过程也就是一个人学懂了数学的过程。
    综述说完了。
    时间有限,说点我的理解作为交流。
    向量,不是线代一来就给的是n维的吗?
    我们一般可以最多思考出一个3维向量在3维空间里头有多长,指向那个方向。所以n维的一来,头都大了。思考不出来。很抽象。
    其实先辈们老聪明了。你n维不是很抽象吗。我不是一下子想象不出来你一个n维向量在n维空间是个什么模样吗?咱直接把每一维的长度挨个儿排成一个柱状图不就可以准确的想象出它的形象了吗。像一根根长短不一的石柱树立在平地上排成一排。第一根石柱高3米,那么这个向量的第1维就是3 。第二根石柱高8米,向量的第2维就是8,以此类推。这样就抓住了n维向量的本质:我可以准确的描述它——n维向量。
    好了,两个n维向量就是两幅柱状图。m个n维向量就是m幅柱状图。
    当然,课本上空间太小,不适合画很多图。所以就直接写一排数字分别代表每一维柱子的高度。就是我们常看见的:(3 , 8 , 2 , -1 , 5)这种形式。它是一个5维向量,而且用柱状图很容易想出它的形象。
    用“柱状图”来思考向量的运算还很方便。
    下一步,就是定义向量之间的运算:
    两个柱状图
    ( 3 , 8 , 2 ,-1 , 5 )
    ( 1 ,-3 , 2 , 4 , 1 )
    一上一下每一维都对齐。每个分量分别相加,又得到一个柱状图。
    ( 4 , 5 , 4 , 3 , 6 )
    这叫两个向量的“和”。

    两个柱状图
    ( 3 , 2 , 2 ,-1 , 5 )
    ( 1 ,-3 , 2 , 4 , 1 )
    一上一下每一维都对齐。每个分量分别相乘,又得到一个柱状图。
    ( 3 ,-6 , 4 ,-4 , 5 )
    然后再吧所有分量都叠加起来。得到一个数:2 。这叫两个向量的“内积”。

    一个柱状图
    ( 3 , 1 , 2 ,-1 , 5 )
    每一维都乘上相同的一个数 3。又得到一个柱状图。
    ( 9 , 3 , 6 ,-3 ,15 )
    这叫向量的数乘。这个运算在向量空间当中称作外作用,因为在另外一个数域当中取了一个3过来。上面两个运算都是内作用。

    然后根据内积的概念就可以定义向量
    #ccss01 发表于2007-12-03 00:22:31  IP: 222.212.224.*
    还不能一次发完??===========继续


    然后根据内积的概念就可以定义向量的范数和判别两个向量是否正交。以及向量之间的相关性等等。
    把向量的每个分量的数域扩充一下,分量为复数的可以定义复向量。
    分量为m维向量的可以定义维矩阵。
    向量的分量之间不是1维、2维、3维这么按自然数排布下去的。比如,来个第1.2维、第2.6321维等可以扩充到“分维”,这个按下不表。
    向量的分量之间按实数关系排布的,就是一元函数。所以孟岩说过,一般的一元函数都是无穷维的向量。而且这个向量也满足上面3中运算规则。比如两个函数叠加——向量的加法,一个数乘上一个函数——向量的数乘,两个函数在相同的定义域内积分——向量的内积(孟岩所说“一个对象可以表达为无穷多个合理选择的对象的线性和。”可以在这里和下面的卷积处找到印证)。

    如果再给向量定义两个运算方法叫做移位和反折。移位,就是柱状图的柱子一起往左或者一起往右移动n个单元格(注意,这里和一元函数那里其实隐含的添加了一个概念,就是柱子们之间现在有序了,不是单纯向量里面的不注重顺序的柱子),那么就可以引申出更丰富的内涵。比如移位空出来的直接填0还是循环移位等等。当然有多种方式就靠我们自己去定义,最后检验一下如果能够“自圆其说”就是好理论。
    反折,就是以当中某一个分量的位置为中心。或者以某两个分量之间的位置维中心。一排柱子以这个中心转180度。
    有了移位和反折这种运算。那么两个函数就多了一种有用的运算:卷积。信号系统和数字信号处理里面用得很
    多。这个按下不表。

    如果柱状图的每一个柱子的高度都不是常数,都是变化的,并且都是随着某一个变量变化的,那么可以说整个柱状图都是随着这个变量变化的。那么这个柱状图就不是“常”柱状图,而是“变”柱状图。就是说这个n维的矢量不是“常矢量”,而是“变矢量”,简称“变矢”。说白了就是你给我一个变量,我还你n个函数值。这就打破了课本上之前所学的函数只能是一一映射(一射一)或多射一(多元函数有多个自变量,但每次给定多个变量时,只能得到一个函数值)。从而实现了一射多。你给定一个自变量,我第一个分量是一个值,第二个分量又是一个值,第三个……;说白了一个矢量函数是由n个一射一的函数组成的,它们自变量相同,得到的函数值不一定相同(呵呵,这也能叫一射多)。

    演绎一下:如果柱状图的每根柱子都是随着相同的多个自变量变化的。那么就是多射多了。
    多元单值函数(多射一),自变量就可以看作是一个向量。这种函数就可以看作是在一个向量空间当中取一个向量来,就映射出一个单纯的数值(数量)。向量空间的内积运算就是一个例子。
    多射多的函数,就可以看作是取一个m维向量来,就映射出一个n维向量的值。——这就是向量的“变换”。或者叫做不同的向量空间之间的“映射”。
    更进一步,如果这个“变换”是线性变换。
    并且给定了定义域(原象空间,也就是取m维向量的地方)和值域(象空间,也就是得到的n维向量所在的集合)的基之后;再说一遍:如果给定了这种线性变换的定义域空间的基和值域空间的基之后,这个变换就可以用一个矩阵来表示。就是孟岩所说的Ma = b。写成Mx = y。x是m维的。y是n维的。


    再把一元函数当中的导数的概念拉进来。一个一元函数随着自变量简单有序的变化(说白了就是递增或递减)从而函数值产生了变化(即使不变也
    #ccss01 发表于2007-12-03 00:23:46  IP: 222.212.224.*
    痛苦的继续=======================早知道就难得写了

    再把一元函数当中的导数的概念拉进来。一个一元函数随着自变量简单有序的变化(说白了就是递增或递减)从而函数值产生了变化(即使不变也是一种变化,就跟哲学当中静止也是一种特殊的运动一样)。把前后两个函数值相减再除以自变量的变化量。然后再强调自变量的变化很小(就是去求极限)。就得到函数的导数。
    同样,一个变矢(一射多)随着自己的一个自变量变化,也就能n个分量的变化。一求变化率的极限就是n个导函数。所以变矢的导数是矢量。
    同样,一个多射一的函数f(Z),设Z是一个n维向量。随着Z的一点小小的变化(即每个每个分量都有小小的变化,即使某些分量没变化也是一种变化,就跟哲学当中静止也是一种特殊的运动一样),函数值也有变化。每个分量的变化量可能不相同。有的大有的小。函数值变化量只有一个。所以,函数值变化量针对每个分量的变化率是不同的。那么函数值针对n个分量的变化率就有n个。所以多元函数的全导数就是梯度。

    好了,时间不早了,草草收尾。
    欢迎指出谬误。

    最后盛赞孟岩兄!
    #mhsy2003 发表于2007-12-23 04:03:30  IP: 59.61.22.*
    屁..
    #runningstar 发表于2008-01-10 13:38:13  IP: 124.42.47.*
    非常好,要转载一下让更多的像我一样大学时候没有开窍的人知道
    #xzxb1967cn 发表于2008-01-10 20:57:31  IP: 117.84.81.*
    矩阵得到的是一个方向,一个趋势,而不是什么结果
    #xuanyuanhaobo 发表于2008-02-05 13:23:33  IP: 61.172.241.*
    很高兴看到你承认你的文章是"粗糙放肆".

    最好的矩阵概述是那位“东阳”同学老师的回答
    矩阵是什么?
    1. 矩阵只是一堆数,如果不对这堆数建立一些运算规则。
    2. 矩阵是一列向量,如果每一列向量列举了对同一个客观事物的多个方面的观察值。
    3. 矩阵是一个图像,它的每一的元素代表相对位置的像素值,
    4. 矩阵是一个线形变换,它可以将一些向量变换为另一些向量。
    所以要回答“矩阵是什么”,取决于你从什么角度去看它。
    [当然东阳同学在转述中用词不是很准确...但是大意还是很清楚了.]

    就好像"64"这个数是什么一样,你可以看成十进制的64,也可以看成ASCII的"A",也可以看成IA32的汇编的某个指令,可以看成其他系统的汇编指令.至于是什么,"取决于你从什么角度去看它"...

    从应用角度上,矩阵就是工具。
    至于是什么样的工具,就要看你的应用了。根据应用,根据矩阵运算规则,建立矩阵。

    例如:计算机3D图形学中,建立旋转矩阵时,我们不但要考虑到是要绕哪个轴旋转,还要考虑到是用行向量还是列向量。

    要下班了,不多说了......拜个早年。。。。
    #wangyi03 发表于2008-03-05 16:18:40  IP: 210.13.92.*
    首先,楼上有些朋友理解能力过弱,你正面想不明白,你反着想也行啊,如果这个象你理解的这么简单,myan吃饱了要写这么多,myan不管怎么说,不会没你聪明吧。所以出言三思,不要妄加评论

    矩阵,向量空间这些基础孟老师也讲得这么多了,建议在此基础上能着重讲讲正交,付立页变换这些,真的好想看到这方面的文章。
    #wuthering_ware 发表于2008-04-29 21:20:00  IP: 60.168.93.*
    赞一下myan老师, 我一口气看完了这三篇文章,使我一直对矩阵这个东东有了一点理解, 正好最近写3D的相关程序,帮助很大。
    觉得楼上的有些人可能误解myan老师写这个系列文章的本质意图了。 理解数学如果只是大家把前辈大师已经整理好的公式和理论背背或抄抄, 或拿来用用就OK的话,我们无异于行尸走肉而已, 关键还是在于“悟”, 怎么前人就造出一个矩阵出来了? 它仅仅是偶然的发现,还是一个真理? 就像关于物理学中关于光的发现情景(是一个被关在牢房里几十年的人, 因为每天只能从牢房的窗户里看到一丝光线, 突然悟出了: 光线是因为射到人眼中,人才可以见到光, 而不是人眼发射了xx东东而看到光, 具体是谁不记得了?)。
    #chentao317316685 发表于2008-05-07 20:47:47  IP: 221.10.14.*
    写得很好!
    #chentao317316685 发表于2008-05-07 21:14:20  IP: 221.10.14.*
    以前从来不在网上发表言论的我,今天好兴奋特别注册想说几句,最近一直在学习线性代数,其实知道矩阵啊,行列式都有几何意义的,天天想啊看啊,为什么呢,因为以后想用,工科的线性代数确实不怎么好,一大堆定义就不说什么意思,其他数学书大概也都这样,所以中国绝大部分书差啊!只会行列式矩阵运算,你以后根本不能灵活运用,个人觉得更多的去关注他的物理意义吧,看了上面作者发的文章,真的理解了很多,虽然还是有些糊涂,不过第三篇多看几遍也许就会明白,最近一直想一个问题,比如看见一个矩阵你可以把它想成n唯空间的一个线性变换在一组基下的矩阵,这个线性变换在另外一组基下也有一个矩阵,这两个矩阵相似.所以通过特征值就会找到另外一组基,线性变化在这个基下尽量简化,最简单的可能就是对角矩阵了把.所以一个矩阵就对一个线性变换,可是我在想啊,两个基的过渡矩阵又怎么理解呢?过渡矩阵也是矩阵啊.难道把一组基变到另外一个基吗?头都晕了.慢慢理解吧!也许老师说的把矩阵理解为坐标系后就可以理解过渡矩阵.以后好好看看画画..不过老师说的矩阵的行列式我最近找到一点东些可以理解,在解析几何里面的混合积可以理解三唯行列式,矩阵不是有三行吗?要是建立一个三个坐标的空间坐标系,然后把三唯矩阵每一行理解为坐标系下面的三个点,然后想像从原点到三个点有三个向量,有方向的箭头,那么行列式就是这三个箭头形成的一个体积的体积,因为向量混合积就是体积,所以自然可以把n行的那种想成n唯空间的n个点,也许行列式就是体积吧,有兴趣的朋友我们讨论哈矩阵,共同进步哈,我的qq317316685,我想学好矩阵
    #chentao317316685 发表于2008-05-07 21:20:37  IP: 221.10.14.*
    其实数学要求太严密了,反而破坏了创造力
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 孟岩