当前位置: 首页 > news >正文

(1分钟速通面试) 矩阵分解相关内容

矩阵分解算法--总结

QR分解 LU分解

本篇博客总结一下QR分解和LU分解,这些都是矩阵加速的操作,在slam里面还算是比较常用的内容,这个地方在isam的部分出现过。(当然isam也是一个坑,想要出点创新成果的话 可能是不太现实的 短期来讲 哈哈哈)

假定我们能把矩阵A写成下列两个矩阵相乘的形式:A=LU,其中L为下三角矩阵,U为上三角矩阵。这样我们可以把线性方程组Ax= b写成Ax= (LU)x = L(Ux) = b。令Ux = y,则原线性方程组Ax = b可首先求解向量y 使Ly = b,然后求解 Ux = y,从而达到求解线性方程组Ax= b的目的。(非常熟悉的 数值分析课上学的LU分解的形式)

编辑

添加图片注释,不超过 140 字(可选)

LD(LT)的形式,就是把上面的LU分解中拆出来一个倍数矩阵,然后我觉得没啥必要。在这里也放上。

定理:若对称矩阵A的各阶顺序主子式不为零时,则A可以唯一分解为A= LDLT,这里。

编辑

添加图片注释,不超过 140 字(可选)

下面是cholesky分解 读作乔列斯基分解, 栓Q 这些英文名字要是不会读的话 你在讲相关内容的时候就会显得很尴尬 哈哈哈 笑死。

Cholesky分解是一种分解矩阵的方法, 在线形代数中有重要的应用。Cholesky分解把矩阵分解为一个下三角矩阵以及它的共轭转置矩阵的乘积(那实数界来类比的话,此分解就好像求平方根)。与一般的矩阵分解求解方程的方法比较,Cholesky分解效率很高。

对于上面这段定义,让我认知扩充了。上学期学的数值分析里面我知道是转置矩阵,但是没想到是共轭转置矩阵。也就是说一开始我是不知道他还有个共轭的关系在里面的。行了,现在知道了。可能上学期学的内容都是定义在实数域上面的,那么共轭的概念就逐渐被弱化了。现在记住了,原来是共轭转置矩阵。心里默念三遍 hhh

QR分解

矩阵的QR分解是指,可以将矩阵A分级成一个正交阵Q和一个上三角矩阵R的乘积。实际中,QR分解经常被用来解线性最小二乘问题。

编辑

添加图片注释,不超过 140 字(可选)

上面这个就是QR分解,感觉这些的话 会用就行,知道谁的速度快,然后什么情况下的矩阵适合什么样的方法即可。

SVD分解

编辑切换为居中

添加图片注释,不超过 140 字(可选)

说白了,这里的奇异值就是特征值的含义。那么这个矩阵的话,按照我本科的学习思路来说,就是由特征向量和特征值来共同组成的。就是那一套,莱姆大E - A的行列式,求特征值,特征向量,然后就写出来。现在的话,对特征值也是有一定的理解了。特征值可以反应数据的离散情况,也反映了数据的分布 同时可能也反映了数据的趋势。好了,这个特征值的话还是很有用的。在机器学习的一个面试题里面,特征值大的方向,数据会越离散,反之数据会越集中。当然我们研究的话,应该是研究离散的,因为这样好区分。前面这句话主要针对分类来说,因为你的数据离散了,可区分性好了以后,那么我们做分类的效果才显著,这样的研究才有意义。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

上面这幅图的话 主要说了广义逆矩阵的事情,为啥说是广义呢,因为平时我们定义的逆矩阵一定是一个方阵,这里不是方阵了,那么就称作是广义逆矩阵了。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

本科的时候我们叫他乔丹分解,哈哈哈 就是aj的那个乔丹。笑死。

这个没啥好说的,就是jardon块的构造,这个也是根据特征值的次数来进行构造的。可能再看一看就能想起来相关内容了,所以这里省略。(主要是slam里面好像并不提及这个东西,反正我是没见过 hhh)

编辑

添加图片注释,不超过 140 字(可选)

这里有一个比较。笑死,LU分解最快了。

那在这里对矩阵的分解进行一个总结。也就是说平时我们在解方程组的时候,如果求逆,会加大计算量。我们这时会选择矩阵分解的方法来进行求逆的代替。然后进而求得方程的解。笑死 我想起来上学期的考试,在线LU分解 在线cholesky分解,直接写结果,真的非常方便。如果按照它们的定义一步步地计算的话,我估计最起码20分钟 在不算错的情况下。行了 本篇就讲到这里,这个矩阵分解的内容,opencv也进行了相应地包装。在这里的话不必过多赘述了。栓Q,本篇到此结束。

http://www.lryc.cn/news/623.html

相关文章:

  • this指向
  • 安卓小游戏:小板弹球
  • 7、单行函数
  • 华为机试题:HJ56 完全数计算(python)
  • opencv——傅里叶变换、低通与高通滤波及直方图等操作
  • 【NGINX入门指北】 进阶篇
  • Python中关于@修饰符、yeild关键词、next()函数的基本功能简述
  • 结合Coverity扫描Spring Boot项目进行Path Manipulation漏洞修复
  • 【FFMPEG源码分析】从ffplay源码摸清ffmpeg框架(一)
  • C++蓝桥杯 基础练习,高精度加法,输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
  • MySQL面试题:SQL语句的基本语法
  • Fluid-数据编排能力原理解析
  • 并发线程、锁、ThreadLocal
  • CMMI-结项管理
  • 网络通信协议是什么?
  • 阶段5:Java分布式与微服务实战
  • 我的创作纪念日
  • Qml学习——动态加载控件
  • 设计模式之职责链模式
  • MySQL入门篇-MySQL 8.0 延迟复制
  • FPGA时序约束与分析 --- 实例教程(1)
  • go深拷贝和浅拷贝
  • linux网络系统层面的配置、管理及操作命令汇总
  • R数据分析:孟德尔随机化中介的原理和实操
  • 【C++】 类和对象 (下)
  • asp获取毫秒时间戳的方法 asp获取13位时间戳的方案
  • Python基础篇(十五)-- Python程序接入MySQL数据库
  • 程序员不得不知道的 API 接口常识
  • 【项目精选】基于Java的银行排号系统的设计与实现
  • 前端 基于 vue-simple-uploader 实现大文件断点续传和分片上传