科研需要拜读了有关lanczos bidiagonalization的三篇论文,也是上篇博客最后里提到的三篇,下面试第一篇。

Lanczos bidiagonalization with partial reorthogonalization (Rasmus Munk Larsen 1998)
读本文之前,首先要知道lanczos有两种算法,一种针对大型稀疏对称矩阵的三对角算法,一种是针对大型稀疏非对称矩阵的二对角算法。
lanczos bidiagonalization(LBD)最早是由Golub 和Kahan提出的,并且它的分块扩展成为了许多方法的计算核心部分,已经被证实是求大型稀疏矩阵或者结构化矩阵的奇异值分解的有效方法。
Berry认为,PRO方法是计算大型稀疏矩阵最大奇异值以及奇异值向量的最有效方法。在SVDPACk, LANSO包里的子程序lanso是用于显示计算对称矩阵 ATA{A^T}A,

的特征值,然后再形成矩阵A的奇异值。然而,当A是ill-conditioned矩阵时, 会导致计算的奇异值的精确度降低。虽然采用C的形式,能够避免,但是同时会使从正交化的计算和存储空间显著增加,因为lanczos向量长度是m+n。同样计算同样数量的奇异值需要的迭代次数会加倍。
本文提出的BPRO算法,即是Matlab包里的PROPACK.

从上文可知有两种对称化的方法,可以通过求 对称矩阵的特征值和特征向量,求得A的奇异值和向量。这是Golub 和Kahan提出的最早期的算法,在LAPACK中的SVD就是通过对对称矩阵 ATA{A^T}A 用隐式的QR算法求特征值实现的。

但事实是 ATA{A^T}A形成对于算法的数值稳定性十分重要,除非矩阵A里是非常小的条件数,那么对称矩阵会导致舍入误差,从而我们不能保证从 ATA{A^T}A 的特征值得到的最小奇异值的准确性。

因为针对大型稀疏矩阵Golub 和Kahan算法的不切合实际性,lanczos算法由早期针对对称矩阵三对角化,然后对三对角矩阵进行对称QR算法(LAPACK _STEQR),QR算法是用于计算三对角矩阵特征向量最快的算法。lanczos二对角化之后,用二对角svd子程序(LAPACK _BDSQR).

BPRO已经实现,可以根据需要,下载并添加到matlab中,而matlab里自带的ARPACK里的eigs函数,是根据the implicitly restarted lanczos算法,svds函数是调用了eigs函数计算得到的。

BPRO还有其他基于lanczos bidiagonalization算法适合于计算大概规模稀疏或者结构性矩阵的计算。

