matlab 提示秩 1,Cholesky 分解的秩 1 更新
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 更新相关推荐
- Matlab与线性代数--矩阵的Cholesky分解
本图文介绍了Matlab对正交矩阵的Cholesky分解操作.
- 机器学习——低秩矩阵分解中低秩的意义、矩阵填补、交叉验证
在研读论文<Matrix completion by deep matrix factorization>时,遇到了一些不明白的知识点,花费了大量时间在网上查阅相关资料,终于找到了能够让自 ...
- 矩阵的Cholesky分解的Matlab实现
版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/weixin_38451800/article/details/88933683 1.Cholesky分 ...
- 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) ...
- 几种矩阵分解算法: LU分解,Cholesky分解,QR分解,SVD分解,Jordan分解
目录 1.LU分解 2. LDLT分解法 3. Cholesky分解的形式 4. QR分解 5.SVD分解 5.1 SVD与广义逆矩阵 6. Jordan 分解 参考文章: ---------我只是搬 ...
- 怎样用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 ...
- 【MATLAB】矩阵运算之矩阵分解
矩阵分解:把一个矩阵分解成为矩阵连乘的形式. 矩阵的分解函数 chol Cholesky分解 cholinc 稀疏矩阵的不完全Cholesky分解 lu 矩阵LU分解 luinc 稀疏矩阵的不完全LU ...
- 矩阵的Cholesky分解
原文链接:矩阵的Cholesky分解 首先来复习线性代数中几个重要的概念. 1)如果一个复矩阵A = A*(共轭转置),则A称为Hermitian矩阵.(注意,矩阵A转置后仍为其本身,显然A一定是方阵 ...
- 【数值分析】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, ...
最新文章
- 基于redis分布式锁实现“秒杀”
- AutoML综述更新 【AutoML:Survey of the State-of-the-Art】
- 如何在Windows 2000的域环境中自动分发软件
- 200万存银行理财,年利率5%,未来30年够养老了吗?
- 无线路由与无线AP有什么不同
- 前端学习(1979)vue之电商管理系统电商系统之让文本框获得焦点
- 【人工智能】多标签图像分类综述
- 如何使用wordnet
- 第二阶段冲刺 站立会议 -01个人进度
- Python 语言程序设计(3-1)字符串处理函数和相关功能
- Go语言学习笔记(四)结构体struct 接口Interface 反射reflect
- displayTag获得行号
- FreeCAD源码分析:Path模块
- Unity 风吹草的实现
- google chrome 同步书签 查看gmail邮箱 谷歌浏览器同步助手
- 小米9android q测试版,MIUI Android Q Beta优先体验版已推送:小米9可尝鲜
- Android apk安装过程
- Java JavaScript BOM和正则表达式
- exit code非0什么意思C语言,c++程序出现exit code -1073740940 (0xC0000374)
- 使用plotly画3d立方体