cholupdate

Cholesky 分解的秩 1 更新

语法

R1 = cholupdate(R,x)

R1 = cholupdate(R,x,'+')

R1 = cholupdate(R,x,'-')

[R1,p] = cholupdate(R,x,'-')

说明

R1 = cholupdate(R,x)(其中 R

= chol(A) 是 A 的原始 Cholesky 分解)返回 A + x*x' 的上三角 Cholesky 因子,其中 x 是具有合适长度的一个列向量。cholupdate 仅使用 R 的对角线和上三角。R 的下三角将被忽略。

R1 = cholupdate(R,x,'+') 与 R1 = cholupdate(R,x) 相同。

R1 = cholupdate(R,x,'-') 返回 A - x*x' 的 Cholesky 因子。当 R 不是有效的 Cholesky 因子或旧矩阵不是正定矩阵时,将会报告一条错误消息,这样将没有 Cholesky 分解。

[R1,p] = cholupdate(R,x,'-') 将不返回错误消息。如果 p 为 0,则 R1 是 A - x*x' 的 Cholesky 因子。如果 p 大于 0,则 R1 是原始 A 的 Cholesky 因子。如果 p 为 1,则 cholupdate 将失败,因为旧矩阵不是正定矩阵。如果 p 为 2,则 cholupdate 将失败,因为 R 的上三角不是有效的 Cholesky 因子。

示例

A = pascal(4)

A =

1 1 1 1

1 2 3 4

1 3 6 10

1 4 10 20

R = chol(A)

R =

1 1 1 1

0 1 2 3

0 0 1 3

0 0 0 1

x = [0 0 0 1]';

