重温线性代数(1)——线性组合
来源:互联网 发布:养车软件 哪个好 编辑:程序博客网 时间:2024/04/29 14:54
线性代数是数学中的基础,也是十分重要的数学工具。在接触机器学习之后,我逐渐认识到了线性代数的重要性,矩阵运算,优化求解,都离不开线性代数的知识。同时,我也发现了自己数学基础的严重不足,急需好好重学一遍线性代数,为之后的学习打好基础。因此,“重温线性代数”这个系列就诞生了。或许大家会觉得这个系列的内容稍微基础了点,但学习就是如此,一遍又一遍,脚踏实地,温故知新,每次学习都会有新的收获。
离开了大学的课堂,但还好现在有琳琅满目的网络公开课课程。我选择学习的是网上颇受赞赏的MIT "Introdution to Linear Algebra"课程,由Gilbert Strang主讲。参考书目为Strang编写的《Introduction to Linear Algebra》4th edition。目前为止,我觉得这门课给我提供了不少新的有趣的思路,是我之前学习线性代数的时候没有思考过的,值得一学。
——————————————————————————————————————————————————————————————————
本文涉及的内容是课程视频的前5课,对应的是书中的前两章Introduction to Vectors 和 Solving Linear Equations。由于这两章的内容最为基础,我不会详细地介绍书的内容(我也没看),只是根据课程视频总结一些有趣的points。
这一部分让我印象最深的有两点:
- 如何看待矩阵相乘AX:AX 可以看作矩阵A中列向量的组合(各列向量的组合权重即为x中各项的值);
- 如何看待消元法:消元法可以看作将矩阵A分解为 A = LU。
1、线性组合
2、置换、转置、逆
转置的定义相信大家十分清楚。所谓对称矩阵即是其转置等于其本身的矩阵。大家想想有什么方法可以快速得到一个对称矩阵呢?以下提供一种有趣的方法:矩阵 一定是一个对称矩阵,其证明也非常简单。
如果有:,我们则说为矩阵A的逆矩阵。矩阵A的逆矩阵不一定存在,以下便是其中一种特殊情况:如果能够找到一个非零向量x使Ax = 0成立,则矩阵A不可逆。利用反证法,我们将等式两边同时左乘即证明该结论。
求解一个可逆矩阵A的逆矩阵的基本方法是Gauss-Jordan方法,即将矩阵 通过消元法得到 ,则矩阵B则为矩阵A的逆矩阵。证明方法如下:
设消元矩阵为E,则有;
因此 ,可得;
所以 。 证毕。
一个小性质:。
3、消元法
消元法是求解线性方程组的基本方法,通过消元得到一个上三角矩阵(对角线一下元素都为零)U,然后通过回代得到各个未知数的解。消元法的具体方法在此不再叙述,但这里我们用矩阵的思想重新解读一下消元法。
需要注意的是,当使用消元法得到主元为零时(主元即对角线上的元素),消元法将会失效。在某些情况下,我们可以通过行交换消除这种主元为零的情况,这样消元法仍然是有效的。我们先考虑不需要进行行交换,消元法仍然有效的情况。
消元法实际上就是在作行变换:
然而实际上,我们有一种更加合理的方式对此进行理解,即将A进行分解得:
其中L为下三角矩阵,U为上三角矩阵。结合以上两个式子,我们可以看到L其实是E的逆:。通俗的理解该等式,矩阵A可以通过消元得到的上三角阵U通过消元的逆操作L得到。
使用L的好处是:消元时的乘数可以直接反映在L当中(multipliers go directly into L),我们举个例子来充分理解上述问题。我们对以下矩阵进行消元:
按照常规方法,我们需要两步:1、用第二行减去3倍的第一行;2、用第三行减去2倍的第二行。得到上三角矩阵:
采用矩阵的思路,我们可得消元矩阵分别为:
而L矩阵则为:
可见L中只反映了消元乘数3和2,比E更具有合理性。
对于需要作行交换的情况,上述分解式即变为:,其中P为置换矩阵。
4、小结
- 重温线性代数(1)——线性组合
- 重温线性代数(2)——向量空间
- 重温线性代数(3)——正交、投影
- 线性代数——对向量的线性组合中的“线性”的理解
- 线性代数的本质学习笔记(1):向量、线性组合、张成(SPAN)、线性变换
- 线性代数之从线性方程组看线性组合
- HEX(组合数+线性代数)
- 重温数据结构——(1)
- 线性代数导论9——线性相关性、基、维数
- 线性代数导论9——线性相关性、基、维数
- MIT 线性代数(1—3)读书笔记
- 线性代数笔记(线性方程组、线性空间,线性变换)
- 《线性代数》——读书笔记1
- 重温数据结构——(2)
- 重温经典(三)—操作系统
- 重温Redis(1)
- 线性代数:第四章 向量组的线性相关性(1)向量组的线性相关性 向量组的秩
- 漫步线性代数十——线性无关,基和维数
- BZOJ3156 防御准备
- Java对blob文件的保存和解析
- mongodb启动数据库失败(如何正确关闭mongo数据库)
- boost::string or boost::regex
- python 爬取csdn网页并保存博客到本地
- 重温线性代数(1)——线性组合
- 开放的书名检索库
- Iptables的原理和配置
- 逆波兰
- 应用开发者指南_source
- lua中面向对象(class)实现探索(一)
- Mybatis框架提供的resultMap返回值别名
- Freemarker 没有continue
- transient 关键字与序列化