lanczos bidiagonalization(1)相关推荐

  1. 双目立体匹配——归一化互相关(NCC)

    归一化相关性,normalization cross-correlation,因此简称NCC,下文中笔者将用NCC来代替这冗长的名称. NCC,顾名思义,就是用于归一化待匹配目标之间的相关程度,注意这 ...

  2. 相机标定(4) 矫正畸变 undistort()和initUndistortRectifyMap()

    从摄像机成像畸变的产生于是其"天生"的,不可避免的,这主要是由于透镜成像原理导致的.其畸变的原理可以参考相机模型).它的畸变按照原理可以分解为切向畸变和径向畸变. 畸变校正 ope ...

  3. 双目摄像头立体成像(二)畸变矫正与立体校正

    一.立体校正的原因 **原因一:**当畸变系数和内外参数矩阵标定完成后,就应该进行畸变矫正,以达到消除畸变的目的. **原因二:**在立体成像原理中提到,要通过两幅图像估计物点的深度信息,就必须在两幅 ...

  4. 单目标定---从原理到实现(c++)(利用张氏标定法)

    文章转自:https://www.cnblogs.com/zyly/p/9366080.html 双目视觉是建立在几何数学的基础上,数学推导是枯燥乏味的.因此这里不去过多的介绍数学原理,只是简要的叙述 ...

  5. 《OpenCV3编程入门》学习笔记7 图像变换(三 )重映射

    7.3 重映射 7.3.1 概念 1.重映射是把图像中某位置的像素放置到另一图片指定位置的过程,通过重映射表达像素位置:                    g(x,y)=f(h(x,y))     ...

  6. 《OpenCV3编程入门》学习笔记6 图像处理(六)图像金字塔与图片尺寸缩放

    6.6 图像金字塔与图片尺寸缩放 6.6.1 图像金字塔 1.图像金字塔是图像中多尺度表达的一种,主要用于图像分割,是一种以多分辨率解释图像的结构,通过梯次向下采样获得分辨率逐步降低的图象集合 2.分 ...

  7. 机器学习中的数学基础:(2)矩阵的奇异值分解(SVD)及其应用

    在机器学习领域,有相当多的应用与奇异值都可以扯上关系,比如做feature reduction的PCA,做数据压缩(以图像压缩为代表)的算法,还有做搜索引擎语义层次检索的LSI(Latent Sema ...

  8. 《繁凡的论文精读》(一)CVPR 2019 基于决策的高效人脸识别黑盒对抗攻击(清华朱军)

    点我一文弄懂深度学习所有基础和各大主流研究方向! <繁凡的深度学习笔记>,包含深度学习基础和 TensorFlow2.0,PyTorch 详解,以及 CNN,RNN,GNN,AE,GAN, ...

  9. 利用逆矩阵解线性方程组_QR方法求解矩阵所有特征值(一)

    QR分解法是求中小型矩阵全部特征值的最有效并广泛应用的方法. 一般矩阵先经过正交相似变化成为Hessenberg矩阵,然后再应用QR方法求特征值和特征向量. QR 分解 在学习QR方法之前需要知道什么 ...

最新文章

  1. mysql数据库显示问号_mysql数据库中文显示问号
  2. 在那些打磨汉芯的日子里[转贴]
  3. python raise用处_python基础教程python raise的基本使用
  4. 算法----迷宫问题
  5. Java中 IO 常用操作
  6. 程序包管理之编译安装
  7. 136_原始套接字_链路层MAC包_模仿他人飞秋,给自己主机上的飞秋【发送UDP数据】【只需要修改包含用户名、头像信息的数组】
  8. android设置透明主题后背景为黑色,android – 活动应该是透明的,但有黑色背景
  9. 磁盘管理器显示状态良好 计算机不显示,win7系统打开磁盘管理显示显示状态良好(有危险)的解决方法...
  10. CES 2017 DAY1:自动驾驶延续昨日热潮,其他产品更强调实用
  11. python3 实现自动生成入账记录表
  12. 无线井盖状态的监测及预警设备安装方式
  13. 申宝证券-市场呈现出震荡分化走势
  14. ChatGPT翻译怎么样-ChatGPT批量翻译工具软件
  15. 【计算机毕业设计】java ssm网上宠物商店系统
  16. java broken pipe_java.net.SocketException: Broken pipe问题解决
  17. 11、IOC 之使用 JSR 330 标准注释
  18. python中__init__.py的用法,执行指定的多个.py文件生成报告。简单粗暴1
  19. ppt怎么插入html代码,如何在PPT中插入html网.ppt
  20. CSS-基础选择器、字体文本属性、引入方式

热门文章

  1. python矩阵操作:dot、inv、det、eig
  2. ROS自定义msg类型及使用
  3. UrlRewritingNet实现ASP.net 2.0中URL重写(映射)
  4. 自己交社保的人怎么样才知道自己可以退休了?
  5. P-Link ARM Cortex-M脱机编程器开源前的一些准备工作----第四章 几个重要的结构体介绍
  6. List元素自动排序
  7. js(EcamaScript)
  8. 古典概型、几何概型与概率的区别与联系
  9. 关于人工智能领域的见解
  10. java开发环境搭建小结