这称为对 A 的秩为一的更新,因为 rank(x*x') 为 1:

A + x*x'

ans =

1 1 1 1

1 2 3 4

1 3 6 10

1 4 10 21

不使用 R1 =

chol(A + x*x') 计算 Cholesky 因子,可以使用 cholupdate:

R1 = cholupdate(R,x)

R1 =

1.0000 1.0000 1.0000 1.0000

0 1.0000 2.0000 3.0000

0 0 1.0000 3.0000

0 0 0 1.4142

接下来,通过从 A 的最后一个元素中减去 1 来破坏正定性(并且实际上将矩阵设置为奇异矩阵)。旧矩阵为:

A - x*x'

ans =

1 1 1 1

1 2 3 4

1 3 6 10

1 4 10 19

将 chol 与 cholupdate 进行比较:

R1 = chol(A-x*x')

Error using chol

Matrix must be positive definite.

R1 = cholupdate(R,x,'-')

Error using cholupdate

Downdated matrix must be positive definite.

但是,将 0.5 从 A 的最后一个元素中减去将生成一个正定矩阵,可以使用 cholupdate 计算其 Cholesky 因子:

x = [0 0 0 1/sqrt(2)]';

R1 = cholupdate(R,x,'-')

R1 =

1.0000 1.0000 1.0000 1.0000

0 1.0000 2.0000 3.0000

0 0 1.0000 3.0000

0 0 0 0.7071

提示

cholupdate 仅适用于满矩阵。

扩展功能

C/C++ 代码生成

使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

用法说明和限制:

代码生成不支持对此函数使用稀疏矩阵输入。

在 R2006a 之前推出

matlab 提示秩 1,Cholesky 分解的秩 1 更新相关推荐

  1. Matlab与线性代数--矩阵的Cholesky分解

    本图文介绍了Matlab对正交矩阵的Cholesky分解操作.

  2. 机器学习——低秩矩阵分解中低秩的意义、矩阵填补、交叉验证

    在研读论文<Matrix completion by deep matrix factorization>时,遇到了一些不明白的知识点,花费了大量时间在网上查阅相关资料,终于找到了能够让自 ...

  3. 矩阵的Cholesky分解的Matlab实现

    版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/weixin_38451800/article/details/88933683 1.Cholesky分 ...

  4. matlab高斯消去法,matlab实现高斯消去法、LU分解

    朴素高斯消去法: function x = GauElim(n, A, b) if nargin < 2 for i = 1 : 1 : n for j = 1 : 1 : n A(i, j) ...

  5. 几种矩阵分解算法: LU分解,Cholesky分解,QR分解,SVD分解,Jordan分解

    目录 1.LU分解 2. LDLT分解法 3. Cholesky分解的形式 4. QR分解 5.SVD分解 5.1 SVD与广义逆矩阵 6. Jordan 分解 参考文章: ---------我只是搬 ...

  6. 怎样用matlab做矩阵的LU分解,矩阵LU分解程序实现(Matlab)

    n=4;%确定需要LU分解的矩阵维数 %A=zeros(n,n); L=eye(n,n);P=eye(n,n);U=zeros(n,n);%初始化矩阵 tempU=zeros(1,n);tempP=z ...

  7. 【MATLAB】矩阵运算之矩阵分解

    矩阵分解:把一个矩阵分解成为矩阵连乘的形式. 矩阵的分解函数 chol Cholesky分解 cholinc 稀疏矩阵的不完全Cholesky分解 lu 矩阵LU分解 luinc 稀疏矩阵的不完全LU ...

  8. 矩阵的Cholesky分解

    原文链接:矩阵的Cholesky分解 首先来复习线性代数中几个重要的概念. 1)如果一个复矩阵A = A*(共轭转置),则A称为Hermitian矩阵.(注意,矩阵A转置后仍为其本身,显然A一定是方阵 ...

  9. 【数值分析】Doolittle分解和Cholesky分解的Python实现

    Doolittle 分解 import numpy as np # A=[[1.0,2.0,-3.0], # [2.0,-1.0,3.0], # [3.0,-2.0,2.0]]# A=[ [2, 4, ...

最新文章

  1. 基于redis分布式锁实现“秒杀”
  2. AutoML综述更新 【AutoML:Survey of the State-of-the-Art】
  3. 如何在Windows 2000的域环境中自动分发软件
  4. 200万存银行理财,年利率5%,未来30年够养老了吗?
  5. 无线路由与无线AP有什么不同
  6. 前端学习(1979)vue之电商管理系统电商系统之让文本框获得焦点
  7. 【人工智能】多标签图像分类综述
  8. 如何使用wordnet
  9. 第二阶段冲刺 站立会议 -01个人进度
  10. Python 语言程序设计(3-1)字符串处理函数和相关功能
  11. Go语言学习笔记(四)结构体struct 接口Interface 反射reflect
  12. displayTag获得行号
  13. FreeCAD源码分析:Path模块
  14. Unity 风吹草的实现
  15. google chrome 同步书签 查看gmail邮箱 谷歌浏览器同步助手
  16. 小米9android q测试版,MIUI Android Q Beta优先体验版已推送:小米9可尝鲜
  17. Android apk安装过程
  18. Java JavaScript BOM和正则表达式
  19. exit code非0什么意思C语言,c++程序出现exit code -1073740940 (0xC0000374)
  20. 使用plotly画3d立方体

热门文章

  1. dcu故障是哪_【车匠在线-故障案例】潍柴自主DCU通讯故障
  2. 吉吉拍——线上线下购物的数字化抢拍平台
  3. 设计模式学习(1)简单工厂模式:君子远庖厨
  4. 树的结构比图更加严格,那么具体在哪几个点严格呢?
  5. css中的伪元素、基线对齐、盒子模型
  6. 数据仓库物理分层_数据仓库逻辑分层
  7. ABAQUS有限元仿真计算工作站单机多核/多机多核集群硬件配置详解
  8. 华为HCIE证大数据证书社会认可度怎么样?
  9. 专转本计算机模拟试卷,江苏专转本计算机模拟试卷
  10. oracle存档模式,oracle归档模式管理